diff --git a/source/_development/ayuroo/levels/_chase_test/_chase_test.gd b/source/_development/ayuroo/levels/_chase_test/_chase_test.gd index 6760fe3..5c63b10 100644 --- a/source/_development/ayuroo/levels/_chase_test/_chase_test.gd +++ b/source/_development/ayuroo/levels/_chase_test/_chase_test.gd @@ -5,6 +5,7 @@ signal beat_tick(beat: int) const SPEED_TRANSITION_DISTANCE: float = 0.1 @export var chase_anim: StringName = &"" +@export var chase_anim_karaoke: StringName = &"" @export var debug_from_marker: StringName = &"" @export var bpm: float = 160.0 @export var debug_play_beat_tick: bool = false @@ -48,18 +49,19 @@ func _process(_delta: float) -> void: func _physics_process(delta: float) -> void: if not music_animation.is_playing(): return + # TODO: Calculate the speed scale based on the balls speed divided by the current player speed. - var player_character: PlayerCharacter = GameGlobals.player + var player: PlayerCharacter = GameGlobals.player - var local_position: Vector3 = progress_track.to_local(player_character.global_position) + var local_position: Vector3 = progress_track.to_local(player.global_position) var player_offset: float = progress_track.curve.get_closest_offset(local_position) var desired_speed_scale: float = remap( (player_desired_progress.progress - player_offset) + SPEED_TRANSITION_DISTANCE, 0.0, SPEED_TRANSITION_DISTANCE, 0.1, 1.05 ) - player_character.speed_scale = move_toward( - player_character.speed_scale, + player.speed_scale = move_toward( + player.speed_scale, clampf(desired_speed_scale, 0.1, 1.1), delta ) @@ -67,9 +69,9 @@ func _physics_process(delta: float) -> void: func _on_start_chase_area_body_entered(_body: Node3D) -> void: if not OS.is_debug_build() or debug_from_marker.is_empty(): - music_animation.play(chase_anim) + music_animation.play(_get_chase_anim_name()) else: - music_animation.play_section_with_markers(chase_anim, debug_from_marker) + music_animation.play_section_with_markers(_get_chase_anim_name(), debug_from_marker) await get_tree().process_frame var player: PlayerCharacter = GameGlobals.get_player() @@ -81,4 +83,11 @@ func _on_beat_tick(beat: int) -> void: if debug_play_beat_tick: beat_sfx.play() - debug_visualizer.scale = Vector3.ONE * (1.25 if beat % 2 == 0 else 1.0) + debug_visualizer.scale = Vector3.ONE * (0.85 if beat % 2 == 0 else 1.0) + + +func _get_chase_anim_name() -> StringName: + if not chase_anim_karaoke.is_empty() and (OS.get_cmdline_user_args().has("--karaoke") or OS.has_environment("karaoke")): + return chase_anim_karaoke + + return chase_anim diff --git a/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres b/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres index 582a286..41c99a7 100644 --- a/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres +++ b/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres @@ -2,8 +2,9 @@ [ext_resource type="AudioStream" uid="uid://dxx77jtvkpmdh" path="res://_development/ayuroo/levels/_chase_test/everlasting_fun/Everlasting Fun (Derivative Version) 【INDIGO PARK FAN MUSIC VIDEO.mp3" id="1_prlov"] -[sub_resource type="Animation" id="Animation_tqtrq"] -length = 0.001 +[sub_resource type="Animation" id="Animation_lx33g"] +resource_name = "RESET" +step = 0.0427 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -19,48 +20,25 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Saws/Saw:position") +tracks/1/path = NodePath("HeavyBeatVibration:magnitude_multiplier") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector3(0, 0.5, -46)] +"values": [1.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Saws/Saw2:position") +tracks/2/path = NodePath("HeavyBeatVibration:duration") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector3(0, 0.5, -53)] -} -tracks/3/type = "bezier" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("HeavyBeatVibration:magnitude_multiplier") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"handle_modes": PackedInt32Array(0), -"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), -"times": PackedFloat32Array(0) -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("HeavyBeatVibration:duration") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, "values": [0.075] } @@ -3039,6 +3017,6 @@ tracks/5/keys = { [resource] _data = { -&"RESET": SubResource("Animation_tqtrq"), +&"RESET": SubResource("Animation_lx33g"), &"everlasting_fun": SubResource("Animation_uxiet") } diff --git a/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_test.tscn b/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_test.tscn index 0ec04da..c993e9a 100644 --- a/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_test.tscn +++ b/source/_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_test.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://cdgei0ihcem0n" path="res://_development/ayuroo/levels/_chase_test/_chase_test.gd" id="1_ksy85"] [ext_resource type="AudioStream" uid="uid://bxka3egn4m01r" path="res://_development/ayuroo/levels/_chase_test/tick.ogg" id="2_2frp2"] -[ext_resource type="AnimationLibrary" uid="uid://ct8oebsc01o7j" path="res://_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres" id="2_r4hpf"] [ext_resource type="Script" uid="uid://dp6jy00a6xuhk" path="res://tools/beat_measurer.gd" id="3_c3hig"] [ext_resource type="AudioStream" uid="uid://bji7bb0rrangg" path="res://_development/ayuroo/levels/_chase_test/tack.ogg" id="3_c4bhh"] +[ext_resource type="AnimationLibrary" uid="uid://ct8oebsc01o7j" path="res://_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres" id="4_c4bhh"] [ext_resource type="Material" uid="uid://c38215ysnknyk" path="res://assets/materials/dev/dark/dark_01.tres" id="4_gmmry"] [ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="5_86lpt"] -[ext_resource type="Script" uid="uid://bueqrebp8o36n" path="res://tools/anim_player_editor_calls.gd" id="5_c4bhh"] +[ext_resource type="Script" uid="uid://jahmwrxb2siw" path="res://tools/timed_music_animationplayer.gd" id="5_c4bhh"] [ext_resource type="Script" uid="uid://bbwtct3hoxwws" path="res://src/core/vibration_component.gd" id="6_t80us"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_2frp2"] @@ -33,7 +33,6 @@ size = Vector3(14, 5, 1) [node name="ChaseTest" type="Node3D"] script = ExtResource("1_ksy85") chase_anim = &"everlasting_fun" -debug_from_marker = &"IntroEnd" bpm = 176.0 metadata/_custom_type_script = "uid://cigop0ivp5vvu" @@ -54,12 +53,19 @@ audio_max_polyphony = 1 callback_mode_process = 0 callback_mode_method = 1 libraries = { -&"": ExtResource("2_r4hpf") +&"": ExtResource("4_c4bhh") } script = ExtResource("5_c4bhh") audio_player = NodePath("../Music") metadata/_custom_type_script = "uid://jahmwrxb2siw" +[node name="CameraRoot" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1031.8802) + +[node name="Camera3D" type="Camera3D" parent="CameraRoot"] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 0) +fov = 37.38998 + [node name="ProgressTrack" type="Path3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) curve = SubResource("Curve3D_tqtrq") @@ -71,6 +77,10 @@ loop = false [node name="DebugVisualizer" type="MeshInstance3D" parent="ProgressTrack/PlayerDesiredProgress"] mesh = SubResource("SphereMesh_tqtrq") +[node name="RemoteTransform3D" type="RemoteTransform3D" parent="ProgressTrack/PlayerDesiredProgress/DebugVisualizer"] +remote_path = NodePath("../../../../CameraRoot") +update_scale = false + [node name="BeatMeasurer" type="Node" parent="ProgressTrack" node_paths=PackedStringArray("path")] script = ExtResource("3_c3hig") path = NodePath("..") @@ -101,9 +111,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -53) script = ExtResource("6_t80us") duration = 0.075 sync_to_audio = true -weak_magnitude = 0.25 +weak_magnitude = 0.75 strong_magnitude = 0.5 -magnitude_multiplier = 0.0 +weak_controller_duration_multiplier = 1.5 metadata/_custom_type_script = "uid://bbwtct3hoxwws" [node name="LightBeatVibration" type="Node" parent="."] @@ -122,5 +132,10 @@ collision_mask = 2 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) shape = SubResource("BoxShape3D_gsfaw") -[connection signal="started_vibration" from="HeavyBeatVibration" to="Beat" method="play"] +[node name="_DEV_LABEL" type="Label3D" parent="."] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 6, 2, -3) +text = "If the audio and anim desync and cause the player to slow down, +set the follower up, so that it always stays at a certain +distance from the PlayerDesiredProgress ball/point/marker." + [connection signal="body_entered" from="StartChaseArea" to="." method="_on_start_chase_area_body_entered"] diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3 b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3 new file mode 100644 index 0000000..b3a050f Binary files /dev/null and b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3 differ diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3.import b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3.import new file mode 100644 index 0000000..9341853 --- /dev/null +++ b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://bqxw00b4hjpll" +path="res://.godot/imported/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3-2d43ab72d2f01668a47518fd14193562.mp3str" + +[deps] + +source_file="res://_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3" +dest_files=["res://.godot/imported/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3-2d43ab72d2f01668a47518fd14193562.mp3str"] + +[params] + +loop=false +loop_offset=0.0 +bpm=97.0 +beat_count=0 +bar_beats=4 diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3 b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3 new file mode 100644 index 0000000..dc6bbcc Binary files /dev/null and b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3 differ diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3.import b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3.import new file mode 100644 index 0000000..a2f959f --- /dev/null +++ b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://b6kgg4bkxmcd7" +path="res://.godot/imported/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3-2438e6dffa732e3bd1b6c0d3e17d0203.mp3str" + +[deps] + +source_file="res://_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3" +dest_files=["res://.godot/imported/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3-2438e6dffa732e3bd1b6c0d3e17d0203.mp3str"] + +[params] + +loop=false +loop_offset=0.0 +bpm=97.0 +beat_count=0 +bar_beats=4 diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3 b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3 new file mode 100644 index 0000000..36dedd8 Binary files /dev/null and b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3 differ diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3.import b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3.import new file mode 100644 index 0000000..65bfdc1 --- /dev/null +++ b/source/_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://cdo7ced2107jq" +path="res://.godot/imported/Good Enough.mp3-347afbf64f6e84f9dfdc7d5768f45c89.mp3str" + +[deps] + +source_file="res://_development/ayuroo/levels/_chase_test/good_enough/Good Enough.mp3" +dest_files=["res://.godot/imported/Good Enough.mp3-347afbf64f6e84f9dfdc7d5768f45c89.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/_gn_chase_test.tscn b/source/_development/ayuroo/levels/_chase_test/good_enough/_gn_chase_test.tscn new file mode 100644 index 0000000..9e79127 --- /dev/null +++ b/source/_development/ayuroo/levels/_chase_test/good_enough/_gn_chase_test.tscn @@ -0,0 +1,142 @@ +[gd_scene load_steps=14 format=3 uid="uid://buftkff6aaq04"] + +[ext_resource type="Script" uid="uid://cdgei0ihcem0n" path="res://_development/ayuroo/levels/_chase_test/_chase_test.gd" id="1_sm484"] +[ext_resource type="AudioStream" uid="uid://bxka3egn4m01r" path="res://_development/ayuroo/levels/_chase_test/tick.ogg" id="2_so850"] +[ext_resource type="AudioStream" uid="uid://bji7bb0rrangg" path="res://_development/ayuroo/levels/_chase_test/tack.ogg" id="3_wpnkt"] +[ext_resource type="AnimationLibrary" uid="uid://dfgpkxgfyo5h1" path="res://_development/ayuroo/levels/_chase_test/good_enough/anim_good_enough.tres" id="4_ikio2"] +[ext_resource type="Script" uid="uid://jahmwrxb2siw" path="res://tools/timed_music_animationplayer.gd" id="5_uc6ca"] +[ext_resource type="Script" uid="uid://dp6jy00a6xuhk" path="res://tools/beat_measurer.gd" id="6_suojm"] +[ext_resource type="Material" uid="uid://c38215ysnknyk" path="res://assets/materials/dev/dark/dark_01.tres" id="7_6fa34"] +[ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="8_5k2no"] +[ext_resource type="Script" uid="uid://bbwtct3hoxwws" path="res://src/core/vibration_component.gd" id="9_u4bqw"] + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_2frp2"] +playback_mode = 2 +streams_count = 2 +stream_0/stream = ExtResource("2_so850") +stream_1/stream = ExtResource("3_wpnkt") + +[sub_resource type="Curve3D" id="Curve3D_tqtrq"] +_data = { +"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1533), +"tilts": PackedFloat32Array(0, 0) +} +point_count = 2 + +[sub_resource type="SphereMesh" id="SphereMesh_tqtrq"] +radius = 0.15 +height = 0.3 + +[sub_resource type="BoxShape3D" id="BoxShape3D_gsfaw"] +size = Vector3(14, 5, 1) + +[node name="ChaseTest" type="Node3D"] +script = ExtResource("1_sm484") +chase_anim = &"good_enough" +chase_anim_karaoke = &"good_enough_karaoke" +bpm = 195.0 +metadata/_custom_type_script = "uid://cigop0ivp5vvu" + +[node name="Music" type="AudioStreamPlayer" parent="."] +volume_db = -4.5 + +[node name="Beat" type="AudioStreamPlayer" parent="."] +stream = SubResource("AudioStreamRandomizer_2frp2") +volume_db = -3.0 +max_polyphony = 4 + +[node name="Bar" type="AudioStreamPlayer" parent="."] +stream = ExtResource("3_wpnkt") +volume_db = -6.0 + +[node name="MusicAnimation" type="AnimationPlayer" parent="."] +audio_max_polyphony = 1 +callback_mode_process = 0 +callback_mode_method = 1 +libraries = { +&"": ExtResource("4_ikio2") +} +script = ExtResource("5_uc6ca") +audio_player = NodePath("../Music") +metadata/_custom_type_script = "uid://jahmwrxb2siw" + +[node name="CameraRoot" type="Node3D" parent="."] +transform = Transform3D(0.99999887, 0, 0, 0, 0.99999887, 0, 0, 0, 0.99999887, 0, 1, 0) + +[node name="Camera3D" type="Camera3D" parent="CameraRoot"] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 0) +fov = 37.38998 + +[node name="ProgressTrack" type="Path3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +curve = SubResource("Curve3D_tqtrq") + +[node name="PlayerDesiredProgress" type="PathFollow3D" parent="ProgressTrack"] +rotation_mode = 0 +loop = false + +[node name="DebugVisualizer" type="MeshInstance3D" parent="ProgressTrack/PlayerDesiredProgress"] +mesh = SubResource("SphereMesh_tqtrq") + +[node name="RemoteTransform3D" type="RemoteTransform3D" parent="ProgressTrack/PlayerDesiredProgress/DebugVisualizer"] +remote_path = NodePath("../../../../CameraRoot") +update_scale = false + +[node name="BeatMeasurer" type="Node" parent="ProgressTrack" node_paths=PackedStringArray("path")] +script = ExtResource("6_suojm") +path = NodePath("..") +track_duration = 290.06 +track_bpm = 176 +metadata/_custom_type_script = "uid://dp6jy00a6xuhk" + +[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."] +use_collision = true + +[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -767.75) +size = Vector3(14, 1, 1536.5) +material = ExtResource("7_6fa34") + +[node name="Saws" type="Node3D" parent="."] + +[node name="ResetSaw" parent="Saws" instance=ExtResource("8_5k2no")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 1, -1511.1943) + +[node name="Saw" parent="Saws" instance=ExtResource("8_5k2no")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -46) + +[node name="Saw2" parent="Saws" instance=ExtResource("8_5k2no")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -53) + +[node name="HeavyBeatVibration" type="Node" parent="."] +script = ExtResource("9_u4bqw") +duration = 0.09 +sync_to_audio = true +weak_magnitude = 0.575 +strong_magnitude = 0.75 +weak_controller_duration_multiplier = 1.5 +metadata/_custom_type_script = "uid://bbwtct3hoxwws" + +[node name="LightBeatVibration" type="Node" parent="."] +script = ExtResource("9_u4bqw") +duration = 0.075 +sync_to_audio = true +weak_magnitude = 0.375 +strong_magnitude = 0.0 +metadata/_custom_type_script = "uid://bbwtct3hoxwws" + +[node name="StartChaseArea" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="StartChaseArea"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) +shape = SubResource("BoxShape3D_gsfaw") + +[node name="_DEV_LABEL" type="Label3D" parent="."] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 6, 2, -3) +text = "If the audio and anim desync and cause the player to slow down, +set the follower up, so that it always stays at a certain +distance from the PlayerDesiredProgress ball/point/marker." + +[connection signal="body_entered" from="StartChaseArea" to="." method="_on_start_chase_area_body_entered"] diff --git a/source/_development/ayuroo/levels/_chase_test/good_enough/anim_good_enough.tres b/source/_development/ayuroo/levels/_chase_test/good_enough/anim_good_enough.tres new file mode 100644 index 0000000..3c2cc24 --- /dev/null +++ b/source/_development/ayuroo/levels/_chase_test/good_enough/anim_good_enough.tres @@ -0,0 +1,3856 @@ +[gd_resource type="AnimationLibrary" load_steps=6 format=3 uid="uid://dfgpkxgfyo5h1"] + +[ext_resource type="AudioStream" uid="uid://b6kgg4bkxmcd7" path="res://_development/ayuroo/levels/_chase_test/good_enough/Good Enough (feat. @KittenSneeze, @Cami-Cat, @bbyamm @longestsoloever, @OtterBoyVA) [AUDIO ONLY].mp3" id="1_sny6g"] +[ext_resource type="AudioStream" uid="uid://bqxw00b4hjpll" path="res://_development/ayuroo/levels/_chase_test/good_enough/Good Enough (Karaoke w Backup Vocals) ft. @Jakeneutron.mp3" id="2_b1cfe"] + +[sub_resource type="Animation" id="Animation_lx33g"] +resource_name = "RESET" +step = 0.0427 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ProgressTrack/PlayerDesiredProgress:progress_ratio") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("HeavyBeatVibration:animated_weak_magnitude") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -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("HeavyBeatVibration:animated_strong_magnitude") +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 = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("LightBeatVibration:animated_weak_magnitude") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("LightBeatVibration:duration") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.075] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("HeavyBeatVibration:magnitude_multiplier") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_uxiet"] +resource_name = "good_enough" +length = 267.819 +step = 0.0194 +markers = [{ +"color": Color(1, 1, 1, 1), +"name": &"Intro", +"time": 0.0 +}] +tracks/0/type = "audio" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Music") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"clips": [{ +"end_offset": 0.0, +"start_offset": 0.0, +"stream": ExtResource("1_sny6g") +}], +"times": PackedFloat32Array(0) +} +tracks/0/use_blend = true +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("ProgressTrack/PlayerDesiredProgress:progress_ratio") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 267.819), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 1.0] +} +tracks/2/type = "method" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("HeavyBeatVibration") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(19.7492, 20.0402, 20.564, 20.661, 20.9754, 21.285, 21.7881, 21.9026, 22.2138, 22.504, 23.0084, 23.1248, 23.4352, 23.7262, 24.0366, 24.347, 24.6768, 24.9678, 25.4722, 25.5692, 25.899, 26.19, 26.7138, 26.8108, 27.1406, 27.4122, 27.936, 28.033, 28.3671, 28.6538, 28.9642, 29.2746, 29.6055, 30.147299, 30.8266, 31.331, 32.0488, 32.5726, 33.2904, 33.7948, 34.5126, 35.0364, 35.7348, 36.2586, 36.9764, 37.4808, 38.1986, 38.7224, 39.4402, 39.9446, 40.6624, 41.1862, 41.904, 42.4084, 43.1262, 43.6306, 43.941, 44.038, 44.3484, 44.6588, 44.8722, 45.1826, 45.2796, 45.59, 45.8982, 46.0944, 46.4048, 46.5018, 46.8122, 47.1226, 47.336, 47.6464, 47.7434, 48.0344, 48.3448, 49.276, 49.5864, 50.0908, 50.1878, 50.5176, 50.8086, 51.3324, 51.4294, 51.7786, 52.0308, 52.5546, 52.671, 52.9803, 53.2724, 53.5828, 53.8932, 54.2036, 54.4946, 55.0184, 55.1348, 55.4258, 55.7362, 56.0466, 56.357, 56.6868, 56.9002, 57.5792, 57.8896, 58.5104, 58.8014, 59.1312, 59.4416, 59.9463, 60.043, 60.3534, 60.6444, 61.1876, 61.2652, 61.595, 61.886, 62.4098, 62.5456, 62.8172, 63.1276, 63.438, 63.7389, 64.0588, 64.3498, 64.8736, 64.9706, 65.281, 65.5914, 66.0958, 66.2122, 66.5032, 66.8136, 67.318, 67.4344, 67.7448, 68.0358, 68.3462, 68.676, 69.0252, 69.2774, 69.7818, 69.8982, 70.2086, 70.519, 71.0234, 71.1204, 71.4308, 71.7412, 72.2456, 72.342606, 72.6724, 72.9634, 73.2738, 73.5842, 73.8946, 74.205, 74.7297, 74.8258, 75.1362, 75.4272, 75.951, 76.048, 76.3778, 76.6688, 77.1732, 77.2702, 77.5806, 77.9298, 78.2014, 78.5118, 78.7252, 79.3266, 79.9668, 80.0638, 80.9756, 95.642, 96.0494, 96.3404, 96.573204, 96.864204, 97.0388, 97.27161, 97.582, 97.7954, 98.105804, 98.222206, 98.51321, 98.8042, 99.0176, 99.328, 99.425, 99.735405, 100.0458, 100.3562, 100.977005, 101.268005, 101.7918, 101.8888, 102.1992, 102.509605, 103.0334, 103.111, 103.47961, 103.731804, 104.2556, 104.3526, 104.663, 104.954, 105.264404, 105.57481, 105.8852, 106.1956, 106.719406, 106.81641, 107.1268, 107.4372, 107.941605, 108.038605, 108.3684, 108.6594, 109.1638, 109.2608, 110.8128, 111.1232, 111.6276, 111.7246, 112.054405, 112.345406, 112.8692, 112.9662, 113.2766, 113.587006, 114.0914, 114.2078, 114.5182, 114.809204, 115.119606, 115.41061, 115.7404, 116.0314, 116.55521, 116.65221, 116.9626, 117.273, 117.79681, 117.89381, 118.2042, 118.4952, 118.8056, 120.66801, 120.95901, 121.4828, 121.5798, 121.890205, 122.181206, 122.7244, 122.8214, 123.131805, 123.44221, 123.9466, 124.0436, 124.354004, 124.645004, 124.95541, 125.2658, 125.595604, 125.886604, 126.4104, 126.5074, 126.8178, 127.128204, 127.63261, 127.72961, 128.0788, 128.3504, 128.8742, 128.9712, 129.2816, 129.59201, 129.88301, 130.2128, 130.52321, 130.81421, 131.3186, 131.4156, 131.7454, 132.0364, 132.56021, 132.65721, 132.9676, 133.278, 133.78241, 134.2092, 134.5002, 134.81061, 135.121, 135.4314, 135.7418, 136.2462, 136.3238, 136.673, 136.964, 137.48781, 137.5654, 137.934, 138.1862, 138.71, 138.807, 139.1174, 139.42781, 139.71881, 140.03847, 140.2814, 190.7796, 191.2064, 191.53621, 191.5944, 191.8272, 192.2346, 192.5838, 192.642, 192.8748, 193.28221, 193.6314, 193.6896, 193.903, 194.3298, 194.6596, 194.7178, 194.93121, 195.3774, 195.4356, 195.7072, 195.9982, 196.40561, 196.7548, 196.813, 197.02641, 197.47261, 197.7248, 197.783, 198.074, 198.6172, 198.8694, 199.1022, 199.3544, 199.626, 199.8782, 200.1498, 200.4214, 200.6736, 200.9258, 201.1974, 201.4496, 201.7212, 201.9734, 202.2256, 202.4972, 202.7494, 203.0016, 203.2926, 203.5448, 203.797, 204.0686, 204.3208, 204.573, 204.7864, 205.0968, 205.3878, 205.6206, 205.8728, 206.18321, 206.416, 206.6488, 206.9204, 209.6379, 209.94681, 210.86726, 211.1859, 212.1147, 212.4243, 213.3531, 213.624, 214.5528, 214.8624, 215.7912, 216.1008, 217.0296, 217.3392, 218.26799, 218.5389, 219.4677, 219.7773, 220.7061, 221.0157, 221.8972, 222.26581, 222.5374, 223.04181, 223.13881, 223.46861, 223.75961, 224.264, 224.3804, 224.7102, 224.98181, 225.5056, 225.6026, 225.91301, 226.2234, 226.53381, 226.84421, 227.1934, 227.4456, 227.9694, 228.0664, 228.3768, 228.68721, 229.1916, 229.2886, 229.6378, 229.90941, 230.43321, 230.53021, 230.8406, 231.151, 231.442, 231.7718, 232.121, 232.3732, 232.897, 232.994, 233.30441, 233.59541, 234.1192, 234.2162, 234.53847, 234.837, 235.3414, 235.45781, 235.7682, 236.0592, 236.36961, 236.66061, 236.6994, 237.00981, 237.2814, 237.8052, 237.9022, 238.23201, 238.56181, 239.04681, 239.14381, 239.4736, 239.7646, 240.2884, 240.36601, 240.6764, 240.9868, 241.29721, 241.6076, 241.9568, 242.26721, 242.7328, 242.8298, 243.14021, 243.4506, 243.955, 244.0326, 244.3818, 244.6728, 245.19661, 245.29361, 245.604, 245.91441, 246.20541, 246.51581, 246.84561, 247.13661, 247.6604, 247.7574, 248.06781, 248.3782, 248.88261, 248.9796, 249.3094, 249.6004, 250.1242, 250.2212, 250.5316, 250.84201, 251.13301, 251.4434, 251.7538, 252.06421, 252.58801, 252.6656, 252.9954, 253.3058, 253.81021, 253.90721, 254.23701, 254.52802, 255.03241, 255.1488, 255.45921, 255.7696, 256.0606, 256.371, 256.6814, 256.99182, 257.49622, 257.6126, 257.923, 258.21402, 258.7378, 258.8348, 261.609, 261.9), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"values": [{ +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}] +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("HeavyBeatVibration:animated_weak_magnitude") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0.25, -0.25, 0, 0, -0.12136212, 0, -0.5095495, 0, 0, 0), +"times": PackedFloat32Array(207.1611, 207.1998, 210.2571) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("HeavyBeatVibration:animated_strong_magnitude") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0.25, -0.25, 0, 0, -0.11512576, 0, -0.5095495, 0, 0, 0), +"times": PackedFloat32Array(207.1611, 207.1998, 210.2571) +} +tracks/5/type = "method" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("LightBeatVibration") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(80.9756, 81.887405, 82.5082, 83.032005, 83.129005, 83.788605, 84.2542, 84.351204, 85.04961, 85.495804, 85.5734, 86.233, 86.718, 86.815, 87.43581, 87.9402, 88.0372, 88.67741, 89.1818, 89.2788, 89.9772, 90.404, 90.501, 90.8114, 90.9084, 91.1218, 91.626205, 92.3634, 92.867805, 93.5856, 94.090004, 94.8078, 95.331604, 149.0308, 149.36061, 149.7292, 150.03961, 150.3694, 152.3676, 154.38521, 156.3834, 157.3534, 158.3816, 160.0888, 161.9318, 163.7748, 165.7536, 167.3638, 169.1098, 170.72, 172.3884, 173.7658, 175.279, 176.63701, 177.8786, 179.0814, 180.323, 181.3318, 182.3988, 183.4852, 184.5716, 185.5804, 186.5892, 188.6456, 188.7426, 211.4568, 217.6875, 218.8485, 220.0869, 220.384, 221.3253, 221.6349), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"values": [{ +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}] +} +tracks/6/type = "bezier" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("LightBeatVibration:animated_weak_magnitude") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"handle_modes": PackedInt32Array(2, 2, 2, 2, 2, 2, 2, 2, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0.05, -0.009699504, 0, 0, 0, 0.01, -1, 0, 0, 0, 0.05, -0.03880056, 0, 0, 0, 0.01, -1, 0, 0, 0, 0.05, -0.03880056, 0, 0, 0, 0.01, -1, 0, 0, 0, 0.05, -0.03880056, 0, 0, 0, 0, -1, 0, 0, 0), +"times": PackedFloat32Array(142.3184, 142.3766, 144.336, 144.35541, 146.3342, 146.3536, 148.3324, 148.3518, 149.0308) +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("LightBeatVibration:duration") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(150.2918, 150.3694, 186.4922, 186.56981, 188.4516, 188.95601, 190.0424), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0.1, 0.25, 0.25, 1.0, 0.25, 0.25, 0.1] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("HeavyBeatVibration:magnitude_multiplier") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(134.151, 134.1898, 135.3538, 135.8, 261.44196, 261.48077), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [1.0, 2.5, 2.5, 1.0, 1.0, 2.5] +} + +[sub_resource type="Animation" id="Animation_sny6g"] +resource_name = "good_enough_karaoke" +length = 267.819 +step = 0.0194 +markers = [{ +"color": Color(1, 1, 1, 1), +"name": &"Intro", +"time": 0.0 +}] +tracks/0/type = "audio" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Music") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"clips": [{ +"end_offset": 0.0, +"start_offset": 0.0, +"stream": ExtResource("2_b1cfe") +}], +"times": PackedFloat32Array(0) +} +tracks/0/use_blend = true +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("ProgressTrack/PlayerDesiredProgress:progress_ratio") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 267.819), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 1.0] +} +tracks/2/type = "method" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("HeavyBeatVibration") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(19.7492, 20.0402, 20.564, 20.661, 20.9754, 21.285, 21.7881, 21.9026, 22.2138, 22.504, 23.0084, 23.1248, 23.4352, 23.7262, 24.0366, 24.347, 24.6768, 24.9678, 25.4722, 25.5692, 25.899, 26.19, 26.7138, 26.8108, 27.1406, 27.4122, 27.936, 28.033, 28.3671, 28.6538, 28.9642, 29.2746, 29.6055, 30.147299, 30.8266, 31.331, 32.0488, 32.5726, 33.2904, 33.7948, 34.5126, 35.0364, 35.7348, 36.2586, 36.9764, 37.4808, 38.1986, 38.7224, 39.4402, 39.9446, 40.6624, 41.1862, 41.904, 42.4084, 43.1262, 43.6306, 43.941, 44.038, 44.3484, 44.6588, 44.8722, 45.1826, 45.2796, 45.59, 45.8982, 46.0944, 46.4048, 46.5018, 46.8122, 47.1226, 47.336, 47.6464, 47.7434, 48.0344, 48.3448, 49.276, 49.5864, 50.0908, 50.1878, 50.5176, 50.8086, 51.3324, 51.4294, 51.7786, 52.0308, 52.5546, 52.671, 52.9803, 53.2724, 53.5828, 53.8932, 54.2036, 54.4946, 55.0184, 55.1348, 55.4258, 55.7362, 56.0466, 56.357, 56.6868, 56.9002, 57.5792, 57.8896, 58.5104, 58.8014, 59.1312, 59.4416, 59.9463, 60.043, 60.3534, 60.6444, 61.1876, 61.2652, 61.595, 61.886, 62.4098, 62.5456, 62.8172, 63.1276, 63.438, 63.7389, 64.0588, 64.3498, 64.8736, 64.9706, 65.281, 65.5914, 66.0958, 66.2122, 66.5032, 66.8136, 67.318, 67.4344, 67.7448, 68.0358, 68.3462, 68.676, 69.0252, 69.2774, 69.7818, 69.8982, 70.2086, 70.519, 71.0234, 71.1204, 71.4308, 71.7412, 72.2456, 72.342606, 72.6724, 72.9634, 73.2738, 73.5842, 73.8946, 74.205, 74.7297, 74.8258, 75.1362, 75.4272, 75.951, 76.048, 76.3778, 76.6688, 77.1732, 77.2702, 77.5806, 77.9298, 78.2014, 78.5118, 78.7252, 79.3266, 79.9668, 80.0638, 80.9756, 95.642, 96.0494, 96.3404, 96.573204, 96.864204, 97.0388, 97.27161, 97.582, 97.7954, 98.105804, 98.222206, 98.51321, 98.8042, 99.0176, 99.328, 99.425, 99.735405, 100.0458, 100.3562, 100.977005, 101.268005, 101.7918, 101.8888, 102.1992, 102.509605, 103.0334, 103.111, 103.47961, 103.731804, 104.2556, 104.3526, 104.663, 104.954, 105.264404, 105.57481, 105.8852, 106.1956, 106.719406, 106.81641, 107.1268, 107.4372, 107.941605, 108.038605, 108.3684, 108.6594, 109.1638, 109.2608, 110.8128, 111.1232, 111.6276, 111.7246, 112.054405, 112.345406, 112.8692, 112.9662, 113.2766, 113.587006, 114.0914, 114.2078, 114.5182, 114.809204, 115.119606, 115.41061, 115.7404, 116.0314, 116.55521, 116.65221, 116.9626, 117.273, 117.79681, 117.89381, 118.2042, 118.4952, 118.8056, 120.66801, 120.95901, 121.4828, 121.5798, 121.890205, 122.181206, 122.7244, 122.8214, 123.131805, 123.44221, 123.9466, 124.0436, 124.354004, 124.645004, 124.95541, 125.2658, 125.595604, 125.886604, 126.4104, 126.5074, 126.8178, 127.128204, 127.63261, 127.72961, 128.0788, 128.3504, 128.8742, 128.9712, 129.2816, 129.59201, 129.88301, 130.2128, 130.52321, 130.81421, 131.3186, 131.4156, 131.7454, 132.0364, 132.56021, 132.65721, 132.9676, 133.278, 133.78241, 134.2092, 134.5002, 134.81061, 135.121, 135.4314, 135.7418, 136.2462, 136.3238, 136.673, 136.964, 137.48781, 137.5654, 137.934, 138.1862, 138.71, 138.807, 139.1174, 139.42781, 139.71881, 140.03847, 140.2814, 190.7796, 191.2064, 191.53621, 191.5944, 191.8272, 192.2346, 192.5838, 192.642, 192.8748, 193.28221, 193.6314, 193.6896, 193.903, 194.3298, 194.6596, 194.7178, 194.93121, 195.3774, 195.4356, 195.7072, 195.9982, 196.40561, 196.7548, 196.813, 197.02641, 197.47261, 197.7248, 197.783, 198.074, 198.6172, 198.8694, 199.1022, 199.3544, 199.626, 199.8782, 200.1498, 200.4214, 200.6736, 200.9258, 201.1974, 201.4496, 201.7212, 201.9734, 202.2256, 202.4972, 202.7494, 203.0016, 203.2926, 203.5448, 203.797, 204.0686, 204.3208, 204.573, 204.7864, 205.0968, 205.3878, 205.6206, 205.8728, 206.18321, 206.416, 206.6488, 206.9204, 209.6379, 209.94681, 210.86726, 211.1859, 212.1147, 212.4243, 213.3531, 213.624, 214.5528, 214.8624, 215.7912, 216.1008, 217.0296, 217.3392, 218.26799, 218.5389, 219.4677, 219.7773, 220.7061, 221.0157, 221.8972, 222.26581, 222.5374, 223.04181, 223.13881, 223.46861, 223.75961, 224.264, 224.3804, 224.7102, 224.98181, 225.5056, 225.6026, 225.91301, 226.2234, 226.53381, 226.84421, 227.1934, 227.4456, 227.9694, 228.0664, 228.3768, 228.68721, 229.1916, 229.2886, 229.6378, 229.90941, 230.43321, 230.53021, 230.8406, 231.151, 231.442, 231.7718, 232.121, 232.3732, 232.897, 232.994, 233.30441, 233.59541, 234.1192, 234.2162, 234.53847, 234.837, 235.3414, 235.45781, 235.7682, 236.0592, 236.36961, 236.66061, 236.6994, 237.00981, 237.2814, 237.8052, 237.9022, 238.23201, 238.56181, 239.04681, 239.14381, 239.4736, 239.7646, 240.2884, 240.36601, 240.6764, 240.9868, 241.29721, 241.6076, 241.9568, 242.26721, 242.7328, 242.8298, 243.14021, 243.4506, 243.955, 244.0326, 244.3818, 244.6728, 245.19661, 245.29361, 245.604, 245.91441, 246.20541, 246.51581, 246.84561, 247.13661, 247.6604, 247.7574, 248.06781, 248.3782, 248.88261, 248.9796, 249.3094, 249.6004, 250.1242, 250.2212, 250.5316, 250.84201, 251.13301, 251.4434, 251.7538, 252.06421, 252.58801, 252.6656, 252.9954, 253.3058, 253.81021, 253.90721, 254.23701, 254.52802, 255.03241, 255.1488, 255.45921, 255.7696, 256.0606, 256.371, 256.6814, 256.99182, 257.49622, 257.6126, 257.923, 258.21402, 258.7378, 258.8348, 261.609, 261.9), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"values": [{ +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}] +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("HeavyBeatVibration:animated_weak_magnitude") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0.25, -0.25, 0, 0, -0.12136212, 0, -0.5095495, 0, 0, 0), +"times": PackedFloat32Array(207.1611, 207.1998, 210.2571) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("HeavyBeatVibration:animated_strong_magnitude") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0.25, -0.25, 0, 0, -0.11512576, 0, -0.5095495, 0, 0, 0), +"times": PackedFloat32Array(207.1611, 207.1998, 210.2571) +} +tracks/5/type = "method" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("LightBeatVibration") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(80.9756, 81.887405, 82.5082, 83.032005, 83.129005, 83.788605, 84.2542, 84.351204, 85.04961, 85.495804, 85.5734, 86.233, 86.718, 86.815, 87.43581, 87.9402, 88.0372, 88.67741, 89.1818, 89.2788, 89.9772, 90.404, 90.501, 90.8114, 90.9084, 91.1218, 91.626205, 92.3634, 92.867805, 93.5856, 94.090004, 94.8078, 95.331604, 149.0308, 149.36061, 149.7292, 150.03961, 150.3694, 152.3676, 154.38521, 156.3834, 157.3534, 158.3816, 160.0888, 161.9318, 163.7748, 165.7536, 167.3638, 169.1098, 170.72, 172.3884, 173.7658, 175.279, 176.63701, 177.8786, 179.0814, 180.323, 181.3318, 182.3988, 183.4852, 184.5716, 185.5804, 186.5892, 188.6456, 188.7426, 211.4568, 217.6875, 218.8485, 220.0869, 220.384, 221.3253, 221.6349), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"values": [{ +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}, { +"args": [], +"method": &"vibrate" +}] +} +tracks/6/type = "bezier" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("LightBeatVibration:animated_weak_magnitude") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"handle_modes": PackedInt32Array(2, 2, 2, 2, 2, 2, 2, 2, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0.05, -0.009699504, 0, 0, 0, 0.01, -1, 0, 0, 0, 0.05, -0.03880056, 0, 0, 0, 0.01, -1, 0, 0, 0, 0.05, -0.03880056, 0, 0, 0, 0.01, -1, 0, 0, 0, 0.05, -0.03880056, 0, 0, 0, 0, -1, 0, 0, 0), +"times": PackedFloat32Array(142.3184, 142.3766, 144.336, 144.35541, 146.3342, 146.3536, 148.3324, 148.3518, 149.0308) +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("LightBeatVibration:duration") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(150.2918, 150.3694, 186.4922, 186.56981, 188.4516, 188.95601, 190.0424), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0.1, 0.25, 0.25, 1.0, 0.25, 0.25, 0.1] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("HeavyBeatVibration:magnitude_multiplier") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(134.151, 134.1898, 135.3538, 135.8, 261.44196, 261.48077), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [1.0, 2.5, 2.5, 1.0, 1.0, 2.5] +} + +[resource] +_data = { +&"RESET": SubResource("Animation_lx33g"), +&"good_enough": SubResource("Animation_uxiet"), +&"good_enough_karaoke": SubResource("Animation_sny6g") +} diff --git a/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_anim.tres b/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_anim.tres index 84893c0..f082ee7 100644 --- a/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_anim.tres +++ b/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_anim.tres @@ -91,7 +91,7 @@ tracks/3/path = NodePath("Saws/Saw2:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { -"times": PackedFloat32Array(9, 9.2), +"times": PackedFloat32Array(8.6, 8.8), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, -1, -53), Vector3(0, 0.5, -53)] diff --git a/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_test.tscn b/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_test.tscn index f8dce14..c2989e1 100644 --- a/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_test.tscn +++ b/source/_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_test.tscn @@ -6,8 +6,8 @@ [ext_resource type="Script" uid="uid://dp6jy00a6xuhk" path="res://tools/beat_measurer.gd" id="3_pwoi6"] [ext_resource type="AudioStream" uid="uid://bycnxkxch1dmo" path="res://_development/ayuroo/levels/_chase_test/bar.ogg" id="3_ytnb7"] [ext_resource type="Material" uid="uid://c38215ysnknyk" path="res://assets/materials/dev/dark/dark_01.tres" id="4_ytnb7"] -[ext_resource type="Script" uid="uid://bueqrebp8o36n" path="res://tools/anim_player_editor_calls.gd" id="5_1cy10"] [ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="5_i68vn"] +[ext_resource type="Script" uid="uid://jahmwrxb2siw" path="res://tools/timed_music_animationplayer.gd" id="5_ytnb7"] [ext_resource type="Script" uid="uid://bbwtct3hoxwws" path="res://src/core/vibration_component.gd" id="6_1cy10"] [sub_resource type="Curve3D" id="Curve3D_tqtrq"] @@ -45,7 +45,9 @@ callback_mode_process = 0 libraries = { &"": ExtResource("2_kddul") } -script = ExtResource("5_1cy10") +script = ExtResource("5_ytnb7") +audio_player = NodePath("../Music") +metadata/_custom_type_script = "uid://jahmwrxb2siw" [node name="ProgressTrack" type="Path3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) @@ -87,7 +89,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -53) [node name="VibrationComponent" type="Node" parent="."] script = ExtResource("6_1cy10") duration = 0.1 -editor_delay = 0.125 sync_to_audio = true weak_magnitude = 0.25 strong_magnitude = 0.5 diff --git a/source/_development/ayuroo/levels/_experimental/_layout_test.exr b/source/_development/ayuroo/levels/_experimental/_layout_test.exr index 8f1af07..6224779 100644 Binary files a/source/_development/ayuroo/levels/_experimental/_layout_test.exr and b/source/_development/ayuroo/levels/_experimental/_layout_test.exr differ diff --git a/source/_development/ayuroo/levels/_experimental/_layout_test.lmbake b/source/_development/ayuroo/levels/_experimental/_layout_test.lmbake index 1c6adb7..0f4520e 100644 Binary files a/source/_development/ayuroo/levels/_experimental/_layout_test.lmbake and b/source/_development/ayuroo/levels/_experimental/_layout_test.lmbake differ diff --git a/source/_development/ayuroo/levels/_experimental/_layout_test.tscn b/source/_development/ayuroo/levels/_experimental/_layout_test.tscn index cc67b87..7c8e85a 100644 --- a/source/_development/ayuroo/levels/_experimental/_layout_test.tscn +++ b/source/_development/ayuroo/levels/_experimental/_layout_test.tscn @@ -307,22 +307,25 @@ visible = false [node name="Main" parent="LightmapGI" instance=ExtResource("6_cxrf3")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) +metadata/_edit_lock_ = true [node name="Lighting" type="Node3D" parent="LightmapGI"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) [node name="SpotLight3D" type="SpotLight3D" parent="LightmapGI/Lighting"] -transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 5.4, -4) +transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 6, -5.2) light_energy = 2.0 light_bake_mode = 1 -spot_range = 14.0 +spot_range = 18.0 +spot_attenuation = 1.25 spot_angle = 63.718216 [node name="SpotLight3D2" type="SpotLight3D" parent="LightmapGI/Lighting"] -transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -1, 61.4, -78) +transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 61.4, -51.5) light_energy = 10.0 light_bake_mode = 1 spot_range = 310.0 +spot_attenuation = 2.0 spot_angle = 73.011505 [node name="OmniLight3D" type="OmniLight3D" parent="LightmapGI/Lighting"] @@ -331,6 +334,7 @@ light_energy = 2.0 light_bake_mode = 1 shadow_enabled = true omni_range = 10.0 +omni_attenuation = 2.0 [node name="OmniLight3D2" type="OmniLight3D" parent="LightmapGI/Lighting"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 5, -21.5) @@ -338,6 +342,7 @@ light_energy = 2.0 light_bake_mode = 1 shadow_enabled = true omni_range = 10.0 +omni_attenuation = 2.0 [node name="OmniLight3D3" type="OmniLight3D" parent="LightmapGI/Lighting"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, -21.5) @@ -345,12 +350,14 @@ light_energy = 2.0 light_bake_mode = 1 shadow_enabled = true omni_range = 10.0 +omni_attenuation = 2.0 [node name="OmniLight3D4" type="OmniLight3D" parent="LightmapGI/Lighting"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, -43.5) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, -51.5) light_energy = 2.0 light_bake_mode = 1 omni_range = 83.0 +omni_attenuation = 2.0 [node name="ReflectionProbes" type="Node3D" parent="LightmapGI"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) @@ -376,7 +383,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 6.2, -23) size = Vector3(16, 6, 12) interior = true -[node name="LightmapProbeGrid" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbes" type="Node3D" parent="LightmapGI"] + +[node name="LightmapProbeGrid" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.1629105, 1.0473042, 3.522971) script = ExtResource("9_p8lkr") size = Vector3(11.510193, 3.0946074, 2.6259294) @@ -385,130 +394,130 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, 1.5473037, 1.3129647) -[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, 1.5473037, 0) -[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, 1.5473037, -1.3129647) -[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, 0, 1.3129647) -[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, 0, 0) -[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, 0, -1.3129647) -[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, -1.5473037, 1.3129647) -[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, -1.5473037, 0) -[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7550964, -1.5473037, -1.3129647) -[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, 1.5473037, 1.3129647) -[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, 1.5473037, 0) -[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, 1.5473037, -1.3129647) -[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, 0, 1.3129647) -[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, -1.5473037, 1.3129647) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, -1.5473037, 0) -[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8775482, -1.5473037, -1.3129647) -[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5473037, 1.3129647) -[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5473037, 0) -[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5473037, -1.3129647) -[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.3129647) -[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.3129647) -[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5473037, 1.3129647) -[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5473037, 0) -[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5473037, -1.3129647) -[node name="LightmapProbe 3, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, 1.5473037, 1.3129647) -[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, 1.5473037, 0) -[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, 1.5473037, -1.3129647) -[node name="LightmapProbe 3, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, 0, 1.3129647) -[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, 0, -1.3129647) -[node name="LightmapProbe 3, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, -1.5473037, 1.3129647) -[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, -1.5473037, 0) -[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8775482, -1.5473037, -1.3129647) -[node name="LightmapProbe 4, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, 1.5473037, 1.3129647) -[node name="LightmapProbe 4, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, 1.5473037, 0) -[node name="LightmapProbe 4, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, 1.5473037, -1.3129647) -[node name="LightmapProbe 4, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, 0, 1.3129647) -[node name="LightmapProbe 4, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, 0, 0) -[node name="LightmapProbe 4, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, 0, -1.3129647) -[node name="LightmapProbe 4, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, -1.5473037, 1.3129647) -[node name="LightmapProbe 4, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, -1.5473037, 0) -[node name="LightmapProbe 4, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid"] +[node name="LightmapProbe 4, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7550964, -1.5473037, -1.3129647) -[node name="LightmapProbeGrid2" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbeGrid2" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.068351865, 2.7555513, -4.830836) script = ExtResource("9_p8lkr") size = Vector3(4.6403966, 6.5111017, 9.133811) @@ -517,55 +526,55 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 1, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, 3.2555509, -2.2834525) -[node name="LightmapProbe 1, 0, 4" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 0, 4" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, 3.2555509, -4.5669055) -[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, 0, 4.5669055) -[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, 0, 2.2834527) -[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, 0, 0) -[node name="LightmapProbe 1, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, 0, -2.2834525) -[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, -3.2555509, 4.5669055) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7733995, -3.2555509, 2.2834527) -[node name="LightmapProbe 2, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, 3.2555509, -2.2834525) -[node name="LightmapProbe 2, 0, 4" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 0, 4" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, 3.2555509, -4.5669055) -[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, 0, 4.5669055) -[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, 0, 2.2834527) -[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, 0, 0) -[node name="LightmapProbe 2, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, 0, -2.2834525) -[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, -3.2555509, 4.5669055) -[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid2"] +[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.77339935, -3.2555509, 2.2834527) -[node name="LightmapProbeGrid3" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbeGrid3" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.1702933, 5.1552534, -15.174561) script = ExtResource("9_p8lkr") size = Vector3(13.117686, 3.1503634, 3.0525174) @@ -574,115 +583,115 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, 1.5262587) -[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, 0) -[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, -1.5262587) -[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, 1.5262587) -[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, 0) -[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, -1.5262587) -[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, 1.5262587) -[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, 0) -[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, -1.5262587) -[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 1.5751817, 1.5262587) -[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 1.5751817, 0) -[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 1.5751817, -1.5262587) -[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 0, 1.5262587) -[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 0, 0) -[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 0, -1.5262587) -[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, -1.5751817, 1.5262587) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, -1.5751817, 0) -[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, -1.5751817, -1.5262587) -[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 1.5751817, 1.5262587) -[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 1.5751817, 0) -[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 1.5751817, -1.5262587) -[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 0, 1.5262587) -[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 0, 0) -[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 0, -1.5262587) -[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, -1.5751817, 1.5262587) -[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, -1.5751817, 0) -[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, -1.5751817, -1.5262587) -[node name="LightmapProbe 3, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 1.5751817, 1.5262587) -[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 1.5751817, 0) -[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 1.5751817, -1.5262587) -[node name="LightmapProbe 3, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 0, 1.5262587) -[node name="LightmapProbe 3, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 0, 0) -[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 0, -1.5262587) -[node name="LightmapProbe 3, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, -1.5751817, 1.5262587) -[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, -1.5751817, 0) -[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid3"] +[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, -1.5751817, -1.5262587) -[node name="LightmapProbeGrid7" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbeGrid7" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16657281, 5.1552534, -10.783033) script = ExtResource("9_p8lkr") size = Vector3(5.1102457, 3.1503634, 3.0513806) @@ -691,61 +700,61 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5551229, 1.5751817, 1.5256903) -[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5551229, 1.5751817, -1.5256903) -[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5551229, 0, 1.5256903) -[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5551229, 0, -1.5256903) -[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5551229, -1.5751817, 1.5256903) -[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5551229, -1.5751817, -1.5256903) -[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5751817, 1.5256903) -[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5751817, -1.5256903) -[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.5256903) -[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.5256903) -[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5751817, 1.5256903) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5751817, -1.5256903) -[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5551229, 1.5751817, 1.5256903) -[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5551229, 1.5751817, -1.5256903) -[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5551229, 0, 1.5256903) -[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5551229, 0, -1.5256903) -[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5551229, -1.5751817, 1.5256903) -[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid7"] +[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid7"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5551229, -1.5751817, -1.5256903) -[node name="LightmapProbeGrid5" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbeGrid5" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.1702933, 5.1552534, -20.643461) script = ExtResource("9_p8lkr") size = Vector3(13.117686, 3.1503634, 6.0269423) @@ -754,124 +763,124 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, 3.0134711) -[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, 1.0044904) -[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, -1.0044904) -[node name="LightmapProbe 0, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 1.5751817, -3.0134711) -[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, 3.0134711) -[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, 1.0044904) -[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, -1.0044904) -[node name="LightmapProbe 0, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, 0, -3.0134711) -[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, 3.0134711) -[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, 1.0044904) -[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, -1.0044904) -[node name="LightmapProbe 0, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 0, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.558843, -1.5751817, -3.0134711) -[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 1.5751817, 1.0044904) -[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 1.5751817, -1.0044904) -[node name="LightmapProbe 1, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 1.5751817, -3.0134711) -[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 0, 1.0044904) -[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 0, -1.0044904) -[node name="LightmapProbe 1, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, 0, -3.0134711) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, -1.5751817, 1.0044904) -[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, -1.5751817, -1.0044904) -[node name="LightmapProbe 1, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 1, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1862812, -1.5751817, -3.0134711) -[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 1.5751817, 1.0044904) -[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 1.5751817, -1.0044904) -[node name="LightmapProbe 2, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 1.5751817, -3.0134711) -[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 0, 1.0044904) -[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 0, -1.0044904) -[node name="LightmapProbe 2, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, 0, -3.0134711) -[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, -1.5751817, 1.0044904) -[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, -1.5751817, -1.0044904) -[node name="LightmapProbe 2, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 2, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1862807, -1.5751817, -3.0134711) -[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 1.5751817, 1.0044904) -[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 1.5751817, -1.0044904) -[node name="LightmapProbe 3, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 1.5751817, -3.0134711) -[node name="LightmapProbe 3, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 0, 1.0044904) -[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 0, -1.0044904) -[node name="LightmapProbe 3, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, 0, -3.0134711) -[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, -1.5751817, 1.0044904) -[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, -1.5751817, -1.0044904) -[node name="LightmapProbe 3, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid5"] +[node name="LightmapProbe 3, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid5"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.558842, -1.5751817, -3.0134711) -[node name="LightmapProbeGrid6" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbeGrid6" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.8476844, 5.1552534, -26.633574) script = ExtResource("9_p8lkr") size = Vector3(3.0817313, 3.1503634, 3.1212702) @@ -880,55 +889,55 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, 1.5751817, 1.5606351) -[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, 1.5751817, 0) -[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, 1.5751817, -1.5606351) -[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, 0, 1.5606351) -[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, 0, 0) -[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, 0, -1.5606351) -[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, -1.5751817, 1.5606351) -[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, -1.5751817, 0) -[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5408657, -1.5751817, -1.5606351) -[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, 1.5751817, 1.5606351) -[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, 1.5751817, 0) -[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, 1.5751817, -1.5606351) -[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, 0, 1.5606351) -[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, 0, 0) -[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, -1.5751817, 1.5606351) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid6"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid6"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5408657, -1.5751817, 0) -[node name="LightmapProbeGrid4" type="Node3D" parent="LightmapGI"] +[node name="LightmapProbeGrid4" type="Node3D" parent="LightmapGI/LightmapProbes"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.31298542, 4.872013, -32.370583) script = ExtResource("9_p8lkr") size = Vector3(22.084244, 3.7168427, 8.489476) @@ -937,148 +946,148 @@ far_distance = 1.0 object_size = 1.0 metadata/_custom_type_script = "uid://dbcy7qdq4hqlg" -[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 1.8584228, 4.244747) -[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 1.8584228, 1.414913) -[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 1.8584228, -1.414914) -[node name="LightmapProbe 0, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 1.8584228, -4.244747) -[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 0, 4.244747) -[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 0, 1.414913) -[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 0, -1.414914) -[node name="LightmapProbe 0, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, 0, -4.244747) -[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, -1.8584228, 4.244747) -[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, -1.8584228, 1.414913) -[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, -1.8584228, -1.414914) -[node name="LightmapProbe 0, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 0, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.042128, -1.8584228, -4.244747) -[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 1.8584228, 4.244747) -[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 1.8584228, 1.414913) -[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 1.8584228, -1.414914) -[node name="LightmapProbe 1, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 1.8584228, -4.244747) -[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 0, 4.244747) -[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 0, 1.414913) -[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 0, -1.414914) -[node name="LightmapProbe 1, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, 0, -4.244747) -[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, -1.8584228, 4.244747) -[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, -1.8584228, 1.414913) -[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, -1.8584228, -1.414914) -[node name="LightmapProbe 1, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 1, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.680708, -1.8584228, -4.244747) -[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 1.8584228, 4.244747) -[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 1.8584228, 1.414913) -[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 1.8584228, -1.414914) -[node name="LightmapProbe 2, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 1.8584228, -4.244747) -[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 0, 4.244747) -[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 0, 1.414913) -[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 0, -1.414914) -[node name="LightmapProbe 2, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, 0, -4.244747) -[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, -1.8584228, 4.244747) -[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, -1.8584228, 1.414913) -[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, -1.8584228, -1.414914) -[node name="LightmapProbe 2, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 2, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.680709, -1.8584228, -4.244747) -[node name="LightmapProbe 3, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 0, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 1.8584228, 4.244747) -[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 0, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 1.8584228, 1.414913) -[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 0, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 1.8584228, -1.414914) -[node name="LightmapProbe 3, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 0, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 1.8584228, -4.244747) -[node name="LightmapProbe 3, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 1, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 0, 4.244747) -[node name="LightmapProbe 3, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 1, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 0, 1.414913) -[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 1, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 0, -1.414914) -[node name="LightmapProbe 3, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 1, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, 0, -4.244747) -[node name="LightmapProbe 3, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 2, 0" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, -1.8584228, 4.244747) -[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 2, 1" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, -1.8584228, 1.414913) -[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 2, 2" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, -1.8584228, -1.414914) -[node name="LightmapProbe 3, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbeGrid4"] +[node name="LightmapProbe 3, 2, 3" type="LightmapProbe" parent="LightmapGI/LightmapProbes/LightmapProbeGrid4"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.042128, -1.8584228, -4.244747) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] diff --git a/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres b/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres index 02b5068..8b217b8 100644 --- a/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres +++ b/source/_development/ayuroo/levels/_experimental/prototype_grid_dark.tres @@ -8,3 +8,4 @@ albedo_texture = ExtResource("1_pfrvh") roughness = 0.5 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) +texture_filter = 5 diff --git a/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres b/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres index cfb13c2..6ad1a02 100644 --- a/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres +++ b/source/_development/ayuroo/levels/_experimental/prototype_grid_orange.tres @@ -8,3 +8,4 @@ albedo_texture = ExtResource("1_67eg5") roughness = 0.5 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) +texture_filter = 5 diff --git a/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres b/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres index 1ac9e53..0e45cac 100644 --- a/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres +++ b/source/_development/ayuroo/levels/_experimental/prototype_grid_red.tres @@ -8,3 +8,4 @@ albedo_texture = ExtResource("1_vv0ty") roughness = 0.5 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) +texture_filter = 5 diff --git a/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres b/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres index c9f45b1..5316536 100644 --- a/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres +++ b/source/_development/ayuroo/models/circus_tent/prototype_grid_orange.tres @@ -8,3 +8,4 @@ albedo_texture = ExtResource("1_8tkn2") roughness = 0.97 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) +texture_filter = 5 diff --git a/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres b/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres index 89b3329..bd47211 100644 --- a/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres +++ b/source/_development/ayuroo/models/circus_tent/prototype_grid_red.tres @@ -8,3 +8,4 @@ albedo_texture = ExtResource("1_gjyc6") roughness = 0.97 uv1_scale = Vector3(2, 2, 1) uv1_offset = Vector3(0, -1, 0) +texture_filter = 5 diff --git a/source/addons/controller_icons/settings.tres b/source/addons/controller_icons/settings.tres index eebffde..9b1e8af 100644 --- a/source/addons/controller_icons/settings.tres +++ b/source/addons/controller_icons/settings.tres @@ -4,9 +4,3 @@ [resource] script = ExtResource("1") -joypad_fallback = 9 -joypad_deadzone = 0.5 -allow_mouse_remap = true -mouse_min_movement = 200 -custom_asset_dir = "" -custom_file_extension = "" diff --git a/source/addons/logger/logger.gd b/source/addons/logger/logger.gd index cddf1b0..cda8ec7 100644 --- a/source/addons/logger/logger.gd +++ b/source/addons/logger/logger.gd @@ -108,17 +108,17 @@ func _update_hud() -> void: var text: String = "" if not msg_list.is_empty(): - text = "[color=%s]=== Normal Logs ===\n" %TYPE_TITLE_COLOR + text = "[color=%s]===[ Normal Logs ]===\n" % TYPE_TITLE_COLOR text += "\n".join(msg_list) if not msg_list.is_empty() else "" # first regular messages. text += "\n" if not msgf_list.is_empty(): - text += "[color=%s]=== Frame-Logs ===\n" %TYPE_TITLE_COLOR + text += "[color=%s]===[ Frame-Logs ]===\n" % TYPE_TITLE_COLOR text += "\n".join(msgf_list) if not msgf_list.is_empty() else "" # frame messages afterwards. text += "\n" if not msgpf_list.is_empty(): - text += "[color=%s]=== Physics-Frame-Logs ===\n" %TYPE_TITLE_COLOR + text += "[color=%s]===[ Physics-Frame-Logs ]===\n" % TYPE_TITLE_COLOR text += "\n".join(msgpf_list) if not msgpf_list.is_empty() else "" # and now physics frames. log_label.set_text(text) diff --git a/source/addons/version_display/version_display.gd b/source/addons/version_display/version_display.gd index dd22e18..80fbc2b 100644 --- a/source/addons/version_display/version_display.gd +++ b/source/addons/version_display/version_display.gd @@ -3,7 +3,9 @@ extends CanvasLayer const DEFAULT_TEXT: String = "{game_name} - {state} - V - {version}" const UNDEFINED_TEXT: String = "Undefined" -@export_enum("Pre-Production", "Pre-Alpha", "Early-Alpha", "Alpha", "Beta", "Early-Access", "Release") var state: String = "Pre-Alpha" +const States: String = "Pre-Production,Pre-Alpha,Early-Alpha,Alpha,Beta,Early-Access,Release" + +@export_custom(PROPERTY_HINT_ENUM_SUGGESTION, States) var state: String = "Pre-Production" @export_multiline var text_override: String = DEFAULT_TEXT: set = set_text @onready var version_label: Label = $MarginContainer/VersionLabel diff --git a/source/addons/version_display/version_display.tscn b/source/addons/version_display/version_display.tscn index 6db0555..debf51a 100644 --- a/source/addons/version_display/version_display.tscn +++ b/source/addons/version_display/version_display.tscn @@ -7,7 +7,6 @@ process_mode = 3 layer = 64 follow_viewport_enabled = true script = ExtResource("1_jk1t8") -state = "Pre-Production" [node name="MarginContainer" type="MarginContainer" parent="."] anchors_preset = 15 diff --git a/source/assets/materials/cloth/red_cloth.tres b/source/assets/materials/cloth/red_cloth.tres index 98daab1..3079395 100644 --- a/source/assets/materials/cloth/red_cloth.tres +++ b/source/assets/materials/cloth/red_cloth.tres @@ -16,3 +16,4 @@ heightmap_deep_parallax = true heightmap_min_layers = 8 heightmap_max_layers = 32 heightmap_texture = ExtResource("4") +texture_filter = 5 diff --git a/source/assets/materials/dev/dark/dark_01.tres b/source/assets/materials/dev/dark/dark_01.tres index 08ac273..8d86d9e 100644 --- a/source/assets/materials/dev/dark/dark_01.tres +++ b/source/assets/materials/dev/dark/dark_01.tres @@ -6,3 +6,4 @@ albedo_texture = ExtResource("1_38xbi") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/dark/dark_02.tres b/source/assets/materials/dev/dark/dark_02.tres index 56cac43..c4e392a 100644 --- a/source/assets/materials/dev/dark/dark_02.tres +++ b/source/assets/materials/dev/dark/dark_02.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://olxux7okrb2b"] -[ext_resource type="Texture2D" uid="uid://c8a1v7bw3jjca" path="res://addons/kenney_prototype_textures/dark/texture_02.png" id="1_jl162"] +[ext_resource type="Texture2D" uid="uid://c8a1v7bw3jjca" path="res://assets/materials/dev/dark/texture_02.png" id="1_jl162"] [resource] albedo_texture = ExtResource("1_jl162") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/dark/dark_03.tres b/source/assets/materials/dev/dark/dark_03.tres index ea660cf..82756be 100644 --- a/source/assets/materials/dev/dark/dark_03.tres +++ b/source/assets/materials/dev/dark/dark_03.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://blkew2hja11cj"] -[ext_resource type="Texture2D" uid="uid://crgcp76xdixb" path="res://addons/kenney_prototype_textures/dark/texture_03.png" id="1_t7bo5"] +[ext_resource type="Texture2D" uid="uid://crgcp76xdixb" path="res://assets/materials/dev/dark/texture_03.png" id="1_t7bo5"] [resource] albedo_texture = ExtResource("1_t7bo5") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/dark/dark_04.tres b/source/assets/materials/dev/dark/dark_04.tres index 91bbb4b..a116e16 100644 --- a/source/assets/materials/dev/dark/dark_04.tres +++ b/source/assets/materials/dev/dark/dark_04.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://biu40ot7f55no"] -[ext_resource type="Texture2D" uid="uid://djftxgnhedhk2" path="res://addons/kenney_prototype_textures/dark/texture_05.png" id="1_l8w0p"] +[ext_resource type="Texture2D" uid="uid://djftxgnhedhk2" path="res://assets/materials/dev/dark/texture_05.png" id="1_l8w0p"] [resource] albedo_texture = ExtResource("1_l8w0p") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/dark/dark_05.tres b/source/assets/materials/dev/dark/dark_05.tres index be37937..f4649e8 100644 --- a/source/assets/materials/dev/dark/dark_05.tres +++ b/source/assets/materials/dev/dark/dark_05.tres @@ -6,3 +6,4 @@ albedo_texture = ExtResource("1_c2346") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/orange/orange_01.tres b/source/assets/materials/dev/orange/orange_01.tres index 336047a..ec8a20c 100644 --- a/source/assets/materials/dev/orange/orange_01.tres +++ b/source/assets/materials/dev/orange/orange_01.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bahys2ntbh2ap"] -[ext_resource type="Texture2D" uid="uid://g26nr5u8081t" path="res://addons/kenney_prototype_textures/orange/texture_01.png" id="1_vb3n0"] +[ext_resource type="Texture2D" uid="uid://g26nr5u8081t" path="res://assets/materials/dev/orange/texture_01.png" id="1_vb3n0"] [resource] albedo_texture = ExtResource("1_vb3n0") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/orange/orange_02.tres b/source/assets/materials/dev/orange/orange_02.tres index 00730b0..bb7dd3d 100644 --- a/source/assets/materials/dev/orange/orange_02.tres +++ b/source/assets/materials/dev/orange/orange_02.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://r527wj0qbkvs"] -[ext_resource type="Texture2D" uid="uid://12e0onm52r6b" path="res://addons/kenney_prototype_textures/orange/texture_02.png" id="1_4qkig"] +[ext_resource type="Texture2D" uid="uid://12e0onm52r6b" path="res://assets/materials/dev/orange/texture_02.png" id="1_4qkig"] [resource] albedo_texture = ExtResource("1_4qkig") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/orange/orange_03.tres b/source/assets/materials/dev/orange/orange_03.tres index d2261d8..2fe8b8a 100644 --- a/source/assets/materials/dev/orange/orange_03.tres +++ b/source/assets/materials/dev/orange/orange_03.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://diwfj3ywaniq5"] -[ext_resource type="Texture2D" uid="uid://eemth84vpstv" path="res://addons/kenney_prototype_textures/orange/texture_03.png" id="1_fipy7"] +[ext_resource type="Texture2D" uid="uid://eemth84vpstv" path="res://assets/materials/dev/orange/texture_03.png" id="1_fipy7"] [resource] albedo_texture = ExtResource("1_fipy7") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/orange/orange_04.tres b/source/assets/materials/dev/orange/orange_04.tres index 3362851..0925d3f 100644 --- a/source/assets/materials/dev/orange/orange_04.tres +++ b/source/assets/materials/dev/orange/orange_04.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bwbwqb84pmji3"] -[ext_resource type="Texture2D" uid="uid://bgj70nov05sqo" path="res://addons/kenney_prototype_textures/orange/texture_04.png" id="1_mje5s"] +[ext_resource type="Texture2D" uid="uid://bgj70nov05sqo" path="res://assets/materials/dev/orange/texture_04.png" id="1_mje5s"] [resource] albedo_texture = ExtResource("1_mje5s") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/materials/dev/orange/orange_05.tres b/source/assets/materials/dev/orange/orange_05.tres index c6949e8..eefc34f 100644 --- a/source/assets/materials/dev/orange/orange_05.tres +++ b/source/assets/materials/dev/orange/orange_05.tres @@ -1,8 +1,9 @@ [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://d02jll28bgkap"] -[ext_resource type="Texture2D" uid="uid://5erjqyy4c7xn" path="res://addons/kenney_prototype_textures/orange/texture_05.png" id="1_phgo0"] +[ext_resource type="Texture2D" uid="uid://5erjqyy4c7xn" path="res://assets/materials/dev/orange/texture_05.png" id="1_phgo0"] [resource] albedo_texture = ExtResource("1_phgo0") uv1_triplanar = true uv1_world_triplanar = true +texture_filter = 5 diff --git a/source/assets/models/electrics/Glass.tres b/source/assets/models/electrics/Glass.tres deleted file mode 100644 index 5143097..0000000 --- a/source/assets/models/electrics/Glass.tres +++ /dev/null @@ -1,13 +0,0 @@ -[gd_resource type="StandardMaterial3D" load_steps=5 format=2] -[ext_resource path="Glass_albedo.png" type="Texture" id=1] -[ext_resource path="Glass_orm.png" type="Texture" id=2] -[resource] -albedo_color = Color(1.0, 1.0, 1.0, 1.0) -albedo_texture = ExtResource( 1 ) -metallic = 1.0 -roughness = 0.7 -roughness_texture = ExtResource( 2 ) -roughness_texture_channel = 1 - - - diff --git a/source/assets/models/electrics/Glass_albedo.png b/source/assets/models/electrics/Glass_albedo.png deleted file mode 100644 index 39557ff..0000000 Binary files a/source/assets/models/electrics/Glass_albedo.png and /dev/null differ diff --git a/source/assets/models/electrics/Glass_albedo.png.import b/source/assets/models/electrics/Glass_albedo.png.import deleted file mode 100644 index 351da9e..0000000 --- a/source/assets/models/electrics/Glass_albedo.png.import +++ /dev/null @@ -1,41 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cjdn0al3k5sr1" -path.s3tc="res://.godot/imported/Glass_albedo.png-11a38e2ea0392d99b9c5666124e14317.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} - -[deps] - -source_file="res://assets/models/electrics/Glass_albedo.png" -dest_files=["res://.godot/imported/Glass_albedo.png-11a38e2ea0392d99b9c5666124e14317.s3tc.ctex"] - -[params] - -compress/mode=2 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/source/assets/models/electrics/Glass_orm.png b/source/assets/models/electrics/Glass_orm.png deleted file mode 100644 index 36feab1..0000000 Binary files a/source/assets/models/electrics/Glass_orm.png and /dev/null differ diff --git a/source/assets/models/electrics/Glass_orm.png.import b/source/assets/models/electrics/Glass_orm.png.import deleted file mode 100644 index 70c4b4f..0000000 --- a/source/assets/models/electrics/Glass_orm.png.import +++ /dev/null @@ -1,41 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bdri3fghliji3" -path.s3tc="res://.godot/imported/Glass_orm.png-ab661433c67191ce8cc45b129ded3d93.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} - -[deps] - -source_file="res://assets/models/electrics/Glass_orm.png" -dest_files=["res://.godot/imported/Glass_orm.png-ab661433c67191ce8cc45b129ded3d93.s3tc.ctex"] - -[params] - -compress/mode=2 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/source/assets/models/electrics/cable.tres b/source/assets/models/electrics/cable.tres index d764bb5..a5ece84 100644 --- a/source/assets/models/electrics/cable.tres +++ b/source/assets/models/electrics/cable.tres @@ -3,3 +3,4 @@ [resource] albedo_color = Color(0.1148968, 0.11489681, 0.1148968, 1) roughness = 0.85 +texture_filter = 0 diff --git a/source/project.godot b/source/project.godot index 6f3f8e2..f2c1e17 100644 --- a/source/project.godot +++ b/source/project.godot @@ -119,9 +119,16 @@ jump={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null) ] } -toggle_mouse={ +crouch={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194332,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) +] +} +interact={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null) ] } camera_up={ @@ -155,6 +162,11 @@ toggle_console={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +toggle_mouse={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194332,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} bbcode_edit/toggle_bold={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":true,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":66,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) @@ -180,12 +192,6 @@ bbcode_edit/editor/open_current_file_documentation={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194332,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } -crouch={ -"deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) -] -} [internationalization] diff --git a/source/src/core/camera/camera_effect.gd b/source/src/core/camera/camera_effect.gd index 69e678a..c4a6ab9 100644 --- a/source/src/core/camera/camera_effect.gd +++ b/source/src/core/camera/camera_effect.gd @@ -3,13 +3,23 @@ class_name CameraEffect extends Node +## If the effect isn't enabled, we don't process the effect. @export var effect_enabled: bool = true: set = set_effect_enabled +## The node we can gain spatial information from.[br] +## Has no effect when unset, unless the specific effect requires it. @export var root_node: Node3D +## The [CameraEffectTarget] we wan't to change. @export var target: CameraEffectTarget +## Offset the camera's [member Node3D.position] by this amount. var position: Vector3 +## Offset the camera's [member Node3D.rotation] by this amount. var rotation: Vector3 -var fov: float +## Only change this if you really need to; [b]it overrides the camera fov.[/b][br] +## If set below [code]0.001[/code], this has no effect [i](doesn't override the camera fov)[/i]. +var fov: float = -1.0 +## Offset the camera's [member Camera3D.fov] by this amount. +var fov_change: float = 0.0 func _process(delta: float) -> void: @@ -21,6 +31,11 @@ func _process(delta: float) -> void: target.position += position target.rotation += rotation + if fov >= 0.001: + target.fov = fov + + target.fov_change += fov_change + func set_effect_enabled(value: bool) -> void: effect_enabled = value diff --git a/source/src/core/camera/camera_effect_target.gd b/source/src/core/camera/camera_effect_target.gd index 5bb755f..ad8e28a 100644 --- a/source/src/core/camera/camera_effect_target.gd +++ b/source/src/core/camera/camera_effect_target.gd @@ -4,10 +4,20 @@ extends Node3D @export var camera: Camera3D +var fov: float = 0.0 +var fov_change: float = 0.0 + + func _ready() -> void: + fov = camera.fov RenderingServer.frame_post_draw.connect(cleanup_effects, CONNECT_DEFERRED) +func _process(_delta: float) -> void: + camera.fov = clampf(fov + fov_change, 1.0, 179.0) + fov_change = 0.0 + + func cleanup_effects() -> void: if not is_instance_valid(get_tree()): return diff --git a/source/src/core/spawnpoint/player_spawn_point.gd b/source/src/core/spawnpoint/player_spawn_point.gd index 1827869..dd70e59 100644 --- a/source/src/core/spawnpoint/player_spawn_point.gd +++ b/source/src/core/spawnpoint/player_spawn_point.gd @@ -88,6 +88,7 @@ func _init() -> void: # Setup labels. _idx_label = Label3D.new() + _idx_label.ignore_occlusion_culling = true _idx_label.billboard = BaseMaterial3D.BILLBOARD_ENABLED _idx_label.shaded = false _idx_label.font_size = 64 diff --git a/source/src/core/vibration_component.gd b/source/src/core/vibration_component.gd index d2f65c1..4fe2e1c 100644 --- a/source/src/core/vibration_component.gd +++ b/source/src/core/vibration_component.gd @@ -20,17 +20,19 @@ signal started_vibration @export var device: int = 0: get = get_device, set = set_device -## The delay the vibration by this amount. +## Delay the vibration by this amount. @export var delay: float = 0.0 -@export var editor_delay: float = 0.0 @export var sync_to_audio: bool = false +#region Editor tooling @warning_ignore_start("unused_private_class_variable") +@export var _editor_weak_vibration: bool = false @export_tool_button("Test Vibration", "InputEventJoypadMotion") var _editor_test_vibration: Callable = vibrate @export_tool_button("Stop Vibration", "MissingNode") var _editor_stop_test_vibration: Callable = stop_vibration @warning_ignore_restore("unused_private_class_variable") +#endregion @export_group("Magnitude") ## [param weak_magnitude] is the strength of the weak motor @@ -48,16 +50,32 @@ var _editor_stop_test_vibration: Callable = stop_vibration get = get_magnitude_multiplier, set = set_magnitude_multiplier +@export_group("Weak Controller Overrides", "weak_controller_") +@export var weak_controller_magnitude_multiplier: float = 2.0 +@export var weak_controller_duration_multiplier: float = 1.0 + var animated_weak_magnitude: float = 0.0: set(value): animated_weak_magnitude = clampf(value, 0.0, 1.0) var animated_strong_magnitude: float = 0.0: set(value): animated_strong_magnitude = clampf(value, 0.0, 1.0) +var _ed_was_weak_vibration: bool = false + + +func _notification(what: int) -> void: + if what == NOTIFICATION_EDITOR_PRE_SAVE: + _ed_was_weak_vibration = _editor_weak_vibration + _editor_weak_vibration = false + elif what == NOTIFICATION_EDITOR_POST_SAVE: + _editor_weak_vibration = _ed_was_weak_vibration func _process(delta: float) -> void: - if not is_zero_approx(animated_weak_magnitude + animated_strong_magnitude): + if ( + can_vibrate() + and not is_zero_approx(animated_weak_magnitude + animated_strong_magnitude) + ): Input.start_joy_vibration.call_deferred( device, animated_weak_magnitude, animated_strong_magnitude, delta ) @@ -68,35 +86,37 @@ func _process(delta: float) -> void: ## Performs the controller vibration based on given parameters of the component.[br] ## [b]Info[/b]: The [member enabled] parameter must be [code]true[/code]. func vibrate() -> void: - # Don't vibrate if the user has it turned off. - if not Engine.is_editor_hint(): - if ( - not InputManager.using_controller - #or not ProjectSettings.get_setting("game/input/controller_vibrations", true) - ): - return + if not can_vibrate(): + return - if enabled: - if sync_to_audio: - var last_mix_time: float = AudioServer.get_time_since_last_mix() - var output_latency: float = AudioServer.get_output_latency() - #SPrint.print_msg("Audio Delay: %s" % (last_mix_time + output_latency)) - await get_tree().create_timer(last_mix_time + output_latency).timeout + var is_weak_controller: bool - if delay > 0.0: - await get_tree().create_timer(delay).timeout + if Engine.is_editor_hint(): + is_weak_controller = _editor_weak_vibration + else: + is_weak_controller = SettingsManager.get_setting(&"controls", &"using_weak_controller") - if OS.is_debug_build() and editor_delay > 0.0: - await get_tree().create_timer(editor_delay).timeout + if delay > 0.0: + await get_tree().create_timer(delay).timeout - Input.start_joy_vibration( - device, - clampf(weak_magnitude * magnitude_multiplier, 0.0, 1.0), - clampf(strong_magnitude * magnitude_multiplier, 0.0, 1.0), - duration - ) + if sync_to_audio: + var last_mix_time: float = AudioServer.get_time_since_last_mix() + var output_latency: float = AudioServer.get_output_latency() + #SPrint.print_msg("Audio Delay: %s" % (last_mix_time + output_latency)) + await get_tree().create_timer(last_mix_time + output_latency).timeout - #started_vibration.emit() + var _multiplier: float = magnitude_multiplier * ( + weak_controller_magnitude_multiplier if is_weak_controller else 1.0 + ) + + Input.start_joy_vibration( + device, + clampf(weak_magnitude * _multiplier, 0.0, 1.0), + clampf(strong_magnitude * _multiplier, 0.0, 1.0), + duration * (weak_controller_duration_multiplier if is_weak_controller else 1.0) + ) + + #started_vibration.emit() ## Stops the vibration of the joypad, based on the [member device] parameter, @@ -105,6 +125,18 @@ func stop_vibration() -> void: Input.stop_joy_vibration(device) +## Don't vibrate if the user has it turned off. +func can_vibrate() -> bool: + if not Engine.is_editor_hint(): + if ( + not InputManager.using_controller + #or not ProjectSettings.get_setting("game/input/controller_vibrations", true) + ): + return false + + return enabled + + func set_enabled(value: bool) -> void: enabled = value diff --git a/source/src/gameplay/characters/player/head.gd b/source/src/gameplay/characters/player/head.gd index a85f0ef..8667b3f 100644 --- a/source/src/gameplay/characters/player/head.gd +++ b/source/src/gameplay/characters/player/head.gd @@ -34,19 +34,10 @@ const CONTROLLER_INVERT_Y_PATH: StringName = &"game/input/camera_controller_inve @export var controller_invert_x: bool = false @export var controller_invert_y: bool = false -@export_group("Headbobbing", "headbob_") -@export var headbob_range: float = 0.25 -@export var headbob_frequency: float = 0.5 -@export var headbob_multiplier: float = 1.0 -@export var headbob_target: Node3D - var rotational_direction: Vector2 var rotational_velocity: Vector2 var input_event: InputEvent var using_controller: bool = false -# Headbobbing -var headbob_time: float = 0.0 -var headbob_enabled: bool = true func _ready() -> void: @@ -58,29 +49,15 @@ func _ready() -> void: invert_y = ProjectSettings.get_setting(INVERT_Y_PATH, false) controller_invert_x = ProjectSettings.get_setting(CONTROLLER_INVERT_X_PATH, false) controller_invert_y = ProjectSettings.get_setting(CONTROLLER_INVERT_Y_PATH, false) - headbob_enabled = SettingsManager.get_setting(&"misc", &"headbobbing") SettingsManager.settings_changed.connect(_update_settings) ProjectSettings.settings_changed.connect(_update_settings) _update_settings.call() - #_setup_step_smoothing() - func _process(delta: float) -> void: if not is_instance_valid(GameGlobals.game) or not GameGlobals.game.world.in_cutscene: _process_input(delta) - #_perform_head_bob(delta) -# - #if is_instance_valid(character): - #if character.is_on_floor() and not character.was_on_floor: - #if absf(character.previous_velocity.y) > impact_min_fall_velocity: - #var fall_velocity: float = maxf(-character.previous_velocity.y * 0.5, impact_max_fall_velocity) - #add_impact(Vector3.DOWN * 0.15 * fall_velocity, 0.35) -# - #_process_impact(delta) -# - #_process_step_smoothing(delta) func _unhandled_input(event: InputEvent) -> void: @@ -172,25 +149,3 @@ func _process_controller(delta: float) -> void: func _lerp_rotational_velocity(sensitivity: float, friction: float, delta: float) -> Vector2: return rotational_velocity.lerp(rotational_direction * sensitivity, friction * delta) #endregion - - -#region Headbobbing -func _perform_head_bob(delta: float) -> void: - if not headbob_enabled: - headbob_target.position = Vector3.ZERO - headbob_target.rotation.z = 0.0 - headbob_time = 0.0 - return - - var headbob_speed: float = maxf((character.velocity * Utils.VEC3_HOR).length(), 1.0) - SPrint.print_msgf(str("Headbob-Speed: ", headbob_speed), true) - SPrint.print_msgf(str("Headbob-Clock: ", headbob_time), true) - - headbob_time += delta * headbob_speed * headbob_multiplier - headbob_time = fposmod(headbob_time, TAU) - - headbob_target.position.y = sin(headbob_time * headbob_frequency) * headbob_range - headbob_target.position.x = cos(headbob_time * headbob_frequency / 2) * headbob_range - headbob_target.rotation.z = deg_to_rad(lerp(headbob_target.position.x, headbob_target.position.y, 0.5)) * TAU - SPrint.print_msgf(str("Head Z-Rotation: ", headbob_target.rotation.z), true) -#endregion diff --git a/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.gd b/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.gd index 596ca15..ded127a 100644 --- a/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.gd +++ b/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.gd @@ -17,6 +17,6 @@ func _ready() -> void: func set_glowing(value: bool) -> void: active = value - var material: Material = powered_material if value else null + var material: Material = powered_material if active else null projector_mesh.set_surface_override_material(override_surface_index, material) - glow_mesh.visible = value + glow_mesh.visible = active diff --git a/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.tscn b/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.tscn index 0b487fd..554be13 100644 --- a/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.tscn +++ b/source/src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.tscn @@ -1,12 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://k3edwxkml8dd"] +[gd_scene load_steps=8 format=3 uid="uid://k3edwxkml8dd"] [ext_resource type="Script" uid="uid://c6j42r4fsxiha" path="res://src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.gd" id="1_0n826"] [ext_resource type="PackedScene" uid="uid://dlyy375sgb4m2" path="res://src/gameplay/props/electrics/hologram_projector/model/hologram_projector_floor.glb" id="2_xkimn"] +[ext_resource type="Material" uid="uid://dsvaigjgpnym8" path="res://src/gameplay/props/electrics/hologram_projector/model/glass_powered.tres" id="3_hg5uv"] [sub_resource type="Gradient" id="Gradient_0n826"] interpolation_mode = 2 -offsets = PackedFloat32Array(0.25420874, 0.30808082, 0.34511784, 0.38215488, 0.4124579, 0.503367) -colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.86718756, 1, 1, 1, 0.33789822, 1, 1, 1, 0.13586852, 1, 1, 1, 0.05530738, 1, 1, 1, 0) +offsets = PackedFloat32Array(0.25420874, 0.26094276, 0.30808082, 0.38215488, 0.496633) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.86718756, 1, 1, 1, 0.33789822, 1, 1, 1, 0.07450981, 1, 1, 1, 0) [sub_resource type="GradientTexture2D" id="GradientTexture2D_tek7r"] gradient = SubResource("Gradient_0n826") @@ -17,15 +18,28 @@ fill_from = Vector2(0, 1) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xkimn"] transparency = 4 cull_mode = 2 -shading_mode = 0 +diffuse_mode = 3 +specular_mode = 2 disable_ambient_light = true -albedo_color = Color(0.4738321, 1.353256, 1.353256, 0.21568628) +albedo_color = Color(0.7844504, 1.3140352, 1.3007404, 1) albedo_texture = SubResource("GradientTexture2D_tek7r") +metallic_specular = 1.0 +roughness = 0.9 +emission_enabled = true +emission = Color(0.4738321, 1.353256, 1.353256, 0.21568628) +emission_energy_multiplier = 0.5 +rim_enabled = true +rim_tint = 1.0 +distance_fade_mode = 1 +distance_fade_min_distance = 0.25 +distance_fade_max_distance = 0.5 +stencil_flags = 2 [sub_resource type="CylinderMesh" id="CylinderMesh_hg5uv"] top_radius = 1.0 bottom_radius = 0.15 height = 4.0 +radial_segments = 32 rings = 0 cap_top = false cap_bottom = false @@ -36,6 +50,9 @@ projector_mesh = NodePath("ProjectorModel/Projector") [node name="ProjectorModel" parent="." instance=ExtResource("2_xkimn")] +[node name="Projector" parent="ProjectorModel" index="0"] +surface_material_override/1 = ExtResource("3_hg5uv") + [node name="GlowMesh" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) material_override = SubResource("StandardMaterial3D_xkimn") diff --git a/source/src/gameplay/props/electrics/hologram_projector/model/glass.tres b/source/src/gameplay/props/electrics/hologram_projector/model/glass.tres index 29c335e..a94fd14 100644 --- a/source/src/gameplay/props/electrics/hologram_projector/model/glass.tres +++ b/source/src/gameplay/props/electrics/hologram_projector/model/glass.tres @@ -9,3 +9,4 @@ metallic = 1.0 roughness = 0.7 roughness_texture = ExtResource("2") roughness_texture_channel = 1 +texture_filter = 5 diff --git a/source/src/gameplay/props/electrics/hologram_projector/model/glass_powered.tres b/source/src/gameplay/props/electrics/hologram_projector/model/glass_powered.tres index 653f195..bf2b1c7 100644 --- a/source/src/gameplay/props/electrics/hologram_projector/model/glass_powered.tres +++ b/source/src/gameplay/props/electrics/hologram_projector/model/glass_powered.tres @@ -9,4 +9,6 @@ albedo_texture = ExtResource("1") metallic = 1.0 roughness_texture = ExtResource("3_aas0i") emission_enabled = true +emission_energy_multiplier = 3.0 emission_texture = ExtResource("5") +texture_filter = 5 diff --git a/source/src/globals/autoloads/scene_fader/scene_fader.gd b/source/src/globals/autoloads/scene_fader/scene_fader.gd index 59daa1e..4c2877f 100644 --- a/source/src/globals/autoloads/scene_fader/scene_fader.gd +++ b/source/src/globals/autoloads/scene_fader/scene_fader.gd @@ -32,7 +32,9 @@ func load_to_path(path: String, additional_paths: PackedStringArray = [], do_fad await fade_in() #await get_tree().create_timer(1.0).timeout - print("===================================\nBeginning loading sequence for files %s %s" % [path, additional_paths]) + print("===================================\nBeginning loading sequence for files %s %s" + % [Utils.uid_to_res_path(path), Utils.uid_to_res_path(additional_paths)] + ) # Load the initial level into memory first, so it can be retrived by other things later. if not additional_paths.is_empty(): diff --git a/source/src/globals/autoloads/settings/settings_manager.gd b/source/src/globals/autoloads/settings/settings_manager.gd index 8a4d867..cdb8a7b 100644 --- a/source/src/globals/autoloads/settings/settings_manager.gd +++ b/source/src/globals/autoloads/settings/settings_manager.gd @@ -15,12 +15,15 @@ var settings: Dictionary[String, Dictionary] = { &"Ambient": 1.0, }, &"video": { - &"fullscreen": true + &"fullscreen": true, + }, + &"controls": { + &"using_weak_controller": false, }, &"misc": { &"language": -1, &"headbobbing": true, - &"headbobbing_multiplier": 1.0 + &"headbobbing_multiplier": 1.0, } } diff --git a/source/src/globals/general/utils.gd b/source/src/globals/general/utils.gd index c349877..5033fdd 100644 --- a/source/src/globals/general/utils.gd +++ b/source/src/globals/general/utils.gd @@ -99,3 +99,36 @@ static func full_rotation_float( static func get_uid(path: String) -> int: var uid: int = ResourceUID.text_to_id(ResourceUID.path_to_uid(path)) return uid + + +## Converts any given uid (as an [int] or [code]uid://[/code] path) +## to a [code]res://[/code] path.[br] +## If the [param uid] is a Array of any type (any type as int or string), +## it returns an array with each value being a [code]res://[/code] path. +static func uid_to_res_path(uid: Variant) -> Variant: + if uid is int: + return ResourceUID.uid_to_path(ResourceUID.id_to_text(uid)) + elif uid is String: + return ResourceUID.uid_to_path(uid) + elif ( + uid is Array + or uid is Array[String] + or uid is Array[StringName] + or uid is Array[int] + or uid is PackedStringArray + or uid is PackedInt32Array + or uid is PackedInt64Array + ): + + var paths: PackedStringArray = [] + for id: Variant in uid: + var result: Variant = uid_to_res_path(id) + + if result is PackedStringArray: + paths.append_array(result) + else: + paths.append(result) + + return paths + + return null diff --git a/source/src/ui/menus/boot/boot.tscn b/source/src/ui/menus/boot/boot.tscn index 49d7d7b..209ebbf 100644 --- a/source/src/ui/menus/boot/boot.tscn +++ b/source/src/ui/menus/boot/boot.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=4 format=3 uid="uid://coga3ke4xw3a0"] +[gd_scene load_steps=5 format=3 uid="uid://coga3ke4xw3a0"] [ext_resource type="Script" uid="uid://bf1k68a8ky3ps" path="res://src/ui/menus/boot/boot.gd" id="1_yodsw"] [ext_resource type="PackedScene" uid="uid://b2wlequ3m4trj" path="res://src/ui/menus/boot/shader_precompilation/shader_precompiler.tscn" id="2_fge7m"] [ext_resource type="PackedScene" uid="uid://dl52ot7hyq3si" path="res://src/ui/menus/boot/pixelation_games/pixelation_games_intro.tscn" id="3_sptlg"] +[ext_resource type="PackedScene" uid="uid://4s2nskkco0a2" path="res://src/ui/menus/options_menu/options_menu.tscn" id="4_605vd"] [node name="Boot" type="Control"] layout_mode = 3 @@ -18,5 +19,9 @@ script = ExtResource("1_yodsw") [node name="PixelationGamesIntro" parent="." instance=ExtResource("3_sptlg")] process_mode = 4 +[node name="OptionsMenu" parent="." instance=ExtResource("4_605vd")] +visible = false +layout_mode = 1 + [connection signal="finished_compilation" from="ShaderPrecompiler" to="." method="_on_shader_precompiler_finished_compilation"] [connection signal="intro_finished" from="PixelationGamesIntro" to="." method="_on_pixelation_games_intro_finished"] diff --git a/source/src/ui/menus/main_menu/main_menu.gd b/source/src/ui/menus/main_menu/main_menu.gd index 0dc0b1a..62b2232 100644 --- a/source/src/ui/menus/main_menu/main_menu.gd +++ b/source/src/ui/menus/main_menu/main_menu.gd @@ -6,13 +6,17 @@ const AMBIENCE_STREAM: AudioStream = preload("uid://vft8mjglpa2u") @onready var continue_button: Button = %ContinueButton @onready var new_game_button: Button = %NewGameButton @onready var quit_button: Button = %QuitButton -@onready var options_menu: Control = $OptionsMenu -@onready var main_menu_ui: Control = $MainMenuUI +@onready var options_menu: Control = %OptionsMenu +@onready var main_menu_ui: Control = %MainMenuUI +@onready var save_confirmation: SaveConfirmation = %SaveConfirmation func _ready() -> void: - continue_button.disabled = not SaveManager.save_exists() - (continue_button if not continue_button.disabled else new_game_button).grab_focus() + if SaveManager.save_exists(): + continue_button.grab_focus() + else: + continue_button.hide() + new_game_button.grab_focus() AudioManager.play_audio(AMBIENCE_STREAM, AudioManager.AMBIENCE) @@ -55,6 +59,12 @@ func _on_continue_button_pressed() -> void: load_game() +func _on_settings_button_pressed() -> void: + if not SceneFader.is_fading: + main_menu_ui.hide() + options_menu.show() + + func _on_quit_button_pressed() -> void: if SceneFader.is_fading: return @@ -65,12 +75,6 @@ func _on_quit_button_pressed() -> void: get_tree().quit() -func _on_settings_button_pressed() -> void: - if not SceneFader.is_fading: - main_menu_ui.hide() - options_menu.show() - - func _on_chase_button_pressed() -> void: if SceneFader.is_fading: return diff --git a/source/src/ui/menus/main_menu/main_menu.tscn b/source/src/ui/menus/main_menu/main_menu.tscn index 528e546..f1b7c8d 100644 --- a/source/src/ui/menus/main_menu/main_menu.tscn +++ b/source/src/ui/menus/main_menu/main_menu.tscn @@ -11,6 +11,7 @@ ambient_light_color = Color(0.177136, 0.177136, 0.177136, 1) script = ExtResource("1_6xfbl") [node name="MainMenuUI" type="Control" parent="."] +unique_name_in_owner = true layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -70,6 +71,7 @@ layout_mode = 2 text = "QUIT" [node name="OptionsMenu" parent="." instance=ExtResource("2_i2wwg")] +unique_name_in_owner = true visible = false [node name="Background" type="Node3D" parent="."] diff --git a/source/src/ui/menus/options_menu/elements/settings_checkbox.gd b/source/src/ui/menus/options_menu/elements/settings_checkbox.gd index 1d64121..16719ce 100644 --- a/source/src/ui/menus/options_menu/elements/settings_checkbox.gd +++ b/source/src/ui/menus/options_menu/elements/settings_checkbox.gd @@ -4,6 +4,7 @@ extends CheckBox @export var section: StringName = &"" @export var key: StringName = &"" +@export var function_name: StringName = &"" func _ready() -> void: @@ -11,4 +12,7 @@ func _ready() -> void: func _toggled(toggled_on: bool) -> void: - SettingsManager.set_setting(section, key, toggled_on) + if function_name.is_empty(): + SettingsManager.set_setting(section, key, toggled_on) + else: + SettingsManager.call(function_name, toggled_on) diff --git a/source/src/ui/menus/options_menu/options_menu.tscn b/source/src/ui/menus/options_menu/options_menu.tscn index 048fb49..b2a5120 100644 --- a/source/src/ui/menus/options_menu/options_menu.tscn +++ b/source/src/ui/menus/options_menu/options_menu.tscn @@ -34,10 +34,9 @@ offset_bottom = 20.0 grow_horizontal = 2 grow_vertical = 2 tab_alignment = 1 -current_tab = 2 +current_tab = 0 [node name="Audio" type="Control" parent="TabContainer"] -visible = false layout_mode = 2 metadata/_tab_index = 0 @@ -188,10 +187,40 @@ layout_mode = 2 text = "FULLSCREEN" script = ExtResource("3_hj0r6") -[node name="Misc" type="Control" parent="TabContainer"] +[node name="Controls" type="Control" parent="TabContainer"] +visible = false layout_mode = 2 metadata/_tab_index = 2 +[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Controls"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Controls/MarginContainer"] +layout_mode = 2 + +[node name="WeakController" type="CheckBox" parent="TabContainer/Controls/MarginContainer/VBoxContainer"] +layout_mode = 2 +button_pressed = true +text = "Weak Controller Mode" +script = ExtResource("5_basnw") +section = &"controls" +key = &"using_weak_controller" +metadata/_custom_type_script = "uid://c0s18kus3bt2n" + +[node name="Misc" type="Control" parent="TabContainer"] +visible = false +layout_mode = 2 +metadata/_tab_index = 3 + [node name="MarginContainer" type="MarginContainer" parent="TabContainer/Misc"] layout_mode = 1 anchors_preset = 15 diff --git a/source/tools/anim_player_editor_calls.gd b/source/tools/anim_player_editor_calls.gd index 36f4b24..695b874 100644 --- a/source/tools/anim_player_editor_calls.gd +++ b/source/tools/anim_player_editor_calls.gd @@ -2,6 +2,11 @@ class_name AnimPlayerEditorCalls extends AnimationPlayer +@export var exclude_function_calls: Array[StringName] = [ + &"queue_free", + &"free", +] + var EDITOR_PATH: String: get: return str(get_parent().get_path()) + "/" @@ -24,6 +29,11 @@ func _process(_delta: float) -> void: if function_call.time > current_animation_position: continue + # Dont't execute these requests. + if exclude_function_calls.has(function_call.name): + remove_these_function_calls.append(i) + continue + #print("AnimationPlayer is calling the function of another node.") #print(" path: %s" % function_call.path) #print(" name: %s" % function_call.name) diff --git a/source/tools/timed_music_animationplayer.gd b/source/tools/timed_music_animationplayer.gd index 8a3c5b3..3435dd7 100644 --- a/source/tools/timed_music_animationplayer.gd +++ b/source/tools/timed_music_animationplayer.gd @@ -2,21 +2,64 @@ class_name TimedMusicAnimationPlayer extends AnimPlayerEditorCalls +## A animation player that tries to sync the music with the animation as best as it can. +## +## This is a animation player, that tries to sync up the music and animation as best as it can, +## in case they get desynced.[br] +## This can happen due to a lag, stuff loading in, +## or other stuff that blocks the main thread.[br][br] +## It first tries to sync them back up again by adjusting +## the [member AnimationPlayer.speed_scale] or [member AudioStreamPlayer.pitch_scale] property +## [i](depending on [member catch_up_behaviour])[/i].[br] +## However, if the difference between them is too big, +## it will just snap audio playback back to the animation, because the audio continues to +## run, even if the main thread is blocked.[br][br] +## [b]Note:[/b] Catching up happens before the audio get's snapped,[br] +## so [member max_error] is only effective, if the difference between audio and animation +## is bigger than the [member max_catchup_threshold], +## or lower than the [method AudioServer.get_output_latency]. + +enum CatchupBehaviour { + NONE, ## Don't catch up slowsly. + SPEED_SCALE_ANIMATION, ## Adjusts the [member AnimationPlayer.speed_scale] property when desynced. + PITCH_SCALE_MUSIC ## Adjusts the [member AudioStreamPlayer.pitch_scale] property when desynced. +} + +## The [AudioStreamPlayer], [AudioStreamPlayer2D] +## or [AudioStreamPlayer3D] the music should be played on.[br] +## [b]Should be set to the same player as defined in your animation.[/b] @export_node_path("AudioStreamPlayer", "AudioStreamPlayer2D", "AudioStreamPlayer3D") var audio_player: NodePath = ^"": set = set_audio_player -## The index in the animation where the music is played from. +## The track-index in the animation, +## where the music is played from [i](should be of type [constant Animation.TYPE_AUDIO])[/i]. @export var music_anim_track_index: int = 0 # The offset from 0.0 seconds when the music starts in the animation. #@export var music_anim_offset: float = 0.0 -@export var max_error: float = 0.02175 -@export var min_pitch_scale_range: float = 0.0015 -@export var max_pitch_scale_range: float = 0.375 +## @deprecated: Actually reduntant, because this should always happen if above [member max_catchup_threshold]. +## The max difference audio and animation can have to each other, +## until the audio is snapped back to the animation.[br] +## However, [member catch_up_behaviour] takes priority, if this is set to value lower than that. +@export var max_error: float = 0.375 # 0.02175 +@export_group("Catching up") +## Defines in what way we want to sync the audio and animation back up. +@export var catch_up_behaviour := CatchupBehaviour.SPEED_SCALE_ANIMATION +#@export var min_catchup_threshold: float = 0.0015 +## Should be set to a value above- or equal to [member max_error]. +@export var max_catchup_threshold: float = 0.375 +@export_subgroup("Pitch Scale") +## The maximum pitch scale change the audio can be set to, when they are desynced. @export var max_pitch_scale_difference: float = 1.01 +## Helper variable in case you want to modify the [member AudioStreamPlayer.pitch_scale] property. @export var custom_pitch_scale: float = 1.0 +@export_subgroup("Speed Scale") +## The maximum speed scale change the animation can be set to, when they are desynced. +@export var max_speed_scale_difference: float = 1.15 +## Helper variable in case you want to modify the [member AnimationPlayer.speed_scale] property. +@export var custom_speed_scale: float = 1.0 var _audio_player: Node var _timer := Timer.new() -var _offset: float = 0.0 +var _track_time: float = 0.0 func _ready() -> void: @@ -28,6 +71,7 @@ func _ready() -> void: set_audio_player(audio_player) animation_started.connect(_anim_started) + animation_finished.connect(_anim_finished) func _process(delta: float) -> void: @@ -41,28 +85,39 @@ func _process(delta: float) -> void: var latency: float = AudioServer.get_output_latency() var audio_position: float = _audio_player.get_playback_position() var anim_position: float = current_animation_position + AudioServer.get_time_since_last_mix() - var offset: float = anim_position - (audio_position + _offset) - var abs_offset: float = absf(offset) + var difference: float = anim_position - (audio_position + _track_time) + var abs_difference: float = absf(difference) SPrint.print_msgf("Audio-Position: %s\nAnim-Position: %s" % [audio_position, anim_position]) - SPrint.print_msgf("Audio-Anim Diff: %s" % [audio_position - anim_position]) + SPrint.print_msgf("Audio-Anim Diff: %s" % difference)#[audio_position - anim_position]) + SPrint.print_msgf("ABS-Difference: %s" % abs_difference) + SPrint.print_msgf("Anim-Speed-Scale: %s" % [speed_scale]) SPrint.print_msgf("Audio-Pitch: %s\nLatency: %s" % [_audio_player.pitch_scale, latency]) - if abs_offset < max_pitch_scale_range and abs_offset > latency:#min_pitch_scale_range: - var max_pitch_scale: float = max_pitch_scale_difference - var min_pitch_scale: float = custom_pitch_scale + (custom_pitch_scale - max_pitch_scale) - - var pitch: float = custom_pitch_scale + offset + latency - pitch = clampf(pitch, min_pitch_scale, max_pitch_scale) - pitch = lerp(_audio_player.pitch_scale, pitch, 1.0 - pow(0.5, delta)) - - _audio_player.pitch_scale = clampf(pitch, min_pitch_scale, max_pitch_scale) - elif abs_offset > max_error: - #_audio_player.seek(offset) - _audio_player.play((anim_position + _offset) - latency) + if ( + not catch_up_behaviour == CatchupBehaviour.NONE + and abs_difference < max_catchup_threshold + #and abs_difference > latency #min_catchup_threshold: + ): + match catch_up_behaviour: + CatchupBehaviour.SPEED_SCALE_ANIMATION: + _sync_anim_speed_scale(difference, delta) + CatchupBehaviour.PITCH_SCALE_MUSIC: + _sync_music_pitch_scale(latency, difference, delta) + elif abs_difference > max_error: + #_audio_player.seek(difference) + _audio_player.play(anim_position + _track_time + latency) SPrint.print_msg("Snapped Audio to: %s" % [_audio_player.get_playback_position()]) else: _audio_player.pitch_scale = custom_pitch_scale + speed_scale = custom_speed_scale + + +func set_audio_player(path: NodePath) -> void: + audio_player = path + + var node: Node = get_node_or_null(path) + _audio_player = node if Utils.is_node_audioplayer(node) else null #func play_timed( @@ -77,11 +132,30 @@ func _process(delta: float) -> void: #play_section_with_markers(anim_name, from_marker, end_marker, custom_blend, custom_speed, from_end) -func set_audio_player(path: NodePath) -> void: - audio_player = path +func _sync_anim_speed_scale(difference: float, delta: float) -> void: + var max_speed_scale: float = max_speed_scale_difference + var min_speed_scale: float = custom_speed_scale + (custom_speed_scale - max_speed_scale) + var speed: float = custom_speed_scale - difference - var node: Node = get_node_or_null(path) - _audio_player = node if Utils.is_node_audioplayer(node) else null + speed = clampf(speed, min_speed_scale, max_speed_scale) + + if absf(difference) >= 0.05: + speed = move_toward(speed_scale, speed, delta * 0.01) + #else: + #speed = lerp(speed_scale, speed, 1.0 - pow(0.5, delta)) #0.001 + + speed_scale = speed#clampf(speed, min_speed_scale, max_speed_scale) + + +func _sync_music_pitch_scale(latency: float, difference: float, delta: float) -> void: + var max_pitch_scale: float = max_pitch_scale_difference + var min_pitch_scale: float = custom_pitch_scale + (custom_pitch_scale - max_pitch_scale) + + var pitch: float = custom_pitch_scale + difference + latency + pitch = clampf(pitch, min_pitch_scale, max_pitch_scale) + pitch = lerp(_audio_player.pitch_scale, pitch, 1.0 - pow(0.5, delta)) + + _audio_player.pitch_scale = clampf(pitch, min_pitch_scale, max_pitch_scale) func _anim_started(anim_name: StringName) -> void: @@ -92,8 +166,8 @@ func _anim_started(anim_name: StringName) -> void: animation.track_set_enabled(music_anim_track_index, false) _audio_player.stream = null - _offset = animation.track_get_key_time(music_anim_track_index, 0) - var duration: float = _offset - current_animation_position + _track_time = animation.track_get_key_time(music_anim_track_index, 0) + var duration: float = _track_time - current_animation_position if duration > 0.0: _timer.start(duration) @@ -105,6 +179,15 @@ func _anim_started(anim_name: StringName) -> void: if not _signals.front() == _timer.timeout: return - var latency: float = AudioServer.get_output_latency() - AudioServer.get_time_to_next_mix() + #var latency: float = AudioServer.get_output_latency() - AudioServer.get_time_to_next_mix() _audio_player.stream = animation.audio_track_get_key_stream(music_anim_track_index, 0) - _audio_player.play(current_animation_position - _offset - latency) + _audio_player.play(current_animation_position - _track_time)# - latency) + + +func _anim_finished(_anim_name: StringName) -> void: + if Engine.is_editor_hint(): + return + + if is_instance_valid(_audio_player): + _audio_player.stop() + _audio_player.stream = null