add player hopping sfx

This commit is contained in:
Teatov 2025-08-08 02:05:43 +10:00
parent f1666b3085
commit 534b81e1ba
13 changed files with 155 additions and 5 deletions

BIN
assets/sfx/player/move/move_1.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://86cbncjjh15f"
path="res://.godot/imported/move_1.wav-56d884599c9cde94cc568eebc198ee3b.sample"
[deps]
source_file="res://assets/sfx/player/move/move_1.wav"
dest_files=["res://.godot/imported/move_1.wav-56d884599c9cde94cc568eebc198ee3b.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
assets/sfx/player/move/move_2.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://daqhk1ae8oocx"
path="res://.godot/imported/move_2.wav-9b2ccb06ce79e3adc46b87f25810f7b7.sample"
[deps]
source_file="res://assets/sfx/player/move/move_2.wav"
dest_files=["res://.godot/imported/move_2.wav-9b2ccb06ce79e3adc46b87f25810f7b7.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
assets/sfx/player/move/move_3.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c02pnx1fm8bqa"
path="res://.godot/imported/move_3.wav-9b07a720ee30a308d65b101571150e05.sample"
[deps]
source_file="res://assets/sfx/player/move/move_3.wav"
dest_files=["res://.godot/imported/move_3.wav-9b07a720ee30a308d65b101571150e05.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
assets/sfx/player/move/move_4.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dmoypbjc535kp"
path="res://.godot/imported/move_4.wav-2bb98dafa59430d4852b755f935f8454.sample"
[deps]
source_file="res://assets/sfx/player/move/move_4.wav"
dest_files=["res://.godot/imported/move_4.wav-2bb98dafa59430d4852b755f935f8454.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View File

@ -30,7 +30,6 @@ _layout_swap_sfx = SubResource("AudioStreamRandomizer_hylia")
[node name="SFXPlayer" type="AudioStreamPlayer3D" parent="."]
stream = SubResource("AudioStreamPolyphonic_3k4ps")
attenuation_model = 3
autoplay = true
bus = &"SFX"
attenuation_filter_cutoff_hz = 20500.0

View File

@ -1,6 +1,18 @@
[gd_scene load_steps=4 format=3 uid="uid://b8gu0udt0ow8t"]
[gd_scene load_steps=10 format=3 uid="uid://b8gu0udt0ow8t"]
[ext_resource type="Script" uid="uid://dmfdlb4ae57qv" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="AudioStream" uid="uid://86cbncjjh15f" path="res://assets/sfx/player/move/move_1.wav" id="2_qhqgy"]
[ext_resource type="AudioStream" uid="uid://daqhk1ae8oocx" path="res://assets/sfx/player/move/move_2.wav" id="3_dqkch"]
[ext_resource type="AudioStream" uid="uid://c02pnx1fm8bqa" path="res://assets/sfx/player/move/move_3.wav" id="4_qlg0r"]
[ext_resource type="AudioStream" uid="uid://dmoypbjc535kp" path="res://assets/sfx/player/move/move_4.wav" id="5_tuyoq"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_qlg0r"]
random_pitch = 1.15
streams_count = 4
stream_0/stream = ExtResource("2_qhqgy")
stream_1/stream = ExtResource("3_dqkch")
stream_2/stream = ExtResource("4_qlg0r")
stream_3/stream = ExtResource("5_tuyoq")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3vyb7"]
metallic_specular = 0.0
@ -9,8 +21,12 @@ metallic_specular = 0.0
material = SubResource("StandardMaterial3D_3vyb7")
size = Vector3(0.6, 0.6, 0.6)
[node name="Player" type="Node3D"]
[sub_resource type="AudioStreamPolyphonic" id="AudioStreamPolyphonic_3vyb7"]
[node name="Player" type="Node3D" node_paths=PackedStringArray("_sfx_player")]
script = ExtResource("1_3vyb7")
_sfx_player = NodePath("SFXPlayer")
_hop_sfx = SubResource("AudioStreamRandomizer_qlg0r")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.3, 0)
@ -19,3 +35,9 @@ mesh = SubResource("BoxMesh_u8vuu")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
transform = Transform3D(0.310767, 0, 0, 0, 0.310767, 0, 0, 0, 0.310767, 0, 0.394854, 0.356113)
mesh = SubResource("BoxMesh_u8vuu")
[node name="SFXPlayer" type="AudioStreamPlayer3D" parent="."]
stream = SubResource("AudioStreamPolyphonic_3vyb7")
attenuation_model = 3
bus = &"SFX"
attenuation_filter_cutoff_hz = 20500.0

View File

@ -56,7 +56,8 @@ var _default_pos: Vector3
var _default_rot: Vector3
var _pos_sod: SecondOrderDynamics
@onready var _polyphonic: AudioStreamPlaybackPolyphonic
var _polyphonic: AudioStreamPlaybackPolyphonic
@onready var _light_energy := _press_light.light_energy
#endregion

View File

@ -48,12 +48,13 @@ var _rot_sod: SecondOrderDynamics
var _queried_keys: Array[GameKey] = []
var _queried_keys_limit: int = 0
var _polyphonic: AudioStreamPlaybackPolyphonic
@onready var _gap_to_size_ratio: float
@onready var _pressing_lean_rad := Vector2(
deg_to_rad(_pressing_lean_deg.x), deg_to_rad(_pressing_lean_deg.y)
)
@onready var _default_rot: Vector3 = _keys_holder.rotation
@onready var _polyphonic: AudioStreamPlaybackPolyphonic
#endregion

View File

@ -3,6 +3,7 @@ class_name Player extends Node3D
#region variables
@export_group("References")
@export var _keyboard: GameKeyboard
@export var _sfx_player: AudioStreamPlayer3D
@export_group("Animation")
@ -10,6 +11,10 @@ class_name Player extends Node3D
@export var _move_duration: float = 0.1
@export var _move_hop_height: float = 1
@export_group("SFX")
@export var _hop_sfx: AudioStream
@export var _hop_sfx_volume: float = 0.4
var _current_key: GameKey
var _starting_keycode: Key = KEY_H
var _rotation: Quaternion
@ -18,6 +23,8 @@ var _move_timer: float
var _is_moving: bool
var _prev_pos: Vector3
var _polyphonic: AudioStreamPlaybackPolyphonic
#endregion
@ -29,6 +36,9 @@ func _ready() -> void:
global_transform = _current_key.player_pos_marker.global_transform
_keyboard.emit_player_current_key_changed(_current_key)
_sfx_player.play()
_polyphonic = _sfx_player.get_stream_playback()
func _process(delta: float) -> void:
_animate(delta)
@ -53,6 +63,7 @@ func _move(game_key: GameKey) -> void:
_current_key = game_key
_keyboard.emit_player_current_key_changed(game_key)
_play_sfx(_hop_sfx, _hop_sfx_volume)
#endregion
@ -98,6 +109,14 @@ func _finish_move(_interrupted: bool) -> void:
#endregion
#region sounds
func _play_sfx(stream: AudioStream, volume_linear: float = 1) -> void:
_polyphonic.play_stream(stream, 0, linear_to_db(volume_linear))
#endregion
#region event handlers
func _on_keyboard_key_pressed(game_key: GameKey) -> void:
if _current_key and _current_key.is_adjacent(game_key):