X-Git-Url: http://git.purplebirdman.com/william-skin.git/blobdiff_plain/c84055968443414e67caa33c3a823094ed29365b..HEAD:/william.gd diff --git a/william.gd b/william.gd index d0d86be..24dcd5b 100644 --- a/william.gd +++ b/william.gd @@ -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