【UE】虚幻引擎控制器方向、网格体方向、胶囊体方向、Actor方向

本文详细解析了UE(Unreal Engine)中的控制器方向、网格体方向和胶囊体方向的区别及其应用场景。通过实例展示了不同方向在角色移动中的作用,并深入探讨了它们之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引入

在编写UE角色的前后左右移动的蓝图中,我们经常会使用get control rotation这种蓝图结点。实现一个可行的前后移动的蓝图如下。
在这里插入图片描述
上图的意思是,首先获取到控制器的旋转向量(该旋转向量是相对于世界坐标),由于只在平面运动,那么只需使用Yaw。由下列公式(应用即可,具体数学原理不细谈)

向前向量的计算公式,X=Cos(Pitch)*Cos(Yaw),Y=Cos(Pitch)*Sin(Yaw),Z= Sin(Pitch)。
向右向量的计算公式,X=> Sin(Roll)*Sin(Pitch)*Cos(Yaw)-Cos(Roll)*Sin(Yaw),Y=Sin(Roll)*Sin(Pitch)*Sin(Yaw)+Cos(Roll)*Cos(Yaw), Z= - Sin(Roll)*Cos(Pitch)。
向上向量的计算公式,X= -(Cos(Roll)*Sin(Pitch)*Cos(Yaw)+Sin(Roll)*Sin(Yaw)),Y=Cos(Yaw)*Sin(Roll) - Cos(Roll)*Sin(Pitch)*Sin(Yaw),Z = Cos(Roll)*Cos(Pitch)。

计算得到向前向量、向右向量和向上向量(相对于世界坐标)。将向前向量add进当前的移动输入,完成向前移动。

二、控制器方向、网格体方向、胶囊体方向

UE蓝图结点中存在控制器方向、网格体方向、胶囊体方向。因此存在疑惑,这两个方向能不能代替控制器方向实现相同的效果?

1.使用网格体方向
在这里插入图片描述
使用上面蓝图代替原先蓝图,得到小白人原地转圈的效果(俯视逆时针)
2.使用胶囊体方向
在这里插入图片描述
小白人正常前进,但是按住S时,人物可以后退、无法回头且不断抖动(试图转头)
在这里插入图片描述

导致上述现象的原因是什么呢?这就需要明确上面几个方向的具体意义。先抛出结论:

总结:
控制器方向:即游戏界面的方向。人类玩家操作控制器,所以电脑屏幕的朝向就是控制器的朝向。举个例子,在静止Idle状态下,玩家可以旋转一定视角观察游戏内角色Pawn的各个方面,角色Pawn的朝向没有变化,但是突然按W时,角色会向玩家屏幕的正向移动,也说明这就是控制器的向前向量。
网格体方向:即骨骼网格体组件的方向。在角色蓝图的视口可以查看。骨骼体的XYZ的原点在人物的根骨骼位置(具体参见根骨骼动画原理),其XYZ方向不一定与世界坐标一致(如图及图左下)。
胶囊体方向:即胶囊体组件的方向。在角色蓝图的视口可以查看。
Actor方向:与胶囊体方向一致。
在这里插入图片描述

三、深入实践

编写如下蓝图查看网格体(红色)、胶囊体(蓝色)、控制器(绿色)、Actor(黄色)的向前方向。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
人物正向时,网格体向前方向(X,Y,Z)=(0,-1,0),胶囊体向前方向(1,0,0),Actor向前方向(1,0,0),控制器向前方向(1,0,0)。
分析:**X轴方向就是向前方向。**如上图,Actor的X轴正方向是网格体的Y轴正方向,Actor的Y轴正方向是网格体的X轴负方向。网格体的坐标轴方向与世界坐标轴的方向不一致,而其他的坐标轴初始方向均与世界坐标轴方向一致。在角色蓝图的视图中可以验证。在这里插入图片描述
按S,人物朝向发生变动后,网格体向前方向(X,Y,Z)=(-0.779,-0.627,0),胶囊体向前方向(0.627,-0.779,0),Actor向前方向(0.627,-0.779,0),控制器向前方向(1,0,0)。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值