1234 第1页 | 共4 页下一页
返回列表 发新帖
查看: 24999|回复: 33
打印 上一主题 下一主题

[教程] Mecanim动画系统 - 在角色上使用Mask 叠加动画层

[复制链接]

955

主题

164

听众

7万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
59338
精华
28

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2013-10-9 02:28:44 |只看该作者 |倒序浏览
pstatus"> 本帖最后由 艾西格亚 于 2013-10-10 00:12 编辑

1.jpg

导读:
五分钟了解Mecanim角色动画系统
http://www.narkii.com/club/thread-305414-1.html

Mecanim动画系统 - 使用Blend Trees控制角色动作
http://www.narkii.com/club/thread-305557-1.html

在前面的教程里面,我们已经了解到Mecanim的基本操作与Blend Trees的结合用法,如图所示,目前在角色已经设置了Idle与Move的动作,通过键盘的操作可以在场景中对角色进行前后左右与加速的控制。

2.jpg

有的朋友可能还注意到一个情况,就是角色在移动的过程中,如果需要进行类似投弹与射击的动作,由于角色仍然处于行进的过程,在这种情况下,用传统的动画控制方式是无法达到这种效果,此时就需要使用动画层的叠加方式来制作,而使用Mecanim系统正是一个最理想的解决方案。

接下来的部分,我们将介绍如何使用Mask功能在角色上叠加不同的动画,延续前面的Blend Trees教程,在导入附件的资源包后,打开Mixing Layers的场景,选择zModified_Character > Swat@firing_rifle文件,这是一个模拟士兵角色射击的动作。

3.jpg

将Rig模式切换为Humanoid,Avatar Definition选择CopyFromOtherAvatar,然后在Source里面添加SwatAvatar,按下Apply完成设置。

4.jpg

接着在Animations里面进行属性设置,勾选Loop Pose与Root Transform Rotation > Bake into Pose、Root Transform Position > Bake into Pose这三个选项,Base Upon分别为Body Orientation与Original,最后再按下Clamp Range完成动作的分割即可。

5.jpg

选择Swat@toss_grenade文件,同样的将Rig模式切换为Humanoid,Avatar Definition选择CopyFromOtherAvatar,在Source里面添加SwatAvatar后按下Apply完成设置。

在Animations里面不需要勾选Loop Pose,因为Swat@toss_grenade是一个模拟投弹的动作,只需勾选Root Transform Rotation > Bake into Pose、Root Transform Position > Bake into Pose这两个选项即可,最后再按下Clamp Range完成动作的分割。

6.jpg

在Project目录里面增加一个Avatar Body Bask,然后将其名称更换为Body Mask,如图所示:

7.jpg

将Body Mask的显示窗口内,选择人物的下半部使其成为红色,被选择的部分表示该骨架为锁定状态,也就表示在新增的动作图层内只会影响角色的上半身。

8.jpg

接着按下Layers右边的+号按钮新增一个动画图层。

9.jpg

将新增的图层更名为UpperBody,在Mask的栏位里面添加刚才建立的BodyMask,如图所示:

10.jpg

现在开始进行新图层的动作设置,按下右键新增三个空白的Empty,然后将其名称修改为Fire、Null、Grenade,如图所示:

11.jpg

按下Parameters右边的加号新增两个Bool的判断式,分别是Fire与Grenade。

12.jpg

选择Fire,在Motion的栏位内将设置好的Swat@firing_rifle动作文件添加进来,如图所示:

13.jpg

选择Grenade,在Motion的栏位内将设置好的Swat@toss_grenade动作文件添加进来,如图所示:

14.jpg

选择Null,按右键选择Make Transition后连接到Fire, 选取连接线,在Conditions的设置里面将条件更换为Fire、ture的选项,如图所示:

15.jpg

选择Null,按右键选择Make Transition后连接到Grenade, 选取连接线,在Conditions的设置里面将条件更换为Grenade、ture的选项,如图所示:

16.jpg

接下来,选择Fire,使用右键选择Make Transition后连接到Null, Grenade也是采用相同的方法进行连接,如图所示:

17.jpg

选取Fire到Null方向的连接线,在Conditions的设置里面将条件更换为 Fire、false选项。

18.jpg

选取Grenade到Null方向的连接线,在Conditions的设置里面将条件更换为 Exit Time、0.92的数值。

19.jpg

最后打开BasicController02脚本,在update()的底部加上一段控制的代码:
  1. if(Input.GetKeyDown(KeyCode.F)){
  2.   animator.SetBool("Grenade", true);
  3. } else {
  4.   animator.SetBool("Grenade", false);
  5. }
  6. if(Input.GetButtonDown("Fire1")){
  7.   animator.SetBool("Fire", true);
  8. }
  9. if(Input.GetButtonUp("Fire1")){
  10.   animator.SetBool("Fire", false);
  11. }
复制代码
在上面的代码中,我们设置了按下F键即可执行投弹,如按下左键则是进行射击的动作,按下Play进行测试,使用WASD进行方向的控制,在行进的过程中按下F键则执行投弹的动作,这时可注意到士兵模型的上半身与下半部是用了不同的动作图层所结合的动作,也就实现了一边走路一边投弹的效果。

20.jpg
22.jpg
23.jpg

更多的Unity技术交流与分享请加入:纳金网Unity论坛专属交流群 - 218689657




Original_Character_2.zip

4.31 MB, 下载次数: 2265

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏2 支持支持0 反对反对0
回复

使用道具 举报

ku 智囊团   

89

主题

2

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
25
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2013-10-9 07:49:32 |只看该作者
相当不错的教程
回复

使用道具 举报

0

主题

1

听众

2286

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2013-10-9 08:45:10 |只看该作者
nice  asset
回复

使用道具 举报

0

主题

2

听众

6150

积分

高级设计师

Rank: 6Rank: 6

纳金币
62
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2013-10-9 10:08:39 |只看该作者
感谢分享。
回复

使用道具 举报

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2013-10-9 16:45:49 |只看该作者
这个介绍很不错,知道了Layer与Mask的应用关系了
回复

使用道具 举报

ZackD    

715

主题

22

听众

4万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
26224
精华
17

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2013-10-9 19:13:39 |只看该作者
很不错的学习资料,谢谢了!
回复

使用道具 举报

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

7#
发表于 2013-10-13 02:07:15 |只看该作者
刚好需要这个Mask功能,学习一下
回复

使用道具 举报

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2013-10-18 20:39:14 |只看该作者
很不错的系列,支持楼主的分享
回复

使用道具 举报

115

主题

3

听众

5676

积分

高级设计师

Rank: 6Rank: 6

纳金币
7268
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2013-10-18 21:12:07 |只看该作者
感覺非常實用~
回复

使用道具 举报

2

主题

1

听众

1143

积分

助理设计师

Rank: 4

纳金币
350
精华
0
10#
发表于 2013-10-28 10:12:51 |只看该作者
感谢楼主分享~
回复

使用道具 举报

1234 第1页 | 共4 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-16 08:31 , Processed in 0.108545 second(s), 34 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部