20 lines
686 B
GDScript
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
|