3ds max的插件开发支持二种脚本:MAXScript、Python,不过经过对比和测试发现,Python 不如 MAXScript 强大。
基于Python的3ds max 插件开发
(1)请安装 3ds max 2016或以上,我自己用提 3ds max 2018,最开始用 2014 发现安装目录没有 3dsmaxpy.exe;
(2)修改 PyCharm 工程的 Python解释器,将 3dsmaxpy.exe 复制一份为改为 python.exe;
(3)将 3ds max 安装目前下的 MaxPlus.py 文件复制到 python 工程下
以网上的示例代码,跑下整个流。创建一个圆柱体
在 3ds max 中载入脚本,然后运行,可以看到执行效果
我们修改代码,发现文件并未重载,只能重新打开(还是不太方便)
不过网上也有相应的解决方案:
(1)使用一个 start.ms,动态执行 python 脚本,https://www.jianshu.com/p/abe718c40ac3
(2)使用第三方提供的库 YCDIVFX_MaxPlus,https://blog.csdn.net/u010677365/article/details/90734151
关于 Python 开发 3ds max 的脚本,这里有一些很不错的文章,可以自行参考:
https://odederell3d.blog/category/3ds-max/3ds-max-scripting/3ds-max-python-scripting/
关于 3ds max 提供的 MaxPlus API,这里有篇文章简单进行了介绍,也可以进行参考:
https://www.jianshu.com/p/261a428c596e
基于 MAXScript 的 3ds max 插件开发
经过简单的摸索,发现 3ds max 提供一个 MAXScript 的界面编辑器 Visual MAXScript
窗口底部是UI控件,可以拖入界面进行排版和布局。上面测试我拖了一个简单的 Button,修改它的 label 为 MyButton,并为它编写了响应事件。
编码这里,使用 Visual Studio Code,安装了 “Language MAXScript”插件(这样编码时的自动提示就有了)
为 MyButton 编写的代码,保存为 .ms 文件后就变成下面这样(用 vs 打开)
上图中红色框内的代码是额外加的,表现点击后,创建该面板。
关于 MAXScript 更多的API和用法,可以参考官方的API,以及下面这两篇文章:
(1)3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)
(2)https://todorvankov.com/3ds-max-scripts ,可以根据提供的 .mcr 文件(类似 .ms文件),了解一下实际工具是如何进行开发的;
大体上我倾向于用 MAXScript 进行开发,因为官方提供了一个UI编辑器(虽然很简陋),希望这篇文章对大家进行3ds max 插件开发会有所帮助
苏州疫情,难得没人打扰,就顺手把之前一直想研究的各类插件开发,全部摸一遍。
疫情来的很突然,希望在政府的管控和市民的共同参与下,早日结束疫情,加油!