您的位置:首页 > 移动开发 > Unity3D

unity官方demo学习之Stealth(十九)敌人动画控制

2015-10-05 11:02 531 查看
1,守卫的动画是由Nav Mesh Agent组件的sulv控制的,这是unity内置的AI功能

2,手部开枪动作,Inverse Kinematics IK逆向运动学:反应的是一种由手部带动肩部的运动(自由端起始,回退到固定端)

3,敌人动画控制制作,包里有已经做好的,如果不想做可以跳过这以下几段创建敌人动作控制器EnemyAnimator,创建4个float参数,一个bool参数,如图019






4,create state ->from new blend tree,命名为Locomotion,Blend Type选择2D freeform cartesian,这个方便设置speed和AngularSpeed


Parameters栏里设置轴的方向,x轴:Angularspeed;y轴:speed。在地图表现为,左方向左转,右方向右转,上方向跑步,下方向为走或站立

5,接下来在Motion添加动画文件,4个左开枪动画,站立,4个右开枪动画,3个左走,直走,3个右走,2个左跑,直跑,2个右跑,如图020,


起始次序无所谓,只是这样好理解






6,计算动画在2D平面上的位置,选择compute positions中的speed and angular speed,这样会基于root motion自动计算这两个值,


这种方式适用于任何动画,无论参数是否在控制器中,angular speed的单位是弧度。可以运行动画,在上面拖动红点查看人物运动

7,接下来创建Shooting层使敌人看到玩家开始射击,创建avatar mask,命名为EnemyShootingMask,禁用下半身,在Shooting层中使用,并且勾选IK Pass,

8,创建默认状态为empty,添加humanoid_weapon_rasie举枪动画,速度为3,添加开枪动画[b]humanoid_weapon_shoot,添加放下动画[b]humanoid_weapon_lower[/b][/b]

9,这四个状态之间的转换,empty->weaponraise(PlayerInSight为true)->weaponshoot(exit time)->weaponlower(PlayerInSight为false)->empty(exti time)


如图021






10,创建一个Gun层添加握枪动画,添加modles->char_robotGuard下的Gripped,创建一个avatar mask,命名为EnemyGunMask,拖入Gun层


除右手外其他都禁用

11,最后将这个Animator拖入敌人中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: