3dsMax 和 Unity的协作

来源:互联网 发布:淘宝宝贝主图的尺寸 编辑:程序博客网 时间:2024/05/18 09:22

最近参加了一个软件设计比赛,我在团队中负责做模型和动画,因此暑假学习3dsMax,说说3dsMax做完的模型导入到unity中遇到的问题.

制作中的一定的规范

这里有一篇文章,我就不在赘述了,另外想说的是游戏动画帧数的设置,因为是做android游戏,这就涉及到游戏流畅性的问题了,所谓手机的流畅性,其实是iPhone出现后,手机有了拖动滑屏概念以后出现得。以前电阻屏,WM系统的手机是谈不上拖动流畅的。

而屏幕要滑动,就有个帧数的概念。我们看到的动态画面,是一帧帧静态画面联动起来后达到的。这利用了人眼的视觉暂留。一秒内静态画面越多,我们眼睛的感觉就越流畅。静态画面的数量,我们叫帧数。

我们看到的电影是24帧到29帧,就是一秒钟24幅静态画面,因为电影的每一帧都是模糊帧,包含一定的时间信息,所以24帧我们看着就很流畅了。

我们看的动画、玩3D游戏,因为每一帧都是清晰的画面,所以需要1秒钟60帧才会感觉流畅,有些眼睛特别敏感的甚至需要85帧。不过大多数人60帧就足够了,所以我们的液晶屏幕都是每秒60帧来刷新的。而手机要流畅,也需要在滑动的时候达到每秒60帧,这就是手机的流畅性。

3ds max是根据时间来定义动画的,最小的时间单位是点(Tick),一个点相当于1/4800秒。在用户界面中,默认的时间单位是帧。但是需要注意的是:帧并不是严格的时间单位。同样是25帧的图像,对于NTSC制式电视来讲,时间长度不够1秒;对于PAL制式电视来讲,时间长度正好1秒;对于电影来讲,时间长度大于1秒。由于3ds max 记录与时间相关的所有数值,因此在制作完动画后再改变帧速率和输入格式,系统将自动进行调整以适应所做的改变。
默认情况下,3ds max显示时间的单位为帧,帧速率为每秒30帧。
可以使用Time Configuration对话框(见图4.1)来改变帧速率和时间的显示。
Time Configuration对话框包含以下几个区域。
帧速率(Frame Rate)
在这个区域可以确定播放速度,可以在预设置的NTSC(National Television Standards Committee)、Film或者PAL(Phase Alternate Line)之间进行选择,也可以使用Custom(自定义设置)。NTSC的帧速率是30fps(每秒帧),PAL的帧速率是25fps,Film是24fps。

总结:我们要做一些修改,在时间配置里,设置帧速率为自定义 60

模型动画的导出

我们在做动画的时候,上网查发现有两种方法,一种是把所有的动画做在一个模型身上,导入Unity后可以在Unity中对动画进行切割,把不同动画分出来,但是这样有些不方便,不容易把动作分给其他的成员做,另一种是把模型和动画分开,这样做起来比较方便,一个动作要修改,就直接修改那个动作.这样是最常用的方法,我主要说说第二种方法要注意的,我用的人物模型有一个动画,我该如何导出呢?

  • 导出模型:不需要删除任何东西,直接导出为FBX格式,导出的时候不要勾选动画,记得嵌入的媒体是一定要勾选的.我之前看书,书上说要删除骨骼,还有什么要创建一个helper物体,我发现骨骼是不能删除的,至于helper物体是在unity版本比较低的时候要做的,现在都到unity版本都到5.X了,不需要创建helper物体.

  • 导出动画:导出动画的时候将模型删除只剩骨骼,然后导出为FBX,注意勾选动画.

在3dsMax中播放的动画在Unity中怎么不一样

之前遇到一个问题,我在3dsMax 中做了一个人物弯腰的动作,结果在Unity中人物播放的时候人物根本不弯腰,而是带着腿直接飘起来了,这BUg困扰了我好几个小时,后来发现是由于我动了主要的一根尾骨,它是一个重要的父对象,运动的时候连带着腿一起懂了,于是出现了那个结果.解决了这个问题以后我觉得在网上求助别人不是很容易获得帮助,问题还是要靠自己解决,如果身边有大神就更好了.

动画瞬移到原点

做了一个纸片移动的动画,发现在unity里一运行,纸片就会在原点开始播放动画,无论我把它拖到什么地方,它必定会回到原点,后来上网找了找资料,自己又想了想,发现可能是因为父子对象关系的原因,我其他的动画都不是直接在物体的父对象上做的,都是物体的子对象,比如沙发上的枕头,桌子上的台灯,而这个对象只有一个,相当于是一个父对象,最高层的物体,于是他就会回到原点,抱着这个想法,我就给动画加了一个虚拟对象作为它的父对象,这样在引入Unity后果然成功了,我再次体会到了独立思考,多方面思考的重要性.

灯光效果

因为要在人物按台灯的时候使台灯的颜色发生变化,于是我要做灯光效果,后来想了想可以直接修改灯罩的颜色,于是就用这个做了个动画,但是因为在Unity中很多3dsnax中的材质是不能使用的,我的动画在Unity中不能显示,后来是在Unity中用代码控制灯罩的颜色

0 0
原创粉丝点击