Grunk alarm shriek SFX

This commit is contained in:
Rob Kelly 2025-04-02 20:09:09 -06:00
parent e79a367277
commit 12a43946f4
12 changed files with 135 additions and 79 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

Binary file not shown.

View File

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

View File

@ -103,6 +103,66 @@ _data = {
} }
point_count = 2 point_count = 2
[sub_resource type="Animation" id="Animation_ta4yu"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Path3D:curve:point_1/position:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Path3D:curve:point_1/position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(-1.4, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/2/type = "bezier"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Path3D:curve:point_1/position:z")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Path3D/GrunkTerminal:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.2618, 1.5708, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Path3D/GrunkTerminal/AudioStreamPlayer3D:playing")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_i4yi7"] [sub_resource type="Animation" id="Animation_i4yi7"]
resource_name = "jangle" resource_name = "jangle"
length = 3.0 length = 3.0
@ -164,66 +224,6 @@ tracks/4/keys = {
"values": [true] "values": [true]
} }
[sub_resource type="Animation" id="Animation_ta4yu"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Path3D:curve:point_1/position:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Path3D:curve:point_1/position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(-1.4, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/2/type = "bezier"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Path3D:curve:point_1/position:z")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Path3D/GrunkTerminal:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.2618, 1.5708, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Path3D/GrunkTerminal/AudioStreamPlayer3D:playing")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fw23o"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_fw23o"]
_data = { _data = {
&"RESET": SubResource("Animation_ta4yu"), &"RESET": SubResource("Animation_ta4yu"),
@ -233,6 +233,21 @@ _data = {
[sub_resource type="BoxShape3D" id="BoxShape3D_nps14"] [sub_resource type="BoxShape3D" id="BoxShape3D_nps14"]
size = Vector3(3, 3, 4) size = Vector3(3, 3, 4)
[sub_resource type="Animation" id="Animation_kkevb"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Door:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, -0.3, 0)]
}
[sub_resource type="Animation" id="Animation_nps14"] [sub_resource type="Animation" id="Animation_nps14"]
resource_name = "open" resource_name = "open"
length = 0.2 length = 0.2
@ -249,21 +264,6 @@ tracks/0/keys = {
"values": [Vector3(0, -0.3, 0), Vector3(0, 2.25, 0)] "values": [Vector3(0, -0.3, 0), Vector3(0, 2.25, 0)]
} }
[sub_resource type="Animation" id="Animation_kkevb"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Door:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, -0.3, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kkevb"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_kkevb"]
_data = { _data = {
&"RESET": SubResource("Animation_kkevb"), &"RESET": SubResource("Animation_kkevb"),
@ -363,7 +363,7 @@ curve = SubResource("Curve3D_ta4yu")
script = ExtResource("13_i4yi7") script = ExtResource("13_i4yi7")
[node name="GrunkTerminal" parent="TerminalCable/Path3D" instance=ExtResource("13_3trrp")] [node name="GrunkTerminal" parent="TerminalCable/Path3D" instance=ExtResource("13_3trrp")]
transform = Transform3D(-4.37114e-08, 0.258819, 0.965926, 0, 0.965926, -0.258819, -1, -1.13134e-08, -4.2222e-08, 0, -1.4, 0) transform = Transform3D(-3.61999e-06, 0.25882, 0.965926, 0, 0.965926, -0.25882, -1, -9.36925e-07, -3.49664e-06, 0, -1.4, 0)
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="TerminalCable/Path3D/GrunkTerminal"] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="TerminalCable/Path3D/GrunkTerminal"]
stream = ExtResource("14_was05") stream = ExtResource("14_was05")

View File

@ -15,6 +15,7 @@ var _busy := false
@onready var pulse_listener_timer: Timer = %PulseListenerTimer @onready var pulse_listener_timer: Timer = %PulseListenerTimer
@onready var animation_player: AnimationPlayer = $FrameSkipper/AlarmMesh/AnimationPlayer @onready var animation_player: AnimationPlayer = $FrameSkipper/AlarmMesh/AnimationPlayer
@onready var bud: MeshInstance3D = $FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud @onready var bud: MeshInstance3D = $FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud
@onready var alarm_sfx: AudioStreamPlayer3D = %AlarmSFX
## Trigger this alarm. ## Trigger this alarm.
@ -25,6 +26,7 @@ func trigger() -> void:
_busy = true _busy = true
Game.manager.raise_alert(ALERT_DELTA) Game.manager.raise_alert(ALERT_DELTA)
animation_player.play("trigger") animation_player.play("trigger")
alarm_sfx.play()
## Pulse this alarm, resetting the pulse countdown until triggering. ## Pulse this alarm, resetting the pulse countdown until triggering.

View File

@ -1,10 +1,11 @@
[gd_scene load_steps=9 format=4 uid="uid://dgeg3kkogm71m"] [gd_scene load_steps=10 format=4 uid="uid://dgeg3kkogm71m"]
[ext_resource type="Script" uid="uid://djb5tabjcvwkt" path="res://src/world/mechanics/alarm/gunk_alarm.gd" id="1_piaxx"] [ext_resource type="Script" uid="uid://djb5tabjcvwkt" path="res://src/world/mechanics/alarm/gunk_alarm.gd" id="1_piaxx"]
[ext_resource type="PackedScene" uid="uid://60ks4l42qxia" path="res://assets/grunk/alarm/alarm.gltf" id="2_6vdvf"] [ext_resource type="PackedScene" uid="uid://60ks4l42qxia" path="res://assets/grunk/alarm/alarm.gltf" id="2_6vdvf"]
[ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_gujky"] [ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_gujky"]
[ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_g4yos"] [ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_g4yos"]
[ext_resource type="Material" uid="uid://cdpvcruywnp4x" path="res://src/world/mechanics/alarm/alarm_core.material" id="4_c5y52"] [ext_resource type="Material" uid="uid://cdpvcruywnp4x" path="res://src/world/mechanics/alarm/alarm_core.material" id="4_c5y52"]
[ext_resource type="AudioStream" uid="uid://ypk1d4adrcs" path="res://assets/sfx/grunk/alarm_screech_2.wav" id="6_6vdvf"]
[sub_resource type="ArrayMesh" id="ArrayMesh_c5y52"] [sub_resource type="ArrayMesh" id="ArrayMesh_c5y52"]
resource_local_to_scene = true resource_local_to_scene = true
@ -99,7 +100,7 @@ bones/28/rotation = Quaternion(0.362943, -7.93195e-08, 1.03952e-07, 0.931811)
mesh = SubResource("ArrayMesh_c5y52") mesh = SubResource("ArrayMesh_c5y52")
[node name="AnimationPlayer" parent="FrameSkipper/AlarmMesh" index="1"] [node name="AnimationPlayer" parent="FrameSkipper/AlarmMesh" index="1"]
speed_scale = 4.0 speed_scale = 7.4
[node name="CollisionMesh" type="MeshInstance3D" parent="."] [node name="CollisionMesh" type="MeshInstance3D" parent="."]
transform = Transform3D(0.906308, 0, -0.422618, 0, 1, 0, 0.422618, 0, 0.906308, 0, 0.2, 0) transform = Transform3D(0.906308, 0, -0.422618, 0, 1, 0, 0.422618, 0, 0.906308, 0, 0.2, 0)
@ -114,6 +115,11 @@ shape = SubResource("ConcavePolygonShape3D_bxx3m")
unique_name_in_owner = true unique_name_in_owner = true
one_shot = true one_shot = true
[node name="AlarmSFX" type="AudioStreamPlayer3D" parent="."]
unique_name_in_owner = true
stream = ExtResource("6_6vdvf")
pitch_scale = 1.1
[connection signal="timeout" from="PulseListenerTimer" to="." method="trigger"] [connection signal="timeout" from="PulseListenerTimer" to="." method="trigger"]
[editable path="FrameSkipper/AlarmMesh"] [editable path="FrameSkipper/AlarmMesh"]

View File

@ -60,7 +60,7 @@
- [x] switch OK - [x] switch OK
- [ ] switch activation - [ ] switch activation
- [x] bulkhead opening - [x] bulkhead opening
- [ ] grunk alarm shriek - [x] grunk alarm shriek
- [ ] grunk relay chitter - [ ] grunk relay chitter
- [ ] grunk chittering - [ ] grunk chittering
- [ ] grunkbeast??? - [ ] grunkbeast???