1

长篇大论的问题,我将提供一个图表来说明我的目标:

例子

红色方块代表人物,蓝色矩形代表摄像机,绿色圆点代表“舞台”的中心,黑色圆圈是舞台本身。

我想要的是基本上将玩家的运动锁定在舞台的“中心”周围,这样无论何时你向左或向右移动,你都会或多或少地围绕所述中心旋转。但是,我也希望玩家能够在中心前后移动。请记住,我希望相机始终保持在玩家的正后方。我尝试了许多不同的方法,最新的方法如下:

示例 2

我拿了一个默认演员,附加了一个弹簧臂,将一个儿童演员附加到那个(被附身成为可玩角色),附加另一个弹簧臂,最后是相机。然后我将蓝图代码添加到第一个弹簧臂,使其成为由左/右控件控制的那个。但是,在点击播放时,唯一移动的是相机,它只能向前和向后移动。

诚然,我对 Unreal Blueprints 还是很陌生,因此我们将不胜感激。

4

2 回答 2

3

好吧,我想通了。

如果其他人想要类似的东西,这是所需的设置。

对于玩家本身,你需要这样的东西:

等级制度

重要的是要将根网格置于要旋转的位置。弹簧臂的目标臂长将受到玩家网格运动的影响,从而产生您正在物理移动角色的错觉。除非您希望更好地控制相机到玩家的距离,否则不需要第二个弹簧臂。

对于旋转蓝图,您需要:

回转

目标是您命名的根网格。(我的被称为中心)从层次结构中拖放它。

对于前进/后退运动,您需要:

移动

目标是您命名的弹簧臂。(我将我的默认设置为“SpringArm”)同样,只需将其从层次结构中拖放即可。

项目设置中的调整:

发动机输入

是的,我的输入与您的想法相反。我觉得只是反转输入而不是调整任何导致运动倒退的东西会更快。(可能只是球体方向。)另外,您会注意到我将 w 和 s 输入设置为 5 或 -5 而不是 1 或 -1。这是因为移动速度很慢。我确信有一个不涉及更改输入轴比例的修复程序,但老实说,我真的没有理由在项目中的任何时候更改值。如果它出现在我确实需要的地方,我相信无论如何都会有一个绕过来更改蓝图中的值。

最终结果:

最终结果视频

于 2018-08-17T23:24:28.950 回答
0

如果我没记错的话,子actor组件与其他组件有点不同,因为它们是独立于转换的,即当它们的父组件移动时它们不会更新它们的转换。

我觉得将播放器演员和相机组件分开有点奇怪。通常,玩家“pawn”包含一个玩家的网格和相机组件。

我建议您执行以下操作:

  • 创建一个玩家actor(例如“pawn”或“character”类)
  • 创建以下组件层次结构:

    根场景 -> 弹簧臂 -> 骨架或静态网格物体 -> 弹簧臂 -> 相机

您的根场景是绘图中的绿色中心。然后,您基本上可以使用您已经拥有的蓝图来旋转和移动您的播放器。

于 2018-06-08T11:48:52.283 回答