如果你是Python或Maxscript的新手,你现在可以跟着这篇文章开始做一些代码了,本文将让我们从非常基本的东西开始学习。
如何在3dmax中获取选定的节点并打印出它们的名称?所有场景对象如何?我们直接看代码:
import MaxPlusdef getselectednodenames():for node in MaxPlus.SelectionManager.Nodes:print node.Namedef getscenenodenames():for node in MaxPlus.Core.GetRootNode().Children:print node.Nameif __name__ == '__main__':getselectednodenames()getscenenodenames()
看起来很容易,现在,让我们看一看如何将修改器添加到选择中:
import MaxPlus
import MaxPlusdef addmodifier(nodes):for node in nodes:mod = MaxPlus.Factory.CreateObjectModifier(MaxPlus.ClassIds.Noisemodifier)for param in mod.ParameterBlock:print param.Namemod.ParameterBlock.seed.Value = 12345node.AddModifier(mod)if __name__ == '__main__':addmodifier(MaxPlus.SelectionManager.Nodes)
请一定要查看MaxPlus.py中ClassId的类定义,在那里你可以找到当前可用于python的所有修改器(以及其他类)的名称。此外,这里我们使用的是CreateObjectModifier,但如果要添加WSM修改器,则需要使用CreateWorldSpaceModifier。
另外,访问参数仍然不是那么容易,因此我包含了ParameterBlock的打印输出,修改器的所有参数都存储在这里。要访问这些参数,更改它们,你需要使用“modifier.parametername.Value”,注意Value中的大写字母,应该就是它,现在您只需要使用AddModifier()将修改器添加到对象中。
在3dMax中执行Python脚本的方法:
点击3dMax主菜单->脚本->新建脚本,将Python脚本复制粘贴到脚本编辑器中,然后选择“语言”为“Python”,同时按下“Ctrl+e”键执行Python脚本。