X-Git-Url: http://git.purplebirdman.com/william-skin.git/blobdiff_plain/35a4c6f3a69fe09240d6edc885c0d63539e4fe82..HEAD:/TrackingBone3D.gd diff --git a/TrackingBone3D.gd b/TrackingBone3D.gd index 2f74d14..a417f61 100644 --- a/TrackingBone3D.gd +++ b/TrackingBone3D.gd @@ -9,7 +9,7 @@ enum Axis { @export_enum(" ") var bone: String @export var aim_axis := Axis.Z_plus -@export var target: Vector3 = Vector3(0, 0, 0) +@export var target: Node3D = null var _skeleton: Skeleton3D var _bone_idx: int @@ -32,6 +32,9 @@ func _ready() -> void: func _process_modification() -> void: + if target == null: + return + var pose: Transform3D = _skeleton.global_transform * _skeleton.get_bone_global_pose(_bone_idx) var looked_at: Transform3D = _w_look_at(pose) @@ -60,7 +63,7 @@ func _w_look_at(from: Transform3D) -> Transform3D: elif aim_axis == Axis.Z_minus: w = from.basis.y.inverse() - var t_v: Vector3 = target - from.origin + var t_v: Vector3 = target.global_position - from.origin var v_y: Vector3 = t_v.normalized() var v_z: Vector3 = w.cross(v_y) v_z = v_z.normalized()