资源获取
-
uinty商店免费获取。
locomotion system
要点摘要
核心
LegController
- 配置角色的着地平面,GroundHeight
- 配置角色处于地面的Pose,GroundedPose
- 配置角色的根骨骼,RootBone
- 配置角色的腿脚,Legs
- 配置角色闲置与运动的动画,SourceAnimations
- 配置与速度匹配的运动动画,Walk-Cycle,NativeSpeed
- 添加多种速度匹配动画,系统会根据速度执行最合适的动画
LegAnimator
- 依赖LegController
- 控制腿部动画,非常核心的组件
- 侧倾控制,Accele Tilt Amount,Accelerate Tilt Sensitivity,Climb Tilt Amount,Climb Tilt Sensitivity。
Ground Hug X and Z
- LegAnimator的两个参数,表示身体要多大程度与X轴及Z轴平行。
- 对于直立行走的物体,X和Z都为0,不需要平行。
- 对于爬行动物,比如猫狗,Z要为1,表示身体与Z轴平行,而蜘蛛、爬虫等,则X与Z都为1。
- 与Z的平行程度影响前后lean效果,Z为1,则无lean效果。
- 与X的平行程度影响左右lean效果,X为1,则无lean效果。
MotionGroup
- LegController的SourceAnimations中的一个概念
- 一个MotionGroup将作为一套动作看待,比如站立动作组,下蹲动作组,匍匐动作组,受伤动作组,潜行动作组等。
- 不能含有NativeSpeed相同的动画,故最多一个闲置动画
- 以渐近的方式切换到一个指定的动画组
animation.CrossFade("group_name", fadeTime)
- 设置融入时的组权重
animation["group_name"].weight = weightValue
- 不要自己控制已经被LocomotionSystem控制的动画。
Grouped or Ungrouped or NotUsed
- NotUsed指不被LocomotionSystem控制的动画,这类动画同样会与LocomotionSystem控制的动画有融合效果,但不会保证脚贴紧地面,比如跳跃、腾空等动画。
- Grouped和Ungrouped动画都是被LocomotionSystem控制的动画,这些动画的脚被保证紧贴地面。
附加
PlatformCharacterController
- 依赖并于CharacterMotor配合
- 获取用户输入并转化为CharacterMotor的各项运动参数
NormalCharacterMotor
- 依赖并与CharacterController配合
- 根据当前运动参数执行角色的运动
- MaxRotationSpeed,影响各个方向运动动画的融合,若为0,则为无转身,各个方向动画将根据运动方向进行适当播放。
CharacterMotor
- 角色运动核心类,定义了与角色运动相关的核心属性,需要继承以实现特定运动控制。
- 动画系统会依据CharacterMotor的属性播放相应的动画。
- 其它运动控制类只要控制CharacterMotor三个方面的属性即可实现角色运动:
1 desiredMoveDirection,控制角色运动方向;
2 desiredFaceingDirection,控制角色注视方向;
3 desiredVelocity(只读),角色的速度,由desiredMoveDirection以及maxForwardSpeed,maxBackwardsSpeed,maxSidewaysSpeed,maxVelocityChange共同决定。
网友评论