There are different approaches you can take depending on what kind of game you're making. A really basic example that assumes the character is moving in the x-z plane and points it in the direction of travel:
var vel = Vector3()
func _fixed_process(delta):
var tf = get_global_transform()
if Vector2(vel.x, vel.z).length_squared() > 0.001:
tf.basis = Matrix3(Vector3(0, 1, 0), atan2(-vel.x, vel.z))
tf.origin += vel * delta
set_global_transform(tf)
You might have to change the signs in the atan2 command if your character points the wrong way.