generated from krampus/template-godot4
Using noise sampling for correlated randomized pitch in grunk collection sfx
All checks were successful
linting & formatting / build (push) Successful in 33s
All checks were successful
linting & formatting / build (push) Successful in 33s
This commit is contained in:
parent
bbb8a1e231
commit
d9e5b72041
@ -9,10 +9,13 @@ extends AudioStreamPlayer
|
|||||||
|
|
||||||
@export var counter_decay := 40.0
|
@export var counter_decay := 40.0
|
||||||
|
|
||||||
|
@export var pitch_variance := 0.15
|
||||||
|
@export var noise_rate := 0.01
|
||||||
|
@export var noise: Noise
|
||||||
|
|
||||||
var _counter := 0.0
|
var _counter := 0.0
|
||||||
|
|
||||||
@onready var cooldown: Timer = %Cooldown
|
@onready var cooldown: Timer = %Cooldown
|
||||||
@onready var debug_meter: ProgressBar = %DebugMeter
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -26,9 +29,18 @@ func on_grunk_collected(delta: float) -> void:
|
|||||||
delta -= _counter
|
delta -= _counter
|
||||||
_counter = interval
|
_counter = interval
|
||||||
var delay := randfn(delay_mean, delay_st_dev)
|
var delay := randfn(delay_mean, delay_st_dev)
|
||||||
get_tree().create_timer(delay).timeout.connect(play)
|
get_tree().create_timer(delay).timeout.connect(play_random)
|
||||||
_counter -= delta
|
_counter -= delta
|
||||||
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
_counter = move_toward(_counter, 0.0, counter_decay * delta)
|
_counter = move_toward(_counter, 0.0, counter_decay * delta)
|
||||||
|
|
||||||
|
|
||||||
|
func play_random() -> void:
|
||||||
|
var noise_sample := clampf(
|
||||||
|
2 * noise.get_noise_1d(Engine.get_process_frames() * noise_rate), -1, 1
|
||||||
|
)
|
||||||
|
pitch_scale = 1.0 + (pitch_variance * noise_sample)
|
||||||
|
print_debug("noise: ", noise_sample)
|
||||||
|
play()
|
||||||
|
@ -3,15 +3,14 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://cof6pg6yadsac" path="res://assets/sfx/tools/collect5.wav" id="1_y7it3"]
|
[ext_resource type="AudioStream" uid="uid://cof6pg6yadsac" path="res://assets/sfx/tools/collect5.wav" id="1_y7it3"]
|
||||||
[ext_resource type="Script" uid="uid://dwt66u7ua1to4" path="res://src/player/grunk_collection_sfx/grunk_collection_sfx.gd" id="5_ihwko"]
|
[ext_resource type="Script" uid="uid://dwt66u7ua1to4" path="res://src/player/grunk_collection_sfx/grunk_collection_sfx.gd" id="5_ihwko"]
|
||||||
|
|
||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_y7it3"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_y7it3"]
|
||||||
random_pitch = 1.2
|
|
||||||
streams_count = 1
|
|
||||||
stream_0/stream = ExtResource("1_y7it3")
|
|
||||||
|
|
||||||
[node name="GrunkCollectionSFX" type="AudioStreamPlayer"]
|
[node name="GrunkCollectionSFX" type="AudioStreamPlayer"]
|
||||||
stream = SubResource("AudioStreamRandomizer_y7it3")
|
stream = ExtResource("1_y7it3")
|
||||||
volume_db = -6.0
|
volume_db = -6.0
|
||||||
script = ExtResource("5_ihwko")
|
script = ExtResource("5_ihwko")
|
||||||
|
noise_rate = 1.0
|
||||||
|
noise = SubResource("FastNoiseLite_y7it3")
|
||||||
|
|
||||||
[node name="Cooldown" type="Timer" parent="."]
|
[node name="Cooldown" type="Timer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user