extends Skeleton3D const JIGGLEBONE_SCENE = preload("res://addons/jigglebones/jigglebone.gd") @export var enable_jigglebones := true @export var jigglebone_configs: Array[JiggleboneConfig] # Called when the node enters the scene tree for the first time. func _ready() -> void: if enable_jigglebones: print("Adding jigglebones to skeleton: " + name) _add_jigglebones() func _add_jigglebones() -> void: for i in get_bone_count(): var bone_name = get_bone_name(i) for cfg in jigglebone_configs: if bone_name.contains(cfg.name_pattern): var jigglebone = JIGGLEBONE_SCENE.new() jigglebone.name = "Jigglebone_" + bone_name jigglebone.bone_name = bone_name jigglebone.stiffness = cfg.stiffness jigglebone.damping = cfg.damping jigglebone.forward_axis = cfg.forward_axis jigglebone.use_gravity = cfg.use_gravity add_child(jigglebone) print("Jigglebone added: \"" + jigglebone.name + "\" -> \"" + bone_name + "\"")