Unity3D Animation、Animator和AnimationClip

江奕
2023-12-01

Animation

单一动画,一般使用在单一动画播放,占用资源小。

字段

名称作用
animatePhysics如果打开这个选项,动画会在物理循环过程中被执行。这个选项只有在结合刚体的时候才有用
clip动画片段
cullingType控制此Animation组件的剔除
isPlaying动画是否在播放
localBounds在本地坐标空间这个动画的动画组件的AABB
playAutomatically是否在开始的时候自动播放默认的动画
this[string]返回string的动画状态
wrapMode循环模式 .Default:从动画剪辑中读取循环模式//.Once:当时间播放到末尾的时候停止动画的播放//.Loop:当时间播放到末尾的时候重新播放从开始播放//.ClampForever:播放动画。当播放到结尾的时候,动画总是处于最后一帧的采样状态

方法

名称作用
AddClip添加动画片段
Blend动画混合
CrossFade动画的淡入淡出
CrossFadeQueued淡入淡出队列,在前一个动画播放完成之后淡入淡出下一个动画
GetClipCount取得当前动画的动画剪辑数量
IsPlaying是否在播放任何动画
Play播放动画而不进行融合
PlayQueued播放队列,在前一个动画播放完成之后直接播放下一个动画
RemoveClip移除剪辑,从动画列表移除剪辑
Rewind倒回名称为name的动画
Sample当你想要直接获得动画的运行结果,而不是等帧数执行到这,就可以使用该方法
Stop停止所有当前Animation正在播放的动画

Animator

多个动画,可用控制器切换多个动画播放,占用资源大

字段

名称作用
angularVelocity角速度
applyRootMotion应用根运动
avatar获取或设置当前的Avatar
bodyPosition身体质量中心的位置
bodyRotation该身体质量中心的旋转
cullingMode控制动画器组件的剔除模式 AlwaysAnimate:屏幕看不见时也在播放动画,CullUpdateTransforms:看不见时,禁用重定向,IK和“变换”写入,CullCompletely:看不见时进制播放动画
deltaPosition获取上一帧avatar的增量位置
deltaRotation获取上一帧avatar的增量旋转
feetPivotActive混合身体质量中心与脚质量中心的轴心点。0%表示混合轴心点在身体的质量中心;100%表示混合轴心点在脚的轴心点
gravityWeight基于当前播放的动画的当前重力
hasRootMotion如果当前绑定已经是根运动,返回真
hasTransformHierarchy如果该对象已经是变换层级,返回真
humanScale返回当前人形绑定Avatar的缩放,(如果绑定是generic,默认为1)
isHuman如果当前的绑定是人形的,返回真;如果是generic(普通)的则返回假
isMatchingTarget如果自动匹配是激活的
isOptimizable不知道干嘛的
layerCount该动画器控制器的层数
leftFeetBottomHeight获得左脚底的高度
rightFeetBottomHeight获取右脚底的高度
linearVelocityBlending当linearVelocityBlending 设置为true,根运动速度和角速度将线性混合
parameters用于动画器只读访问动画器控制器参数
pivotPosition获得当前轴心点的位置
pivotWeight获得轴心点的权重
playbackTime在记录缓冲区设置播放位置
recorderMode获取动画器录制的模式 Offline:Animator记录器处于脱机状态 Playback:Animator记录器处于播放状态 Record:Animator记录器处于“记录”中
recorderStartTime缓冲区第一帧的开始时间,相对于StartRecording被调用时的帧
recorderStopTime记录剪辑的结束时间,相对于StartRecording被调用的帧
rootPosition根位置,该游戏对象的位置
rootRotation根旋转,该游戏对象的旋转角度
runtimeAnimatorControllerAnimatorController的运行时代表,用来控制Animator
speed动画器的播放速度。1表示正常播放速度
stabilizeFeet过渡和混合时,脚自动稳定
targetPosition返回指定的目标的位置
targetRotation返回指定的目标的旋转角度
updateMode该动画器的指定更新模式 Normal:正常更新 AnimatePhysics:在物理循环期间更新 UnscaledTime:更新独立于Time.timeScale
velocity获取最后评估的帧的化身速度

方法

名称作用
ApplyBuiltinRootMotion应用默认的根运动
CrossFade在当前状态和目标状态之间创建一个动态过渡
CrossFadeInFixedTime与animator.crossfade相同,但在目标状态的持续时间和偏移是在固定的时间
GetAnimatorTransitionInfo获取指定AnimatorController层的过渡信息
GetBehaviour返回匹配类型T或派生自T的首个状态机行为,如果没有找到返回null
GetBehaviours返回匹配类型T或派生自T的所有状态机行为,如果没有找到返回null
GetBoneTransform返回人形骨骼ID映射的变换
GetBool获取布尔参数的值
GetCurrentAnimationClipState获取当前状态播放的当前动画信息列表
GetCurrentAnimatorStateInfo获取指定的AnimatorController层的当前状态信息
GetFloat获取一个浮点数参数的值
GetIKHintPosition获取IK hint的位置
GetIKHintPositionWeight获取IK Hint的过渡的权重。 (0表示IK之前的原始动画,1表示在Hint)
GetIKPosition获取IK的位置
GetIKPositionWeight获取IK的旋转权重
GetInteger获取整数参数的值
GetLayerName获取该层的名称
GetLayerWeight过去该层的当前权重
GetNextAnimationClipState获取当前播放动画信息列表的下个状态
GetNextAnimatorStateInfo获取指定的AnimatorController层上的下个状态信息
HasState如果在动画器控制器是当前动画状态返回true
InterruptMatchTarget中断目标自动匹配
IsInTransition指定的AnimatorController层是否在过渡
IsParameterControlledByCurve如果参数是由动画的附加曲线控制,返回真
MatchTarget自动调节该对象的位置和旋转
Play播放一个状态
PlayInFixedTime与animator.crossfade相同,但在目标状态的持续时间和偏移是在固定的时间
Rebind重新绑定动画器的所有动画的属性和网格数据
ResetTrigger重设该触发参数为假
SetBool设置一个布尔参数的值
SetFloat设置一个浮点数的值
SetIKHintPosition设置一个IK hint的位置
SetIKHintPositionWeight设置IK hint过渡权重(0表示IK之前的原始动画,1表示在hint)
SetIKPosition设置一个IK的位置
SetIKPositionWeight设置IK的过渡权重(0表示IK之前的原始动画,1表示在goal)
SetIKRotation设置IK的旋转
SetIKRotationWeight设置IK的旋转权重(0表示IK之前的旋转,1表示IKgoal旋转)
SetInteger设置一个整数参数的值
SetLayerWeight设置该层的当前权重
SetLookAtPosition设置注视的位置
SetLookAtWeight设置注视的权重
SetTarget设置AvatarTarget和targetNormalizedTime 用于当前状态
SetTrigger设置一个要激活的触发器参数
StartPlayback在播放模式设置动画
StartRecording设置动画器的记录模式并分配frameCount大小的圆形缓冲区
StopPlayback停止动画器播放模式。当播放停止时,Avatar恢复从游戏逻辑获得控制权
StopRecording停止动画器记录模式
Update基于deltaTime计算动画器

AnimationClip

字段

名称作用
events用于该剪辑的动画事件
frameRate被取样关键帧的帧速率 只读
humanMotion如果该动画包含的曲线是人类骨骼,返回true
legacy如果动画剪辑被使用于旧版Animation组件,返回true
length动画长度,单位秒 只读
localBounds动画组件在本地坐标空间这个动画剪辑的AABB也被附加
wrapMode在动画状态设置使用的默认循环模式 Once:时间到达动画剪辑的结尾时,剪辑将自动停止播放,并且时间将重置为剪辑的开头 Loop:当时间到达动画剪辑的末尾时,时间将在开始处继续 PingPong:当时间到达动画剪辑的末尾时,时间将在开始和结束之间回弹 Default:读取更高的默认重复模式设置 ClampForever:播放动画,当到达终点时,它将继续播放最后一帧,并且永不停止播放

方法

名称作用
AddEvent给剪辑添加动画事件
ClearCurves从该剪辑清除所有曲线
EnsureQuaternionContinuity为了保证更好的四元数插值,你设置完成动画曲线后调用这个函数
SampleAnimation在给定的时间采样动画,为任意动画的属性
SetCurve指定动画曲线来动画特定的属性
 类似资料: