Add scene-authored FX effect library and Fx autoload

Replace code-buried CPUParticles with inspector-editable effect scenes fired
through one Fx autoload: code names the effect (Fx.spawn(&"blood_burst", xform)),
the .tscn owns the look. Ships four placeholder effects (blood_burst, slam_dust,
spark, hit_flash) seeded from the old code params, a self-freeing one_shot_effect
root helper, a live preview gallery, and an FX style guide for Siim. CPUParticles
only (mobile GLES3 constraint). Existing call sites untouched -- migrated later.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 00:12:08 +03:00
parent 1ea7f7a744
commit 973db7d8b8
17 changed files with 623 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://fx/effect_gallery.gd" id="1_opqwa"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lt3bb"]
albedo_color = Color(0.62, 0.53, 0.36, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_2rj6n"]
material = SubResource("StandardMaterial3D_lt3bb")
size = Vector2(12, 12)
[node name="EffectGallery" type="Node3D" unique_id=530454952]
script = ExtResource("1_opqwa")
[node name="Camera3D" type="Camera3D" parent="." unique_id=1818153475]
transform = Transform3D(1, 0, 0, 0, 0.95105654, 0.309017, 0, -0.309017, 0.95105654, 0, 2, 4.5)
[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1218164313]
transform = Transform3D(0.8660254, 0.38302222, -0.32139382, 0, 0.64278764, 0.76604444, 0.5, -0.66341394, 0.5566704, 0, 0, 0)
[node name="Ground" type="MeshInstance3D" parent="." unique_id=178415463]
mesh = SubResource("PlaneMesh_2rj6n")
[node name="UI" type="CanvasLayer" parent="." unique_id=1848100773]
[node name="Label" type="Label" parent="UI" unique_id=1347149836]
offset_left = 24.0
offset_top = 20.0
offset_right = 24.0
offset_bottom = 20.0
theme_override_font_sizes/font_size = 28
text = "FX gallery"