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进行旋转配置角度。

 

posted on 2025-06-17 12:08  Ming明、  阅读(42)  评论(0)    收藏  举报