3DsMax导出插件编写-(1)环境搭建
2015-01-19 11:53
281 查看
为3D开发人员,特别是3D引擎开发人员,经常会接触到各种三维模型的数据。虽然说3dsmax已经可以导出很多格式的模型,不过总是不一定合适自己用。所以总有一种想自己写一个导出插件,让3dmax导出自己想要的数据格式。这里为大家介绍一下怎样为3dmax写导出插件的第一步:怎样配置vs和maxSdk。
这里你需要的东西有两个:
1、一个完整版的3dsMax。
2、一个Visual Studio。
为什么是要完整版的3dsMax呢?这是因为完整版本的3dsMax的安装文件自带有maxSdk。这是很重要的。不同版本的3dsMax,带的sdk会不一样。你拿了其他版本的sdk做了的插件,不一定适合你当前的3dsmax使用的。很多人写这个配置教程,会告诉你上网去找maxSdk。其实不需要这么麻烦的。下面会告诉大家怎样安装。我这里拿的是我当前使用的3dsMax2011的64位版来做示范。其他的版本做法是一样的。
那么Visual Studio有什么要求呢?有些人写的教程会告诉你,每个版本的max的sdk会对应不同版本的vs,最好对应。这样说也不算错。不过其实这个对应关系没那么严格的,我下面会告诉大家怎样跨版本配置。比如max2011的sdk对应的是vs2008,我下面将会用vs2010来配置。
好,把上面2样东西准备好之后,3dsmax正常安装,vs也正常安装,准备工作就完成了,接下来阿赵和大家就一起来装这个maxSdk:
运行完整版本的3dsMax安装文件,会看到以下界面,我们选择“安装工具和实用程序”:
![](http://img0.ph.126.net/74ID5uIDTdNMK8r9bPdAbw==/2295991385129014413.jpg)
在这里选择需要安装的工具,我们需要的是3ds max 2011的sdk:
![](http://img2.ph.126.net/swd1ot3xjB2Frg8hMc2Zwg==/137359788734993090.jpg)
安装完之后,会在安装目录找到一个howto文件夹,里面有个3dsmaxPluginWizard文件夹,在里面有个readme.txt文档,文档里面说明了怎么去配置这个sdk的。其实在安装完之后,我们可以把这个maxsdk的文件夹随便的移动到我们想要的地方的。不过在配置之前,最好先移动好,开始配置之后,就别动这个文件夹的路径了。
![](http://img1.ph.126.net/8MgGJnprTfTtxDIP-UovWw==/2987575402906908652.jpg)
在配置之前,这个文件夹的属性是只读的,我们先把整个文件夹的只读取消,然后开始配置:
使用记事本打开同文件夹下的3dsmaxPluginWizard.vsz,然后找到下图用红线下划的地方。
默认的Wizard=VsWizardEngine.9.0,代表的是对应vs2008版本。我现在需要使用2010版本,所以把它改成了10.0
然后下面的ABSOLUTE_PATH改成当前的3dsmaxPluginWizard文件夹的路径:
![](http://img0.ph.126.net/ua95lfxpxh9NxcXb4EJCMg==/720012990526049775.jpg)
改完之后,我们把3dsmaxPluginWizard文件夹下的这三个文件复制:
![](http://img1.ph.126.net/ABvLVtprdsA-Vdn8gjo7jA==/2187060569142018853.jpg)
然后找到vs2010的安装文件夹,找到VC/vcprojects文件夹,把刚才复制的三个文件放到这个文件夹下:
![](http://img0.ph.126.net/BhX4S76HaXXSfzrHeBN_EA==/2455306221947185512.jpg)
然后我们就可以打开vs2010,创建新项目。这时候会在c++项目里面看到了3dsmax插件的类别,选择它,然后在下面的项目名称和路径里面输入自己想要的名字和路径。
![](http://img0.ph.126.net/6kSUaC64YWWL__eowMWeZQ==/1829024398766034396.jpg)
如果你之前的配置正确,将会弹出设置向导,如果没有弹出,则要检查之前的步骤了。我们选择File Export:
![](http://img0.ph.126.net/1hF3Of7MMiWqtqKPrqx57g==/1747115180543257368.jpg)
这里是插件的详情,直接下一步就行:
![](http://img1.ph.126.net/kP4QguF9M4jv2PqPCInH-Q==/3779083037417268964.jpg)
这里是项目详情,第一项输入maxsdk的路径,第二项输入插件想输出的路径,比如3dsmax安装目录的plugins文件夹,第三项输入需要调试的3dsmax的安装目录。三项都是可以在项目建立之后修改的。
![](http://img2.ph.126.net/N2yYeEdqeg487QD9VYzNeA==/1746833705566524176.jpg)
按finish后,由于这个版本的sdk对应的是vs2008,现在我用的是2010,所以有一个转换版本的过程(我用的vs2013,sdk2012,没有这步)
![](http://img2.ph.126.net/5yiEN678QNnNlC-Y6OuRPA==/2080663027945177205.jpg)
这时候,项目应该已经创建成功。如果没有创建成功,则检查之前的步骤。通常是因为3dsmaxPluginWizard.vsz里面的vs版本设置错误。如果创建成功后,我们在解决方案资源管理器里面找到你的项目的cpp,打开。
![](http://img1.ph.126.net/CBt-XZdvXpyKtdmUZHN5Aw==/809522033119854514.jpg)
在cpp里面,修改Ext方法里面的返回,这里是你导出的模型的格式后缀名,这里我是改成了”azhao“,再改ShortDesc方法里面的返回,这里是模型的描述,我改成了”阿赵的模型格式“。
![](http://img2.ph.126.net/ipvkeOMwPzyR8eJDLNy7wA==/3318308500542057896.jpg)
现在按调试,会弹出错误:
![](http://img1.ph.126.net/mJmPbpPfK1VUA4bITG7TTQ==/2849371189342393879.jpg)
这是因为调试的目标没有设置正确,可以找到项目属性修改:
![](http://img0.ph.126.net/3hqugcG1stjsQIDMrsTfUg==/1067071636810230111.jpg)
在配置属性里面的调试,修改命令项为你的3dsmax.exe路径:
![](http://img1.ph.126.net/EK_9ofz4qjnutSb55ZX5fQ==/809522033119854526.jpg)
按道理,现在我们再开始调试,你的3dsmax就会启动了。如果你是为32位的3dsmax做配置,那么整个配置过程已经完成了。
但我这里3dsmax启动后报错了,这是因为我的3dsmax是64位的,刚才调试生成的32位插件不能用。
![](http://img2.ph.126.net/dACKId2sHUKEwpB6i6sRyA==/2191564168769584799.jpg)
接下来我们将要把项目改成64位的。先打开项目属性,在配置管理器里面,把Win32改成x64:
![](http://img2.ph.126.net/cES0nQVecaswFTm0GaYXmQ==/2191564168769584805.jpg)
改完之后,之前我们的所有配置都没了,需要逐个去配置:
先配置调试程序路径:
![](http://img1.ph.126.net/CG7WiW1e_spOB02z_lvzaw==/3324500950030070542.jpg)
然后配置输出路径
![](http://img0.ph.126.net/1fX4IfXYVzEy7OcoTtLg2Q==/3179541337023578658.jpg)
配置生成程序数据库文件的路径
![](http://img1.ph.126.net/5l3gttBHeJW_0ibeBCy6vA==/2080663027945177237.jpg)
好了,64位修改完成,我们再次进行调试,3dsmax应该就能正常打开了。
这里我编译有问题,提示error MSB8009:答题内容就是我的vs2013不能打开2008的东西,就是说plaeform tools不对,解决如下:
1、打开工程。
2、右击工程并选择 'Properties(属性)'。在属性窗口的左边面板, 展开‘(Configuration Properties)' 并选择'(General)'.
3、右边面板中, 将“(Platform Toolset)”的值从v90 改为 v120(改成自己支持的就可以) ,点击(OK)。
4、在Solution Explorer(解决方案资源管理器)”中,打开“StdAfx.h”文件,将“_WIN32_WINNT”的值从0x0400改为0x0501,。
我们随便在场景里面建立一个茶壶,然后导出。现在我们可以在选择导出格式的地方,找到我们刚才指定的格式了,就是”阿赵的模型格式“,后缀名是”azhao“。
![](http://img1.ph.126.net/wzDqtHoAj6XRNbj2sLIJjQ==/1415819132954979379.jpg)
确定保存,会打开一个对话框,不过里面都是一些默认的东西,没有任何内容的,因为我们只是完成了配置的步骤,没有开始写导出的实际内容。
![](http://img2.ph.126.net/YxCGFG241QONagyUoqnVOg==/1828742923789325090.jpg)
在vs里面找到DoExport方法,在里面打一个断点。再次去选择导出我们的格式,vs应该就能进入断点了。DoExport方法就是导出方法的入口了。
![](http://img2.ph.126.net/ud2Zv0kCRnmnORYHMxgtUw==/865535553485275196.jpg)
如果你途中发现出现问题,很有可能是以下几种问题:
1、下载的MaxSdk有问题,建议使用完整版3dsMax自带的sdk。
2、忘记取消maxSdk文件夹的只读属性,这样在新建项目或者编译的时候都会出错。
3、3dsmaxPluginWizard.vsz里面设置的vs版本不对。9.0对应的是vs2008,10.0对应的是vs2010,11.0对应的是vs2012.
4、调试的时候出错,有可能是没有设置对调试对象,要设置为3dsMax的exe。
5、调试的时候没有报错,却没有出现导出的选择。有可能是导出保存的路径不对,要保存在3dsmax的安装路径里面的插件文件夹,比如plugins或者stdplugs文件夹。
6、调试的时候3dsmax启动了,但在启动的途中报错。这有可能是使用的sdk和3dsMax版本不对应,或者是32位插件和64位软件不对应。
这个过程虽然简单,不过却会遇到很多默默奇妙的小问题,网上虽然相关的教程不少,但起码我自己对着很多个教程都没有配置成功,所以才把自己的配置过程记录下来,希望能给以后需要配置的人一个参考。
为3D开发人员,特别是3D引擎开发人员,经常会接触到各种三维模型的数据。虽然说3dsmax已经可以导出很多格式的模型,不过总是不一定合适自己用。所以总有一种想自己写一个导出插件,让3dmax导出自己想要的数据格式。这里为大家介绍一下怎样为3dmax写导出插件的第一步:怎样配置vs和maxSdk。
这里你需要的东西有两个:
1、一个完整版的3dsMax。
2、一个Visual Studio。
为什么是要完整版的3dsMax呢?这是因为完整版本的3dsMax的安装文件自带有maxSdk。这是很重要的。不同版本的3dsMax,带的sdk会不一样。你拿了其他版本的sdk做了的插件,不一定适合你当前的3dsmax使用的。很多人写这个配置教程,会告诉你上网去找maxSdk。其实不需要这么麻烦的。下面会告诉大家怎样安装。我这里拿的是我当前使用的3dsMax2011的64位版来做示范。其他的版本做法是一样的。
那么Visual Studio有什么要求呢?有些人写的教程会告诉你,每个版本的max的sdk会对应不同版本的vs,最好对应。这样说也不算错。不过其实这个对应关系没那么严格的,我下面会告诉大家怎样跨版本配置。比如max2011的sdk对应的是vs2008,我下面将会用vs2010来配置。
好,把上面2样东西准备好之后,3dsmax正常安装,vs也正常安装,准备工作就完成了,接下来阿赵和大家就一起来装这个maxSdk:
运行完整版本的3dsMax安装文件,会看到以下界面,我们选择“安装工具和实用程序”:
![](http://img0.ph.126.net/74ID5uIDTdNMK8r9bPdAbw==/2295991385129014413.jpg)
在这里选择需要安装的工具,我们需要的是3ds max 2011的sdk:
![](http://img2.ph.126.net/swd1ot3xjB2Frg8hMc2Zwg==/137359788734993090.jpg)
安装完之后,会在安装目录找到一个howto文件夹,里面有个3dsmaxPluginWizard文件夹,在里面有个readme.txt文档,文档里面说明了怎么去配置这个sdk的。其实在安装完之后,我们可以把这个maxsdk的文件夹随便的移动到我们想要的地方的。不过在配置之前,最好先移动好,开始配置之后,就别动这个文件夹的路径了。
![](http://img1.ph.126.net/8MgGJnprTfTtxDIP-UovWw==/2987575402906908652.jpg)
在配置之前,这个文件夹的属性是只读的,我们先把整个文件夹的只读取消,然后开始配置:
使用记事本打开同文件夹下的3dsmaxPluginWizard.vsz,然后找到下图用红线下划的地方。
默认的Wizard=VsWizardEngine.9.0,代表的是对应vs2008版本。我现在需要使用2010版本,所以把它改成了10.0
然后下面的ABSOLUTE_PATH改成当前的3dsmaxPluginWizard文件夹的路径:
![](http://img0.ph.126.net/ua95lfxpxh9NxcXb4EJCMg==/720012990526049775.jpg)
改完之后,我们把3dsmaxPluginWizard文件夹下的这三个文件复制:
![](http://img1.ph.126.net/ABvLVtprdsA-Vdn8gjo7jA==/2187060569142018853.jpg)
然后找到vs2010的安装文件夹,找到VC/vcprojects文件夹,把刚才复制的三个文件放到这个文件夹下:
![](http://img0.ph.126.net/BhX4S76HaXXSfzrHeBN_EA==/2455306221947185512.jpg)
然后我们就可以打开vs2010,创建新项目。这时候会在c++项目里面看到了3dsmax插件的类别,选择它,然后在下面的项目名称和路径里面输入自己想要的名字和路径。
![](http://img0.ph.126.net/6kSUaC64YWWL__eowMWeZQ==/1829024398766034396.jpg)
如果你之前的配置正确,将会弹出设置向导,如果没有弹出,则要检查之前的步骤了。我们选择File Export:
![](http://img0.ph.126.net/1hF3Of7MMiWqtqKPrqx57g==/1747115180543257368.jpg)
这里是插件的详情,直接下一步就行:
![](http://img1.ph.126.net/kP4QguF9M4jv2PqPCInH-Q==/3779083037417268964.jpg)
这里是项目详情,第一项输入maxsdk的路径,第二项输入插件想输出的路径,比如3dsmax安装目录的plugins文件夹,第三项输入需要调试的3dsmax的安装目录。三项都是可以在项目建立之后修改的。
![](http://img2.ph.126.net/N2yYeEdqeg487QD9VYzNeA==/1746833705566524176.jpg)
按finish后,由于这个版本的sdk对应的是vs2008,现在我用的是2010,所以有一个转换版本的过程(我用的vs2013,sdk2012,没有这步)
![](http://img2.ph.126.net/5yiEN678QNnNlC-Y6OuRPA==/2080663027945177205.jpg)
这时候,项目应该已经创建成功。如果没有创建成功,则检查之前的步骤。通常是因为3dsmaxPluginWizard.vsz里面的vs版本设置错误。如果创建成功后,我们在解决方案资源管理器里面找到你的项目的cpp,打开。
![](http://img1.ph.126.net/CBt-XZdvXpyKtdmUZHN5Aw==/809522033119854514.jpg)
在cpp里面,修改Ext方法里面的返回,这里是你导出的模型的格式后缀名,这里我是改成了”azhao“,再改ShortDesc方法里面的返回,这里是模型的描述,我改成了”阿赵的模型格式“。
![](http://img2.ph.126.net/ipvkeOMwPzyR8eJDLNy7wA==/3318308500542057896.jpg)
现在按调试,会弹出错误:
![](http://img1.ph.126.net/mJmPbpPfK1VUA4bITG7TTQ==/2849371189342393879.jpg)
这是因为调试的目标没有设置正确,可以找到项目属性修改:
![](http://img0.ph.126.net/3hqugcG1stjsQIDMrsTfUg==/1067071636810230111.jpg)
在配置属性里面的调试,修改命令项为你的3dsmax.exe路径:
![](http://img1.ph.126.net/EK_9ofz4qjnutSb55ZX5fQ==/809522033119854526.jpg)
按道理,现在我们再开始调试,你的3dsmax就会启动了。如果你是为32位的3dsmax做配置,那么整个配置过程已经完成了。
但我这里3dsmax启动后报错了,这是因为我的3dsmax是64位的,刚才调试生成的32位插件不能用。
![](http://img2.ph.126.net/dACKId2sHUKEwpB6i6sRyA==/2191564168769584799.jpg)
接下来我们将要把项目改成64位的。先打开项目属性,在配置管理器里面,把Win32改成x64:
![](http://img2.ph.126.net/cES0nQVecaswFTm0GaYXmQ==/2191564168769584805.jpg)
改完之后,之前我们的所有配置都没了,需要逐个去配置:
先配置调试程序路径:
![](http://img1.ph.126.net/CG7WiW1e_spOB02z_lvzaw==/3324500950030070542.jpg)
然后配置输出路径
![](http://img0.ph.126.net/1fX4IfXYVzEy7OcoTtLg2Q==/3179541337023578658.jpg)
配置生成程序数据库文件的路径
![](http://img1.ph.126.net/5l3gttBHeJW_0ibeBCy6vA==/2080663027945177237.jpg)
好了,64位修改完成,我们再次进行调试,3dsmax应该就能正常打开了。
这里我编译有问题,提示error MSB8009:答题内容就是我的vs2013不能打开2008的东西,就是说plaeform tools不对,解决如下:
1、打开工程。
2、右击工程并选择 'Properties(属性)'。在属性窗口的左边面板, 展开‘(Configuration Properties)' 并选择'(General)'.
3、右边面板中, 将“(Platform Toolset)”的值从v90 改为 v120(改成自己支持的就可以) ,点击(OK)。
4、在Solution Explorer(解决方案资源管理器)”中,打开“StdAfx.h”文件,将“_WIN32_WINNT”的值从0x0400改为0x0501,。
我们随便在场景里面建立一个茶壶,然后导出。现在我们可以在选择导出格式的地方,找到我们刚才指定的格式了,就是”阿赵的模型格式“,后缀名是”azhao“。
![](http://img1.ph.126.net/wzDqtHoAj6XRNbj2sLIJjQ==/1415819132954979379.jpg)
确定保存,会打开一个对话框,不过里面都是一些默认的东西,没有任何内容的,因为我们只是完成了配置的步骤,没有开始写导出的实际内容。
![](http://img2.ph.126.net/YxCGFG241QONagyUoqnVOg==/1828742923789325090.jpg)
在vs里面找到DoExport方法,在里面打一个断点。再次去选择导出我们的格式,vs应该就能进入断点了。DoExport方法就是导出方法的入口了。
![](http://img2.ph.126.net/ud2Zv0kCRnmnORYHMxgtUw==/865535553485275196.jpg)
如果你途中发现出现问题,很有可能是以下几种问题:
1、下载的MaxSdk有问题,建议使用完整版3dsMax自带的sdk。
2、忘记取消maxSdk文件夹的只读属性,这样在新建项目或者编译的时候都会出错。
3、3dsmaxPluginWizard.vsz里面设置的vs版本不对。9.0对应的是vs2008,10.0对应的是vs2010,11.0对应的是vs2012.
4、调试的时候出错,有可能是没有设置对调试对象,要设置为3dsMax的exe。
5、调试的时候没有报错,却没有出现导出的选择。有可能是导出保存的路径不对,要保存在3dsmax的安装路径里面的插件文件夹,比如plugins或者stdplugs文件夹。
6、调试的时候3dsmax启动了,但在启动的途中报错。这有可能是使用的sdk和3dsMax版本不对应,或者是32位插件和64位软件不对应。
这个过程虽然简单,不过却会遇到很多默默奇妙的小问题,网上虽然相关的教程不少,但起码我自己对着很多个教程都没有配置成功,所以才把自己的配置过程记录下来,希望能给以后需要配置的人一个参考。
相关文章推荐
- 【Ogre引擎架构】第五讲 从零开始编写3dsMax导出插件
- 3DsMax导出插件编写
- 通过编写3ds max插件导出模型数据的一个demo
- Eclipse+php插件+Xdebug搭建PHP完美开发/调试环境指南
- 编写驱动的环境搭建
- 3dsmax模型导出插件调试技巧
- 第一次编写3dMAX 导出插件
- 用Tomcat插件搭建可跟踪调试的J2EE WEB开发环境
- 我学ubuntu - ubuntu下搭建android开发环境(从JDK到ADT插件安装全过程)
- FirstStep:搭建scala开发环境IDEA+scala插件+scala2.8
- 【转】 Eclipse+php插件+Xdebug搭建PHP开发/调试环境
- 第一次编写max场景导出插件的经验分享(仅限第一次写max插件的兄弟姐妹)
- 导出ECLIPSE中自己编写的插件
- 3D MAX导出插件编写II
- 3D MAX导出插件编写I
- lua学前必备【帮助你快速搭建编写环境】
- 用Tomcat插件在Eclipse上搭建可跟踪调试的J2EE WEB开发环境
- 主题:推荐一个eclipse插件:一键式快速搭建Struts2.0,SSH2环境
- J2ME环境搭建-1(卸载EclipseME插件)
- 3D MAX导出插件编写