3DS MAX 导入骨骼动画插件

本文介绍了如何设计一个3DS MAX导入骨骼动画的插件,详细讲解了从环境配置到核心方法,涉及骨骼、网格、蒙皮、材质的导入流程,适合对3DS MAX插件开发感兴趣的技术人员阅读。
摘要由CSDN通过智能技术生成

篇章一、搭建环境与简单介绍

前段时间做了一个多月的3DS MAX导入插件设计,终于从完全不懂到了现在的懵懵懂懂,期间遇到了一些困难,国内的3DS MAX导入插件的相关资料几乎为零,上网查几乎都是为导出插件的资料,这也难怪,大家都只有导出的需求,没有导入的需求。翻墙到国外也只是有一些零零散散的一星半点的片段知识,经过本人的搜集与摸索,终于完成了整个骨骼动画的导入,现将整个3DS MAX导入骨骼动画的整个流程分享给大家,如果能给广大的程序员朋友们带来些许的帮助,将感到无比的欣慰。

我用的环境是3DS MAX 2009 +VS2008,具体的环境配置就不多说了,网上这方面资料很多,这里提供一个地址,如有需要可以查看http://blog.sina.com.cn/s/blog_5c68ccb801017wmm.html;

接下来让我们开始正式工作。

首先使用向导生成了一堆导入插件的文件,导入插件继承于SceneImport类,这个类里面的方法大多可以不管,只需要知道三个方法就好:

const TCHAR *Ext(int n)     用于定义导入插件的文件格式

TCHAR* ShortDesc()          用来给导入的文件格式做一些简短的说明

int DoImport(const TCHAR *filename,ImpInterface *i,Interface *gi, BOOL suppressPrompts)              

这个是导入插件的核心方法,所有的导入操作都在这个方法里进行,实际就是进行读取文件的操作。

 生成了向导后还要进行一些项目属性的设置,项目才能正常运行:

1、在项目属性-配置属性-C++-命令行-附加选项里给文件路径加上双引号/LD @"C:\Program Files\Autodesk\3ds Max 2009 SDK\maxsdk\ProjectSettings\AdditionalCompilerOptions.txt"

2、在项目属性-配置属性-调试-命令 加上3DS MAX.exe的文件路径 比如我的是:C:\Program Files\Autodesk\3ds Max 2009\3dsmax.exe

另外在介绍下3DS MAX中最常用的类:节点类INode;在下面的讲解中这个类将经常要用到

  1、节点概念

在3ds max中结点与场景中的对象存在着一一对应的关系,每一个过程对象,包括灯光、摄像机、辅助对象等等,出现在视口中的每个对象都关联一个结点。结点存储 着它关联的对象在场景中的相关属性信息,这些属性包括空间变换控制器、用于渲染的材质、可见性控制器、隐藏/非隐藏状态、冻结/解冻状态、线宽显示颜色以 及其他属性。

2、节点方法

结点存储了两个变换矩阵,一个是结点的变换矩阵,另一个是结点关联对象相对于结点的偏移矩阵。另外,结点类是不能被实例化的,要取得结点的实例,必须实例化结点所指向的对象,所以,当实例化结点所指向的对象后,结点就相当于被实例化了。

结点类层次关系的主要方法有:

int NumberOfChildren();      //返回子结点的个数  

INode* GetChildNode(int i);  //返回第i-th个子结点的指针  

INode* GetParentNode();      //返回父结点指针  

void AttachChild(INode* node, int keepPos=1)=0; //关联子结点  

void Detach(TimeValue t, int keepPos=1)=0; //解除与父结点层次关系  

int IsRootNode();            //判断是否为场景根结点  

篇章二、开始导入

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值