问题描述
在我的场景中,我有我的Python类Base()的实例,该实例实质上是将绑定模块添加到角色绑定的容器。创建Base实例后,我的脚本将其存储在名为rigBase的变量下。 Base()类具有用于存储不同装备组件ex的组。 rigBase.jointGrp rigBase.ctrlGrp。通过将rigBase变量传递给每个模块的build函数,这使我可以将rig模块组织到Base中。 问题在于此变量存储在内存中而不是实际场景中,因此当我保存并加载场景时,该变量丢失并且新模块无法访问Base()实例。
我的问题是,如何在我的场景中存储变量rigBase,以便在保存/加载文件时,我的脚本能够将先前创建的组节点识别为Base()的实例?
解决方法
也许可以将类的实例转换为二进制或ascii可写格式,但是我认为这不是保存数据的好方法。我建议检查您真正需要知道的数据,并尝试仅使用json或pickle序列化该数据。然后,您可以将此数据附加到任何maya节点或将其另存为单独的文件。然后,如果加载了场景,则可以加载这些信息并将其转换回并附加到新的Base实例。
,即使在maya属性中,您也可以另存为json。您可以使用脚本节点来保存数据,因此每次打开/关闭Maya时,它将执行某些操作