如何在 Godot 4 中正确应用补间到 3D 旋转?

问题描述 投票:0回答:1

我有一个

Node3D
,我想平滑地过渡到某个目标旋转(以欧拉角,以度为单位给出)。

当我在欧拉角向量(模 360)的所有 3 个维度上手动应用

lerp(...)
时,效果很好。然而,当我尝试使用
Tween
(这似乎是 Godot 4 中此类用例的首选方式)时,我会得到疯狂的中间旋转 - 最终位置再次很好。

我在这里做错了什么吗?谁能给我一个如何使用 Tween 将

Node3D
正确旋转到给定目标旋转的示例?

3d rotation godot tween godot4
1个回答
0
投票

当我遇到同样的问题时遇到了这个问题。这就是我通过简单旋转解决它的方法。对于更高级的东西,您可能需要研究四元数旋转:

# example degrees
var x_degrees: float = 0 
var y_degrees: float = 45
var z_degrees: float = 25

# put degrees in Vector3
var target_rotation = Vector3(
    deg_to_rad(x_degrees),
    deg_to_rad(y_degrees),
    deg_to_rad(z_degrees)
)

#create tween and apply rotation property
var rotate_tween = get_tree().create_tween()
rotate_tween.tween_property(player, "rotation", target_rotation, 0.5) #example time
© www.soinside.com 2019 - 2024. All rights reserved.