X-Git-Url: http://git.purplebirdman.com/william-skin.git/blobdiff_plain/2a3ca80a5cb25de8de2ea6665f1870956513f098..c3805c44927b9c7945d932a4c602fbbf6cb0dcb8:/TrackingBone3D_head.gd diff --git a/TrackingBone3D_head.gd b/TrackingBone3D_head.gd index c1d3913..6d522b3 100644 --- a/TrackingBone3D_head.gd +++ b/TrackingBone3D_head.gd @@ -4,7 +4,7 @@ class_name TrackingBone3D_head extends SkeletonModifier3D @export_enum(" ") var bone: String -@export var target: Vector3 = Vector3(0, 0, 0) +@export var target: Node3D = null @export var influence_lerp_seconds: float = 0.5 @export var rotation_lerp_weight: float = 0.5 @@ -47,9 +47,12 @@ func _interpolate_influence(weight: float) -> void: func _process_modification() -> void: + if target == null: + return + var current_pose: Transform3D = _skeleton.global_transform * _skeleton.get_bone_global_pose(_bone_idx) current_pose.basis = old_current_pose.basis - var target_pose: Transform3D = current_pose.looking_at(target, Vector3.UP) + var target_pose: Transform3D = current_pose.looking_at(target.global_position, Vector3.UP) # TODO: replace this specific code with general purpose modifier var axis: Vector3 = target_pose.basis.y