关于UE4第三人称控制器的一些个人见解

在我们用UE4制作第三人称角色的控制的时候一般会蓝图如下

 

从上面的代码来看我们用鼠标的xy轴控制controller。这个controller就是player controller,PC在UE4中是一个抽象的概念(好在UE在游戏运行会实例化这个controller)。在ue4中pawn是世界中含有移动方法的对象基类。玩家控制的角色就是pawn,character也是基于pawn的,也就是游戏中的角色。

现实中的玩家要控制游戏中的角色就需要通过player controller。

 

要让controller 能控制 pawn 要让pawn自动所有player controller。

 

如果没有在WorldSetting中设置自己自定义的Player Controller的话UE4也会在游戏运行时为你创建一个Player Controller。但是你需要为你的pawn进行如上设置才能让灵魂和肉体连接。

 

好了接着回到蓝图中,代码中的我们是在控制Player Controller。但是发现能直接控制角色的旋转。这是怎么做到的呢或是有什么头绪呢?

 

角色pawn中的self中默认勾上了Use Controller Rotation Yaw 开启了。这意味着Controller 中的旋转值会作用于这个pawn在世界空间中的旋转。这个勾通常会关掉(后面会说到)。

 

设置是弹簧臂的旋转。要让Controller 中的旋转值作用到弹簧臂上

一般大家都会勾上弹簧臂组件上的这个选项,其实我很想建议官方把Use pawn control Rotation 改成

Use player controller control Rotation 这样能让使用者更便于理解。

 

ue4中胶囊体的正方向一般是和static mesh的正方向一至的。(因为我之前搞得unity第三人称胶囊体正方向不一定和mesh方向一至)。

 

接着是角色转向问题想要角色转向我们的唯一方向可以利用movement 组件。勾上这个朝运动方向旋转。

 

但是运动方向是键盘方向控制的。现在该蓝图的旋转方向由控制器控制。所以要取消之前说到的控制器控制角色的偏航。让pawn自动转向键盘控制的方向。

 

加上动画蓝图

简单的第三人称控制器就完成了。

ue4中第三人称控制器核心的要点就是 movement 组件,pawn,player controller。

pawn 和 player controller 同属于游戏世界这个层级。

player controller 控制弹簧臂的旋转。

movement 组件控制pawn的位移方向。同时使pawn自动转向位移方向。

 

这是运行时player controller在世界中的位置。它的位置不重要,重要的是旋转与我们弹簧臂旋转相关。

学到了这是一种思路很巧妙 unity中也是可以实现的,之前在使用unity设计第三人称控制器的时候把相机和胶囊体固定在一起,旋转胶囊体让模型的mesh不变实现弹簧臂的效果,虽然能实现效果当会让看起来胶囊体和mesh不是固定的一体,需要调用update函数的时候多了个修正mesh方向的步骤性能应该不太好。

 

调出胶囊看看

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值