五分钟了解Mecanim角色动画系统
http://www.narkii.com/club/thread-305414-1.html
Unity 4.0推出的Mecanim动画系统已经有一段时间,不过据了解很多的朋友仍然在使用原来的角色动作导入流程,似乎对这个新的动画系统不是很适应,有鉴于此,我们希望通过这次的教程来让更多的朋友快速的上手Mecanim动画系统。
首先导入本教程附件的Original_Character.unitypackage资源包,然后选择目录下的swat,这是一个特警的模型并以T字形态站立,我们将使用此模型作为Mecanim的联系对象。
将Rig模式更换为Humanoid,在Humanoid这个模式下才能完全的发挥出Mecanim的强大优势,然后在Avatar Definition 选项里面选择Create
From This Model,表示此模型的骨架结构是按照目前的角色来设置,勾选Keep Additional Bones,按下Apply,再按Configure进入骨架设置面板。
如图所示,在Configure面板里面可进行骨架的结构查看,也可进行骨架位置的重新设置,在这个案例中,我们导入的模型骨架没有任何的问题,所以直接按下Done完成确认即可。
在Project目录下选择rifle_aiming_idle动作文件,在Rig的选项里面仍然指定Humanoid模式,唯一的不同就是将Avatar Definition更换为CopyFromOtherAvatar,
然后将swatAvatar添加到Source的栏位,按下Apply完成设置。
接下来是对rifle_aiming_idle动作文件进行Animations的设置,勾选Loop Pose, Root Transform Rotation
> Bake into Pose, Root Transform Position(Y) > Bake into Pose与Root Transform Position(XZ) > Bake into Pose,其他的部分保存默认的设置即可,最后按下Clamp Range将动作文件的帧数分割出来,按下Apply完成动作的设置。
在Project里面按右键新增一个Animator Controller,将其更名为swatController,双击此文件打开动画控制器的专用窗口。
在窗口的空白处按下右键选择Empty > Create State生成一个新的状态,如图所示:
将这个State名称更换为Idle,然后将刚才设置好的rifle_aiming_idle动作文件添加到Motion的栏位。
到目前为止已经对swat角色完成了基本的Mecanim的设置,接着我们需要的工作是将swat模型添加到场景内进行效果的测试。
如图所示,在Project面板内将swat模型添加到Hierarchy,或是直接拖曳到游戏的场景内。
如果这时按下Play进行测试,会发现swat并没有任何的动作,原因是swatController还没指定到swat模型的动画控制选项,那么要如何进行这个设置呢?很简单,选择swat模型,然后将swatController添加到Animator
> Controller的栏位即可。
现在按下Play测试,swat模型就会做出Idle的循环动作。
另外一个设置是对于动作复制的功能,也就是将swat模型现在的动作复制(Retarget)到另外一个角色上面,这个问题也是很多朋友想知道的部分,现在我们看看是如何做到的,安装附件提供的Soldier
Character Pack后,在Project目录里面选择soldier模型,将Rig模式仍然更换为Humanoid,然后在Avatar Definition 选项里面选择Create From This Model,再按下Apply即可完成设置。
如果模型需要进行骨架的确认与更多细节的调整,可以按下Configure或是在之后进行骨架的修改即可。
完成设置后将soldier模型添加到场景内,如图所示,现在我们要做的部分是将swat的Idle动作复制到soldier上面。
确认soldier在选择的状态下,将swatController添加到Controller的栏位,注意Avatar里面的物件仍然是soldierAvatar即可。
进行测试,现在我们看到soldier与swat做出了相同的动作。
以此类推,如果是其他形态的角色模型也能复制出动作吗?Yes,如图图示里面的卡通模型一样,只要在任何模型的Controller里面的添加相同的文件即可完成动作复制!
更多的Unity技术交流与分享请加入:纳金网Unity论坛专属交流群
- 218689657
五分钟了解Mecanim角色动画系统的更多相关文章
- Mecanim动画系统 - 在角色上使用Mask 叠加动画层
http://www.narkii.com/club/thread-305706-1.html 2013-10-9 01:15 上传 下载附件 (78.65 KB) 导读:五分钟了解Mecanim角色 ...
- Unity 4.0 中的新动画系统——MecAnim
分享一个文档资料,关于动画系统的,版本应该很老了,但是有借鉴意义的: Unity 4.0 已于 2012 年 11 月 15 日正式发布,Unity 每一次版本的提升,都给游戏开发者带来惊喜,这一次也 ...
- [Unity3D]Unity3D圣骑士当游戏开发商遭遇Mecanim动画系统
大家好.我是秦培.欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 博主总算赶在这个月底写出了这篇文章.这个月由于期末考试一直没时间研究太多关于技术方面 ...
- Mecanim动画系统
序言:Mecanim动画系统是Unity4.0之后退出的新版动画系统,非常适合人类动画系统.本文是作为自己的学习来讲解的, 可能会有些啰嗦,但尽量把自己的坑都为大家列出来,让大家理解透彻. 一.文件的 ...
- 01、Mecanim动画系统
序言:Mecanim动画系统是Unity4.0之后退出的新版动画系统,非常适合人类动画系统.本文是作为自己的学习来讲解的, 可能会有些啰嗦,但尽量把自己的坑都为大家列出来,让大家理解透彻. 一.文件的 ...
- Unity3D Mecanim 动画系统骨骼动画问题解决方法
http://7dot9.com/2014/08/16/unity3d-mecanim%E5%8A%A8%E7%94%BB%E7%B3%BB%E7%BB%9F%E9%AA%A8%E9%AA%BC%E5 ...
- Unity3D之Mecanim动画系统学习笔记(一):认识Mecanim动画系统
Mecanim简介 Mecanim动画系统是Unity3D4.0开始引入的一套全新的动画系统,主要提供了下面4个方面的功能: 针对人形角色提供一套特殊的工作流. 动画重定向的能力,可以非常方便的把动画 ...
- [原]Unity3D深入浅出 - 新版动画系统(Mecanim)
Mecanim概述: Mecanim是Unity提供第一个丰富而复杂的动画系统,提供了: 针对人形角色的简易的工作流和动画创建能力 Retargeting(运动重定向)功能,即把动画从一个角色模型应用 ...
- [Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合
大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 这段时间博主将大部分的精力都放在了研究官方演示样例项目上,主要是希望能够从中挖掘出有价值的东 ...
随机推荐
- 实现单击列表头对ListView的动态排序
排序是根据列的类型来的,就ID列来说,int类型的排序结果是3,5,17,而如果你把该列类型改为string,结果就会是17,3,5,如果你定义列的时候不加类型,默认是string,如果是自定义类型, ...
- php CURL 模拟 POST 提交数据
<?php function liansuo_post($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curl_seto ...
- Python 007- python的各种函数
1.chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符. unichr()跟它一样,只不过返回的是Unicod ...
- JSP之Model1
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- 1185: [HNOI2007]最小矩形覆盖
1185: [HNOI2007]最小矩形覆盖 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 1426 Solve ...
- Go怎么获取当前时间? Go ARM64 vDSO优化之路
https://mzh.io/ Go ARM64 vDSO优化之路 2018-03-16 | Meng Zhuo 背景 Go怎么获取当前时间?问一个会Go的程序员,他随手就能写这个出来给你. imp ...
- Docker的远程访问
$docker : info (10.211.55是另一台服务器的地址) 频繁访问远程的docker服务器使用-H选项很麻烦,使用环境变量DOCKER_HOST, $export DOCKER_HOS ...
- ThinkPHP RBAC权限管理机制
RBAC是ThinkPHP很好用的后台权限管理的,话不多说,实现方法如下,也方便以后自己查询使用: 1.新建4个数据库表 self_role权限表 CREATE TABLE `self_role` ( ...
- java运行Linux命令
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UT ...
- hdu-5734 Acperience(数学)
题目链接: Acperience Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...