[gd_scene load_steps=59 format=3 uid="uid://bflg720h1w3d3"] [ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_so17j"] [ext_resource type="Shader" uid="uid://b6ke6r1fjb8s3" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader" id="2_d2rk6"] [ext_resource type="Material" uid="uid://dnw08mtonx63d" path="res://experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres" id="2_plj08"] [ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_msnhc"] [ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="5_d2rk6"] [ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://experimental/BinbunVFX/shared/texture/cracks_01.png" id="5_otofc"] [ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" id="6_d2rk6"] [ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="8_y01pw"] [ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="9_85p3d"] [sub_resource type="Gradient" id="Gradient_iyrbe"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_dga0b"] noise_type = 2 frequency = 0.02 fractal_octaves = 1 domain_warp_enabled = true domain_warp_type = 2 domain_warp_amplitude = 5.0 domain_warp_fractal_octaves = 1 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_csir3"] noise = SubResource("FastNoiseLite_dga0b") color_ramp = SubResource("Gradient_iyrbe") seamless = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_e6ocy"] resource_local_to_scene = true render_priority = 0 shader = ExtResource("2_d2rk6") shader_parameter/noise_texture = SubResource("NoiseTexture2D_csir3") shader_parameter/primary_color = Color(1, 0.662745, 0.0666667, 1) shader_parameter/texture_scale = Vector2(1, 1) shader_parameter/decay = 0.0 shader_parameter/proximity_fade = false shader_parameter/proximity_fade_distance = 1.0 shader_parameter/alpha_mode = 0 [sub_resource type="SphereMesh" id="SphereMesh_awqfb"] radius = 1.8 height = 3.6 radial_segments = 32 rings = 16 [sub_resource type="Curve" id="Curve_msnhc"] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -1.42645, 0.0, 0, 0] point_count = 2 [sub_resource type="CurveTexture" id="CurveTexture_csir3"] curve = SubResource("Curve_msnhc") [sub_resource type="Gradient" id="Gradient_msnhc"] offsets = PackedFloat32Array(0, 0.494872, 1) colors = PackedColorArray(1, 1, 1, 1, 0.623529, 0.921569, 0.921569, 1, 0.87451, 0.87451, 0.87451, 0.258824) [sub_resource type="GradientTexture1D" id="GradientTexture1D_e6ocy"] gradient = SubResource("Gradient_msnhc") [sub_resource type="Gradient" id="Gradient_plj08"] offsets = PackedFloat32Array(0.133333, 0.735897) colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) [sub_resource type="GradientTexture1D" id="GradientTexture1D_u3den"] gradient = SubResource("Gradient_plj08") [sub_resource type="Curve" id="Curve_plj08"] _data = [Vector2(0, 0.103036), 0.0, 2.87627, 0, 0, Vector2(0.502404, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), -0.135687, 0.0, 0, 0] point_count = 3 [sub_resource type="CurveTexture" id="CurveTexture_fabmy"] curve = SubResource("Curve_plj08") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_cp01m"] particle_flag_align_y = true angle_min = -720.0 angle_max = 720.0 spread = 180.0 initial_velocity_min = 6.0 initial_velocity_max = 10.0 gravity = Vector3(0, 0, 0) damping_min = 15.0 damping_max = 20.0 scale_min = 0.5 scale_curve = SubResource("CurveTexture_fabmy") color_ramp = SubResource("GradientTexture1D_u3den") color_initial_ramp = SubResource("GradientTexture1D_e6ocy") alpha_curve = SubResource("CurveTexture_csir3") [sub_resource type="SphereMesh" id="SphereMesh_plj08"] radius = 1.2 height = 2.4 radial_segments = 32 rings = 16 [sub_resource type="Gradient" id="Gradient_so17j"] colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) [sub_resource type="GradientTexture2D" id="GradientTexture2D_y01pw"] gradient = SubResource("Gradient_so17j") fill = 1 fill_from = Vector2(0.5, 0.5) fill_to = Vector2(0.5, 0) [sub_resource type="ShaderMaterial" id="ShaderMaterial_msnhc"] render_priority = 0 shader = ExtResource("3_msnhc") shader_parameter/shape_texture = SubResource("GradientTexture2D_y01pw") shader_parameter/primary_color = Color(1, 0.662745, 0.0666667, 1) shader_parameter/secondary_color = Color(0.984314, 0.192157, 0, 1) [sub_resource type="Curve" id="Curve_otofc"] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -2.87029, 0.0, 0, 0] point_count = 2 [sub_resource type="CurveTexture" id="CurveTexture_e6ocy"] curve = SubResource("Curve_otofc") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_msnhc"] particle_flag_align_y = true angle_min = -720.0 angle_max = 720.0 spread = 180.0 initial_velocity_min = 5.0 initial_velocity_max = 20.0 damping_min = 5.0 damping_max = 10.0 scale_min = 0.5 scale_curve = SubResource("CurveTexture_e6ocy") [sub_resource type="QuadMesh" id="QuadMesh_so17j"] size = Vector2(0.05, 0.4) subdivide_width = 32 subdivide_depth = 32 [sub_resource type="FastNoiseLite" id="FastNoiseLite_d2rk6"] noise_type = 2 fractal_octaves = 3 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7t2vj"] noise = SubResource("FastNoiseLite_d2rk6") seamless = true [sub_resource type="Gradient" id="Gradient_d2rk6"] offsets = PackedFloat32Array(0.868159, 0.980099, 1) colors = PackedColorArray(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1) [sub_resource type="GradientTexture2D" id="GradientTexture2D_cwquj"] gradient = SubResource("Gradient_d2rk6") width = 256 height = 256 fill = 1 fill_from = Vector2(0.5, 0.5) fill_to = Vector2(0.5, 0) [sub_resource type="ShaderMaterial" id="ShaderMaterial_y01pw"] render_priority = 0 shader = ExtResource("5_d2rk6") shader_parameter/ring_texture = SubResource("GradientTexture2D_cwquj") shader_parameter/noise_texture = SubResource("NoiseTexture2D_7t2vj") shader_parameter/primary_color = Color(1, 0.662745, 0.0666667, 1) shader_parameter/secondary_color = Color(0.984314, 0.192157, 0, 1) shader_parameter/proximity_fade = false shader_parameter/proximity_fade_distance = 1.0 shader_parameter/alpha_mode = 0 [sub_resource type="Curve" id="Curve_y01pw"] _data = [Vector2(0, 1), 0.0, -0.971299, 0, 0, Vector2(1, 0), -0.989796, 0.0, 0, 0] point_count = 2 [sub_resource type="CurveTexture" id="CurveTexture_qiymc"] curve = SubResource("Curve_y01pw") [sub_resource type="Curve" id="Curve_d2rk6"] _data = [Vector2(0, 0), 0.0, 6.09936, 0, 0, Vector2(0.216346, 0.856486), 0.699631, 0.699631, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] point_count = 3 [sub_resource type="CurveTexture" id="CurveTexture_78tnr"] curve = SubResource("Curve_d2rk6") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_otofc"] particle_flag_align_y = true angle_min = 1.07288e-05 angle_max = 720.0 direction = Vector3(0, 1, 0) spread = 90.0 initial_velocity_min = -0.2 initial_velocity_max = 0.2 gravity = Vector3(0, 0, 0) scale_min = 0.6 scale_max = 1.2 scale_curve = SubResource("CurveTexture_78tnr") alpha_curve = SubResource("CurveTexture_qiymc") [sub_resource type="QuadMesh" id="QuadMesh_otofc"] size = Vector2(8, 8) subdivide_width = 32 subdivide_depth = 32 orientation = 1 [sub_resource type="Gradient" id="Gradient_85p3d"] offsets = PackedFloat32Array(0.29558, 1) colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) [sub_resource type="GradientTexture2D" id="GradientTexture2D_3i5cu"] gradient = SubResource("Gradient_85p3d") fill = 1 fill_from = Vector2(0.5, 0.5) fill_to = Vector2(0.5, 0) [sub_resource type="FastNoiseLite" id="FastNoiseLite_y01pw"] noise_type = 2 frequency = 0.02 fractal_octaves = 2 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_cwquj"] noise = SubResource("FastNoiseLite_y01pw") seamless = true invert = true seamless_blend_skirt = 1.0 [sub_resource type="ShaderMaterial" id="ShaderMaterial_85p3d"] render_priority = 0 shader = ExtResource("8_y01pw") shader_parameter/mask_texture = SubResource("GradientTexture2D_3i5cu") shader_parameter/noise_texture = SubResource("NoiseTexture2D_cwquj") shader_parameter/edge_smoothness = 0.5 shader_parameter/color_smoothness = 1.0 shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) shader_parameter/alpha_multiplier = 0.5 shader_parameter/alpha_mode = 0 [sub_resource type="Curve" id="Curve_85p3d"] _data = [Vector2(0, 0), 0.0, 1.01211, 0, 0, Vector2(1, 1), 0.977263, 0.0, 0, 0] point_count = 2 [sub_resource type="CurveTexture" id="CurveTexture_xi76h"] curve = SubResource("Curve_85p3d") [sub_resource type="Gradient" id="Gradient_csir3"] colors = PackedColorArray(0, 0, 0, 1, 1, 0, 0, 1) [sub_resource type="GradientTexture1D" id="GradientTexture1D_8vear"] gradient = SubResource("Gradient_csir3") [sub_resource type="Curve" id="Curve_752a7"] _limits = [0.0, 3.0, 0.0, 1.0] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] point_count = 2 [sub_resource type="CurveTexture" id="CurveTexture_pr5p5"] curve = SubResource("Curve_752a7") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_csir3"] spread = 180.0 flatness = 0.8 initial_velocity_min = 4.0 initial_velocity_max = 6.0 gravity = Vector3(0, 1, 0) damping_min = 1.0 damping_max = 2.0 scale_over_velocity_curve = SubResource("CurveTexture_pr5p5") color_initial_ramp = SubResource("GradientTexture1D_8vear") alpha_curve = SubResource("CurveTexture_xi76h") [sub_resource type="QuadMesh" id="QuadMesh_e6ocy"] size = Vector2(4, 4) subdivide_width = 32 subdivide_depth = 32 [sub_resource type="Animation" id="Animation_plj08"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Decal:emission_energy") 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 = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Decal:albedo_mix") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Decal:modulate") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Color(0, 0, 0, 1)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Rings:emitting") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Core:material_override:shader_parameter/decay") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Dust:emitting") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Light:light_multiplier") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [1.0] } [sub_resource type="Animation" id="Animation_v36aq"] resource_name = "main" length = 1.2 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Smoke:emitting") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0.05), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Sparks:emitting") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0.05), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Decal:emission_energy") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.2), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [4.0, 0.0] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Decal:albedo_mix") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.5, 1.2), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [1.0, 1.0, 0.0] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Decal:modulate") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 1.2), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Color(1, 0.32549, 0, 1), Color(0, 0, 0, 1)] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Rings:emitting") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Core:material_override:shader_parameter/decay") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0, 0.1, 1, 1.2), "transitions": PackedFloat32Array(0.5, 0.5, 1, 1), "update": 0, "values": [null, 0.5, 1.0, 1.0] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Dust:emitting") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0.05), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true tracks/8/path = NodePath("Light:light_multiplier") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(0.6, 1), "update": 0, "values": [1.0, 0.0] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_plj08"] _data = { &"RESET": SubResource("Animation_plj08"), &"main": SubResource("Animation_v36aq") } [node name="VFXExplosion_01" type="Node3D"] transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0) script = ExtResource("1_so17j") primary_color = Color(1, 0.662745, 0.0666667, 1) secondary_color = Color(0.984314, 0.192157, 0, 1) tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) light_color = Color(1, 0.662745, 0.0666667, 1) light_energy = 12.0 alpha_mode = 1 [node name="Core" type="MeshInstance3D" parent="."] layers = 540672 material_override = SubResource("ShaderMaterial_e6ocy") mesh = SubResource("SphereMesh_awqfb") [node name="Smoke" type="GPUParticles3D" parent="."] layers = 540672 material_override = ExtResource("2_plj08") emitting = false amount = 16 lifetime = 0.8 one_shot = true explosiveness = 1.0 process_material = SubResource("ParticleProcessMaterial_cp01m") draw_pass_1 = SubResource("SphereMesh_plj08") [node name="Sparks" type="GPUParticles3D" parent="."] layers = 540672 material_override = SubResource("ShaderMaterial_msnhc") emitting = false amount = 16 lifetime = 0.5 one_shot = true explosiveness = 1.0 transform_align = 3 process_material = SubResource("ParticleProcessMaterial_msnhc") draw_pass_1 = SubResource("QuadMesh_so17j") [node name="Rings" type="GPUParticles3D" parent="."] layers = 540672 material_override = SubResource("ShaderMaterial_y01pw") emitting = false amount = 3 lifetime = 1.2 one_shot = true explosiveness = 1.0 process_material = SubResource("ParticleProcessMaterial_otofc") draw_pass_1 = SubResource("QuadMesh_otofc") [node name="Dust" type="GPUParticles3D" parent="."] layers = 540672 sorting_offset = -1.0 material_override = SubResource("ShaderMaterial_85p3d") emitting = false amount = 16 one_shot = true explosiveness = 0.9 process_material = SubResource("ParticleProcessMaterial_csir3") draw_pass_1 = SubResource("QuadMesh_e6ocy") [node name="Decal" type="Decal" parent="."] visible = false size = Vector3(5, 5, 5) texture_albedo = ExtResource("5_otofc") texture_emission = ExtResource("6_d2rk6") emission_energy = 0.0 modulate = Color(0, 0, 0, 1) albedo_mix = 0.0 cull_mask = 507903 [node name="Light" type="OmniLight3D" parent="."] light_color = Color(1, 0.662745, 0.0666667, 1) light_energy = 12.0 light_size = 4.0 light_cull_mask = 4294426623 omni_range = 8.0 script = ExtResource("9_85p3d") base_energy = 12.0 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] callback_mode_method = 1 libraries = { &"": SubResource("AnimationLibrary_plj08") } autoplay = "RESET"