Finalized bullet flyby sounds. Put respawn timer on the bottom. Fixed bullet hit wall SFX and shell casing SFX.

feature-flyby
unfa 2021-11-28 17:38:14 +01:00
parent e0cc255bdc
commit 0219bbd26c
7 changed files with 71 additions and 78 deletions

View File

@ -1,7 +1,4 @@
extends Spatial
#func _ready():
# pass
extends Node3D
func _on_SoundPlayer_SoundPlayer_finished():
queue_free()

View File

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://c5cwnfuw4go1b" path="res://Assets/Audio/SoundPlayer.tscn" id="1"]
[ext_resource type="Script" path="res://Assets/Audio/BulletFlyBySoundPlayer.gd" id="2"]
[ext_resource type="AudioStream" uid="uid://dlbnvd5ypkwor" path="res://Assets/SFX/Weapons_BulletFlyBy_01.wav" id="3_rujqw"]
[ext_resource type="AudioStream" uid="uid://baog7oxjincev" path="res://Assets/SFX/Weapons_BulletFlyBy_07.wav" id="3_tpw2g"]
[sub_resource type="BoxMesh" id="BoxMesh_8lyvt"]
@ -11,6 +11,7 @@ script = ExtResource( "2" )
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
visible = false
mesh = SubResource( "BoxMesh_8lyvt" )
[node name="SoundPlayer" parent="." instance=ExtResource( "1" )]
@ -19,7 +20,10 @@ AutoPlay = true
RandomizePitch = 0.3
[node name="AudioStreamPlayer3D" parent="SoundPlayer" index="0"]
stream = ExtResource( "3_rujqw" )
stream = ExtResource( "3_tpw2g" )
unit_size = 2.0
max_db = 0.0
autoplay = true
[connection signal="SoundPlayer_finished" from="SoundPlayer" to="." method="_on_SoundPlayer_SoundPlayer_finished"]
[connection signal="finished" from="SoundPlayer/AudioStreamPlayer3D" to="SoundPlayer" method="_on_AudioStreamPlayer3D_finished"]

View File

@ -114,6 +114,11 @@ func pick_random():
@rpc(call_local, any_peer, reliable) func play():
# temporary
if RandomizePitch != 0:
$AudioStreamPlayer3D.pitch_scale = PitchScale + randf_range(-RandomizePitch /2, RandomizePitch/2)
else:
$AudioStreamPlayer3D.pitch_scale = PitchScale
$AudioStreamPlayer3D.play()
return # the functionality fo this node is disabled until the Godot not bundling wave files in exports issue is solved

View File

@ -3,8 +3,8 @@
[ext_resource type="Script" path="res://Assets/Effects/Impact.gd" id="1"]
[ext_resource type="Texture2D" uid="uid://cguy76rs8e220" path="res://Assets/Effects/Flame.png" id="2"]
[ext_resource type="PackedScene" uid="uid://c5cwnfuw4go1b" path="res://Assets/Audio/SoundPlayer.tscn" id="3_oh3bk"]
[ext_resource type="AudioStream" uid="uid://e6h2bvb51xun" path="res://Assets/SFX/Weapons_BulletHitWall_05.wav" id="4_5a6ll"]
[ext_resource type="Texture2D" uid="uid://cb584onhet4nd" path="res://Assets/Decals/BulletHits/BulletHitConcrete_albedo.png" id="4_6wvg3"]
[ext_resource type="AudioStream" uid="uid://c847pi2pieg25" path="res://Assets/SFX/Weapons_BulletHitWall_02.wav" id="4_hrtky"]
[ext_resource type="Texture2D" uid="uid://bs08bclmrvacp" path="res://Assets/Decals/BulletHits/BulletHitConcrete_normal.png" id="5_fr6k3"]
[ext_resource type="Texture2D" uid="uid://ddncj1g0e27m8" path="res://Assets/Decals/BulletHits/BulletHitConcrete_orm.png" id="6_0nm8w"]
@ -43,11 +43,11 @@ size = Vector2(0.25, 0.25)
[sub_resource type="Animation" id="7"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("OmniLight3D:light_color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -55,11 +55,11 @@ tracks/0/keys = {
"values": [Color(1, 0.929412, 0, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("OmniLight3D:light_energy")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -72,11 +72,11 @@ resource_name = "anim"
length = 0.2
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("OmniLight3D:light_color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
@ -84,11 +84,11 @@ tracks/0/keys = {
"values": [Color(1, 0.905882, 0.34902, 1), Color(0.666667, 0.270588, 0, 1), Color(0, 0, 0, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("OmniLight3D:light_energy")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(0.15932, 1),
@ -99,11 +99,11 @@ tracks/1/keys = {
[sub_resource type="Animation" id="Animation_itp5v"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MeshInstance3D:shader_params/o3007790_ANIM")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
@ -111,11 +111,11 @@ tracks/0/keys = {
"values": [0.0, 1.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Decal:distance_fade_begin")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -123,11 +123,11 @@ tracks/1/keys = {
"values": [20.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Decal:distance_fade_length")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -139,11 +139,11 @@ tracks/2/keys = {
resource_name = "Splat"
length = 15.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MeshInstance3D:shader_params/o3007790_ANIM")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
@ -151,11 +151,11 @@ tracks/0/keys = {
"values": [0.0, 1.0]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MeshInstance3D")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0.3),
"transitions": PackedFloat32Array(1),
@ -165,11 +165,11 @@ tracks/1/keys = {
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Decal:distance_fade_begin")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PackedFloat32Array(5, 15),
"transitions": PackedFloat32Array(1, 1),
@ -177,11 +177,11 @@ tracks/2/keys = {
"values": [10.0, -10.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Decal:distance_fade_length")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PackedFloat32Array(5, 15),
"transitions": PackedFloat32Array(1, 1),
@ -189,11 +189,11 @@ tracks/3/keys = {
"values": [10.0, 0.0]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PackedFloat32Array(15),
"transitions": PackedFloat32Array(1),
@ -221,31 +221,24 @@ initial_velocity_max = 4.0
scale_amount_curve = SubResource( "3" )
color_ramp = SubResource( "4" )
anim_offset_max = 1.0
script = null
[node name="Timer" type="Timer" parent="."]
wait_time = 15.0
script = null
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 1.06581e-14, 0, -1.06581e-14, 1, 0, 0.00379224, 0)
visible = false
mesh = SubResource( "6" )
surface_material_override/0 = null
script = null
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.369677, 0)
light_color = Color(1, 0.929412, 0, 1)
omni_attenuation = 2.63902
script = null
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "anim"
anims/RESET = SubResource( "7" )
anims/anim = SubResource( "8" )
blend_times = []
script = null
[node name="SoundPlayer" parent="." instance=ExtResource( "3_oh3bk" )]
SoundClip = "res://Assets/SFX/Weapons_BulletHitWall_01.wav"
@ -253,16 +246,15 @@ AutoPlay = true
RandomizePitch = 0.1
[node name="AudioStreamPlayer3D" parent="SoundPlayer" index="0"]
stream = ExtResource( "4_5a6ll" )
stream = ExtResource( "4_hrtky" )
unit_db = -8.0
unit_size = 2.0
autoplay = true
[node name="AnimationPlayer2" type="AnimationPlayer" parent="."]
autoplay = "Splat"
anims/RESET = SubResource( "Animation_itp5v" )
anims/Splat = SubResource( "Animation_55he2" )
blend_times = []
script = null
[node name="Decal" type="Decal" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -0.0171875)
@ -276,7 +268,6 @@ distance_fade_enabled = true
distance_fade_begin = 20.0
distance_fade_length = 10.0
cull_mask = 1
script = null
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]

View File

@ -312,10 +312,12 @@ stream = ExtResource( "9_ubwxw" )
[node name="RespawnCountdown" type="Label" parent="."]
visible = false
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -220.0
offset_top = -221.0
offset_right = 220.0
offset_bottom = 221.0
theme_override_font_sizes/font_size = 32
text = "RESPAWNING IN 5.0 seconds"
align = 1

View File

@ -14,11 +14,11 @@ height = 0.179472
resource_name = "Fade"
length = 3.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Casing_LOD0:surface_material_override/0:transparency")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -26,11 +26,11 @@ tracks/0/keys = {
"values": [1]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Casing_LOD0:surface_material_override/0:albedo_color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
@ -38,11 +38,11 @@ tracks/1/keys = {
"values": [Color(0.905882, 0.701961, 0.309804, 1), Color(0.905882, 0.701961, 0.309804, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Casing_LOD0:surface_material_override/0:depth_draw_mode")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -50,11 +50,11 @@ tracks/2/keys = {
"values": [1]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Casing_LOD0:surface_material_override/0:cull_mode")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -62,11 +62,11 @@ tracks/3/keys = {
"values": [0]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("..")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PackedFloat32Array(3),
"transitions": PackedFloat32Array(1),
@ -79,11 +79,11 @@ tracks/4/keys = {
[sub_resource type="Animation" id="Animation_u4pct"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Casing_LOD0:mesh:surface_1/material:transparency")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -91,11 +91,11 @@ tracks/0/keys = {
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Casing_LOD0:mesh:surface_1/material:albedo_color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -103,11 +103,11 @@ tracks/1/keys = {
"values": [Color(0.906332, 0.703778, 0.309292, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Casing_LOD0:mesh:surface_1/material:depth_draw_mode")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -115,11 +115,11 @@ tracks/2/keys = {
"values": [1]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Casing_LOD0:mesh:surface_1/material:cull_mode")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -127,11 +127,11 @@ tracks/3/keys = {
"values": [0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Casing_LOD0:surface_material_override/0:transparency")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
@ -143,7 +143,7 @@ tracks/4/keys = {
offsets = PackedFloat32Array(0, 0.13587, 0.875, 1)
colors = PackedColorArray(0.211765, 0.211765, 0.211765, 0, 1, 1, 1, 1, 0.139394, 0.139394, 0.139394, 0.139394, 0, 0, 0, 0)
[sub_resource type="GradientTexture" id="GradientTexture_cx0o7"]
[sub_resource type="GradientTexture1D" id="GradientTexture_cx0o7"]
gradient = SubResource( "Gradient_hmrjy" )
[sub_resource type="Curve" id="Curve_40r7q"]
@ -210,7 +210,7 @@ _data = [Vector2(0, 0.327273), 0.0, 0.0, 0, 0, Vector2(1, 0.981818), 0.0929754,
[sub_resource type="Gradient" id="Gradient_585vn"]
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture" id="GradientTexture_oxmwq"]
[sub_resource type="GradientTexture1D" id="GradientTexture_oxmwq"]
gradient = SubResource( "Gradient_585vn" )
width = 128
@ -243,12 +243,10 @@ transform = Transform3D(-4.37114e-08, -1, 1.06774e-14, 1, -4.37114e-08, 0, 4.030
visible = false
shape = SubResource( "2" )
disabled = true
script = null
[node name="CollisionShape3D2" type="CollisionShape3D" parent="."]
transform = Transform3D(-4.37114e-08, -1, 1.06774e-14, 1, -4.37114e-08, 0, 4.03066e-21, 1.06774e-14, 1, 0, 0, 0)
shape = SubResource( "2" )
script = null
[node name="Casing" parent="." instance=ExtResource( "1" )]
transform = Transform3D(1, 0, 1.06774e-14, 0, 1, 0, -1.06774e-14, 0, 1, 0, 0, 0)
@ -260,18 +258,17 @@ gi_mode = 2
wait_time = 5.0
one_shot = true
autostart = true
script = null
[node name="Sound" parent="." instance=ExtResource( "3_47hc3" )]
SoundClip = "res://Assets/SFX/Weapons_Handgun_Casing_01.wav"
PitchScale = 1.2
RandomizePitch = 0.01
RandomizePitch = 0.015
Voice_Count = 2
[node name="AudioStreamPlayer3D" parent="Sound" index="0"]
stream = ExtResource( "4_qmv6c" )
unit_db = -12.0
unit_size = 2.0
unit_size = 0.5
max_db = -3.0
pitch_scale = 1.5
@ -279,8 +276,6 @@ pitch_scale = 1.5
root_node = NodePath("../Casing")
anims/Fade = SubResource( "Animation_euct2" )
anims/RESET = SubResource( "Animation_u4pct" )
blend_times = []
script = null
[node name="Smoke" type="GPUParticles3D" parent="."]
visible = false
@ -293,15 +288,12 @@ local_coords = false
trail_length_secs = 2.0
process_material = SubResource( "ParticlesMaterial_bb1vw" )
draw_pass_1 = SubResource( "QuadMesh_24v16" )
script = null
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
top_level = true
visible = false
mesh = SubResource( "TubeTrailMesh_syvhj" )
skeleton = NodePath("../SmokeTrail")
surface_material_override/0 = null
script = null
[node name="SmokeTrail" type="GPUParticles3D" parent="."]
visible = false
@ -314,7 +306,6 @@ trail_enabled = true
trail_length_secs = 2.0
process_material = SubResource( "ParticlesMaterial_bb1vw" )
draw_pass_1 = SubResource( "RibbonTrailMesh_dh8q5" )
script = null
[node name="GPUParticles3D" type="GPUParticles3D" parent="."]
visible = false
@ -324,7 +315,6 @@ local_coords = false
trail_length_secs = 0.01
process_material = SubResource( "ParticlesMaterial_vkp8p" )
draw_pass_1 = SubResource( "RibbonTrailMesh_fl8aq" )
script = null
[connection signal="body_entered" from="." to="." method="_on_Casing_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]

View File

@ -75,10 +75,14 @@ var spread = spread_min
if ray: # if we hit something - use that to evaluate the flyby sound
to = ray['position']
var flyby_camera = get_tree().get_root().get_camera_3d()
if flyby_camera == camera: # don't spawn flyby sound for the shooter
return
var x := Vector3.ZERO
var A = from
var B = to
var C = get_tree().get_root().get_camera_3d().global_transform.origin
var C = flyby_camera.global_transform.origin
var d0 = (B - A).dot(A - C)
var d1 = (B - A).dot(B - C)