如何获得 3D 相机 'following' 角色并排位置
How to get a 3D camera 'following' the character position side-by-side
我正在使用 'classic' target/pos/offset 解决方案让 3D 相机跟随我的赛车角色。
摄像头是跟着它走的,但我相信如果摄像头在它旁边(甚至领先它,回头看)效果会更好。
我尝试调整经典代码,将矢量添加到最终 'pos',甚至只是使用目标的原点来设置相机的原点,结果没有什么不同。
这是 engine/object 限制(只能跟随)还是有代码可以将相机保持在目标一侧(或相对于它的任何其他固定位置)?
首先,在 Godot 中让相机跟随 object 的经典方法是简单地使 Camera
节点成为您想要的节点的 child跟随,然后在编辑器中相对于它定位它,不需要代码。如果有的话,我会称之为经典解决方案。
如果您希望相机避免进入 objects,您有两个选择:ClippedCamera
和 SpringArm
。区别? SpringArm
会允许它和它的 parent 之间有障碍物,而 ClippedCamera
不会。
要使用 ClippedCamera
,请尝试将 Camera
节点更改为 ClippedCamera
(并将碰撞器添加到您希望它避免的地方)。我建议将 ClippedCamera
的进程模式设置为 Idle
。
或者,使用 SpringArm
节点。以与设置相机相同的方式设置它(child 到你想要跟随的位置,相对于它定位),然后使 Camera
成为 SpringArm
的 child .
注意:ClippedCamera
和 parent 之间有东西时,可能会导致一些不和谐的跳跃。相反,我建议使用 SpringArm
并为您的空间材质添加 Proximity fade,这样当它们离相机太近时它们就会淡出,因此它们不会遮挡玩家的视野。 您也可以根本不使用 SpringArm
,而仅依赖邻近淡入淡出。但这是一个由游戏决定的游戏。
如果只想跟随位置,不跟随旋转,可以使用RemoteTransform
节点。添加 RemoteTransform
作为您要关注的内容的 child,然后对其进行配置(在编辑器的检查面板中)以将位置推送到另一个节点。而且,当然,该节点是 Camera
.
我正在使用 'classic' target/pos/offset 解决方案让 3D 相机跟随我的赛车角色。
摄像头是跟着它走的,但我相信如果摄像头在它旁边(甚至领先它,回头看)效果会更好。
我尝试调整经典代码,将矢量添加到最终 'pos',甚至只是使用目标的原点来设置相机的原点,结果没有什么不同。
这是 engine/object 限制(只能跟随)还是有代码可以将相机保持在目标一侧(或相对于它的任何其他固定位置)?
首先,在 Godot 中让相机跟随 object 的经典方法是简单地使 Camera
节点成为您想要的节点的 child跟随,然后在编辑器中相对于它定位它,不需要代码。如果有的话,我会称之为经典解决方案。
如果您希望相机避免进入 objects,您有两个选择:ClippedCamera
和 SpringArm
。区别? SpringArm
会允许它和它的 parent 之间有障碍物,而 ClippedCamera
不会。
要使用 ClippedCamera
,请尝试将 Camera
节点更改为 ClippedCamera
(并将碰撞器添加到您希望它避免的地方)。我建议将 ClippedCamera
的进程模式设置为 Idle
。
或者,使用 SpringArm
节点。以与设置相机相同的方式设置它(child 到你想要跟随的位置,相对于它定位),然后使 Camera
成为 SpringArm
的 child .
注意:ClippedCamera
和 parent 之间有东西时,可能会导致一些不和谐的跳跃。相反,我建议使用 SpringArm
并为您的空间材质添加 Proximity fade,这样当它们离相机太近时它们就会淡出,因此它们不会遮挡玩家的视野。 您也可以根本不使用 SpringArm
,而仅依赖邻近淡入淡出。但这是一个由游戏决定的游戏。
如果只想跟随位置,不跟随旋转,可以使用RemoteTransform
节点。添加 RemoteTransform
作为您要关注的内容的 child,然后对其进行配置(在编辑器的检查面板中)以将位置推送到另一个节点。而且,当然,该节点是 Camera
.