做一个记录。防止做到一半以后忘了。网上优快云等也各有操作流程,参考他们的操作帮忙加了一些速度,但是毕竟每个人遇到的坑点是不一样的,(而且网上好像都是3dmax2022插件制作,我做2014的话可能会遇到一些奇奇怪怪的问题)
3ds Max 2023 Developer Help | About the 3ds Max SDK | Autodesk
关于SDK的内容大概都可以在这里找到,本篇文章的内容在官方说明其实也大多有覆盖到。
但是不确定我上面放的链接会不会失效(前几天放的2022链接,但这几天它正好出了3dsmax2023的文档,前几天放的就失效了,现在正好看到了,改成2023链接)。如果失效的话,直接在搜索引擎搜“3dsmax sdk develop helper"然后在其中找sdk的帮助文档应该是也是可行的。
第一步:安装3dmax2014,及3dmax2014 sdk。
可以考虑在龋齿一号找相关资源。(原来PoJie是屏蔽词啊,失敬)
龋齿一号GFXCamp – CG营地|高速下载最新CG素材资源
setup.exe中就有SDK和安装软件本体,按指引按部就班地安装就行,没啥波折。
这一步算是平稳渡过。
第二步:安装一个vs2017。
这个应该是一个可选项,我本身是在用vs2019的,当时按照别人博客经验又安了2017,但是从我的后面做的情况看,不安应该也可以用重定向项目或者添加老版本生成工具集等方式解决,当然,这就是后话了。
具体2017需要安装的组件,这里可以先装一个C++桌面通用开发,后续再添的组件在后面说。
中间加一句,3dmax2017 开始支持使用Qt为插件提供用户界面,我这里要搞的是2014,所以就没管Qt的事情,如果要用的话,顺着参考链接1可以找到官方给的操作说明。
第三步:在VS的项目模板中添加“3dsmaxPluginWizard”向导
根据官方说明,也可以不用这个向导,但我推荐还是用吧,不用向导那个看起来就感觉麻烦。
3ds Max 2023 Developer Help | Creating a Plug-in Project | Autodesk
首先,找到"..\3ds Max 2014 SDK\maxsdk\howto\3dsmaxPluginWizard"目录,其中有三个文件
需要修改.vsz文件里的两项
其中上面的VsWizardEngine是对应你的VS版本。(15.0是指vs2017,关于这个,我没有找到官方定义的相关文档的位置)
下面那个是sdk的wizard的绝对路径。
改完之后把这三个文件复制到
“..\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\vcprojects"目录下。(没有vcprojects文件夹的话可以在新建一个)
这一步做完,应该可以尝试在VS里新建项目了,如下图。
接着尝试编译的话就会发现需要2010工具集,这里我没去找2010工具集,而是使用的重定向项目。(如果是做3dmax2022的话,安装工具集可能更容易一些)
除了在VS里操作重定向项目到你的工具集和windows sdk之外,还需要:
在max的SDK目录下(\maxsdk\ProjectSettings\propertySheets)找到“3dsmax.general.project.settings.props”文件,打开编辑。
对于2014,需要关注的是 ToolsVersion、和PlatformToolset。
前者ToolsVersion=4.0意为需要为vs添加组件.NET Framework 4
后者PlatformToolset,原本为V100(VS2010开发工具集),我这里改成了我使用的V141。
然后再编译,如果提示cannot open include file #include "afxres.h"的话,
可以考虑安装MFC,
或者如果你没用到MFC的话,把#include "afxres.h"改为如下图所示的也可以。
#include <Windows.h>
#include <winres.h>
接下来应该就可以编译成功了。
后续对按照具体需求,对插件功能的自定义的开发,就参考官方文档和官方示例吧。
补充:关于调试。
建议将输出目录放在"..\3ds Max 2014\plugins\"这个目录下(如下图示例),
这样做能少一个坑点,之前我输出到了别的目录下,然后复制插件过去,在制作工具类插件(Utility)时,发现没有名字,又在网上搜了搜才知道,少了描述相关的.mui文件。还得把en-US文件夹也一起复制过去。不如直接把输出目录设置好。
同时可以参考下图设置工作目录和命令,
这样的好处是可以直接F5调试断点。我尝试过单独运行3dsmax然后尝试附加到进程,不知道为什么无法断点,只知道我这样做之后用F5可以。
参考:
主要还是参考官方的帮助吧。它真的啥都有,实在不行慢慢翻译也行。
1、这个目录是讲配置环境和编写插件的3ds Max 2023 Developer Help | Writing Plug-ins | Autodesk
2、这个目录是C++API3ds Max 2023 Developer Help | 3ds Max C++ API Reference: 3ds Max SDK C++ Reference | Autodesk
3、写插件时,可以去参考官方给的示例插件,emmmm,大概在这个目录下"../3ds Max 2014 SDK/maxsdk/samples"
当然,也可以参考网上别人写的优快云博客,毕竟是中文的,我做的时候也看了很多,也是很有帮助的,我这里这篇文章只记录了自己遇到的部分问题,有些问题或许覆盖不到。