0 votes

Hi. I am new with godot, but i wanna make something like steampunk skyships battle, and i need something like linear interpolation for rotation for more smoothly animation. I found that Quaternion have func slerp but i tottaly don't understand how to convert information from Quat to my rotation. In unity the same functionality can be reached with someting like transform.rotation = originRot * rotY * rotX. So how in godot do something like this?

in Engine by (12 points)

1 Answer

0 votes
# Convert basis to quaternion, keep in mind scale is lost
var a = Quat(transform.basis)
var b = Quat(transform2.basis)
# Interpolate using spherical-linear interpolation (SLERP).
var c = a.slerp(b,0.5) # find halfway point between a and b
# Apply back
transform.basis = Basis(c)

https://docs.godotengine.org/en/stable/tutorials/3d/using_transforms.html

by (1,667 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.