Godot Version
4.6
Question
How can I apply velocity to a ragdoll? Specifically a Bonesimulator3D with 6 bones, and I should only need short bursts of movement.
func _ragdoll():
if ragdollcooldown: return
var lastperspective = thirdperson
if not ragdolled and not ragdollcooldown:
animplr.play("idle")
camera.get_parent().rotation_degrees = Vector3(0,-90,0)
ragdolled = true
thirdperson = true
physicsSkeleton.physical_bones_start_simulation()
var collisions = self.find_children("CollisionShape3D")
for v in collisions:
v.disabled = false
pass
$collision.disabled = true
pass
elif ragdolled and not ragdollcooldown:
self.global_position = torsobone.global_position
thirdperson = lastperspective
animplr.play("idle")
ragdolled = false
camera.get_parent().rotation_degrees = Vector3(0,-90,0)
spring.rotation_degrees = Vector3(0, -90, 0)
physicsSkeleton.physical_bones_stop_simulation()
var collisions = self.find_children("CollisionShape3D")
for v in collisions:
v.disabled = true
pass
$collision.disabled = false
pass
ragdollcooldown = true
await get_tree().create_timer(0.2).timeout
ragdollcooldown = false
pass