A [SkeletonModifier3D] to apply inverse kinematics to bone chains containing an arbitrary number of bones. Base class of [SkeletonModifier3D] that automatically generates a joint list from the bones between the root bone and the end bone. Returns the end bone index of the bone chain. Returns the tail direction of the end bone of the bone chain when [method is_end_bone_extended] is [code]true[/code]. Returns the end bone tail length of the bone chain when [method is_end_bone_extended] is [code]true[/code]. Returns the end bone name of the bone chain. Returns the bone index at [param joint] in the bone chain's joint list. Returns the bone name at [param joint] in the bone chain's joint list. Returns the joint count of the bone chain's joint list. Returns the root bone index of the bone chain. Returns the root bone name of the bone chain. Returns [code]true[/code] if the end bone is extended to have a tail. Sets the end bone index of the bone chain. Sets the end bone tail direction of the bone chain when [method is_end_bone_extended] is [code]true[/code]. Sets the end bone tail length of the bone chain when [method is_end_bone_extended] is [code]true[/code]. Sets the end bone name of the bone chain. [b]Note:[/b] The end bone must be the root bone or a child of the root bone. If they are the same, the tail must be extended by [method set_extend_end_bone] to modify the bone. If [param enabled] is [code]true[/code], the end bone is extended to have a tail. The extended tail config is allocated to the last element in the joint list. In other words, if you set [param enabled] to [code]false[/code], the config of the last element in the joint list has no effect in the simulated result. Sets the root bone index of the bone chain. Sets the root bone name of the bone chain.