09/20/2020,03/24/2021
文章目录
前言
区分ControllRotation和ActorRotation
- ControllerRotation表示PlayerController的方位,PlayerController和PlayerCameraMenager会在游戏开始的时候生成
- ActorRotation表示RootComponent的方位
UE4基础
UE4使用的是左手坐标系
欧拉角
欧拉角是什么,欧拉角用来描述一个物体的方位,即朝向。
例子1:
首先明确坐标轴属性,什么颜色对应什么轴,红色对应X轴的旋转量,绿色对应Y州的旋转量,蓝色对应Z轴的旋转量。

由FRotator 保存:
- Pitch:俯仰(上下看)— Y轴
- Yaw:偏航(左右看) — Z轴
- Roll:翻转(旋转)—X轴
注意:Roll-Pitch-Yaw组合(X-Y-Z轴),强烈建议记住英语单词的意思。

第二部分表达UE4的旋转功能,当前三个轴的旋转量都为0

如果顺时针转动蓝色网格时候,Z轴将会变大,如果是逆时针转动,Z轴的旋转量将会变小。
绕Z轴顺时针旋转45°的情形:

欧拉角和旋转矩阵是可以相互转换的
在本地坐标系中,我们发现X,Y,Z轴出现了方位的变化,它们的值需要通过旋转矩阵才能知道,它们值还可以通过GetForwardVector,GetRightVector和GetUpVector函数得到。
下面是绕Z轴顺时针旋转45°得到的旋转矩阵图:

关闭人物的旋转和ControlRotation一致
这个表示ControlRotation旋转,人物自身的ActorRotation也会旋转。可以在Character蓝图属性中找到

开启镜头随着鼠标移动
设置弹簧臂,我们需要让弹簧臂使用Pawn身上的ControllerRotation来转动自身,即用PlayerController控制弹簧臂

开启人物随着加速度方向旋转
在CharacterMovment中,有一个Orient Rotation to Movement,表示人物ActorRotation将会随着加速度方向而变动,旋转速率可以调节

MoveForward(ControllerRotation)
这边使用的是ControllerRotation的旋转量,表示人物移动的方向是跟着眼睛的方向走动的

人物将会朝着红色箭头方向移动,不会朝着黑色箭头移动

本文介绍了UE4中ControllerRotation和ActorRotation的区别,讲解了欧拉角的概念,并通过实例展示了它们在游戏场景中的应用,如人物移动、镜头控制和旋转。此外,还探讨了bUsePawnControlRotation属性以及MovementComponent的相关设置,帮助理解UE4中的旋转逻辑。
:区分ControllerRotation和ActorRotation&spm=1001.2101.3001.5002&articleId=108536398&d=1&t=3&u=cf4b4fb337b64f7f8cb78e2129b78461)
1769

被折叠的 条评论
为什么被折叠?



