最近周围很多朋友开始接触3dsmax的相关开发,正好我以前刚入行的那会有过一些3dsmax相关的经验所以在这分享给大家希望对大家有所帮助
很多刚接触3dsmax相关开发的朋友会经常会疑惑我应该学pymxs
还是MaxPlus
.
我建议是学pymxs
Maya
的cmds
,对于有maxscript基础的可以很容易上手MaxPlus
https://forums.autodesk.com/t5/3ds-max-programming/maxplus-is-no-longer-available-in-2021/td-p/9407304
这样我们每一步的操作都能在Maxscript Listener
中显示了
下面是maxscript的简单用例
print "Hello Maxscript"
再来一个创建一个Box
并且存到一个叫box的变量中,我们未来调用box
就等于调用了Box()
这个对象
box = Box()
打印当前box的名字
box = Box()
print box.name
修改当前box的名字
box = Box()
print box.name
box.name = "renamed box"
print box.name
看完上面的几个简单的例子是不是发现maxscript其实挺简单?感觉就像在写python一样.
在编辑器中切换语言到python
同样我们先创建一个box
from pymxs import runtime as mxs
box = mxs.Box()
打印当前box的名字
from pymxs import runtime as mxs
box = mxs.Box()
print box.name
修改当前box的名字
from pymxs import runtime as mxs
box = mxs.Box()
print box.name
box.name = "renamed box"
print box.name
从上面的例子看出来maxscript
和pymxs
的写法很十分相近,基本都是需要在前面添加个mxs.
就可以了
有些maxscript特殊的语法我们需要稍微转换一下才行
请看下面的输出FBX的代码片段行
请看下面的输出FBX的代码片段
FBXExporterSetParam "Animmation" true
FBXExporterSetParam "BakeFrameStart" 0
FBXExporterSetParam "BakeFrameEnd" 100
FBXExporterSetParam "BakeResampleAnimation" true
FBXExporterSetParam "Shape" true
exportFile "your/output/file.fbx" #noPrompt using:#FBXEXP selectedOnly:true
转换成python
from pymxs import runtime as mxs
mxs.FBXExporterSetParam("Animation", True)
mxs.FBXExporterSetParam("BakeAnimation", True)
mxs.FBXExporterSetParam("BakeFrameStart", 1)
mxs.FBXExporterSetParam("BakeFrameEnd", 100)
mxs.FBXExporterSetParam("BakeResampleAnimation", True)
mxs.exportFile(
"your/output/file.fbx", mxs.Name("noPrompt"),
using=mxs.Name("FBXEXP"), selectedOnly=True,
)
在3dsmax 2021之前的pymxs的文档很少我们基本可以直接看maxscript的文档去开发即可
下面是我为大家找的一些有用的参考: