12步将使你的人物角色变成玩家
将需要的角色模型变成Unity游戏场景中玩家的方法是游戏开发者都应该掌握的技能。今天我们就将为大家介绍如何在Unity中导入动画及将人物角色变成玩家进行控制。
准备模型
在你的目标平台上,总是要考虑精美的效果和模型面数之间的平衡。一些数字内容创作(DCC)软件已经有内置的减面选项。
准备精致的模型,不要太多面数:
人物角色的面数越多,环境和特效使用的面数就相对越少。
每个人物角色面数在5-25000范围之间,比较合适。具体面数取决于您的目标平台。
模型软件有内置的减面选项,比如:3DS Max的ProOptimizer,Maya的Reduce。
对材质、贴图和几何体命名要合理。
使用法线贴图来表现细节。
把贴图放在Unity里的Assets\objectname\textures文件夹。贴图的制作流程设置要便利,尺寸设置要合理。例如,美术制作的比较大的PSD文件,最好放在Assets文件夹以外,然后再从这些PSD生成PNG文件,并把它们放置在工程的Assets文件夹里面。
如果需要的话,导出前重设一下贴图的路径。
操作人物角色
准备T-pose模型。
根据时间和技巧,可以通过下面的方法来操控人物角色:
创建骨骼结构。
上传人物角色到autorigger,比如Mixamo。
充分利用3D建模软件中的操作脚本,比如3DS Max里的Biped或者CAT,Maya里的Human IK或者Blender里的Rigfy。
如果您创建了自定义骨骼结构:
理解镜像,反比例和重置transforms的概念。
一根一根的创建骨骼,最终搭建成一副骨架。
在骨骼层次里,髋骨应该是根(Root)元素。
对于humanoid和generic两个类型,要求最少15根骨骼。
使用规范的命名/层次结构。
设置融合变形(BlendShapes)
学习更多关于Unity如何支持融合变形(BlendShapes),也称作变形目标(Morph Targets)。
首先,确定人物角色哪些部分需要融合变形(BlendShapes)。
融合变形(BlendShapes)常常用于脸部锚点,动画变形形状等等包含大量不同目标多边形合并为一个流畅动画,比如唇语(就像说话的时候,嘴巴表现出动画)
3D建模软件提供了融合变形(BlendShapes)功能,比如3DS Max的Morpher,Blender的Shape Keys或者使用像Mixamo的autorigger。
验证并导出
检查准备导出到Unity的人物角色。
使用FBX文件格式非常便利,它的很简单,可移植性强。Unity支持许多软件原生的文件格式,比如.max或者.mb。但是FBX不要求使用者的电脑上安装其他建模软件(.max需要安装3D Max,.mb需要安装Maya)。
导出,然后重新导入:
将导出后的人物角色,重新导入到DCC软件来验证、检查设置是否正确。
将没用的面、场景里的灯光或者摄像机,这些无关的资源删除。
如果有动画片段,请在导出对话框中勾选animation选项。
导入模型
将FBX文件拖入到Project窗口(如果你已经导入到Project窗口,模型将自动更新)
在Project视图选中模型并在Inspector视图里设置Model,Rig和Animations标签下选项。
Model标签选项
Rig标签
Animations标签
根据DCC软件和导出设置里面的单位,检查Scale Factor和Scale varies。
单击apply按钮,将模型拖入到Scene/Hierarchy视图。
设置材质
选择场景里的人物,观察Inspector视图的合成材质球,这些是在导出模型的Materials文件夹中被创建的。
每一个材质球有下拉的着色器。Standard Shader是默认选择的。
将丢失贴图,补充一下。
为材质球调节参数。
Material参数
创建Avatar
在这个例子里,我们重点学习设置Humanoid Avatar。
在Rig标签选中humanoid animation,Unity将骨骼映射到avatar才能使用。
选择Project视图里面的人物角色模型FBX文件,然后单击Rig标签。
在Animation Type选择Humanoid,然后单击Apply。
单击Configure按钮来观察骨骼映射和肌肉。
当skeleton变绿的时候意味着可以使用了。否则的话,需要将骨架设置到正确的位置或者重置骨架层次并重新导出匹配avatar。
在Muscles标签里,通过各个选项拖动参数来测试蒙皮。完后单击Done按钮。
添加Character Controller
最快方法就是使用Unity的Standard Assets插件包,里面包含Character Controller。
添加摄像机
对于摄像机,你可以从ASSET STORE来下载Cinemachine。这是Unity新出的标准程序的摄像机系统(可以当作IK摄像机),有了它就容易制作自然镜头,建立摄像机操作,调整并保存运行模式(编辑器中的模式)的属性。
Import Package菜单
添加动画
调整编辑器的窗口和布局,以便于给人物角色添加动画。
选择人物角色根节点,并选择Window菜单中的Animator菜单项,打开管理人物角色状态的面板,比如播放哪一个动画。
双击Grounded状态来打开BlendTree(混合树),就是人物角色从在地面的状态转换到其他状态的过程。
动画类型必须是Humanoid,并选择已经存在的Avatar或者从模型来创建,来更新目标动画。
设置loop time, loop pose, bake into pose Transforms和based upon feet。
选中Inspector视图里的BlendTree,并单击animation附近的小圆圈来选择另一个。
单击PLAY按钮来预览。
添加BlendShapes并稍微调整人物角色
在角色制作工具创建一些融合变形(BlendShapes)或者开启融合变形(BlendShape)的面部识别。
在Unity的Animator视图创建一个新层;设置blending to additive and weight为1。
选中Body并创建新动画片段。
动画形状节点。
将关键帧复制到PING PONG。
将Project视图里的动画片段拖入到Animator视图的新层。
添加环境元素,灯光和特殊效果
为了测试人物角色的动作是否自然,我们需要添加一个简单的环境进去。可以从Asset Store里面购买或者下载美术大师创建的各种各样的美术资源。当然,也可以使用自己的美术作品。
我们可以在导入的模型上直接添加碰撞器,但是效率非常差。一般使用不用渲染的简模来做碰撞器。
设置摄像机目标。
根据环境的大小,来调节摄像机。
将post-processing profile(插件)添加到摄像机。
调节post-process effects来适应环境。
结语
这样人物角色到玩家的转换过程就基本完成了。今天就为大家介绍到这里,希望大家可以使用Unity创作出更多精彩的游戏。后面我们还将为大家继续分享更多游戏开发中所需要用到的教程和相关知识在Unity官方中文社区(unitychina.cn),请保持关注。
推荐阅读
使用Unity在手机上实现移动Inside-out VR追踪
近期Unity官方活动
10月16日- 31日截止,Unity Plus加强版大促销。
11月11日,Unity技术路演成都站报名开启!
11月,Unity教育峰会,长沙、上海、广州站报名开启。
Unity Connect火热征文中,赶紧来分享你的Made with Unity作品吧!
点击“阅读原文”进入Unity官方中文社区!