UE旋转镜头
第三人称角色人物镜头在人身后,当在屏幕滑动时,可以围绕角色旋转镜头。
需求是当触发某个条件时,镜头需要旋转到指定位置or角度。
空手和瞄准的设置
角色身上挂了SpringArmComponent的子类,
CameraSettings内设置了:playercontroller 的rotation影响摄像机的rotation。而不存在反过来影响。
UsePlayerViewRotation:false, UsePawnControlRotation:true true 相机基于Controller旋转可以看成是Use Player Controller Control Rotation,Controller的旋转作用到弹簧臂上。 Inherit Pitch:true true InheritYaw:true true InheritRoll:true true
Character本身的Pawn:角色自身是否基于Controller旋转
UseControllerRotationPitch:false UseControllerRotationYaw:false true 人物与镜头视角绑定,true是让人物始终跟随镜头转向,即是基于Controller的z旋转 UseControllerRotationRoll:false
UCharacterMovementComponent子类的设置:
CharacterMovement
UseCustomRotation:false CustomRotation:0 RotationRate:0,0,1000 UseControllerDesiredRotation:false 人物与镜头视角绑定 true是让人物始终跟随镜头转向,转动起来更平滑
OrientRotationToMovement:true false在没有wasd这种move输入的时候不会让人物转向,在人物跑动的时候会有转向效果,但是没有往后跑的效果,按s键人物正面就会朝着玩家。true是朝运动方向旋转。
开始是空手状态没有拿武器时,角色一直面朝移动方向,所以Pawn的 UseControllerRotationYaw设置为false,把OrientRotationToMovement设置为true
拿到枪后就一直朝着瞄准方向,此时就需要把 UseControllerRotationYaw设置为true,把OrientRotationToMovement设置为false
ControlRotation就是镜头的朝向。
ActorRotation就是角色身体的朝向。会根据bUseControllerRotaionPictch,bUseControllerRotaionYaw和bUseControllerRotaionRoll开关,分别判断是否使用ControlRotation的分量角度,最后会通过SetActorRotation函数设置ActorRotation的值。
旋转是空手状态,所以设置controller的旋转。startrotation:Controller的当前位置,targetrotation:使用character的transform进行transformrotation->Yaw进行旋转配置角度。


浙公网安备 33010602011771号