Export利器:maxSDK的IGame接口
MaxScriptMAX脚本 4784 18
实名

通过了实名认证的内容创造者

发布于 2013-9-24 10:21:51

您需要 登录 才可以下载或查看,没有账号?注册

x

古人云:君子生非异也,善假于物也
数据导出是一个繁琐的工作,于是,有了IGame这个解脱程序员的东西:

关于IGame

IGame是Max提供给游戏开发的一个用于导入导出的接口。在Max的help里面这个东西叫做3ds Max Data Exchange Interface。有了这个接口,可以大大的简化导入导出工作的工作量。

如果有经历过用MAX SDK导出关键帧动画以及骨骼动画,Skin,Modifier等等的经历的话,我想肯定会记忆深刻。IGame的作用就是把复杂的Max的概念简化,封装。

建立IGame:

IGameScene * m_pIgame= GetIGameInterface()

坐标系:

前面我提到的导出的文章都没有提这个问题,所有的坐标都是用的MAX本身的坐标系,及Z轴向上。在游戏中坐标系可能千奇百怪,IGame考虑到这点提供了指定坐标系的功能:

IGameConversionManager * cm = GetConversionManager();

cm->SetCoordSystem(IGameConversionManager::IGAME_D3D);

m_pIgame->InitialiseIGame(true);

其中IGAME_D3D就是指定的坐标系,同样也可以自定义坐标系:

  UserCoord WhackySystem = {

     1,   //Right Handed

     1,   //X axis goes right

     4,   //Y Axis goes in

     3,   //Z Axis goes down.

     0,   //U Tex axis is left

     1, //V Tex axis is Down

   };  

   IGameConversionManager * cm = GetConversionManager();

   cm->SetUserCoordSystem(WhackySystem);

IGame要点:

GetTopLevelNodeCount:获得顶级的Node数目,不包括Root。

GetRootMaterialCount:获得所有的材质数目

GetTopLevelNode(i):获得指定Node

GetIGameObject():获得Node中包含的Object

GetLocalTM():获得Node的矩阵

IGameMesh ::GetVertex(i):获得顶点

IGameMesh ::GetFace(i);获得面

IGameMesh ::GetNormal(i):获得法线

至于其他就依次类推了,从函数的命名,到概念的简化,无疑都比原始的MAXSDK进步了很多。有了IGame接口,大大减轻了程序员的负担,我相信没有哪个愿意把大把的时间花在数据的导入导出上。

花了几十分钟简单的试用了一下IGame写了个小小的导出插件,只导出了顶点,面,材质,法线以及矩阵,感觉基本上没什么阻碍。不过IGame最大的功能还是用在骨骼动画,关键帧动画上面,仅仅只是简单的几何体导出并不能体现出IGame的功效。

最后还是附上代码和工程吧。不得不提示一下,由于种种曲折的原因,我这个工程是在MAX8 SDK和 MAX8下 完成的,其间省略上千字曲折的经历,不过在MAX9下应该可以通过编译。编译完成后,记得在Max 中选择Export Selected而不是试用Export。


下面就是这个插件,其c++源文件我修改了一点内容,修改的是对每一组顶点/面属性的值后面加了一个空格,方便对字符串用空格进行split。其c++源文件,可以在网上下载3dsmax SDK中得到。
IGameExporter插件下载(已确认在3dmax 9中可使用用)


目前只是完成了其中<mesh>标签部分的导出

在3dmax中的一个物体:
3dmax.jpg
导出的xml文件:
xml.jpg
<mesh>标签部分导入测试:



评分

参与人数 1元素币 +2 贡献值 +1 展开 理由
protoss + 2 + 1 很给力!

查看全部评分

我的帖子不喜欢无意义的自动回复,如有疑问可加好友私聊或留言
使用道具 <
520zlwz  发表于 2014-5-14 10:13:22  
2#
技术美工好神奇啊~
回复 收起回复
使用道具
看什么看  发表于 2014-7-27 03:27:31  
4#
这是要逆天的节奏啊!
回复 收起回复
使用道具
看什么看  发表于 2014-7-28 03:07:26  
5#
这是要逆天的节奏啊!
回复 收起回复
使用道具
MAN  发表于 2014-7-28 19:20:24  
6#
此帖必火!鉴定完毕!
回复 收起回复
使用道具
wenxqgame  发表于 2015-3-25 07:09:43  
7#
感谢分享 很强大
回复 收起回复
使用道具
warmsummer  发表于 2015-6-5 09:40:34  
8#
元素帖子强,满满正能量!
回复 收起回复
使用道具
kswdiy  发表于 2015-7-16 09:01:17  
9#
不错!
好东西!谢谢楼主拉
康桑密达 呵呵呵....
回复 收起回复
使用道具
zhouyan1033  发表于 2015-10-18 21:52:51  
10#
元素那么大,我想来看看!
回复 收起回复
使用道具
嘸嬑  发表于 2015-10-26 00:24:29  
11#
天下武功出少林,世界资源入元素!
回复 收起回复
使用道具
小矮小胖  发表于 2015-11-14 11:39:53  
12#
{:1_146:}
回复 收起回复
使用道具
3Djianmo  发表于 2015-12-22 13:38:03  
13#
元素那么大,我想来看看!
回复 收起回复
使用道具
3Djianmo  发表于 2015-12-22 13:38:11  
14#
{:1_145:}
回复 收起回复
使用道具
thetwo  发表于 2015-12-27 20:25:34  
15#
长见识了  已学习
回复 收起回复
使用道具
老h马  发表于 2017-2-21 10:00:37  
16#
不错 学习了
回复 收起回复
使用道具
saberss  发表于 2017-4-17 08:35:02  
17#
回复 收起回复
使用道具
zhao651  发表于 2017-5-22 17:33:24  
18#
确实是个技术美工!
回复 收起回复
使用道具
神佛之上  发表于 2022-11-22 22:07:35  
19#
给力!元素有你更精彩
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表