]> Untitled Git - william-skin.git/blobdiff - william.gd
Added export config options for web, osx, windows, linux
[william-skin.git] / william.gd
index d0d86bef706669a86bb14795d1092d3f0aa2b5ef..24dcd5b0170d540b26a7a447f889e7f97af47459 100644 (file)
@@ -3,29 +3,28 @@ extends Node3D
 
 
 @export_category("Tracking")
-@export var head_influence: float = 0.5
+@export var head_influence: float = 0.6
 @export var eye_influence: float = 1.0
 
 
 @onready var _animation_tree: AnimationTree = $AnimationTree
-@onready var _head: TrackingBone3D_head = $base/rig/Skeleton3D/head
-@onready var _eye_L: TrackingBone3D = $base/rig/Skeleton3D/eye_L
-@onready var _eye_R: TrackingBone3D = $base/rig/Skeleton3D/eye_R
+@onready var _head: TrackingBone3D_head = $base/rig/Skeleton3D/track_head
+@onready var _eye_L: TrackingBone3D = $base/rig/Skeleton3D/track_eye_L
+@onready var _eye_R: TrackingBone3D = $base/rig/Skeleton3D/track_eye_R
+@onready var _default_target = $defaultTrackingTarget
 
 
-# TODO: eye tracking
-func set_eyes_target(target: Vector3) -> void:
+func set_eyes_target(target: Node3D) -> void:
        for eye in [ _eye_L, _eye_R ]:
-               eye.target = target
-               eye.active = target != Vector3.ZERO
+               eye.target = target if target != null else _default_target
+               eye.active = 1
                eye.influence = eye_influence
 
 
-# TODO: head tracking
-func set_head_target(target: Vector3) -> void:
-       _head.target = target
-       _head.active = target != Vector3.ZERO
-       _head.influence = head_influence
+func set_head_target(target: Node3D) -> void:
+       _head.target = target if target != null else _default_target
+       _head.active = 1
+       _head.tween_influence(0.0 if target == null else head_influence)
 
 
 # manage talking and expressions