First-Person/scenes/player/head.gd
2025-12-06 15:43:53 +09:00

20 lines
686 B
GDScript

extends Node3D
@export var headbob_frequency = 3.5
@export var headbob_amplitude = 0.01
var _headbob_time:float
func _physics_process(delta: float) -> void:
var headbob = _head_bob(delta) as Vector3
%eyes.position = headbob
func _head_bob(delta)->Vector3:
var headbob_vector:Vector3
var time_multipliers = owner.spedometer * float(owner.is_on_floor())
var speed_normal = owner.spedometer/owner.mult_speed
_headbob_time += delta * time_multipliers
headbob_vector.y = cos(_headbob_time*headbob_frequency)*headbob_amplitude
headbob_vector.x = sin(_headbob_time*headbob_frequency/2)*headbob_amplitude
var result = Vector3.ZERO.lerp(headbob_vector, speed_normal)
return result