在编写UE角色的前后左右移动的蓝图中,我们经常会使用get control rotation这种蓝图结点。实现一个可行的前后移动的蓝图如下。
计算得到向前向量、向右向量和向上向量(相对于世界坐标)。将向前向量add进当前的移动输入,完成向前移动。
UE蓝图结点中存在控制器方向、网格体方向、胶囊体方向。因此存在疑惑,这两个方向能不能代替控制器方向实现相同的效果?
1.使用网格体方向
导致上述现象的原因是什么呢?这就需要明确上面几个方向的具体意义。先抛出结论:
总结:
控制器方向:即游戏界面的方向。人类玩家操作控制器,所以电脑屏幕的朝向就是控制器的朝向。举个例子,在静止Idle状态下,玩家可以旋转一定视角观察游戏内角色Pawn的各个方面,角色Pawn的朝向没有变化,但是突然按W时,角色会向玩家屏幕的正向移动,也说明这就是控制器的向前向量。
网格体方向:即骨骼网格体组件的方向。在角色蓝图的视口可以查看。骨骼体的XYZ的原点在人物的根骨骼位置(具体参见根骨骼动画原理),其XYZ方向不一定与世界坐标一致(如图及图左下)。
胶囊体方向:即胶囊体组件的方向。在角色蓝图的视口可以查看。
Actor方向:与胶囊体方向一致。
编写如下蓝图查看网格体(红色)、胶囊体(蓝色)、控制器(绿色)、Actor(黄色)的向前方向。
因篇幅问题不能全部显示,请点此查看更多更全内容