python - 将 Python 类实例保存为 Maya 场景对象
问题描述
在我的场景中,我有一个 Python 类 Base() 的实例,它本质上是一个用于将装备模块添加到我的角色装备中的容器。创建 Base 的实例后,我的脚本将其存储在名为 rigBase 的变量下。Base() 类具有用于存储不同装备组件的组,例如。rigBase.jointGrp rigBase.ctrlGrp。这让我可以通过将 rigBase 变量传递给每个模块的构建函数来将 rig 模块组织到 Base 中。问题是这个变量存储在内存中而不是实际场景中,所以当我保存和加载场景时,变量丢失并且新模块无法访问 Base() 的实例。
我的问题是,如何将变量 rigBase 存储在我的场景中,以便当我保存/加载文件时,我的脚本能够将先前创建的组节点识别为 Base() 的实例?
解决方案
我可以将类的实例转换为二进制或 ascii 可写格式,但我认为这不是保存数据的好方法。我建议检查您真正需要知道哪些数据,并尝试使用 json 或 pickle 仅序列化该数据。然后,您可以将此数据附加到任何 Maya 节点或将其保存为单独的文件。然后,如果加载了场景,则可以加载这些信息并将其转换回并附加到新的 Base 实例。
推荐阅读
- python - 在 basicConfig 中指定文件名后,记录器不输出 INFO 消息
- python - 使用 pytorch 数据加载器转储图像数据并加载
- java - 如何总结一对多关系JPA中每个项目的成本?
- sql - 将 SQL Server 中的天数/小时数从标头转为行级别
- docker - 如何使用 Postman 访问在 Docker 中运行的 ASP Core Web Api
- java - 随机 com.jcraft.jsch.SftpException - 没有带有错误代码 2 的此类文件或目录
- python - 像素 RGB 值标识符 - 类型错误:参数必须是长度为 2 的序列
- java - ObjectOutput/ObjectInput 流如何工作?
- javascript - Javascript字符串替换没有替换我的参数
- docker - 在容器上调试 Go 进程不会监听映射的端口