解决maya导出alembic文件隐藏物体也导出的问题。

在CG制作中,使用maya导出alembic文件时,通过设置writeVisibility可以避免导出隐藏物体,以减少数据量和内存占用。然而,有时即使设置了该选项,隐藏物体仍会被导出。解决此问题的一种方法是确保隐藏层级下的所有物体也被隐藏。当项目需要对层级进行关键帧设置时,可以利用mayaAPI判断属性上的关键帧来修改代码,从而实现正确过滤隐藏物体。

在cg制作过程中,我们经常会使用maya导出alembic文件,但是我发现有些情况下我们不需要把场景中的隐藏物体也导出,于是我们会使用maya导出面板中的一个命令,把这个命令给勾选上之后我们就可以把隐藏的物体不进行导出了。
在这里插入图片描述
这样就可以解决大部分的隐藏物体不导出,同时也能够减少数据量的产生和内存空间的使用在这个大数据时代内存的减少使用就意味着金钱的节约(少扯没用的)。但是有时候即使把这个writeVisibility给勾上了,但是也会把隐藏的数据全部输出,我曾经就遇到过这种情况(客户说把隐藏的物体不用输出),之后无论如何都还是会把隐藏的输出,也可能是maya2017的一个bug,于是我发现如果把隐藏层级下面的物体包括层级都给隐藏了,这样会解决这个问题。于是代码撸起,

import maya.cmds as cmds
Not_hide = cmds.ls(dag = 1,v=1,type = 'transform')
 obj = cmds.ls(dag = 1,type = 'transform')
 hides = [i for i in obj if i not in Not_hide]
 defult = ['persp','top','front','side']
 hide = [i for i in hides if i not in defult]
 for i in hide:         
	try:				
		cmds.setAttr('%s.visibility'%i,False)
	except:
		pass

这样就把所有隐藏物体下面的物体隐藏了。
但是有时根据项目的需求会把层级key帧,这样这个方法就不能用了,然而,mayaApi中有判断是否在某属性上key帧的方法。

key_q =cmds.keyframe(i,at='visibility', q=1, kc=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值