原创,转载请注明出处
在人物的移动转向和视角中,首先拆分3个部分:位移,朝向,动画。(世界坐标系下人物的location、rotation,动画和这些没关系,是被动画蓝图里animGraph的条件控制的,这些条件中的变量的改变在动画蓝图的eventGraph里,一般在人物的controller中也会写一些,严格说不是没有关系,只是我们可以先忽略动画,先搞清楚前面2个)
玩家输入有2种,键盘和鼠标。
绝地求生中,WASD键控制的是人物的移动(位置),鼠标控制的是人物的朝向。举个例子,让人物向右转的过程:鼠标右移,人的脸朝右了,再按W键(向前走),就完成了向右转的过程。
对于我这种不怎么玩射击游戏的自然会想,那么我的D键不能让人物向右转吗,事实上,D键可以使得人物有向右的位移,但是不会让人物向右转。游戏中,按D键就会看到人物用向前跑的姿势实现了向右的位移。(好像是因为射击的原因,但是我的吃鸡号自从半年前买了后玩了几局被游轮碾过后就没玩过,不怎么玩射击游戏,也不明白,那就怎么设定怎么写呗)
首先,实现人物的移动和旋转。
在官方第三人称角色中,人物的位移是这样的:
这个没问题,控制的是人的位移。
rotation:
鼠标改变的是控制器的,根据上面说的,需要鼠标控制人物的rotation。so,需要让控制器控制pawn(被控制的人物)的yaw(摇头)。
另外,看下人物组件,显然,能看到这里面还有个看上去可以改变人物rotation的东西
点开后细节面板中有个选项:
解释说,如果勾选后,会旋转人物的朝向使其朝向加速的方向,并用上旋转速率(我猜是里面的这个东西),重要的是,会覆盖控制器的控制。呵呵,那我之前的不白改了。(原理应该是,我在控制人物位置的时候会产生速度,这个character组件会根据速度的朝向改变人物的worldRotation,结果就是按ASD键向左向右向后走(改变位置)时,人物朝向自动改变)。
到了这里,人物的部分就实现了,另外就是摄像机。
首先明确一点,绝地求生游戏中,玩家的视野就是人物脸的朝向。
所以在弹簧臂中勾选继承人物(pawn)的rotation。
通过这个可以稍微理解清楚些输入、控制器、人物和相机之间的rotation。
其他操作有空会写