Unity中的动画系统

1:给游戏物体创建动画
选中需要创建动画的物体 按快捷键Ctrl+6或者选择Windows/Animation 创建动画
编辑动画内容:点击AddProperty 选择要通过该物体上的某个组件的某个属性来达成某种动画效果
例如:你要改变某个物体的位置信息 点击AddProperty 然后点击Transform组件下的position属性后面的加号
然后通过添加关键帧来改变该物体在某一时刻上的位置 直接在你想要的时刻右键添加关键帧 然后改变这一帧上的属性参数 从而达到动画的效果(unity动画系统中参数的改变是一种插值运算:先快后慢)
图一2:动画的录制和动画曲线的编辑
所谓动画的录制其实也是编辑游戏物体动画的一种方式 只不过该种方式更加的方便 首先打开你要打开你要编辑的动画 其次点击上图中左上角Preview右边的红点 保证动画录制处于开启状态 然后选中你要改变的时刻 最后 直接修改inspector面板中的组件属性(比如说 你想在0.30这个时刻是该物体到达(100,100)这个位置 只需要选中0.30 然后修改该物体的transform组件的position为(100,100)即可)
选中图一中的Curves 即可进入到动画曲线的编辑中去了

3:UGUI的按钮动画
选中你要添加动画的按钮 将其按钮组件中的Transition中的属性改为Animation 然后选中你要修改的按钮状态(normal按钮常规状态、hightlighted高亮模式 、press按压、点击按钮时、disabled按钮不可用时)
在这里插入图片描述
当将按钮中Transition中的属性改为Sprite Swap时 就可以改变按钮在不同状态下的Sprite(简单说来就是按钮的图标)

4:创建2D游戏中的精灵动画
①:系统自动创建
选中创建该动画所需的所有Sprite 然后拖到Hierarchy面板中 (选中保存地址 给动画命名 ) 系统会自动创建一个动画
②:手动创建
选择一张Sprite作为动画的初始状态 拖到hierarchy面板中 然后如此文上面所说的方式创建动画
编辑动画即修改其关键帧的Sprite

5:模型的三种动画导入设置
Legacy: 如果模式的Rig–AnimationType 选择的是Legacy 则只能通过Animation播放动画
Generic:AvatarDefinition(骨骼)两种模式 大部分情况下选择create from the model 少数情况下 当两个角色的骨骼模型相同时就可选择
Humanoid:动画的重定向实现一个动画的通用 让所有人形的角色可以使用其他的动画

6:通过动画状态机控制动画
private int speedID = Animator.StringToHash(“Speed”);
anim.SetFloat(speedID, Input.GetAxis(“Vertical”));
将一个动画状态机里的参数字符串转化成ID值;避免重复书写字符串而出现错误 只需书写一次Speed变量

Blendtree----BlendType
		1D;当该混合树只需要控制一个方向的运动时  
		2D simple directional:该模式下不能存在同一方向的运动
		2D freedom directional:该模式下可以存在多个方向的运动     也包含同一方向的运动
	ComputePosition:通过其里面的属性更加精切的控制动画的动作     

AvatarMask(骨骼遮罩):当一个动画状态机里存在多层时,就可以通过AvatarMask将 与后面层动作不相关的部位遮罩起来 避免后面层的其他动作对前面层产生影响
Ik动画设置:通过anim.setikposition方法精确控制人物的某一个动作

7:Timeline
在这里插入图片描述
timeline可针对多个目标做集成动画 做过场动画 产生电影效果
创建timeline 选择一个物体 可以是游戏物体 也可以是空物体 然后选择windows/timeline进行创建
①:AnimationTrack:当存在多个轨道式 编辑某个物体时 可将其他轨道设为mute(右键) 防止其它轨道的干扰 单独调试其中的一个 点击图三红点进行轨道录制 与动画录制一样 这里就不细说了 录制好之后 在图三所示右侧右键选择Convert to clip track 将其转成一段动画 可将其添加到其他物体上 也可对其进行压缩移动 选中生成的动画 在inspector面板中Animation Extrapolate
preExtrapolate属性代表动画之前的时间物体的状态 none 表示动画播放之前物体默认在原点 hold则表示动画播放之前物体默认在动画播放的初始位置不动 pingpong则表示物体会像乒乓球一样来回移动 系统会根据动画之前的时间长短自动调节 loop则代表循环播放
postExtrapolate属性代表动画播放完之后的时间物体的状态
人形动画如何解决 人物总是从原点开始运动这一问题? 给人物模型加一个动画控制就能解决这个问题了
方法②:在timeline中选中该角色 然后在inspector面板中勾上apply track offset 然后通过通过其下面的十字箭头设置初始位置

②:ActivationTrack:设置物体是否激活
ActivationTrack做过场动画时,如涉及到摄像机之间的切换 切记 选中timeline 点击主摄像机 然后在inspector面板中 postplayback state中选择active 这是设置过场动画播放完之后激活主摄像机
③:Audio Track:控制音效

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值