Audio system rework

This commit is contained in:
Rendo 2025-12-12 00:13:22 +05:00
commit 347a990421
21 changed files with 173 additions and 29 deletions

View file

@ -43,16 +43,17 @@ one_shot = true
[node name="BeepAudio" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("3_0eiu1")
attenuation_model = 1
max_distance = 200.0
attenuation_model = 3
unit_size = 50.0
bus = &"GameplayMain"
attenuation_filter_cutoff_hz = 10000.0
attenuation_filter_cutoff_hz = 20500.0
script = ExtResource("4_rcpur")
metadata/_custom_type_script = "uid://da0xv360va3b3"
[node name="DefuseAudio" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("5_rcpur")
max_distance = 100.0
unit_size = 50.0
max_distance = 200.0
bus = &"GameplayMain"
script = ExtResource("4_rcpur")
metadata/_custom_type_script = "uid://da0xv360va3b3"
@ -60,6 +61,8 @@ metadata/_custom_type_script = "uid://da0xv360va3b3"
[node name="BoomAudio" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("6_uibus")
attenuation_model = 3
volume_db = 20.0
unit_size = 100.0
max_distance = 500.0
bus = &"GameplayMisc"
script = ExtResource("4_rcpur")

View file

@ -1,5 +1,11 @@
extends CharacterBody3D
func _ready() -> void:
if is_multiplayer_authority():
await get_tree().process_frame
await get_tree().process_frame
$Idle.multiplayer_play()
func _physics_process(delta: float) -> void:
if is_multiplayer_authority() == false:
return
@ -17,3 +23,4 @@ func _physics_process(delta: float) -> void:
else:
var normal = collision.get_normal()
velocity = velocity.bounce(normal) * 0.5
$MultiplayerAudio3D.multiplayer_play()

View file

@ -1,6 +1,9 @@
[gd_scene load_steps=5 format=3 uid="uid://b6qahd6q60js7"]
[gd_scene load_steps=8 format=3 uid="uid://b6qahd6q60js7"]
[ext_resource type="Script" uid="uid://y1s64ppporww" path="res://weapons/molikman/molik/molik.gd" id="1_aqokr"]
[ext_resource type="AudioStream" uid="uid://dm52cfih0gboj" path="res://audio/molik_bounce.ogg" id="2_fb3en"]
[ext_resource type="Script" uid="uid://da0xv360va3b3" path="res://audio/audio_system/multiplayer_audio_3d.gd" id="3_jwbhs"]
[ext_resource type="AudioStream" uid="uid://blnblkd6eoldv" path="res://audio/molik_idle.ogg" id="4_jwbhs"]
[sub_resource type="SphereMesh" id="SphereMesh_fwcyt"]
radius = 0.05
@ -26,3 +29,20 @@ shape = SubResource("SphereShape3D_aqokr")
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_6ic6f")
[node name="MultiplayerAudio3D" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("2_fb3en")
unit_size = 20.0
max_distance = 60.0
bus = &"GameplayMain"
attenuation_filter_cutoff_hz = 20500.0
script = ExtResource("3_jwbhs")
metadata/_custom_type_script = "uid://da0xv360va3b3"
[node name="Idle" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("4_jwbhs")
unit_size = 15.0
max_distance = 60.0
bus = &"GameplayMain"
script = ExtResource("3_jwbhs")
metadata/_custom_type_script = "uid://da0xv360va3b3"

View file

@ -18,7 +18,7 @@ script = ExtResource("1_e53aq")
animation_prefix = &"baked_sp_"
registry_entry = &"mm_molik"
visibility_target = &"sp"
max_ammo = 3
max_ammo = 1
ammo_mags = 0
speed_modifier = 0.9
can_be_previous = false

View file

@ -6,8 +6,15 @@ extends Area3D
var damage_targets: Array[Player]
func _ready() -> void:
if multiplayer.is_server() == false:
return
body_entered.connect(on_body_entered)
body_exited.connect(on_body_exited)
await get_tree().process_frame
await get_tree().process_frame
$Idle.multiplayer_play()
$MultiplayerAudio3D.multiplayer_play()
func damage():
for target in damage_targets:

View file

@ -1,9 +1,12 @@
[gd_scene load_steps=12 format=3 uid="uid://l4t1mflutm3t"]
[gd_scene load_steps=15 format=3 uid="uid://l4t1mflutm3t"]
[ext_resource type="Texture2D" uid="uid://bmnqvop2dy5pm" path="res://textures/prototype_yellow_256x256.png" id="1_hr7p8"]
[ext_resource type="Script" uid="uid://bo0ij4miuksua" path="res://weapons/molikman/molik/molikman_molotov_fire.gd" id="1_qokq0"]
[ext_resource type="Texture2D" uid="uid://b8aqstr5es5x4" path="res://textures/prototype_orange_256x256.png" id="2_qokq0"]
[ext_resource type="Script" uid="uid://fdikw4xjemdk" path="res://weapons/molikman/molik/molotov_animation.gd" id="4_6lhod"]
[ext_resource type="AudioStream" uid="uid://b7sxkxs7vn4d" path="res://audio/molik_land.ogg" id="5_cq8ds"]
[ext_resource type="Script" uid="uid://da0xv360va3b3" path="res://audio/audio_system/multiplayer_audio_3d.gd" id="6_apqju"]
[ext_resource type="AudioStream" uid="uid://blnblkd6eoldv" path="res://audio/molik_idle.ogg" id="7_apqju"]
[sub_resource type="BoxShape3D" id="BoxShape3D_ykxjp"]
resource_local_to_scene = true
@ -85,5 +88,22 @@ gpu_particles = NodePath("../GPUParticles3D")
collision_shape = NodePath("../CollisionShape3D")
expansion_mult = 1.333
[node name="MultiplayerAudio3D" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("5_cq8ds")
unit_size = 20.0
max_distance = 60.0
bus = &"GameplayMain"
attenuation_filter_cutoff_hz = 20500.0
script = ExtResource("6_apqju")
metadata/_custom_type_script = "uid://da0xv360va3b3"
[node name="Idle" type="AudioStreamPlayer3D" parent="."]
stream = ExtResource("7_apqju")
unit_size = 15.0
max_distance = 60.0
bus = &"GameplayMain"
script = ExtResource("6_apqju")
metadata/_custom_type_script = "uid://da0xv360va3b3"
[connection signal="timeout" from="DieTimer" to="MolotovAnimation" method="die"]
[connection signal="timeout" from="DamageTimer" to="." method="damage"]