3DsMax导出插件编写(一)——vs2010和3dsmax2011(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安装文件,会看到以下界面,我们选择“安装工具和实用程序”:

在这里选择需要安装的工具,我们需要的是3ds max 2011的sdk:

安装完之后,会在安装目录找到一个howto文件夹,里面有个3dsmaxPluginWizard文件夹,在里面有个readme.txt文档,文档里面说明了怎么去配置这个sdk的。其实在安装完之后,我们可以把这个maxsdk的文件夹随便的移动到我们想要的地方的。不过在配置之前,最好先移动好,开始配置之后,就别动这个文件夹的路径了。

在配置之前,这个文件夹的属性是只读的,我们先把整个文件夹的只读取消,然后开始配置:

使用记事本打开同文件夹下的3dsmaxPluginWizard.vsz,然后找到下图用红线下划的地方。

默认的Wizard=VsWizardEngine.9.0,代表的是对应vs2008版本。我现在需要使用2010版本,所以把它改成了10.0

然后下面的ABSOLUTE_PATH改成当前的3dsmaxPluginWizard文件夹的路径:

改完之后,我们把3dsmaxPluginWizard文件夹下的这三个文件复制:

然后找到vs2010的安装文件夹,找到VC/vcprojects文件夹,把刚才复制的三个文件放到这个文件夹下:

然后我们就可以打开vs2010,创建新项目。这时候会在c++项目里面看到了3dsmax插件的类别,选择它,然后在下面的项目名称和路径里面输入自己想要的名字和路径。

如果你之前的配置正确,将会弹出设置向导,如果没有弹出,则要检查之前的步骤了。我们选择File Export:

这里是插件的详情,直接下一步就行:

这里是项目详情,第一项输入maxsdk的路径,第二项输入插件想输出的路径,比如3dsmax安装目录的plugins文件夹,第三项输入需要调试的3dsmax的安装目录。三项都是可以在项目建立之后修改的。

按finish后,由于这个版本的sdk对应的是vs2008,现在我用的是2010,所以有一个转换版本的过程

这时候,项目应该已经创建成功。如果没有创建成功,则检查之前的步骤。通常是因为3dsmaxPluginWizard.vsz里面的vs版本设置错误。如果创建成功后,我们在解决方案资源管理器里面找到你的项目的cpp,打开。

在cpp里面,修改Ext方法里面的返回,这里是你导出的模型的格式后缀名,这里我是改成了”azhao“,再改ShortDesc方法里面的返回,这里是模型的描述,我改成了”阿赵的模型格式“。

现在按调试,会弹出错误:

这是因为调试的目标没有设置正确,可以找到项目属性修改:

在配置属性里面的调试,修改命令项为你的3dsmax.exe路径:

按道理,现在我们再开始调试,你的3dsmax就会启动了。如果你是为32位的3dsmax做配置,那么整个配置过程已经完成了。

但我这里3dsmax启动后报错了,这是因为我的3dsmax是64位的,刚才调试生成的32位插件不能用。

接下来我们将要把项目改成64位的。先打开项目属性,在配置管理器里面,把Win32改成x64:

改完之后,之前我们的所有配置都没了,需要逐个去配置:

先配置调试程序路径:

然后配置输出路径

配置生成程序数据库文件的路径

好了,64位修改完成,我们再次进行调试,3dsmax应该就能正常打开了。

我们随便在场景里面建立一个茶壶,然后导出。现在我们可以在选择导出格式的地方,找到我们刚才指定的格式了,就是”阿赵的模型格式“,后缀名是”azhao“。

确定保存,会打开一个对话框,不过里面都是一些默认的东西,没有任何内容的,因为我们只是完成了配置的步骤,没有开始写导出的实际内容。

在vs里面找到DoExport方法,在里面打一个断点。再次去选择导出我们的格式,vs应该就能进入断点了。DoExport方法就是导出方法的入口了。

如果你途中发现出现问题,很有可能是以下几种问题:

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位软件不对应。

这个过程虽然简单,不过却会遇到很多默默奇妙的小问题,网上虽然相关的教程不少,但起码我自己对着很多个教程都没有配置成功,所以才把自己的配置过程记录下来,希望能给以后需要配置的人一个参考。

【转】http://liweizhaolili.blog.163.com/blog/static/162307442013117731953/

时间: 2025-01-05 08:48:39

3DsMax导出插件编写(一)——vs2010和3dsmax2011(64位)的配置方法的相关文章

3DsMax导出插件编写-(1)环境搭建

 为3D开发人员,特别是3D引擎开发人员,经常会接触到各种三维模型的数据.虽然说3dsmax已经可以导出很多格式的模型,不过总是不一定合适自己用.所以总有一种想自己写一个导出插件,让3dmax导出自己想要的数据格式.这里为大家介绍一下怎样为3dmax写导出插件的第一步:怎样配置vs和maxSdk. 这里你需要的东西有两个: 1.一个完整版的3dsMax. 2.一个Visual Studio. 为什么是要完整版的3dsMax呢?这是因为完整版本的3dsMax的安装文件自带有maxSdk.这是很

3DsMax导出插件编写(二)——常规SDK方法进行信息获取和保存文件

之前已经把配置vs和maxSdk的方法介绍过了,如果不懂怎样配置的朋友请参考: http://liweizhaolili.blog.163.com/blog/static/162307442013117731953/ 下面来介绍一下导出插件的具体写法.不过这不是一个容易说的很详细的问题.因为我们要写导出插件,通常都是因为想根据自己想要的信息来导出,所以就算我把我整个工程都公开,意义也不大的,因为那是根据我自己需要的数据写的业务,估计不太可能和你想要的一样的.所以我也只能简单的说明一些几个关键获取

win7 64位DCOM配置(关于导出excel 配置计算机组件服务)(转)

http://blog.sina.com.cn/s/blog_9323b3a50101qrxm.html [解决方案1] 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 4:在"DCO

万圣节福利:红孩儿3D引擎开发课程《3ds max导出插件初步》

红孩儿3D引擎开发课堂 QQ群:275220292 国内最详尽教授怎样开发3D引擎的地方!揭开3D引擎开发最不为人知的秘密! 万圣节福利,国内最详尽的3ds max导出插件编程指南0基础篇免费发放!            前言:今天网易的<乱斗西游>上线AppStore ,将继完美世界<黑暗黎明>后再次证明自研引擎的实力!假设你想成为引擎研发高手,那么,一切,将从3ds max导出插件起步~ 第九章课程<3ds max导出插件初步> 一.3ds max导出插件简单介绍:

Dz插件编写流程1

插件实现流程 开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程: 熟练使用 Discuz! 社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求. 对插件做一个概括性的设计,例如:需要使用什么菜单.什么参数,配置哪些选项.数据结构如何设计.前后台实现哪些功能等等. 阅读本文档并在系统设置中实际体验 Discuz! 插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来.插件接口能够实现哪些功能.不能实现哪些功能,

jQuery插件编写

jQuery种类 1.封装对象方法的插件,这种插件是我们常用的插件,后面将会具体针对这种插件介绍,如:$("#div").parent(); 2.封装全局函数的插件 如:jQuery.ajax() 3.选择器插件 如:$("ul li:eq(0)") 基本要点 1.所有的对象方法(第1种)都应该附加在jQuery.fn=jQuery.prototype,而所有的全局函数都应该附加在jQuery上 2.this在插件内部,是通过选择器获取的jQuery对象,而例如cl

jQuery插件编写及链式编程模型小结

JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQuery插件,然后像使用jQuery那样来操作DOM.  一.jQuery插件开发快速上手 1.jQuery插件模板 关于jQuery插件的编写,我们可以通过为jQuery.fn增加一个新的函数来编写jQuery插件.属性的名字就是你的插件的名字,其模板如下: (function($){ $.fn.m

jQuery插件编写及链式编程模型

jQuery插件编写及链式编程模型小结 JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQuery插件,然后像使用jQuery那样来操作DOM.  一.jQuery插件开发快速上手 1.jQuery插件模板 关于jQuery插件的编写,我们可以通过为jQuery.fn增加一个新的函数来编写jQuery插件.属性的名字就是你的插件的名字,其模板如下:

JQuery插件编写之定制版选择器

很多人是因为jQuery的强大选择器而爱上它的(没错,我就是特别讨厌原生JS的FindElementById),但是何尝不想把一些经常用的链式操作组合写成一个选择器呢?! 从机制上来讲,jQuery的选择符解析器首先会使用一组正则表达式来解析选择器,然后对解析出来的每个选择符执行选择器函数,最后根据true或false来决定是否保留元素. 比如说: $('div:gt(1)') 在jQuery的源文件中是由jQuery.expr[":"] = jQuery.expr.pseudos 对