宁波做网站设计,专业网站建设是哪家,小程序平台哪个好,网站开通告知书如何在3dMax中使用Python返回场景内所有对象的列表#xff1f;
3dMax支持开发基于Python的工具和扩展#xff0c;因此可以对其进行自定义并将其集成到现代数字内容创建管道中。为此#xff0c;3dMax集成了Python 3.9解释器#xff0c;并通过pymxs API公开了3dMax的丰富功能…如何在3dMax中使用Python返回场景内所有对象的列表
3dMax支持开发基于Python的工具和扩展因此可以对其进行自定义并将其集成到现代数字内容创建管道中。为此3dMax集成了Python 3.9解释器并通过pymxs API公开了3dMax的丰富功能。此外可以使用包含的PySide2框架创建基于Python的工具的用户界面。 对3D动画软件中的脚本化工具和实用程序来说遍历对象的所有层次或场景中的所有对象的列表是非常常见的要求。
对于MaxScript脚本来说只需要写“objects”一词就可以引用场景中所有对象的列表。
除非我遗漏了一些显而易见的东西但是3dmax Python API中没有类似的快捷方法。
为了列出场景中的所有对象您需要使用递归函数该函数将返回节点的所有子级和子级的列表等等。
在下面的示例中函数“list_children()”将返回一个列表列出所提供节点层次结构中的所有对象并且当通过MaxPlus.Core.GetRootNode()给定场景的根节点时它将返回场景中所有对象的列表。
将“list_children()”封装在“scene_objects()”函数中提供了一种方便的方法只需调用“scene_objects()”即可获得场景中所有对象的列表。
def scene_objects():def list_children(node):list []for c in node.Children:list.append(c)list list list_children(c)return listreturn list_children(MaxPlus.Core.GetRootNode())for o in scene_objects():print o.Name
在3dMax中测试代码
提示3dmax是自带了Python运行环境的不需要再安装。
1.在3dmax中创建一个简单的多个对象构成的场景如下图 2.点击3dmax主菜单-脚本-新建脚本将前面的这段Python代码复制粘贴到脚本编辑器窗口中然后在编辑器窗口的“语言”菜单中选择“Python”告诉3dmax编辑器中的代码是python语言。 3.打开侦听器窗口。按下“Ctrle”键执行代码可以从侦听器窗口中看到执行的结果如图 需要注意的是在复制和粘贴本例中的脚本时缩进可能无法正确粘贴这将影响代码的正确执行所以粘贴的时候要检查缩进的正确性。