]> Untitled Git - william-skin.git/commitdiff
Track Node3D objects instead of Vector3 so targets aren't static
authorClifton Palmer <clifton.james.palmer@protonmail.com>
Wed, 4 Dec 2024 15:47:10 +0000 (17:47 +0200)
committerClifton Palmer <clifton.james.palmer@protonmail.com>
Wed, 4 Dec 2024 15:47:10 +0000 (17:47 +0200)
TrackingBone3D.gd
TrackingBone3D_head.gd
player/player.gd
player/player.tscn
project.godot
test/test.tscn
william.gd
william.tscn

index 2f74d1493e4e05516e87c0d13c6247e36f6dbaa8..a417f61371feb51060bcbdfebae2995b47a3df23 100644 (file)
@@ -9,7 +9,7 @@ enum Axis {
 
 @export_enum(" ") var bone: String
 @export var aim_axis := Axis.Z_plus
 
 @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
 
 var _skeleton: Skeleton3D
 var _bone_idx: int
@@ -32,6 +32,9 @@ func _ready() -> void:
        
 
 func _process_modification() -> 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)
        
        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()
        
        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()
        var v_y: Vector3 = t_v.normalized()
        var v_z: Vector3 = w.cross(v_y)
        v_z = v_z.normalized()
index c1d39138e9b1a93230184d9f28a7dc2c872cc6d4..6d522b3069981c4d47ce21adc80159d08548346d 100644 (file)
@@ -4,7 +4,7 @@ class_name TrackingBone3D_head
 extends SkeletonModifier3D
 
 @export_enum(" ") var bone: String
 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
 
 @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:
 
 
 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 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
        
        # TODO: replace this specific code with general purpose modifier
        var axis: Vector3 = target_pose.basis.y
index 1ebbf4c2180d4a72567c2a3f7d2a48c4087ff65b..de4387bd24eb8b393de2601fd91b185025e6325f 100644 (file)
@@ -331,13 +331,13 @@ func _process_player(delta: float) -> void:
 func _pick_head_track_target() -> void:
        if _head_track_arr.is_empty():
                _head_track_target = null
 func _pick_head_track_target() -> void:
        if _head_track_arr.is_empty():
                _head_track_target = null
-               _skin.set_head_target(Vector3.ZERO)
-               _skin.set_eyes_target(Vector3.ZERO)
+               _skin.set_head_target(null)
+               _skin.set_eyes_target(null)
        else:
                var target: Node3D = _head_track_arr.front()
                _head_track_target = target
        else:
                var target: Node3D = _head_track_arr.front()
                _head_track_target = target
-               _skin.set_head_target(target.global_position)
-               _skin.set_eyes_target(target.global_position)
+               _skin.set_head_target(target)
+               _skin.set_eyes_target(target)
 
 
 # if we find a head tracking obj, add it to the array unless it's already there
 
 
 # if we find a head tracking obj, add it to the array unless it's already there
index d9bcc61350332d3e50bf8f98ac4d0aa791daddbd..e070876a49e0e6a54537fe9ed993bdf94f684553 100644 (file)
@@ -36,6 +36,9 @@ transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0,
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -3.91559)
 shape = SubResource("CylinderShape3D_ntdse")
 
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -3.91559)
 shape = SubResource("CylinderShape3D_ntdse")
 
+[node name="npcTrackPoint" type="Node3D" parent="WilliamSkin" groups=["npc-headTrack"]]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.78197, 0)
+
 [node name="cameraPivot" type="Node3D" parent="."]
 
 [node name="SpringArm3D" type="SpringArm3D" parent="cameraPivot"]
 [node name="cameraPivot" type="Node3D" parent="."]
 
 [node name="SpringArm3D" type="SpringArm3D" parent="cameraPivot"]
index c48d53edc371727c6628dba709158e86466c8d3f..ff5b0c0999fd80f4f8aee41db0b4dd5a77ae2961 100644 (file)
@@ -29,6 +29,7 @@ enabled=PackedStringArray("res://addons/jigglebones/plugin.cfg")
 player-lockon=""
 player-headTrack=""
 player-eyeTrack=""
 player-lockon=""
 player-headTrack=""
 player-eyeTrack=""
+npc-headTrack=""
 
 [input]
 
 
 [input]
 
index 283ee17779776e5a5b1fb8391ae99393750424b7..93467626e20a48b002c58abc97edb0fcaddd5b8c 100644 (file)
@@ -1,8 +1,9 @@
-[gd_scene load_steps=10 format=3 uid="uid://c0pxmaobqvkh4"]
+[gd_scene load_steps=11 format=3 uid="uid://c0pxmaobqvkh4"]
 
 [ext_resource type="PackedScene" uid="uid://cp6xm8gp6csx" path="res://player/player.tscn" id="1_apkq8"]
 [ext_resource type="Script" path="res://test/test.gd" id="1_qjknf"]
 [ext_resource type="PackedScene" uid="uid://bxitip7rpbna4" path="res://test/cube.tscn" id="3_3tdke"]
 
 [ext_resource type="PackedScene" uid="uid://cp6xm8gp6csx" path="res://player/player.tscn" id="1_apkq8"]
 [ext_resource type="Script" path="res://test/test.gd" id="1_qjknf"]
 [ext_resource type="PackedScene" uid="uid://bxitip7rpbna4" path="res://test/cube.tscn" id="3_3tdke"]
+[ext_resource type="PackedScene" uid="uid://bmcw5a71lsldu" path="res://test/npc.tscn" id="4_ml58d"]
 
 [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_whsn2"]
 sky_top_color = Color(0.418597, 0.461821, 0.5796, 1)
 
 [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_whsn2"]
 sky_top_color = Color(0.418597, 0.461821, 0.5796, 1)
@@ -63,4 +64,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.22183, 0, -2.93469)
 [node name="Cube3" parent="map" instance=ExtResource("3_3tdke")]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.01348, 0, 0.883314)
 
 [node name="Cube3" parent="map" instance=ExtResource("3_3tdke")]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.01348, 0, 0.883314)
 
+[node name="NonPlayerCharacter" parent="." instance=ExtResource("4_ml58d")]
+transform = Transform3D(0.868026, 0, 0.49652, 0, 1, 0, -0.49652, 0, 0.868026, -6.53488, 9.53674e-07, -0.682341)
+
 [connection signal="camera_lockon" from="player" to="." method="_on_player_camera_lockon"]
 [connection signal="camera_lockon" from="player" to="." method="_on_player_camera_lockon"]
index 253ac50130bf2e9f82f6e3018e25b38cc45f5acb..d03befae66c3a35c9a7db901031625e88f5183b4 100644 (file)
@@ -13,17 +13,17 @@ extends Node3D
 @onready var _eye_R: TrackingBone3D = $base/rig/Skeleton3D/track_eye_R
 
 
 @onready var _eye_R: TrackingBone3D = $base/rig/Skeleton3D/track_eye_R
 
 
-func set_eyes_target(target: Vector3) -> void:
+func set_eyes_target(target: Node3D) -> void:
        for eye in [ _eye_L, _eye_R ]:
                eye.target = target
        for eye in [ _eye_L, _eye_R ]:
                eye.target = target
-               eye.active = target != Vector3.ZERO
+               eye.active = target != null
                eye.influence = eye_influence
 
 
                eye.influence = eye_influence
 
 
-func set_head_target(target: Vector3) -> void:
+func set_head_target(target: Node3D) -> void:
        _head.target = target
        _head.active = 1
        _head.target = target
        _head.active = 1
-       _head.tween_influence(0.0 if target == Vector3.ZERO else head_influence)
+       _head.tween_influence(0.0 if target == null else head_influence)
 
 
 # manage talking and expressions
 
 
 # manage talking and expressions
index 73bc0557c5d3af2fefe225afa73e8aeec5d2ce0b..892eb3c51f619a4ebaa0d8d49524ec8116c596c4 100644 (file)
@@ -255,18 +255,18 @@ libraries = {
 }
 
 [node name="Skeleton3D" parent="base/rig" index="0"]
 }
 
 [node name="Skeleton3D" parent="base/rig" index="0"]
-bones/0/position = Vector3(-0.0309692, 0.951593, -0.107306)
-bones/0/rotation = Quaternion(0.0943206, -0.0710542, -0.0343918, 0.992407)
+bones/0/position = Vector3(-0.0334491, 0.952181, -0.107531)
+bones/0/rotation = Quaternion(0.100051, -0.0644568, -0.030875, 0.992412)
 bones/1/rotation = Quaternion(-0.0644764, -6.13826e-09, -1.28759e-08, 0.997919)
 bones/1/scale = Vector3(1, 1, 1)
 bones/2/rotation = Quaternion(-0.077464, 3.50653e-08, -6.15945e-08, 0.996995)
 bones/2/scale = Vector3(1, 1, 1)
 bones/3/rotation = Quaternion(0.00162711, -1.22272e-07, 2.23079e-08, 0.999999)
 bones/3/scale = Vector3(1, 1, 1)
 bones/1/rotation = Quaternion(-0.0644764, -6.13826e-09, -1.28759e-08, 0.997919)
 bones/1/scale = Vector3(1, 1, 1)
 bones/2/rotation = Quaternion(-0.077464, 3.50653e-08, -6.15945e-08, 0.996995)
 bones/2/scale = Vector3(1, 1, 1)
 bones/3/rotation = Quaternion(0.00162711, -1.22272e-07, 2.23079e-08, 0.999999)
 bones/3/scale = Vector3(1, 1, 1)
-bones/4/rotation = Quaternion(0.244995, 0.00221437, 0.12983, 0.96079)
+bones/4/rotation = Quaternion(0.182344, -0.00301916, 0.119489, 0.975943)
 bones/4/scale = Vector3(1, 1, 1)
 bones/4/scale = Vector3(1, 1, 1)
-bones/5/rotation = Quaternion(-0.0948524, 0.00997605, -0.000950435, 0.995441)
-bones/6/rotation = Quaternion(-0.0723547, 0.0217614, -0.0840369, 0.993594)
+bones/5/rotation = Quaternion(-0.0948569, 0.00243061, -0.000231334, 0.995488)
+bones/6/rotation = Quaternion(-0.0467218, 0.0171424, -0.0889993, 0.994788)
 bones/8/rotation = Quaternion(0.168183, 0.569008, 0.588719, 0.548958)
 bones/8/scale = Vector3(0.999996, 1.00001, 0.999996)
 bones/9/rotation = Quaternion(-0.241127, 0.0184639, -0.0778872, 0.967187)
 bones/8/rotation = Quaternion(0.168183, 0.569008, 0.588719, 0.548958)
 bones/8/scale = Vector3(0.999996, 1.00001, 0.999996)
 bones/9/rotation = Quaternion(-0.241127, 0.0184639, -0.0778872, 0.967187)
@@ -342,27 +342,27 @@ bones/45/scale = Vector3(1, 1, 1)
 bones/46/rotation = Quaternion(0.999709, -0.0117809, 0.0109536, 0.0179522)
 bones/46/scale = Vector3(1, 1, 1)
 bones/47/rotation = Quaternion(0.00924863, -0.103836, -0.0984251, 0.989669)
 bones/46/rotation = Quaternion(0.999709, -0.0117809, 0.0109536, 0.0179522)
 bones/46/scale = Vector3(1, 1, 1)
 bones/47/rotation = Quaternion(0.00924863, -0.103836, -0.0984251, 0.989669)
-bones/48/rotation = Quaternion(0.0268154, -0.409863, -0.688099, 0.598175)
-bones/48/scale = Vector3(0.997391, 1.00524, 0.997391)
-bones/49/position = Vector3(0.228062, 0.104573, 0.124999)
-bones/49/rotation = Quaternion(0.519691, -0.117498, 0.828101, -0.174255)
-bones/49/scale = Vector3(1.05458, 0.899177, 1.05457)
-bones/50/rotation = Quaternion(-0.545686, 0.0816836, -0.0507015, 0.832456)
-bones/50/scale = Vector3(0.911558, 1.06789, 1.03559)
-bones/51/position = Vector3(0.141099, 0.0394381, 0.0489972)
-bones/51/rotation = Quaternion(-0.0898971, -0.400816, 0.597227, 0.688901)
-bones/51/scale = Vector3(1.08712, 0.846162, 1.08712)
+bones/48/rotation = Quaternion(0.0187827, -0.404697, -0.688828, 0.601152)
+bones/48/scale = Vector3(0.997864, 1.00429, 0.997863)
+bones/49/position = Vector3(0.229985, 0.104341, 0.122446)
+bones/49/rotation = Quaternion(0.520314, -0.116257, 0.828981, -0.168963)
+bones/49/scale = Vector3(1.05594, 0.896851, 1.05594)
+bones/50/rotation = Quaternion(-0.545564, 0.0794897, -0.0546653, 0.832498)
+bones/50/scale = Vector3(0.909563, 1.07002, 1.03624)
+bones/51/position = Vector3(0.141648, 0.0388806, 0.0474723)
+bones/51/rotation = Quaternion(-0.0818977, -0.395281, 0.594464, 0.695455)
+bones/51/scale = Vector3(1.08948, 0.84249, 1.08948)
 bones/52/rotation = Quaternion(0.00924863, 0.103836, 0.0984251, 0.989669)
 bones/52/rotation = Quaternion(0.00924863, 0.103836, 0.0984251, 0.989669)
-bones/53/rotation = Quaternion(0.0243414, 0.408277, 0.688328, 0.5991)
-bones/53/scale = Vector3(0.997414, 1.00519, 0.997414)
-bones/54/position = Vector3(-0.228751, 0.10451, 0.124176)
-bones/54/rotation = Quaternion(-0.519068, -0.113016, 0.828865, 0.17544)
-bones/54/scale = Vector3(1.05677, 0.895439, 1.05677)
-bones/55/rotation = Quaternion(-0.551199, -0.0808537, 0.0525446, 0.828783)
-bones/55/scale = Vector3(0.910309, 1.06454, 1.04058)
-bones/56/position = Vector3(-0.141489, 0.0397868, 0.0488346)
-bones/56/rotation = Quaternion(-0.088559, 0.398533, -0.599776, 0.688184)
-bones/56/scale = Vector3(1.086, 0.847895, 1.086)
+bones/53/rotation = Quaternion(0.0183519, 0.404277, 0.689123, 0.601109)
+bones/53/scale = Vector3(0.997928, 1.00416, 0.997928)
+bones/54/position = Vector3(-0.230082, 0.104367, 0.121936)
+bones/54/rotation = Quaternion(-0.519771, -0.114589, 0.829007, 0.171622)
+bones/54/scale = Vector3(1.0544, 0.899477, 1.0544)
+bones/55/rotation = Quaternion(-0.547559, -0.079897, 0.0539887, 0.831192)
+bones/55/scale = Vector3(0.907519, 1.07752, 1.03076)
+bones/56/position = Vector3(-0.141489, 0.0385768, 0.0465146)
+bones/56/rotation = Quaternion(-0.0780487, 0.393482, -0.591136, 0.699742)
+bones/56/scale = Vector3(1.09396, 0.835602, 1.09396)
 bones/57/rotation = Quaternion(-0.707107, 1.8717e-21, -4.79154e-21, 0.707107)
 bones/57/scale = Vector3(1, 1, 1)
 bones/58/rotation = Quaternion(0.985574, 5.1254e-07, 3.5186e-08, 0.169243)
 bones/57/rotation = Quaternion(-0.707107, 1.8717e-21, -4.79154e-21, 0.707107)
 bones/57/scale = Vector3(1, 1, 1)
 bones/58/rotation = Quaternion(0.985574, 5.1254e-07, 3.5186e-08, 0.169243)
@@ -462,93 +462,93 @@ bones/105/rotation = Quaternion(-0.0153969, -0.0395331, -0.239399, 0.969994)
 bones/105/scale = Vector3(1, 0.99999, 1.00001)
 bones/106/rotation = Quaternion(0.909589, -9.30845e-09, 3.15841e-08, -0.415509)
 bones/106/scale = Vector3(1, 1, 1)
 bones/105/scale = Vector3(1, 0.99999, 1.00001)
 bones/106/rotation = Quaternion(0.909589, -9.30845e-09, 3.15841e-08, -0.415509)
 bones/106/scale = Vector3(1, 1, 1)
-bones/108/rotation = Quaternion(-0.0903696, 1.43808e-05, 0.00314306, 0.995903)
-bones/109/rotation = Quaternion(-0.0915473, 0.00020205, 0.00373144, 0.995794)
-bones/110/rotation = Quaternion(-0.0958237, 0.000286892, 0.0020646, 0.995396)
+bones/108/rotation = Quaternion(-0.0780995, -0.000267313, -0.00274632, 0.996942)
+bones/109/rotation = Quaternion(-0.0785074, -0.000251105, -0.00281578, 0.99691)
+bones/110/rotation = Quaternion(-0.0903045, -9.87659e-05, -0.00114268, 0.995914)
 bones/111/rotation = Quaternion(0.897883, 0.391856, -0.0802525, -0.183887)
 bones/111/scale = Vector3(1, 1, 1)
 bones/112/scale = Vector3(1, 1, 1)
 bones/111/rotation = Quaternion(0.897883, 0.391856, -0.0802525, -0.183887)
 bones/111/scale = Vector3(1, 1, 1)
 bones/112/scale = Vector3(1, 1, 1)
-bones/113/rotation = Quaternion(-0.0514349, 0.00545756, 0.0792577, 0.995511)
-bones/114/rotation = Quaternion(-0.0543703, 0.00572538, 0.092509, 0.99421)
+bones/113/rotation = Quaternion(-0.0395815, 0.00583959, 0.0731061, 0.996521)
+bones/114/rotation = Quaternion(-0.0414173, 0.00661838, 0.086647, 0.995356)
 bones/114/scale = Vector3(1, 1, 1)
 bones/114/scale = Vector3(1, 1, 1)
-bones/115/rotation = Quaternion(-0.0126762, 0.00575698, 0.145181, 0.989307)
+bones/115/rotation = Quaternion(-0.00536357, 0.00718538, 0.142023, 0.989823)
 bones/115/scale = Vector3(1, 1, 1)
 bones/116/rotation = Quaternion(0.397645, 0.504989, 0.712315, -0.281907)
 bones/115/scale = Vector3(1, 1, 1)
 bones/116/rotation = Quaternion(0.397645, 0.504989, 0.712315, -0.281907)
-bones/118/rotation = Quaternion(-0.222662, -0.00423506, -0.00140778, 0.974886)
+bones/118/rotation = Quaternion(-0.222807, -0.00352195, 0.00194919, 0.974854)
 bones/118/scale = Vector3(1, 1, 1)
 bones/119/rotation = Quaternion(6.16402e-08, 0.577417, 0.81645, 4.35937e-08)
 bones/119/scale = Vector3(1, 0.999999, 1)
 bones/118/scale = Vector3(1, 1, 1)
 bones/119/rotation = Quaternion(6.16402e-08, 0.577417, 0.81645, 4.35937e-08)
 bones/119/scale = Vector3(1, 0.999999, 1)
-bones/120/rotation = Quaternion(-0.14507, 7.98288e-05, 0.00162851, 0.98942)
-bones/121/rotation = Quaternion(-0.143841, -1.907e-05, -0.000302621, 0.989601)
+bones/120/rotation = Quaternion(-0.139363, -0.000293258, -0.00166095, 0.99024)
+bones/121/rotation = Quaternion(-0.146979, 4.24879e-05, 0.000188893, 0.98914)
 bones/121/scale = Vector3(1, 1, 1)
 bones/122/rotation = Quaternion(0.575312, -0.413999, -0.566364, -0.420539)
 bones/121/scale = Vector3(1, 1, 1)
 bones/122/rotation = Quaternion(0.575312, -0.413999, -0.566364, -0.420539)
-bones/123/rotation = Quaternion(-0.259164, 0.000940819, 0.000974511, 0.965832)
+bones/123/rotation = Quaternion(-0.25348, 9.18025e-05, -0.00223405, 0.967338)
 bones/123/scale = Vector3(1, 1, 1)
 bones/123/scale = Vector3(1, 1, 1)
-bones/124/rotation = Quaternion(-0.187379, 0.00152879, 0.00097465, 0.982286)
+bones/124/rotation = Quaternion(-0.187923, 0.00119816, -0.000843786, 0.982183)
 bones/125/rotation = Quaternion(0.897883, -0.391856, 0.0802525, -0.183887)
 bones/125/scale = Vector3(1, 1, 1)
 bones/126/scale = Vector3(1, 1, 1)
 bones/125/rotation = Quaternion(0.897883, -0.391856, 0.0802525, -0.183887)
 bones/125/scale = Vector3(1, 1, 1)
 bones/126/scale = Vector3(1, 1, 1)
-bones/127/rotation = Quaternion(-0.0514145, -0.00549075, -0.0721481, 0.996053)
-bones/128/rotation = Quaternion(-0.054287, -0.00554829, -0.085558, 0.994838)
+bones/127/rotation = Quaternion(-0.0392316, -0.00619309, -0.078504, 0.996122)
+bones/128/rotation = Quaternion(-0.0413287, -0.00690274, -0.0923617, 0.994844)
 bones/128/scale = Vector3(1, 1, 1)
 bones/128/scale = Vector3(1, 1, 1)
-bones/129/rotation = Quaternion(-0.0121287, -0.00451661, -0.111563, 0.993673)
-bones/130/position = Vector3(-0.0309692, 0.951593, -0.107306)
-bones/130/rotation = Quaternion(-0.109661, -0.791773, -0.386729, 0.459903)
-bones/131/position = Vector3(-0.0309692, 0.951593, -0.107306)
-bones/131/rotation = Quaternion(-0.0956655, 0.728984, 0.329598, 0.59228)
+bones/129/rotation = Quaternion(-0.0067314, -0.00538064, -0.114055, 0.993437)
+bones/130/position = Vector3(-0.0334491, 0.952181, -0.107531)
+bones/130/rotation = Quaternion(-0.1058, -0.787275, -0.388458, 0.467017)
+bones/131/position = Vector3(-0.0334491, 0.952181, -0.107531)
+bones/131/rotation = Quaternion(-0.0936178, 0.730217, 0.336965, 0.586918)
 bones/131/scale = Vector3(1, 1, 1)
 bones/131/scale = Vector3(1, 1, 1)
-bones/132/position = Vector3(0.0865793, 0.918381, -0.0836216)
-bones/132/rotation = Quaternion(-0.761974, -0.0152609, -0.0812267, 0.642313)
-bones/133/position = Vector3(-0.154381, 0.938318, -0.116556)
-bones/133/rotation = Quaternion(-0.762044, -0.0151902, -0.0811401, 0.642242)
-bones/134/position = Vector3(-0.0310684, 0.899671, 0.084268)
-bones/134/rotation = Quaternion(0.997518, -0.0193941, 0.0660711, 0.0147313)
-bones/135/rotation = Quaternion(0.0100895, -9.79479e-05, -0.0132324, 0.999862)
-bones/136/rotation = Quaternion(0.00198149, -1.44948e-06, -0.00147437, 0.999997)
-bones/137/position = Vector3(-0.0902654, 0.904554, 0.0760787)
-bones/137/rotation = Quaternion(0.997519, -0.0193963, 0.0660658, 0.0146976)
-bones/138/rotation = Quaternion(0.0105128, -0.000102277, -0.0132305, 0.999857)
-bones/139/rotation = Quaternion(0.000586085, -1.78109e-06, -0.00130128, 0.999999)
-bones/140/position = Vector3(-0.057591, 0.901805, 0.0575946)
-bones/140/rotation = Quaternion(-0.0176184, 0.628308, 0.774791, 0.0679537)
-bones/141/rotation = Quaternion(-0.289445, -0.00837412, 0.0281513, 0.956744)
-bones/142/rotation = Quaternion(-0.15605, -0.00227674, 0.016879, 0.987602)
-bones/143/rotation = Quaternion(-0.0724405, -0.000543609, 0.00953061, 0.997327)
-bones/144/rotation = Quaternion(-0.0323269, -0.000121365, 0.00408967, 0.999469)
-bones/145/position = Vector3(0.0954467, 0.913536, -0.052482)
-bones/145/rotation = Quaternion(0.977199, 0.123074, 0.0519422, 0.165033)
-bones/145/scale = Vector3(1.00728, 0.985604, 1.00728)
-bones/146/rotation = Quaternion(-2.91762e-08, -0.0742692, 2.99226e-08, 0.997238)
-bones/147/rotation = Quaternion(0.16808, -0.0748194, 0.0125701, 0.98285)
-bones/147/scale = Vector3(1.00031, 0.997275, 1.0025)
-bones/148/rotation = Quaternion(3.6765e-08, -0.00508533, -2.58464e-08, 0.999987)
-bones/149/rotation = Quaternion(-0.471317, -0.005569, 0.0867902, 0.877666)
-bones/149/scale = Vector3(0.993631, 0.998612, 1.00803)
-bones/150/rotation = Quaternion(2.4767e-05, 0.965803, -0.259276, -0.000225157)
+bones/132/position = Vector3(0.0847623, 0.919643, -0.0856495)
+bones/132/rotation = Quaternion(-0.758838, -0.0140803, -0.0734941, 0.646967)
+bones/133/position = Vector3(-0.156814, 0.937855, -0.115372)
+bones/133/rotation = Quaternion(-0.758712, -0.0140905, -0.0734868, 0.647115)
+bones/134/position = Vector3(-0.0306435, 0.898097, 0.0834619)
+bones/134/rotation = Quaternion(0.997954, -0.020018, 0.0599397, 0.00976449)
+bones/135/rotation = Quaternion(0.0107023, -9.79473e-05, -0.0101516, 0.999891)
+bones/136/rotation = Quaternion(0.00139564, -1.4513e-06, -0.00149611, 0.999998)
+bones/137/position = Vector3(-0.0900429, 0.902532, 0.0761356)
+bones/137/rotation = Quaternion(0.99796, -0.019958, 0.059959, 0.00906081)
+bones/138/rotation = Quaternion(0.0105392, -0.000102289, -0.00993159, 0.999895)
+bones/139/rotation = Quaternion(0.00201703, -1.78525e-06, -0.00139717, 0.999997)
+bones/140/position = Vector3(-0.0575837, 0.900297, 0.057252)
+bones/140/rotation = Quaternion(-0.016122, 0.624339, 0.778564, 0.0614787)
+bones/141/rotation = Quaternion(-0.289881, -0.00682847, 0.0220391, 0.956785)
+bones/142/rotation = Quaternion(-0.15722, -0.00227524, 0.0134875, 0.987469)
+bones/143/rotation = Quaternion(-0.0729062, -0.000543607, 0.0054352, 0.997324)
+bones/144/rotation = Quaternion(-0.0336155, -0.000121362, 0.00248277, 0.999432)
+bones/145/position = Vector3(0.0940114, 0.914672, -0.0546842)
+bones/145/rotation = Quaternion(0.977893, 0.12247, 0.0475193, 0.162691)
+bones/145/scale = Vector3(1.00698, 0.98618, 1.00698)
+bones/146/rotation = Quaternion(-1.61789e-08, -0.0732116, -2.27142e-09, 0.997316)
+bones/147/rotation = Quaternion(0.16, -0.0734391, 0.0117358, 0.984312)
+bones/147/scale = Vector3(1.00031, 0.997262, 1.00252)
+bones/148/rotation = Quaternion(1.81237e-08, -0.00442741, 3.40051e-08, 0.99999)
+bones/149/rotation = Quaternion(-0.467783, -0.00484397, 0.0880531, 0.879433)
+bones/149/scale = Vector3(0.993591, 0.9987, 1.00798)
+bones/150/rotation = Quaternion(2.46375e-05, 0.965725, -0.259567, -0.000225143)
 bones/150/scale = Vector3(0.99967, 1.00041, 0.999919)
 bones/150/scale = Vector3(0.99967, 1.00041, 0.999919)
-bones/151/position = Vector3(-0.171853, 0.935682, -0.0890468)
-bones/151/rotation = Quaternion(0.995527, 0.0705735, 0.0625205, 0.00604707)
-bones/151/scale = Vector3(1.00489, 0.990294, 1.00489)
-bones/152/rotation = Quaternion(8.62779e-10, 0.0380266, 1.96343e-09, 0.999277)
-bones/153/rotation = Quaternion(0.13632, 0.0367301, -0.00499539, 0.989971)
-bones/153/scale = Vector3(1.00025, 0.99826, 1.00152)
-bones/154/rotation = Quaternion(-5.68689e-08, 0.0121986, 1.98656e-08, 0.999926)
-bones/155/rotation = Quaternion(-0.605744, 0.0123536, 0.0756436, 0.791959)
-bones/155/scale = Vector3(0.995141, 0.995493, 1.00947)
-bones/156/rotation = Quaternion(0.000118064, 0.95988, -0.280411, 0.000185176)
+bones/151/position = Vector3(-0.173928, 0.934751, -0.0876868)
+bones/151/rotation = Quaternion(0.995786, 0.071836, 0.0566153, 0.00673535)
+bones/151/scale = Vector3(1.00496, 0.990146, 1.00496)
+bones/152/rotation = Quaternion(1.47285e-08, 0.0376498, 8.2278e-09, 0.999291)
+bones/153/rotation = Quaternion(0.138725, 0.0376484, -0.00521122, 0.989601)
+bones/153/scale = Vector3(1.00025, 0.998336, 1.00145)
+bones/154/rotation = Quaternion(-6.98089e-08, 0.0139087, 2.06132e-08, 0.999903)
+bones/155/rotation = Quaternion(-0.607462, 0.0140594, 0.0772356, 0.79046)
+bones/155/scale = Vector3(0.995047, 0.995391, 1.00967)
+bones/156/rotation = Quaternion(0.000119087, 0.959715, -0.280975, 0.000184867)
 bones/156/scale = Vector3(0.999826, 1.0002, 0.999978)
 bones/156/scale = Vector3(0.999826, 1.0002, 0.999978)
-bones/157/position = Vector3(0.0309402, 1.54704, -0.0645917)
-bones/157/rotation = Quaternion(-0.507462, -0.508762, -0.474596, 0.508334)
-bones/158/position = Vector3(0.264242, 1.53721, -0.074372)
-bones/158/rotation = Quaternion(-0.246812, -0.134176, 0.939727, -0.194919)
-bones/158/scale = Vector3(1.0006, 0.998802, 1.0006)
-bones/159/rotation = Quaternion(6.78934e-09, 0.023431, 7.70126e-08, 0.999725)
+bones/157/position = Vector3(0.0236747, 1.54763, -0.0587545)
+bones/157/rotation = Quaternion(-0.505543, -0.456996, -0.485099, 0.547961)
+bones/158/position = Vector3(0.255039, 1.53433, -0.0883859)
+bones/158/rotation = Quaternion(-0.241216, -0.108833, 0.947166, -0.181238)
+bones/158/scale = Vector3(1.00019, 0.999611, 1.00019)
+bones/159/rotation = Quaternion(3.22115e-08, 0.00313075, 3.37006e-08, 0.999995)
 bones/159/scale = Vector3(0.999999, 1, 1)
 bones/159/scale = Vector3(0.999999, 1, 1)
-bones/160/rotation = Quaternion(0.384489, 0.0237718, -0.00990415, 0.92277)
-bones/160/scale = Vector3(1.00003, 0.998584, 1.00139)
-bones/161/rotation = Quaternion(1.16154e-07, 0.0228609, -3.21839e-08, 0.999739)
-bones/162/rotation = Quaternion(0.0304526, 0.0283363, -0.0106711, 0.999078)
-bones/162/scale = Vector3(0.999356, 1.00128, 0.999366)
+bones/160/rotation = Quaternion(0.322152, 0.00313088, -0.00106479, 0.946682)
+bones/160/scale = Vector3(1.00001, 0.999146, 1.00085)
+bones/161/rotation = Quaternion(2.95905e-08, 0.00665094, 1.25159e-08, 0.999978)
+bones/162/rotation = Quaternion(0.0735189, 0.0118944, -0.0449221, 0.996211)
+bones/162/scale = Vector3(0.999828, 1.00034, 0.99983)
 bones/163/position = Vector3(-0.0197298, 0.120467, 0.0346734)
 bones/163/rotation = Quaternion(0.0718441, 0.386481, 0.0423991, 0.918517)
 bones/164/rotation = Quaternion(0.112742, -6.40415e-05, 0.000564981, 0.993624)
 bones/163/position = Vector3(-0.0197298, 0.120467, 0.0346734)
 bones/163/rotation = Quaternion(0.0718441, 0.386481, 0.0423991, 0.918517)
 bones/164/rotation = Quaternion(0.112742, -6.40415e-05, 0.000564981, 0.993624)
@@ -582,18 +582,18 @@ bones/179/rotation = Quaternion(0.120863, 0.000593449, -0.00487831, 0.992657)
 bones/179/scale = Vector3(1, 1, 1)
 bones/180/rotation = Quaternion(-0.0363518, -7.20591e-06, 0.00959009, 0.999293)
 bones/181/rotation = Quaternion(-0.0699756, 0.498239, -0.128393, 0.854621)
 bones/179/scale = Vector3(1, 1, 1)
 bones/180/rotation = Quaternion(-0.0363518, -7.20591e-06, 0.00959009, 0.999293)
 bones/181/rotation = Quaternion(-0.0699756, 0.498239, -0.128393, 0.854621)
-bones/182/position = Vector3(-0.00520391, 1.55003, -0.0695138)
-bones/182/rotation = Quaternion(-0.663681, 0.409085, 0.442055, 0.443582)
-bones/183/position = Vector3(-0.218339, 1.46942, -0.121178)
-bones/183/rotation = Quaternion(0.127982, -0.119031, 0.978115, 0.112884)
-bones/183/scale = Vector3(0.999049, 1.0019, 0.999049)
-bones/184/rotation = Quaternion(4.54167e-08, 0.0165822, 8.94388e-08, 0.999863)
+bones/182/position = Vector3(-0.0122783, 1.55028, -0.0636533)
+bones/182/rotation = Quaternion(-0.651395, 0.390252, 0.436529, 0.482525)
+bones/183/position = Vector3(-0.224953, 1.47934, -0.130026)
+bones/183/rotation = Quaternion(0.11304, -0.131997, 0.977361, 0.12068)
+bones/183/scale = Vector3(0.999496, 1.00101, 0.999496)
+bones/184/rotation = Quaternion(-1.43556e-07, 0.0293739, -9.3858e-08, 0.999569)
 bones/184/scale = Vector3(1, 1, 1)
 bones/184/scale = Vector3(1, 1, 1)
-bones/185/rotation = Quaternion(0.319208, 0.0166682, -0.0056169, 0.947521)
-bones/185/scale = Vector3(0.999958, 1.00075, 0.999292)
-bones/186/rotation = Quaternion(9.24581e-08, 0.0255189, -1.06448e-07, 0.999674)
-bones/187/rotation = Quaternion(-0.0616937, 0.0204298, 0.081947, 0.994516)
-bones/187/scale = Vector3(1.00095, 0.99807, 1.00099)
+bones/185/rotation = Quaternion(0.32788, 0.0293724, -0.0102015, 0.944207)
+bones/185/scale = Vector3(0.999955, 1.00075, 0.999293)
+bones/186/rotation = Quaternion(1.20083e-07, 0.0346823, -4.40695e-08, 0.999398)
+bones/187/rotation = Quaternion(-0.0645372, 0.0294331, 0.0555323, 0.995934)
+bones/187/scale = Vector3(1.00052, 0.998966, 1.00052)
 bones/188/position = Vector3(0.0197299, 0.120467, 0.0346735)
 bones/188/rotation = Quaternion(0.0718441, -0.386481, -0.0423991, 0.918517)
 bones/189/rotation = Quaternion(0.112742, 6.40372e-05, -0.000564644, 0.993624)
 bones/188/position = Vector3(0.0197299, 0.120467, 0.0346735)
 bones/188/rotation = Quaternion(0.0718441, -0.386481, -0.0423991, 0.918517)
 bones/189/rotation = Quaternion(0.112742, 6.40372e-05, -0.000564644, 0.993624)
@@ -628,16 +628,16 @@ bones/204/rotation = Quaternion(0.120863, -0.000593412, 0.00487826, 0.992657)
 bones/204/scale = Vector3(1, 1, 1)
 bones/205/rotation = Quaternion(-0.0363513, 7.21743e-06, -0.00959023, 0.999293)
 bones/206/rotation = Quaternion(-0.0699756, -0.498239, 0.128393, 0.854621)
 bones/204/scale = Vector3(1, 1, 1)
 bones/205/rotation = Quaternion(-0.0363513, 7.21743e-06, -0.00959023, 0.999293)
 bones/206/rotation = Quaternion(-0.0699756, -0.498239, 0.128393, 0.854621)
-bones/207/position = Vector3(0.110959, 1.4017, 0.00401887)
-bones/207/rotation = Quaternion(-0.0174562, 0.678729, 0.730583, 0.0726013)
+bones/207/position = Vector3(0.105998, 1.40221, 0.00704497)
+bones/207/rotation = Quaternion(-0.0156378, 0.674981, 0.734776, 0.0652649)
 bones/207/scale = Vector3(1, 1, 1)
 bones/207/scale = Vector3(1, 1, 1)
-bones/208/position = Vector3(-0.122881, 1.42102, -0.027914)
-bones/208/rotation = Quaternion(-0.0176228, 0.67884, 0.730461, 0.0727497)
+bones/208/position = Vector3(-0.128581, 1.41982, -0.0216445)
+bones/208/rotation = Quaternion(-0.0156217, 0.675223, 0.734555, 0.0652578)
 bones/208/scale = Vector3(1, 1, 1)
 bones/208/scale = Vector3(1, 1, 1)
-bones/209/position = Vector3(0.186903, 1.36748, -0.136655)
-bones/209/rotation = Quaternion(-0.726681, -0.016337, -0.0772309, 0.682425)
-bones/210/position = Vector3(-0.163115, 1.39643, -0.184448)
-bones/210/rotation = Quaternion(-0.726681, -0.016337, -0.0772309, 0.682425)
+bones/209/position = Vector3(0.180494, 1.37024, -0.13474)
+bones/209/rotation = Quaternion(-0.723174, -0.0150759, -0.0698618, 0.686958)
+bones/210/position = Vector3(-0.170522, 1.39662, -0.177935)
+bones/210/rotation = Quaternion(-0.723174, -0.0150759, -0.0698618, 0.686958)
 script = ExtResource("7_4sh2k")
 enable_jigglebones = false
 jigglebone_configs = Array[ExtResource("8_ptrfv")]([SubResource("Resource_2rjdy"), SubResource("Resource_7y4fq"), SubResource("Resource_kfq4j"), SubResource("Resource_n2mxm"), SubResource("Resource_orlqw"), SubResource("Resource_65olk")])
 script = ExtResource("7_4sh2k")
 enable_jigglebones = false
 jigglebone_configs = Array[ExtResource("8_ptrfv")]([SubResource("Resource_2rjdy"), SubResource("Resource_7y4fq"), SubResource("Resource_kfq4j"), SubResource("Resource_n2mxm"), SubResource("Resource_orlqw"), SubResource("Resource_65olk")])
@@ -662,7 +662,6 @@ active = false
 influence = 0.0
 script = ExtResource("7_h7lx0")
 bone = "DEF-spine.006"
 influence = 0.0
 script = ExtResource("7_h7lx0")
 bone = "DEF-spine.006"
-target = Vector3(1.07, 1.61, 2)
 influence_lerp_seconds = 3.0
 rotation_lerp_weight = 0.01
 
 influence_lerp_seconds = 3.0
 rotation_lerp_weight = 0.01
 
@@ -686,7 +685,6 @@ active = false
 influence = 1.0
 script = ExtResource("9_00p5l")
 bone = "DEF-eye.L"
 influence = 1.0
 script = ExtResource("9_00p5l")
 bone = "DEF-eye.L"
-target = Vector3(0, 1, 2)
 
 [node name="track_eye_R" type="SkeletonModifier3D" parent="base/rig/Skeleton3D" index="2"]
 _import_path = NodePath("")
 
 [node name="track_eye_R" type="SkeletonModifier3D" parent="base/rig/Skeleton3D" index="2"]
 _import_path = NodePath("")
@@ -708,7 +706,6 @@ active = false
 influence = 1.0
 script = ExtResource("9_00p5l")
 bone = "DEF-eye.R"
 influence = 1.0
 script = ExtResource("9_00p5l")
 bone = "DEF-eye.R"
-target = Vector3(0, 1, 2)
 
 [node name="horns" parent="base/rig/Skeleton3D" index="11"]
 transform = Transform3D(0.991343, 0.00187152, -0.131286, -0.0283792, 0.979318, -0.200331, 0.128196, 0.202322, 0.970893, -0.0223006, -0.0126594, -0.397749)
 
 [node name="horns" parent="base/rig/Skeleton3D" index="11"]
 transform = Transform3D(0.991343, 0.00187152, -0.131286, -0.0283792, 0.979318, -0.200331, 0.128196, 0.202322, 0.970893, -0.0223006, -0.0126594, -0.397749)