3DS MAX 挺让人吐血的

gamemagic 2010-06-23 09:44:54
用max sdk写了一个3ds max的导出插件, 编译完后把插件复制到plugin里, 打开3ds max后弹出个消息框发现用不了这个插件.

上网一查资料原来是插件版本跟max的版本不对应. 我的max是2010的, sdk是9.0的...

我都郁闷了, 一般大软件都可以向下兼容插件的, 3ds max居然不支持...无语..

后来想把max换成9.0的, 但是因为很多模型都是以2010格式保存的, 9.0打不开...此时我真想骂x娘!!

没办法只能下载个 3DS MAX Design 2011. 人在屋檐下不得不低头啊~

max和maya现在是一家, 但是两边的格式居然互不相通...不知道AutoDesk公司打的什么鬼主意
...全文
888 56 打赏 收藏 转发到动态 举报
写回复
用AI写文章
56 条回复
切换为时间正序
请发表友善的回复…
发表回复
tukahara 2010-07-09
  • 打赏
  • 举报
回复
我也是用MaxScript,毕竟做插件存在版本问题。
MaxScript导出XML或者Json,然后再写个工具转成二进制,文本慢是慢点,但至少不存在版本问题,而且就想上面说的,也不恶心。
antimatterworld 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 53 楼 gamemagic 的回复:]

确实,还少了挂接骨骼。换武器是必须考虑到的
还有换其他装备,我的想法是把人物拆分成多个部分,换的时候直接挂接某个部分到身体对应的骨骼

动画计算方面倒是没问题
[/Quote]
俺觉得人物骨骼都应该有名字,用Direct API根据骨骼名字把骨骼的矩阵读取出来,武器往往只有一个骨骼,并且武器的骨骼矩阵往往又是固定的。
所以,人物和武器的拆分很方便。把手里的屠龙刀换成土龙刀也是可以实现的。
人物和土龙刀分别渲染应该可以达到相应的效果。
这位仁兄还会编写3DS MAX脚本,在下佩服,佩服。
Songmaolan 2010-07-02
  • 打赏
  • 举报
回复
原先没有接触过3D MAX
gamemagic 2010-07-02
  • 打赏
  • 举报
回复
确实,还少了挂接骨骼。换武器是必须考虑到的
还有换其他装备,我的想法是把人物拆分成多个部分,换的时候直接挂接某个部分到身体对应的骨骼

动画计算方面倒是没问题
CubeVFX 2010-07-02
  • 打赏
  • 举报
回复
这个,我给不了啥建议
游戏用的话,自己做的过程中去完善比较合适吧
可能还需要顶点融合的动画导出,max里是morpher
还有像挂接点之类的玩意
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
获取面的每一个点的法线,因为有光滑组,有些面的法线有融合,就是平均值的状态
antimatterworld 2010-07-01
  • 打赏
  • 举报
回复
3DS MAX脚本没编写过,也没研究过...
想用.x数据文件,一般用Direct SDK里带的那个模型...


gamemagic 2010-07-01
  • 打赏
  • 举报
回复
嗯我知道该怎么做了:
遍历每个三角形,获得三个顶点,及其三组纹理坐标。
这样又有问题了,我不知道顶点法线取哪个更好?是直接把顶点的法线设置为该平面的法线?还是求共顶点的所有平面法线的和?如果求和的话,比如立方体这类边缘很锐利的物体,看起来就不对了,而且会有很多顶点数据相同的情况

我一开始的设计是导出所有顶点,然后再导出一个顶点索引,这样有利于D3D绘图,但是没考虑到UV不同的情况
deviosyan 2010-07-01
  • 打赏
  • 举报
回复
高人 不少
gamemagic 2010-07-01
  • 打赏
  • 举报
回复
我是个懒人,自己算就开始头疼了

我希望你帮我提提建议,对于一个用于游戏的模型文件,除了顶点,法线,贴图坐标,贴图通道,面索引表,骨骼,关键帧,还少点什么?有哪些需要注意的地方?
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
这个只能用meshop.getMapSupport $.mesh 1来看看有没有默认的uv通道
因为一个点可能被多个面共享,这几个面在uv里并不是连续的,也有可能这几个面在uv里被合并成一个
此外,getmapvert是没有z轴值的,是一个2d的坐标。虽然返回的是point3,但实际上是point2
gamemagic 2010-07-01
  • 打赏
  • 举报
回复
看过cubevfx的贴子,发现我需要重写导出代码… 现在又有个很头疼的问题: 某些有贴图的模型getvert跟getmapvert的值居然不同,我怀疑某些顶点没有被map,现在我不知道怎么判断一个顶点是否被map? 这种问题是否是美工的疏忽?还是经常有这种问题?
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
这个得你自己算了......
gamemagic 2010-07-01
  • 打赏
  • 举报
回复
模型格式准备好了下一步就是写C++代码了。
加载模型,骨骼动画,四元数插值,计算切线空间,次世代纹理计算,HDR……想到这些我就头疼

maxscript能否获得一个顶点的切线空间(tangent space)?我想让我的程序支持Bump map凹凸贴图
gamemagic 2010-07-01
  • 打赏
  • 举报
回复
呵呵,捉摸不透,高人啊~
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
我似乎应该是美术,但是美术很烂,所以我也不知道我是什么了
gamemagic 2010-07-01
  • 打赏
  • 举报
回复
请问你是美术吗?
我也不是程序出身,只是个在校大学生。虽然自学了几年程序
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
$.mesh.numverts
$.mesh是访问物体的mesh属性
poly,mesh,nurbs,patch等物体都有这个属性
但是有时候你可能并不是要访问他的mesh属性,可能你需要访问是他自己的那些,比如polyops的属性
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
有些脚本是需要把修改面板打开的,不但是要选择,所以可能不是很底层的函数
CubeVFX 2010-07-01
  • 打赏
  • 举报
回复
这个呢,是因为你不熟悉max。。。
此外我觉得maxscript并非针对程序人员设计的
哇哈哈哈,比如我就不是程序出身,我觉得很好理解,舒爽得很
加载更多回复(35)

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧