diff --git a/addons/nodetunnel/NodeTunnel.gdextension b/addons/nodetunnel/NodeTunnel.gdextension new file mode 100644 index 0000000..4543385 --- /dev/null +++ b/addons/nodetunnel/NodeTunnel.gdextension @@ -0,0 +1,14 @@ +[configuration] +entry_symbol = "gdext_rust_init" +compatibility_minimum = 4.1 +reloadable = false + +[libraries] +linux.debug.x86_64 = "bin/libnodetunnel.so" +linux.release.x86_64 = "bin/libnodetunnel.so" +windows.debug.x86_64 = "bin/nodetunnel.dll" +windows.release.x86_64 = "bin/nodetunnel.dll" +macos.debug = "bin/libnodetunnel.dylib" +macos.release = "bin/libnodetunnel.dylib" +macos.debug.arm64 = "bin/libnodetunnel.dylib" +macos.release.arm64 = "bin/libnodetunnel.dylib" \ No newline at end of file diff --git a/addons/nodetunnel/NodeTunnel.gdextension.uid b/addons/nodetunnel/NodeTunnel.gdextension.uid new file mode 100644 index 0000000..a3efc70 --- /dev/null +++ b/addons/nodetunnel/NodeTunnel.gdextension.uid @@ -0,0 +1 @@ +uid://bdmh2wm33k6po diff --git a/addons/nodetunnel/bin/.gitkeep b/addons/nodetunnel/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/addons/nodetunnel/bin/libnodetunnel.dylib b/addons/nodetunnel/bin/libnodetunnel.dylib new file mode 100644 index 0000000..3202ea1 Binary files /dev/null and b/addons/nodetunnel/bin/libnodetunnel.dylib differ diff --git a/addons/nodetunnel/bin/libnodetunnel.so b/addons/nodetunnel/bin/libnodetunnel.so new file mode 100644 index 0000000..81de167 Binary files /dev/null and b/addons/nodetunnel/bin/libnodetunnel.so differ diff --git a/addons/nodetunnel/bin/nodetunnel.dll b/addons/nodetunnel/bin/nodetunnel.dll new file mode 100644 index 0000000..36cce39 Binary files /dev/null and b/addons/nodetunnel/bin/nodetunnel.dll differ diff --git a/addons/nodetunnel/bin/~nodetunnel.dll b/addons/nodetunnel/bin/~nodetunnel.dll new file mode 100644 index 0000000..36cce39 Binary files /dev/null and b/addons/nodetunnel/bin/~nodetunnel.dll differ diff --git a/addons/nodetunnel/plugin.cfg b/addons/nodetunnel/plugin.cfg new file mode 100644 index 0000000..4cfa592 --- /dev/null +++ b/addons/nodetunnel/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="NodeTunnel" +description="Relay implementation for Godot's High-Level Multiplayer API" +author="curtjs" +version="1.1.0_beta" +script="setup.gd" diff --git a/addons/nodetunnel/setup.gd b/addons/nodetunnel/setup.gd new file mode 100644 index 0000000..79a5d2d --- /dev/null +++ b/addons/nodetunnel/setup.gd @@ -0,0 +1,11 @@ +@tool +extends EditorPlugin + +var update_check = preload("updater/update_check.gd").new() + +func _enter_tree(): + add_child(update_check) + update_check.check_update(get_plugin_version()) + +func _exit_tree(): + update_check.queue_free() diff --git a/addons/nodetunnel/setup.gd.uid b/addons/nodetunnel/setup.gd.uid new file mode 100644 index 0000000..bb20f3c --- /dev/null +++ b/addons/nodetunnel/setup.gd.uid @@ -0,0 +1 @@ +uid://db4cwcsqdpmym diff --git a/addons/nodetunnel/updater/update_check.gd b/addons/nodetunnel/updater/update_check.gd new file mode 100644 index 0000000..5594493 --- /dev/null +++ b/addons/nodetunnel/updater/update_check.gd @@ -0,0 +1,52 @@ +extends Node + +const RELEASE_URL = "https://api.github.com/repos/NodeTunnel/godot-plugin/releases/latest" + +var http := HTTPRequest.new() +var plugin_version: String + +func _init() -> void: + add_child(http) + +func check_update(current: String) -> void: + plugin_version = current + var err = http.request(RELEASE_URL) + if err != OK: + return + + http.request_completed.connect(_handle_res) + +func _handle_res(result, response_code, headers, body: PackedByteArray): + if response_code != 200: + return + + var json = JSON.parse_string(body.get_string_from_utf8()) + if json == null: + return + + var latest: String = json.get("tag_name", "") + + if latest: + var res = _compare(plugin_version, latest) + + if res == -1: + print(plugin_version) + print("[NodeTunnel] v%s available! (Currently on: v)" % latest, plugin_version) + +func _compare(v1: String, v2: String) -> int: + v1 = v1.split("_", true, 1)[0] + v2 = v2.split("_", true, 1)[0] + + var versions_1 := v1.split(".") + var versions_2 := v2.split(".") + + for i in max(versions_1.size(), versions_2.size()): + var v1v := int(versions_1[i]) if i < versions_1.size() else 0 + var v2v := int(versions_2[i]) if i < versions_2.size() else 0 + + if v1v > v2v: + return 1 + elif v1v < v2v: + return -1 + + return 0 diff --git a/addons/nodetunnel/updater/update_check.gd.uid b/addons/nodetunnel/updater/update_check.gd.uid new file mode 100644 index 0000000..da8e65a --- /dev/null +++ b/addons/nodetunnel/updater/update_check.gd.uid @@ -0,0 +1 @@ +uid://cx4apmy510a7i diff --git a/experimental/BinbunVFX/CC0 b/experimental/BinbunVFX/CC0 new file mode 100644 index 0000000..e69de29 diff --git a/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_01.tscn b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_01.tscn new file mode 100644 index 0000000..e8c5d17 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_01.tscn @@ -0,0 +1,559 @@ +[gd_scene load_steps=59 format=3 uid="uid://bflg720h1w3d3"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_so17j"] +[ext_resource type="Shader" uid="uid://b6ke6r1fjb8s3" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader" id="2_d2rk6"] +[ext_resource type="Material" uid="uid://dnw08mtonx63d" path="res://assets/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres" id="2_plj08"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_msnhc"] +[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://assets/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="5_d2rk6"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="5_otofc"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="6_d2rk6"] +[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="8_y01pw"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="9_85p3d"] + +[sub_resource type="Gradient" id="Gradient_y01pw"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_85p3d"] +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"] +seamless = true +color_ramp = SubResource("Gradient_y01pw") +noise = SubResource("FastNoiseLite_85p3d") + +[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"] +seamless = true +noise = SubResource("FastNoiseLite_d2rk6") + +[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"] +invert = true +seamless = true +seamless_blend_skirt = 1.0 +noise = SubResource("FastNoiseLite_y01pw") + +[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"] +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") +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") +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" diff --git a/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_02.tscn b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_02.tscn new file mode 100644 index 0000000..6ad126c --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_02.tscn @@ -0,0 +1,616 @@ +[gd_scene load_steps=67 format=3 uid="uid://dato0qpbqvwnj"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_8n8gd"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_cdqbm"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="1_sadvm"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_8n8gd"] +[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://assets/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="3_cdqbm"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="6_bdwyf"] +[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="6_haqe0"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_haqe0"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="9_bqkcx"] + +[sub_resource type="Gradient" id="Gradient_8n8gd"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_cdqbm"] +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_haqe0"] +seamless = true +color_ramp = SubResource("Gradient_8n8gd") +noise = SubResource("FastNoiseLite_cdqbm") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdwyf"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_8n8gd") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_haqe0") +shader_parameter/primary_color = Color(1, 0.294118, 0.0666667, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_cdqbm"] +_data = [Vector2(0, 0), 0.0, 2.58816, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_rmi04"] +curve = SubResource("Curve_cdqbm") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_sadvm"] +emission_shape = 2 +emission_sphere_radius = 0.2 +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +initial_velocity_min = -0.5 +initial_velocity_max = 0.5 +gravity = Vector3(0, 0, 0) +scale_min = 0.5 +alpha_curve = SubResource("CurveTexture_rmi04") + +[sub_resource type="SphereMesh" id="SphereMesh_cdqbm"] +radius = 1.8 +height = 2.0 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_8n8gd"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_bqkcx"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_8n8gd") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_w7scw"] +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_frequency = 0.005 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_rmi04"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_w7scw") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bqkcx"] +render_priority = 0 +shader = ExtResource("1_sadvm") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_rmi04") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_bqkcx") +shader_parameter/primary_color = Color(1, 0.294118, 0.0666667, 1) +shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 1 + +[sub_resource type="Curve" id="Curve_sadvm"] +_data = [Vector2(0, 1), 0.0, -0.977263, 0, 0, Vector2(1, 0), -0.983939, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_1gfff"] +curve = SubResource("Curve_sadvm") + +[sub_resource type="Gradient" id="Gradient_cdqbm"] +offsets = PackedFloat32Array(0, 0.494872, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.623529, 0.921569, 0.921569, 0.47451, 0.87451, 0.87451, 0.87451, 0.258824) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_lnkdc"] +gradient = SubResource("Gradient_cdqbm") + +[sub_resource type="Gradient" id="Gradient_bdwyf"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_37nkj"] +gradient = SubResource("Gradient_bdwyf") + +[sub_resource type="Curve" id="Curve_bqkcx"] +_data = [Vector2(0, 1), 0.0, -0.0648056, 0, 0, Vector2(1, 0.374871), -1.36091, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_nk5kr"] +curve = SubResource("Curve_bqkcx") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_1gfff"] +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 1.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.4 +scale_max = 1.1 +scale_curve = SubResource("CurveTexture_nk5kr") +color_ramp = SubResource("GradientTexture1D_37nkj") +color_initial_ramp = SubResource("GradientTexture1D_lnkdc") +alpha_curve = SubResource("CurveTexture_1gfff") + +[sub_resource type="SphereMesh" id="SphereMesh_lnkdc"] +radius = 1.0 +radial_segments = 32 +rings = 16 + +[sub_resource type="Gradient" id="Gradient_sadvm"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_bdwyf"] +gradient = SubResource("Gradient_sadvm") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_cdqbm"] +render_priority = 0 +shader = ExtResource("2_8n8gd") +shader_parameter/shape_texture = SubResource("GradientTexture2D_bdwyf") +shader_parameter/primary_color = Color(1, 0.294118, 0.0666667, 1) +shader_parameter/secondary_color = Color(0.713726, 0.192157, 0, 1) + +[sub_resource type="Curve" id="Curve_bdwyf"] +_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_bqkcx"] +curve = SubResource("Curve_bdwyf") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_bqkcx"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 0.8 +initial_velocity_min = 5.0 +initial_velocity_max = 20.0 +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_bqkcx") + +[sub_resource type="QuadMesh" id="QuadMesh_rmi04"] +size = Vector2(0.05, 0.4) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_sadvm"] +noise_type = 2 +fractal_octaves = 3 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_kp1a8"] +seamless = true +noise = SubResource("FastNoiseLite_sadvm") + +[sub_resource type="Gradient" id="Gradient_w7scw"] +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_oylqv"] +gradient = SubResource("Gradient_w7scw") +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_haqe0"] +render_priority = 0 +shader = ExtResource("3_cdqbm") +shader_parameter/ring_texture = SubResource("GradientTexture2D_oylqv") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_kp1a8") +shader_parameter/primary_color = Color(1, 0.294118, 0.0666667, 1) +shader_parameter/secondary_color = Color(0.713726, 0.192157, 0, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 1 + +[sub_resource type="Curve" id="Curve_haqe0"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -2.57182, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_o3arm"] +curve = SubResource("Curve_haqe0") + +[sub_resource type="Curve" id="Curve_rmi04"] +_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_gud6y"] +curve = SubResource("Curve_rmi04") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_lnkdc"] +angle_min = 1.07288e-05 +angle_max = 1.07288e-05 +direction = Vector3(0, 1, 0) +spread = 90.0 +initial_velocity_min = -1.0 +initial_velocity_max = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.6 +scale_max = 1.2 +scale_curve = SubResource("CurveTexture_gud6y") +alpha_curve = SubResource("CurveTexture_o3arm") + +[sub_resource type="QuadMesh" id="QuadMesh_tbk35"] +size = Vector2(8, 8) +orientation = 1 + +[sub_resource type="Gradient" id="Gradient_bqkcx"] +offsets = PackedFloat32Array(0.29558, 1) +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_haqe0"] +gradient = SubResource("Gradient_bqkcx") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_rmi04"] +noise_type = 2 +frequency = 0.02 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_1gfff"] +invert = true +seamless = true +seamless_blend_skirt = 1.0 +noise = SubResource("FastNoiseLite_rmi04") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1gfff"] +render_priority = 0 +shader = ExtResource("6_haqe0") +shader_parameter/mask_texture = SubResource("GradientTexture2D_haqe0") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_1gfff") +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 = 1.0 +shader_parameter/alpha_mode = 1 + +[sub_resource type="Curve" id="Curve_lnkdc"] +_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_37nkj"] +curve = SubResource("Curve_lnkdc") + +[sub_resource type="Gradient" id="Gradient_nk5kr"] +colors = PackedColorArray(0, 0, 0, 1, 1, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_tbk35"] +gradient = SubResource("Gradient_nk5kr") + +[sub_resource type="Curve" id="Curve_h88cn"] +_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_qfevt"] +curve = SubResource("Curve_h88cn") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_dswvj"] +spread = 180.0 +flatness = 0.8 +initial_velocity_min = 2.0 +initial_velocity_max = 4.0 +gravity = Vector3(0, 1, 0) +damping_min = 1.0 +damping_max = 2.0 +scale_over_velocity_curve = SubResource("CurveTexture_qfevt") +color_initial_ramp = SubResource("GradientTexture1D_tbk35") +alpha_curve = SubResource("CurveTexture_37nkj") + +[sub_resource type="QuadMesh" id="QuadMesh_h88cn"] +size = Vector2(4, 4) + +[sub_resource type="Animation" id="Animation_8n8gd"] +length = 0.001 +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), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Core:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Rings:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Sparks: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("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Decal:emission_energy") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Dust:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_sadvm"] +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.1), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Core:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Rings:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Sparks:emitting") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.1), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 1.05, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Decal:emission_energy") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 1.05, 1.2), +"transitions": PackedFloat32Array(3.86374, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Dust:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 1.05, 1.2), +"transitions": PackedFloat32Array(0.6, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_8n8gd"] +_data = { +&"RESET": SubResource("Animation_8n8gd"), +&"main": SubResource("Animation_sadvm") +} + +[node name="VFXExplosion_02" type="Node3D"] +script = ExtResource("1_cdqbm") +primary_color = Color(1, 0.294118, 0.0666667, 1) +secondary_color = Color(0.713726, 0.192157, 0, 1) +tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +light_color = Color(1, 0.294118, 0.0666667, 1) +light_energy = 12.0 + +[node name="Core" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_bdwyf") +emitting = false +amount = 2 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_sadvm") +draw_pass_1 = SubResource("SphereMesh_cdqbm") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_bqkcx") +emitting = false +amount = 16 +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_1gfff") +draw_pass_1 = SubResource("SphereMesh_lnkdc") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_cdqbm") +emitting = false +amount = 32 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_bqkcx") +draw_pass_1 = SubResource("QuadMesh_rmi04") + +[node name="Rings" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_haqe0") +emitting = false +amount = 1 +one_shot = true +explosiveness = 0.9 +process_material = SubResource("ParticleProcessMaterial_lnkdc") +draw_pass_1 = SubResource("QuadMesh_tbk35") + +[node name="Dust" type="GPUParticles3D" parent="."] +layers = 540672 +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_1gfff") +emitting = false +amount = 16 +one_shot = true +explosiveness = 0.9 +process_material = SubResource("ParticleProcessMaterial_dswvj") +draw_pass_1 = SubResource("QuadMesh_h88cn") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(4, 4, 4) +texture_albedo = ExtResource("6_bdwyf") +texture_emission = ExtResource("7_haqe0") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.294118, 0.0666667, 1) +light_energy = 12.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("9_bqkcx") +base_energy = 12.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_8n8gd") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_03.tscn b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_03.tscn new file mode 100644 index 0000000..f0fd73c --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_03.tscn @@ -0,0 +1,520 @@ +[gd_scene load_steps=54 format=3 uid="uid://cdsloy1kvhikp"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_bprbm"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_enhek"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="2_1bdqt"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://experimental/BinbunVFX/shared/texture/cracks_01.png" id="4_1bdqt"] +[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="4_t82mc"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_t82mc"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="7_j37f4"] + +[sub_resource type="Gradient" id="Gradient_bprbm"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_1bdqt"] +noise_type = 0 +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +fractal_weighted_strength = 0.66 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 5.0 +domain_warp_fractal_octaves = 1 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_1bdqt"] +noise = SubResource("FastNoiseLite_1bdqt") +color_ramp = SubResource("Gradient_bprbm") +seamless = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_j37f4"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_bprbm") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_1bdqt") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_fejmr"] +_data = [Vector2(0, 0), 0.0, 0.10399, 0, 0, Vector2(0.159574, 0.119442), 1.68494, 1.68494, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_t82mc"] +curve = SubResource("Curve_fejmr") + +[sub_resource type="Curve" id="Curve_bprbm"] +_data = [Vector2(0, 0.516029), 0.0, 7.81198, 0, 0, Vector2(0.167553, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_j37f4"] +curve = SubResource("Curve_bprbm") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_fl6r8"] +emission_shape = 2 +emission_sphere_radius = 0.2 +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.9 +scale_curve = SubResource("CurveTexture_j37f4") +alpha_curve = SubResource("CurveTexture_t82mc") + +[sub_resource type="SphereMesh" id="SphereMesh_7ufuy"] +radius = 1.5 +height = 3.0 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_yg62c"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_y5lyb"] +noise = SubResource("FastNoiseLite_yg62c") +seamless = true +normalize = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_px8k0"] +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_frequency = 0.005 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_w0g5g"] +width = 128 +height = 128 +noise = SubResource("FastNoiseLite_px8k0") +seamless = true +invert = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fyady"] +render_priority = 0 +shader = ExtResource("2_1bdqt") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_w0g5g") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_y5lyb") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_746ga"] +_data = [Vector2(0, 1), 0.0, -0.977263, 0, 0, Vector2(1, 0), -0.983939, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_tppqa"] +curve = SubResource("Curve_746ga") + +[sub_resource type="Gradient" id="Gradient_y54ao"] +offsets = PackedFloat32Array(0, 0.494872, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.623529, 0.921569, 0.921569, 0.47451, 0.87451, 0.87451, 0.87451, 0.258824) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_fu1kj"] +gradient = SubResource("Gradient_y54ao") + +[sub_resource type="Gradient" id="Gradient_bspu6"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_fejmr"] +gradient = SubResource("Gradient_bspu6") + +[sub_resource type="Curve" id="Curve_31ka1"] +_data = [Vector2(0, 0), 0.0, 6.16298, 0, 0, Vector2(0.49734, 1), 0.299862, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_8ijvx"] +curve = SubResource("Curve_31ka1") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gt25t"] +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 1.0 +initial_velocity_min = 2.0 +initial_velocity_max = 4.0 +gravity = Vector3(0, 0, 0) +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.7 +scale_curve = SubResource("CurveTexture_8ijvx") +color_ramp = SubResource("GradientTexture1D_fejmr") +color_initial_ramp = SubResource("GradientTexture1D_fu1kj") +alpha_curve = SubResource("CurveTexture_tppqa") + +[sub_resource type="SphereMesh" id="SphereMesh_bprbm"] +radius = 1.4 +height = 2.8 +radial_segments = 32 +rings = 16 + +[sub_resource type="Curve" id="Curve_6us3o"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -2.03089, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_enhek"] +curve = SubResource("Curve_6us3o") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_j37f4"] +particle_flag_rotate_y = true +spread = 180.0 +initial_velocity_min = 1.0 +initial_velocity_max = 2.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.4 +alpha_curve = SubResource("CurveTexture_enhek") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6us3o"] +transparency = 2 +alpha_scissor_threshold = 0.5 +alpha_antialiasing_mode = 0 +blend_mode = 1 +vertex_color_use_as_albedo = true +emission_enabled = true +emission = Color(1, 1, 1, 1) +emission_energy_multiplier = 2.0 + +[sub_resource type="SphereMesh" id="SphereMesh_enhek"] +material = SubResource("StandardMaterial3D_6us3o") +radius = 0.05 +height = 3.0 +radial_segments = 32 +rings = 16 +is_hemisphere = true + +[sub_resource type="Gradient" id="Gradient_j37f4"] +offsets = PackedFloat32Array(0.29558, 1) +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_csir3"] +gradient = SubResource("Gradient_j37f4") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_y5lyb"] +noise_type = 2 +frequency = 0.02 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_85p3d"] +noise = SubResource("FastNoiseLite_y5lyb") +seamless = true +invert = true +seamless_blend_skirt = 1.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_w0g5g"] +render_priority = 0 +shader = ExtResource("4_t82mc") +shader_parameter/mask_texture = SubResource("GradientTexture2D_csir3") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_85p3d") +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 = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_t82mc"] +_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_y5lyb"] +curve = SubResource("Curve_t82mc") + +[sub_resource type="Gradient" id="Gradient_w0g5g"] +colors = PackedColorArray(0, 0, 0, 1, 1, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_tppqa"] +gradient = SubResource("Gradient_w0g5g") + +[sub_resource type="Curve" id="Curve_fu1kj"] +_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_fejmr"] +curve = SubResource("Curve_fu1kj") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8ijvx"] +spread = 180.0 +flatness = 0.8 +initial_velocity_min = 1.0 +initial_velocity_max = 3.0 +gravity = Vector3(0, 1, 0) +damping_min = 1.0 +damping_max = 2.0 +scale_over_velocity_curve = SubResource("CurveTexture_fejmr") +color_initial_ramp = SubResource("GradientTexture1D_tppqa") +alpha_curve = SubResource("CurveTexture_y5lyb") + +[sub_resource type="QuadMesh" id="QuadMesh_yg62c"] +size = Vector2(4, 4) + +[sub_resource type="Animation" id="Animation_bprbm"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Spikes:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Decal:emission_energy") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.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_v7cek"] +resource_name = "main" +length = 1.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.0666667), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Spikes:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Decal:emission_energy") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.8, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.8, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 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": [true] +} +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, 0.8, 1.2), +"transitions": PackedFloat32Array(0.6, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_1ahis"] +_data = { +&"RESET": SubResource("Animation_bprbm"), +&"main": SubResource("Animation_v7cek") +} + +[node name="VFXExplosion_03" type="Node3D"] +script = ExtResource("1_enhek") +primary_color = Color(1, 0.529412, 0, 1) +secondary_color = Color(1, 0.337255, 0, 1) +tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +light_color = Color(1, 0.529412, 0, 1) +light_energy = 8.0 + +[node name="Core" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_j37f4") +emitting = false +amount = 1 +lifetime = 0.7 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_fl6r8") +draw_pass_1 = SubResource("SphereMesh_7ufuy") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_fyady") +emitting = false +amount = 4 +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_gt25t") +draw_pass_1 = SubResource("SphereMesh_bprbm") + +[node name="Spikes" type="GPUParticles3D" parent="."] +layers = 540672 +emitting = false +amount = 16 +lifetime = 0.2 +one_shot = true +explosiveness = 1.0 +transform_align = 2 +process_material = SubResource("ParticleProcessMaterial_j37f4") +draw_pass_1 = SubResource("SphereMesh_enhek") + +[node name="Dust" type="GPUParticles3D" parent="."] +layers = 540672 +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_w0g5g") +emitting = false +one_shot = true +explosiveness = 0.9 +process_material = SubResource("ParticleProcessMaterial_8ijvx") +draw_pass_1 = SubResource("QuadMesh_yg62c") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(4, 4, 4) +texture_albedo = ExtResource("4_1bdqt") +texture_emission = ExtResource("5_t82mc") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.529412, 0, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("7_j37f4") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_1ahis") +} +autoplay = "main" diff --git a/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_04.tscn b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_04.tscn new file mode 100644 index 0000000..ca70970 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_04.tscn @@ -0,0 +1,419 @@ +[gd_scene load_steps=43 format=3 uid="uid://cl82y5gxnb8d6"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_gkc2v"] +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_k4fxl"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="2_ppd7v"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_f3136"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://experimental/BinbunVFX/shared/texture/cracks_01.png" id="4_g57xf"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_gkc2v"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="7_3n50y"] + +[sub_resource type="Gradient" id="Gradient_ppd7v"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_f3136"] +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +fractal_weighted_strength = 0.66 +domain_warp_enabled = true +domain_warp_amplitude = 19.465 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 1 +domain_warp_fractal_lacunarity = 6.89 +domain_warp_fractal_gain = 0.765 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_m2d33"] +noise = SubResource("FastNoiseLite_f3136") +color_ramp = SubResource("Gradient_ppd7v") +seamless = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_g57xf"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_k4fxl") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_m2d33") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_gkc2v"] +_data = [Vector2(0, 0), 0.0, 0.10399, 0, 0, Vector2(0.159574, 0.119442), 1.68494, 1.68494, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_3n50y"] +curve = SubResource("Curve_gkc2v") + +[sub_resource type="Curve" id="Curve_lt01u"] +_data = [Vector2(0, 0.516029), 0.0, 7.81198, 0, 0, Vector2(0.167553, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_13ab5"] +curve = SubResource("Curve_lt01u") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8n3be"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.9 +scale_curve = SubResource("CurveTexture_13ab5") +alpha_curve = SubResource("CurveTexture_3n50y") + +[sub_resource type="SphereMesh" id="SphereMesh_hvte5"] +radius = 0.6 +height = 1.2 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_m2d33"] +noise_type = 0 +seed = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_g57xf"] +noise = SubResource("FastNoiseLite_m2d33") +seamless = true +normalize = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_gkc2v"] +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_frequency = 0.005 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3n50y"] +width = 128 +height = 128 +noise = SubResource("FastNoiseLite_gkc2v") +seamless = true +invert = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lt01u"] +render_priority = 0 +shader = ExtResource("2_ppd7v") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_3n50y") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_g57xf") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_3n50y"] +_data = [Vector2(0, 1), 0.0, -0.69537, 0, 0, Vector2(1, 0), -0.685899, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_lt01u"] +curve = SubResource("Curve_3n50y") + +[sub_resource type="Gradient" id="Gradient_13ab5"] +offsets = PackedFloat32Array(0, 0.494872, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.623529, 0.921569, 0.921569, 0.47451, 0.87451, 0.87451, 0.87451, 0.258824) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_8n3be"] +gradient = SubResource("Gradient_13ab5") + +[sub_resource type="Gradient" id="Gradient_hvte5"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_kxca7"] +gradient = SubResource("Gradient_hvte5") + +[sub_resource type="Curve" id="Curve_34yqr"] +_data = [Vector2(0, 0.206825), 0.0, 1.8623, 0, 0, Vector2(1, 1), 0.143345, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_6iprs"] +curve = SubResource("Curve_34yqr") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_f2s7u"] +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 1.0 +initial_velocity_max = 1.0 +gravity = Vector3(0, 0, 0) +damping_min = 5.0 +damping_max = 10.0 +scale_max = 1.2 +scale_curve = SubResource("CurveTexture_6iprs") +color_ramp = SubResource("GradientTexture1D_kxca7") +color_initial_ramp = SubResource("GradientTexture1D_8n3be") +alpha_curve = SubResource("CurveTexture_lt01u") + +[sub_resource type="SphereMesh" id="SphereMesh_13ab5"] +radius = 1.6 +height = 2.2 +radial_segments = 32 +rings = 16 + +[sub_resource type="Gradient" id="Gradient_f3136"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_m2d33"] +gradient = SubResource("Gradient_f3136") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gkc2v"] +render_priority = 0 +shader = ExtResource("3_f3136") +shader_parameter/shape_texture = SubResource("GradientTexture2D_m2d33") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/secondary_color = Color(1, 0.337255, 0, 1) + +[sub_resource type="Curve" id="Curve_13ab5"] +_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_8n3be"] +curve = SubResource("Curve_13ab5") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_hvte5"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +initial_velocity_min = 10.0 +initial_velocity_max = 15.0 +damping_min = 15.0 +damping_max = 20.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_8n3be") + +[sub_resource type="QuadMesh" id="QuadMesh_kxca7"] +size = Vector2(0.05, 0.4) + +[sub_resource type="Animation" id="Animation_ppd7v"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sparks:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Decal:emission_energy") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Light:light_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_k4fxl"] +resource_name = "main" +length = 1.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.0666667), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sparks:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Decal:emission_energy") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.8, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.8, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Light:light_multiplier") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ppd7v"] +_data = { +&"RESET": SubResource("Animation_ppd7v"), +&"main": SubResource("Animation_k4fxl") +} + +[node name="VFXExplosion_04" type="Node3D"] +script = ExtResource("1_gkc2v") +primary_color = Color(1, 0.529412, 0, 1) +secondary_color = Color(1, 0.337255, 0, 1) +tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +light_color = Color(1, 0.529412, 0, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_g57xf") +emitting = false +amount = 1 +lifetime = 0.8 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_8n3be") +draw_pass_1 = SubResource("SphereMesh_hvte5") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_lt01u") +emitting = false +amount = 3 +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_f2s7u") +draw_pass_1 = SubResource("SphereMesh_13ab5") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_gkc2v") +emitting = false +amount = 16 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_hvte5") +draw_pass_1 = SubResource("QuadMesh_kxca7") + +[node name="Decal" type="Decal" parent="."] +sorting_offset = -1.0 +texture_albedo = ExtResource("4_g57xf") +texture_emission = ExtResource("5_gkc2v") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.529412, 0, 1) +light_energy = 4.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("7_3n50y") +base_energy = 4.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_ppd7v") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_05.tscn b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_05.tscn new file mode 100644 index 0000000..7fada7f --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_05.tscn @@ -0,0 +1,417 @@ +[gd_scene load_steps=43 format=3 uid="uid://shl0iw1x775r"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_pc1m8"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_vxewg"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="2_vxewg"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_wbyke"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="4_ro6ym"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_c84e7"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="6_xgs5v"] + +[sub_resource type="Gradient" id="Gradient_pc1m8"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_vxewg"] +frequency = 0.003 +fractal_type = 2 +fractal_octaves = 2 +fractal_weighted_strength = 0.66 +domain_warp_enabled = true +domain_warp_amplitude = 19.465 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 1 +domain_warp_fractal_lacunarity = 6.89 +domain_warp_fractal_gain = 0.765 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_vxewg"] +seamless = true +color_ramp = SubResource("Gradient_pc1m8") +noise = SubResource("FastNoiseLite_vxewg") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ro6ym"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_pc1m8") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_vxewg") +shader_parameter/primary_color = Color(0.890196, 0.627451, 0.0901961, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_tgerl"] +_data = [Vector2(0, 0), 0.0, 0.10399, 0, 0, Vector2(0.159574, 0.119442), 1.68494, 1.68494, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_wbyke"] +curve = SubResource("Curve_tgerl") + +[sub_resource type="Curve" id="Curve_qarha"] +_data = [Vector2(0, 0.516029), 0.0, 7.81198, 0, 0, Vector2(0.167553, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_ro6ym"] +curve = SubResource("Curve_qarha") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_jilrt"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.9 +scale_curve = SubResource("CurveTexture_ro6ym") +alpha_curve = SubResource("CurveTexture_wbyke") + +[sub_resource type="SphereMesh" id="SphereMesh_6lo2p"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_pc1m8"] +noise_type = 0 +seed = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_c84e7"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_pc1m8") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_wbyke"] +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_frequency = 0.005 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_xgs5v"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_wbyke") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_c84e7"] +render_priority = 0 +shader = ExtResource("2_vxewg") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_xgs5v") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_c84e7") +shader_parameter/primary_color = Color(0.890196, 0.627451, 0.0901961, 1) +shader_parameter/tertiary_color = Color(0.215686, 0.215686, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 0.3 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 1 + +[sub_resource type="Curve" id="Curve_pc1m8"] +_data = [Vector2(0, 1), 0.0, -0.69537, 0, 0, Vector2(1, 0), -0.685899, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_nmq2e"] +curve = SubResource("Curve_pc1m8") + +[sub_resource type="Gradient" id="Gradient_wbyke"] +offsets = PackedFloat32Array(0, 0.494872, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.623529, 0.921569, 0.921569, 0.47451, 0.87451, 0.87451, 0.87451, 0.258824) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_frsf8"] +gradient = SubResource("Gradient_wbyke") + +[sub_resource type="Gradient" id="Gradient_c84e7"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ifykw"] +gradient = SubResource("Gradient_c84e7") + +[sub_resource type="Curve" id="Curve_nmq2e"] +_data = [Vector2(0, 0.206825), 0.0, 1.8623, 0, 0, Vector2(1, 1), 0.143345, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_tgerl"] +curve = SubResource("Curve_nmq2e") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ifykw"] +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 1.0 +initial_velocity_max = 1.0 +gravity = Vector3(0, 0, 0) +damping_min = 5.0 +damping_max = 10.0 +scale_max = 1.2 +scale_curve = SubResource("CurveTexture_tgerl") +color_ramp = SubResource("GradientTexture1D_ifykw") +color_initial_ramp = SubResource("GradientTexture1D_frsf8") +alpha_curve = SubResource("CurveTexture_nmq2e") + +[sub_resource type="SphereMesh" id="SphereMesh_tgerl"] +radius = 0.8 +height = 1.6 +radial_segments = 32 +rings = 16 + +[sub_resource type="Gradient" id="Gradient_vxewg"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_q21nm"] +gradient = SubResource("Gradient_vxewg") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_xgs5v"] +render_priority = 0 +shader = ExtResource("3_wbyke") +shader_parameter/shape_texture = SubResource("GradientTexture2D_q21nm") +shader_parameter/primary_color = Color(0.890196, 0.627451, 0.0901961, 1) +shader_parameter/secondary_color = Color(0.890196, 0, 0.152941, 1) + +[sub_resource type="Curve" id="Curve_vxewg"] +_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_qarha"] +curve = SubResource("Curve_vxewg") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ro6ym"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +initial_velocity_min = 5.0 +initial_velocity_max = 10.0 +damping_min = 15.0 +damping_max = 20.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_qarha") + +[sub_resource type="QuadMesh" id="QuadMesh_pc1m8"] +size = Vector2(0.05, 0.4) + +[sub_resource type="Animation" id="Animation_vxewg"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sparks:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Light:light_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:emission_energy") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Decal:albedo_mix") +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_pc1m8"] +resource_name = "main" +length = 1.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sparks:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Light:light_multiplier") +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, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:emission_energy") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.5, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Decal:albedo_mix") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.5, 1.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_vxewg"] +_data = { +&"RESET": SubResource("Animation_vxewg"), +&"main": SubResource("Animation_pc1m8") +} + +[node name="VFXExplosion_05" type="Node3D"] +script = ExtResource("1_vxewg") +primary_color = Color(0.890196, 0.627451, 0.0901961, 1) +secondary_color = Color(0.890196, 0, 0.152941, 1) +tertiary_color = Color(0.215686, 0.215686, 0.180392, 1) +light_color = Color(0.890196, 0.627451, 0.0901961, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_ro6ym") +emitting = false +amount = 1 +lifetime = 0.8 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_jilrt") +draw_pass_1 = SubResource("SphereMesh_6lo2p") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_c84e7") +emitting = false +amount = 3 +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_ifykw") +draw_pass_1 = SubResource("SphereMesh_tgerl") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_xgs5v") +emitting = false +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_ro6ym") +draw_pass_1 = SubResource("QuadMesh_pc1m8") + +[node name="Decal" type="Decal" parent="."] +sorting_offset = -1.0 +size = Vector3(1, 1, 1) +texture_albedo = ExtResource("4_ro6ym") +texture_emission = ExtResource("5_c84e7") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(0.890196, 0.627451, 0.0901961, 1) +light_energy = 4.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("6_xgs5v") +base_energy = 4.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_vxewg") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_06.tscn b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_06.tscn new file mode 100644 index 0000000..865a4f8 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_06.tscn @@ -0,0 +1,418 @@ +[gd_scene load_steps=43 format=3 uid="uid://bjru1p8jhdp1b"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_dfkn5"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_dmlm6"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="2_dmlm6"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_h53b0"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="4_pnhd3"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_abayo"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="6_c2dwc"] + +[sub_resource type="Gradient" id="Gradient_5fu0g"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_v16vn"] +fractal_type = 2 +fractal_octaves = 2 +fractal_weighted_strength = 0.66 +domain_warp_enabled = true +domain_warp_amplitude = 19.465 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 1 +domain_warp_fractal_lacunarity = 6.89 +domain_warp_fractal_gain = 0.765 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_88mbr"] +seamless = true +color_ramp = SubResource("Gradient_5fu0g") +noise = SubResource("FastNoiseLite_v16vn") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mf8nh"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_dfkn5") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_88mbr") +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_ncnyg"] +_data = [Vector2(0, 0), 0.0, 0.10399, 0, 0, Vector2(0.159574, 0.119442), 1.68494, 1.68494, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_sw7kb"] +curve = SubResource("Curve_ncnyg") + +[sub_resource type="Curve" id="Curve_6s1rp"] +_data = [Vector2(0, 0.516029), 0.0, 7.81198, 0, 0, Vector2(0.167553, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_8cxy7"] +curve = SubResource("Curve_6s1rp") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_p7tmq"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.9 +scale_curve = SubResource("CurveTexture_8cxy7") +alpha_curve = SubResource("CurveTexture_sw7kb") + +[sub_resource type="SphereMesh" id="SphereMesh_pf3f7"] +radius = 0.8 +height = 0.7 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_jrygr"] +noise_type = 0 +seed = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_38x4d"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_jrygr") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_5dj1p"] +frequency = 0.005 +fractal_type = 2 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_frequency = 0.005 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_wvci1"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_5dj1p") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_x22jd"] +render_priority = 0 +shader = ExtResource("2_dmlm6") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_wvci1") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_38x4d") +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/tertiary_color = Color(0, 0, 0, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 0.3 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 1 + +[sub_resource type="Curve" id="Curve_dfkn5"] +_data = [Vector2(0, 1), 0.0, -0.69537, 0, 0, Vector2(1, 0), -0.685899, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_dmlm6"] +curve = SubResource("Curve_dfkn5") + +[sub_resource type="Gradient" id="Gradient_h53b0"] +offsets = PackedFloat32Array(0, 0.494872, 1) +colors = PackedColorArray(1, 1, 1, 1, 0.623529, 0.921569, 0.921569, 0.47451, 0.87451, 0.87451, 0.87451, 0.258824) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_pnhd3"] +gradient = SubResource("Gradient_h53b0") + +[sub_resource type="Gradient" id="Gradient_abayo"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_c2dwc"] +gradient = SubResource("Gradient_abayo") + +[sub_resource type="Curve" id="Curve_5fu0g"] +_data = [Vector2(0, 0.206825), 0.0, 1.8623, 0, 0, Vector2(1, 1), 0.143345, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_v16vn"] +curve = SubResource("Curve_5fu0g") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_88mbr"] +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 1.0 +initial_velocity_max = 1.0 +gravity = Vector3(0, 0, 0) +damping_min = 5.0 +damping_max = 10.0 +scale_max = 1.2 +scale_curve = SubResource("CurveTexture_v16vn") +color_ramp = SubResource("GradientTexture1D_c2dwc") +color_initial_ramp = SubResource("GradientTexture1D_pnhd3") +alpha_curve = SubResource("CurveTexture_dmlm6") + +[sub_resource type="SphereMesh" id="SphereMesh_1k8gh"] +radius = 1.2 +height = 1.6 +radial_segments = 32 +rings = 16 + +[sub_resource type="Gradient" id="Gradient_dfkn5"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_dmlm6"] +gradient = SubResource("Gradient_dfkn5") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_h53b0"] +render_priority = 0 +shader = ExtResource("3_h53b0") +shader_parameter/shape_texture = SubResource("GradientTexture2D_dmlm6") +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/secondary_color = Color(1, 0, 0, 1) + +[sub_resource type="Curve" id="Curve_pnhd3"] +_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_abayo"] +curve = SubResource("Curve_pnhd3") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_c2dwc"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 0.854 +initial_velocity_min = 10.0 +initial_velocity_max = 20.0 +damping_min = 15.0 +damping_max = 20.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_abayo") + +[sub_resource type="QuadMesh" id="QuadMesh_5fu0g"] +size = Vector2(0.05, 0.4) + +[sub_resource type="Animation" id="Animation_dmlm6"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sparks:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Decal:emission_energy") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Light:light_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_dfkn5"] +resource_name = "main" +length = 1.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Smoke:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Sparks:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Decal:emission_energy") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.6), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [4.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Decal:albedo_mix") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.6), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Light:light_multiplier") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.599737), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_dmlm6"] +_data = { +&"RESET": SubResource("Animation_dmlm6"), +&"main": SubResource("Animation_dfkn5") +} + +[node name="VFXExplosion_06" type="Node3D"] +script = ExtResource("1_dmlm6") +primary_color = Color(1, 1, 0, 1) +secondary_color = Color(1, 0, 0, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_mf8nh") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_p7tmq") +draw_pass_1 = SubResource("SphereMesh_pf3f7") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_x22jd") +emitting = false +amount = 3 +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_88mbr") +draw_pass_1 = SubResource("SphereMesh_1k8gh") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_h53b0") +emitting = false +amount = 16 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_c2dwc") +draw_pass_1 = SubResource("QuadMesh_5fu0g") + +[node name="Decal" type="Decal" parent="."] +sorting_offset = -1.0 +size = Vector3(1, 1, 1) +texture_albedo = ExtResource("4_pnhd3") +texture_emission = ExtResource("5_abayo") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(0.890196, 0.627451, 0.0901961, 1) +light_energy = 4.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("6_c2dwc") +base_energy = 4.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_dmlm6") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_01.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_01.tscn new file mode 100644 index 0000000..2d040d8 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_01.tscn @@ -0,0 +1,341 @@ +[gd_scene load_steps=34 format=3 uid="uid://ri1dspbxt43r"] + +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_ivu3w"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_v574d"] +[ext_resource type="Texture2D" uid="uid://i6dlldk10la7" path="res://assets/BinbunVFX/shared/texture/flash/flash_04.png" id="2_yt271"] +[ext_resource type="Texture2D" uid="uid://bqqrfrrd5f7kq" path="res://assets/BinbunVFX/shared/texture/flash/flash_03.png" id="3_ivu3w"] +[ext_resource type="Shader" uid="uid://d4eb3cue1817u" path="res://assets/BinbunVFX/impact_explosions/src/shader/glow.gdshader" id="4_hylye"] +[ext_resource type="Texture2D" uid="uid://hxi4xo7j57d7" path="res://assets/BinbunVFX/shared/texture/flare/flare_01.png" id="5_aiijp"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="7_eoult"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_xfhs0"] +render_priority = 0 +shader = ExtResource("1_ivu3w") +shader_parameter/mask_texture = ExtResource("2_yt271") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.847059, 0, 1) +shader_parameter/secondary_color = Color(1, 0.290196, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_yt271"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_eoult"] +curve = SubResource("Curve_yt271") + +[sub_resource type="Curve" id="Curve_ivu3w"] +_data = [Vector2(0, 1), 0.0, 0.032534, 0, 0, Vector2(1, 0.696629), -1.17373, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_80dxi"] +curve = SubResource("Curve_ivu3w") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_eoult"] +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_80dxi") +alpha_curve = SubResource("CurveTexture_eoult") + +[sub_resource type="QuadMesh" id="QuadMesh_80dxi"] +size = Vector2(2, 2) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ivu3w"] +render_priority = 0 +shader = ExtResource("1_ivu3w") +shader_parameter/mask_texture = ExtResource("3_ivu3w") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.847059, 0, 1) +shader_parameter/secondary_color = Color(1, 0.290196, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_hylye"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_87miy"] +curve = SubResource("Curve_hylye") + +[sub_resource type="Curve" id="Curve_aiijp"] +_data = [Vector2(0, 1), 0.0, -0.125756, 0, 0, Vector2(1, 0.41573), -1.2228, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_jvs7g"] +curve = SubResource("Curve_aiijp") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_80dxi"] +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_jvs7g") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_87miy") + +[sub_resource type="QuadMesh" id="QuadMesh_87miy"] +size = Vector2(3, 3) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hylye"] +render_priority = 0 +shader = ExtResource("1_ivu3w") +shader_parameter/mask_texture = ExtResource("5_aiijp") +shader_parameter/edge_smoothness = 1.0 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.847059, 0, 1) +shader_parameter/secondary_color = Color(1, 0.290196, 0, 1) +shader_parameter/billboard = false +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_eoult"] +_data = [Vector2(0, 0.393258), 0.0, -1.11523, 0, 0, Vector2(1, 0), -0.171187, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_p1hel"] +curve = SubResource("Curve_eoult") + +[sub_resource type="Curve" id="Curve_l64xe"] +_data = [Vector2(0, 0.47191), 0.0, 1.45318, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_l64xe"] +curve = SubResource("Curve_l64xe") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_aqjj4"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 10.0 +initial_velocity_min = -0.1 +initial_velocity_max = 0.1 +gravity = Vector3(0, 0, 0) +scale_min = 0.6 +scale_max = 1.1 +scale_curve = SubResource("CurveTexture_l64xe") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_p1hel") + +[sub_resource type="QuadMesh" id="QuadMesh_v574d"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 +orientation = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_aiijp"] +render_priority = 0 +shader = ExtResource("4_hylye") +shader_parameter/primary_color = Color(1, 0.847059, 0, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_multiplier = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="SphereMesh" id="SphereMesh_ivu3w"] +radius = 2.0 +height = 4.0 +radial_segments = 32 +rings = 16 + +[sub_resource type="Animation" id="Animation_ivu3w"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_yt271"] +resource_name = "main" +length = 0.8 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.5, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.5, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ivu3w"] +_data = { +&"RESET": SubResource("Animation_ivu3w"), +&"main": SubResource("Animation_yt271") +} + +[node name="VFXHit_01" type="Node3D"] +script = ExtResource("1_v574d") +primary_color = Color(1, 0.847059, 0, 1) +secondary_color = Color(1, 0.290196, 0, 1) +light_color = Color(1, 1, 0.541176, 1) +light_energy = 2.0 + +[node name="Hit_01" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_xfhs0") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +explosiveness = 0.6 +process_material = SubResource("ParticleProcessMaterial_eoult") +draw_pass_1 = SubResource("QuadMesh_80dxi") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_ivu3w") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_80dxi") +draw_pass_1 = SubResource("QuadMesh_87miy") + +[node name="Flare_01" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_hylye") +emitting = false +amount = 1 +lifetime = 0.6 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_aqjj4") +draw_pass_1 = SubResource("QuadMesh_v574d") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +sorting_offset = -2.0 +material_override = SubResource("ShaderMaterial_aiijp") +mesh = SubResource("SphereMesh_ivu3w") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 1, 0.541176, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("7_eoult") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_ivu3w") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_02.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_02.tscn new file mode 100644 index 0000000..8b6fcbb --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_02.tscn @@ -0,0 +1,347 @@ +[gd_scene load_steps=35 format=3 uid="uid://se15ow6u0q0m"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_3o1ib"] +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_fnjpx"] +[ext_resource type="Texture2D" uid="uid://cjkuadylsfid1" path="res://assets/BinbunVFX/shared/texture/flash/flash_02.png" id="2_3mt8j"] +[ext_resource type="Texture2D" uid="uid://6n72xg2cgxx2" path="res://assets/BinbunVFX/shared/texture/flare/flare_04.png" id="3_m0fyp"] +[ext_resource type="Shader" uid="uid://d4eb3cue1817u" path="res://assets/BinbunVFX/impact_explosions/src/shader/glow.gdshader" id="5_jqm4h"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="6_mmwga"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fnjpx"] +render_priority = 0 +shader = ExtResource("1_fnjpx") +shader_parameter/mask_texture = ExtResource("2_3mt8j") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0.686275, 1) +shader_parameter/secondary_color = Color(1, 0.580392, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_3o1ib"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_y1jqx"] +curve = SubResource("Curve_3o1ib") + +[sub_resource type="Curve" id="Curve_0sv8k"] +_data = [Vector2(0, 1), 0.0, -0.235651, 0, 0, Vector2(1, 0.213483), -1.0667, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_jqm4h"] +curve = SubResource("Curve_0sv8k") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mmwga"] +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_jqm4h") +alpha_curve = SubResource("CurveTexture_y1jqx") + +[sub_resource type="QuadMesh" id="QuadMesh_caueu"] +size = Vector2(1.5, 1.5) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_m0fyp"] +render_priority = 0 +shader = ExtResource("1_fnjpx") +shader_parameter/mask_texture = ExtResource("2_3mt8j") +shader_parameter/edge_smoothness = 1.0 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0.686275, 1) +shader_parameter/secondary_color = Color(1, 0.580392, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_fnjpx"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_3o1ib"] +curve = SubResource("Curve_fnjpx") + +[sub_resource type="Curve" id="Curve_y1jqx"] +_data = [Vector2(0, 0.775281), 0.0, 1.24559, 0, 0, Vector2(1, 0.269663), -1.51924, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_0sv8k"] +curve = SubResource("Curve_y1jqx") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_jqm4h"] +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_0sv8k") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_3o1ib") + +[sub_resource type="QuadMesh" id="QuadMesh_mmwga"] +size = Vector2(2.5, 2.5) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3o1ib"] +render_priority = 0 +shader = ExtResource("1_fnjpx") +shader_parameter/mask_texture = ExtResource("3_m0fyp") +shader_parameter/edge_smoothness = 1.0 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0.686275, 1) +shader_parameter/secondary_color = Color(1, 0.580392, 0, 1) +shader_parameter/billboard = false +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_m0fyp"] +_data = [Vector2(0, 1), 0.0, -1.11523, 0, 0, Vector2(1, 0), -0.171187, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_fnjpx"] +curve = SubResource("Curve_m0fyp") + +[sub_resource type="Gradient" id="Gradient_fnjpx"] +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_3o1ib"] +gradient = SubResource("Gradient_fnjpx") + +[sub_resource type="Curve" id="Curve_jqm4h"] +_data = [Vector2(0, 0.47191), 0.0, 1.01723, 0, 0, Vector2(1, 1), 0.181648, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_mmwga"] +curve = SubResource("Curve_jqm4h") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_caueu"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 20.0 +initial_velocity_min = -0.1 +initial_velocity_max = 0.1 +gravity = Vector3(0, 0, 0) +scale_min = 0.6 +scale_max = 0.7 +scale_curve = SubResource("CurveTexture_mmwga") +color = Color(0, 0, 0, 1) +color_initial_ramp = SubResource("GradientTexture1D_3o1ib") +alpha_curve = SubResource("CurveTexture_fnjpx") + +[sub_resource type="QuadMesh" id="QuadMesh_nddl7"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 +orientation = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_cub7k"] +render_priority = 0 +shader = ExtResource("5_jqm4h") +shader_parameter/primary_color = Color(1, 1, 0.686275, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_multiplier = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="SphereMesh" id="SphereMesh_8nm16"] +radius = 1.5 +height = 3.0 +radial_segments = 32 +rings = 16 + +[sub_resource type="Animation" id="Animation_cub7k"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.6, 0.766667), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.6, 0.766667), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="Animation" id="Animation_3mt8j"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_3mt8j"] +_data = { +&"RESET": SubResource("Animation_3mt8j"), +&"main": SubResource("Animation_cub7k") +} + +[node name="VFXHit_02" type="Node3D"] +script = ExtResource("1_3o1ib") +primary_color = Color(1, 1, 0.686275, 1) +secondary_color = Color(1, 0.580392, 0, 1) +light_color = Color(1, 1, 0.541176, 1) + +[node name="Hit_01" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_fnjpx") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +explosiveness = 0.6 +process_material = SubResource("ParticleProcessMaterial_mmwga") +draw_pass_1 = SubResource("QuadMesh_caueu") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_m0fyp") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_jqm4h") +draw_pass_1 = SubResource("QuadMesh_mmwga") + +[node name="Flare_01" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_3o1ib") +emitting = false +amount = 2 +lifetime = 0.6 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_caueu") +draw_pass_1 = SubResource("QuadMesh_nddl7") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +sorting_offset = -2.0 +material_override = SubResource("ShaderMaterial_cub7k") +mesh = SubResource("SphereMesh_8nm16") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 1, 0.541176, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("6_mmwga") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_3mt8j") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_03.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_03.tscn new file mode 100644 index 0000000..7c1e0d7 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_03.tscn @@ -0,0 +1,349 @@ +[gd_scene load_steps=33 format=3 uid="uid://b40oyf32pgee"] + +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_l0cbk"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_vffy1"] +[ext_resource type="Texture2D" uid="uid://bfvs2muk8b4ls" path="res://experimental/BinbunVFX/shared/texture/flare/flare_02.png" id="3_2sgsy"] +[ext_resource type="Texture2D" uid="uid://bqqrfrrd5f7kq" path="res://experimental/BinbunVFX/shared/texture/flash/flash_03.png" id="3_f52cn"] +[ext_resource type="Shader" uid="uid://d4eb3cue1817u" path="res://experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader" id="5_2w4ua"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="6_gky3u"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_l5xb5"] +render_priority = 0 +shader = ExtResource("1_l0cbk") +shader_parameter/mask_texture = ExtResource("3_f52cn") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.611765, 0.0941176, 1) +shader_parameter/secondary_color = Color(0.894118, 0.101961, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = true +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_0v3x4"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_eoult"] +curve = SubResource("Curve_0v3x4") + +[sub_resource type="Curve" id="Curve_ncj6l"] +_data = [Vector2(0, 1), 0.0, 0.032534, 0, 0, Vector2(1, 0.775281), -0.40554, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_80dxi"] +curve = SubResource("Curve_ncj6l") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_76mw0"] +emission_shape = 1 +emission_sphere_radius = 0.1 +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_min = 0.7 +scale_max = 1.1 +scale_curve = SubResource("CurveTexture_80dxi") +alpha_curve = SubResource("CurveTexture_eoult") + +[sub_resource type="QuadMesh" id="QuadMesh_l0cbk"] +size = Vector2(1.2, 2) +subdivide_width = 16 +subdivide_depth = 16 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_l0cbk"] +render_priority = 0 +shader = ExtResource("1_l0cbk") +shader_parameter/mask_texture = ExtResource("3_f52cn") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.611765, 0.0941176, 1) +shader_parameter/secondary_color = Color(0.894118, 0.101961, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = true +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_vffy1"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_f52cn"] +curve = SubResource("Curve_vffy1") + +[sub_resource type="Curve" id="Curve_w12qn"] +_data = [Vector2(0, 1), 0.0, -0.125756, 0, 0, Vector2(1, 0.775281), -0.565127, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_2w4ua"] +curve = SubResource("Curve_w12qn") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gky3u"] +emission_shape = 1 +emission_sphere_radius = 0.1 +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_2w4ua") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_f52cn") + +[sub_resource type="QuadMesh" id="QuadMesh_2sgsy"] +size = Vector2(3, 2) +subdivide_width = 16 +subdivide_depth = 16 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_vffy1"] +render_priority = 0 +shader = ExtResource("1_l0cbk") +shader_parameter/mask_texture = ExtResource("3_2sgsy") +shader_parameter/edge_smoothness = 1.0 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.611765, 0.0941176, 1) +shader_parameter/secondary_color = Color(0.894118, 0.101961, 0, 1) +shader_parameter/billboard = false +shader_parameter/proximity_fade = true +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_f52cn"] +_data = [Vector2(0, 0.393258), 0.0, -1.11523, 0, 0, Vector2(1, 0), -0.171187, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_w12qn"] +curve = SubResource("Curve_f52cn") + +[sub_resource type="Curve" id="Curve_2w4ua"] +_data = [Vector2(0, 0.47191), 0.0, 1.45318, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_gky3u"] +curve = SubResource("Curve_2w4ua") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_l5xb5"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 180.0 +initial_velocity_min = -0.1 +initial_velocity_max = 0.1 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +scale_max = 1.2 +scale_curve = SubResource("CurveTexture_gky3u") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_w12qn") + +[sub_resource type="QuadMesh" id="QuadMesh_0v3x4"] +size = Vector2(3, 3) +subdivide_width = 16 +subdivide_depth = 16 +orientation = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2sgsy"] +render_priority = 0 +shader = ExtResource("5_2w4ua") +shader_parameter/primary_color = Color(1, 0.611765, 0.0941176, 1) +shader_parameter/proximity_fade = true +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_multiplier = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="SphereMesh" id="SphereMesh_2sgsy"] +radius = 1.5 +height = 3.0 +radial_segments = 16 +rings = 8 + +[sub_resource type="Animation" id="Animation_2sgsy"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_5dbw3"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.5, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.5, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_2sgsy"] +_data = { +&"RESET": SubResource("Animation_2sgsy"), +&"main": SubResource("Animation_5dbw3") +} + +[node name="VFXHit_03" type="Node3D"] +script = ExtResource("1_vffy1") +primary_color = Color(1, 0.611765, 0.0941176, 1) +secondary_color = Color(0.894118, 0.101961, 0, 1) +light_color = Color(1, 1, 0.67451, 1) +mesh_resolutions = 16 + +[node name="Hit_01" type="GPUParticles3D" parent="."] +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_l5xb5") +emitting = false +amount = 2 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_76mw0") +draw_pass_1 = SubResource("QuadMesh_l0cbk") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_l0cbk") +emitting = false +amount = 2 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_gky3u") +draw_pass_1 = SubResource("QuadMesh_2sgsy") + +[node name="Flare_01" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_vffy1") +emitting = false +amount = 2 +lifetime = 0.4 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_l5xb5") +draw_pass_1 = SubResource("QuadMesh_0v3x4") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +sorting_offset = -2.0 +material_override = SubResource("ShaderMaterial_2sgsy") +mesh = SubResource("SphereMesh_2sgsy") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 1, 0.67451, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("6_gky3u") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_2sgsy") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_04.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_04.tscn new file mode 100644 index 0000000..74851f4 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_04.tscn @@ -0,0 +1,335 @@ +[gd_scene load_steps=32 format=3 uid="uid://bbynk4p3biw83"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_g5yym"] +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_qu10d"] +[ext_resource type="Texture2D" uid="uid://i6dlldk10la7" path="res://experimental/BinbunVFX/shared/texture/flash/flash_04.png" id="2_libwh"] +[ext_resource type="Shader" uid="uid://d4eb3cue1817u" path="res://experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader" id="5_ev7fe"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="6_7aexv"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_qu10d"] +render_priority = 0 +shader = ExtResource("1_qu10d") +shader_parameter/mask_texture = ExtResource("2_libwh") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/secondary_color = Color(1, 0, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_libwh"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_qu10d"] +curve = SubResource("Curve_libwh") + +[sub_resource type="Curve" id="Curve_4t8w8"] +_data = [Vector2(0, 1), 0.0, 0.032534, 0, 0, Vector2(1, 0.696629), -1.17373, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_libwh"] +curve = SubResource("Curve_4t8w8") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7aexv"] +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_libwh") +alpha_curve = SubResource("CurveTexture_qu10d") + +[sub_resource type="QuadMesh" id="QuadMesh_3py1k"] +size = Vector2(2, 2) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_g5yym"] +render_priority = 0 +shader = ExtResource("1_qu10d") +shader_parameter/mask_texture = ExtResource("2_libwh") +shader_parameter/edge_smoothness = 0.313559 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/secondary_color = Color(1, 0, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_qu10d"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_3bmj3"] +curve = SubResource("Curve_qu10d") + +[sub_resource type="Curve" id="Curve_3bmj3"] +_data = [Vector2(0, 1), 0.0, -0.125756, 0, 0, Vector2(1, 0.41573), -1.2228, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_4t8w8"] +curve = SubResource("Curve_3bmj3") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ev7fe"] +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_4t8w8") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_3bmj3") + +[sub_resource type="QuadMesh" id="QuadMesh_7aexv"] +size = Vector2(3, 3) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3py1k"] +render_priority = 0 +shader = ExtResource("1_qu10d") +shader_parameter/mask_texture = ExtResource("2_libwh") +shader_parameter/edge_smoothness = 0.4 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/secondary_color = Color(1, 0, 0, 1) +shader_parameter/billboard = false +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_vs881"] +_data = [Vector2(0, 1), 0.0, -1.11523, 0, 0, Vector2(1, 0), -0.171187, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_ev7fe"] +curve = SubResource("Curve_vs881") + +[sub_resource type="Curve" id="Curve_jolb0"] +_data = [Vector2(0, 0.730337), 0.0, 0.87191, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_7aexv"] +curve = SubResource("Curve_jolb0") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ke5tf"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 180.0 +initial_velocity_min = -0.1 +initial_velocity_max = 0.1 +gravity = Vector3(0, 0, 0) +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_7aexv") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_ev7fe") + +[sub_resource type="QuadMesh" id="QuadMesh_cyw7j"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 +orientation = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_35k1s"] +render_priority = 0 +shader = ExtResource("5_ev7fe") +shader_parameter/primary_color = Color(1, 1, 0, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_multiplier = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="SphereMesh" id="SphereMesh_35k1s"] +radius = 1.5 +height = 3.0 +radial_segments = 32 +rings = 16 + +[sub_resource type="Animation" id="Animation_35k1s"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_kjvwe"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Flare_01:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.4, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Light:light_multiplier") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.4, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_i65yy"] +_data = { +&"RESET": SubResource("Animation_35k1s"), +&"main": SubResource("Animation_kjvwe") +} + +[node name="VFXHit_04" type="Node3D"] +script = ExtResource("1_g5yym") +primary_color = Color(1, 1, 0, 1) +secondary_color = Color(1, 0, 0, 1) +light_color = Color(1, 1, 0, 1) + +[node name="Hit_01" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_qu10d") +amount = 1 +lifetime = 0.4 +one_shot = true +explosiveness = 0.6 +process_material = SubResource("ParticleProcessMaterial_7aexv") +draw_pass_1 = SubResource("QuadMesh_3py1k") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_g5yym") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_ev7fe") +draw_pass_1 = SubResource("QuadMesh_7aexv") + +[node name="Flare_01" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_3py1k") +emitting = false +amount = 6 +lifetime = 0.4 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_ke5tf") +draw_pass_1 = SubResource("QuadMesh_cyw7j") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +sorting_offset = -2.0 +material_override = SubResource("ShaderMaterial_35k1s") +mesh = SubResource("SphereMesh_35k1s") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 1, 0, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("6_7aexv") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_i65yy") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_05.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_05.tscn new file mode 100644 index 0000000..eb762f2 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_05.tscn @@ -0,0 +1,348 @@ +[gd_scene load_steps=35 format=3 uid="uid://vkstbs4fu60"] + +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_5fy01"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_rqeg2"] +[ext_resource type="Texture2D" uid="uid://b2ahcfqaivla7" path="res://assets/BinbunVFX/shared/texture/flash/flash_01.png" id="2_aqcd5"] +[ext_resource type="Shader" uid="uid://d4eb3cue1817u" path="res://assets/BinbunVFX/impact_explosions/src/shader/glow.gdshader" id="3_cy50q"] +[ext_resource type="Texture2D" uid="uid://bqqrfrrd5f7kq" path="res://assets/BinbunVFX/shared/texture/flash/flash_03.png" id="3_rqeg2"] +[ext_resource type="Texture2D" uid="uid://cjkuadylsfid1" path="res://assets/BinbunVFX/shared/texture/flash/flash_02.png" id="4_cy50q"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="4_rqeg2"] +[ext_resource type="Texture2D" uid="uid://bxtojkguayub2" path="res://assets/BinbunVFX/shared/texture/flare/flare_03.png" id="6_il5r6"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_d2ynh"] +render_priority = 0 +shader = ExtResource("1_5fy01") +shader_parameter/mask_texture = ExtResource("2_aqcd5") +shader_parameter/noise_texture = ExtResource("3_rqeg2") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(0.815686, 0.321569, 0.00392157, 1) +shader_parameter/secondary_color = Color(1, 0.541455, 0.101383, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_27chy"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_i4m5q"] +curve = SubResource("Curve_27chy") + +[sub_resource type="Curve" id="Curve_pns5y"] +_data = [Vector2(0, 1), 0.0, 0.032534, 0, 0, Vector2(1, 0.696629), -1.17373, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_ka0sc"] +curve = SubResource("Curve_pns5y") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_jy2lo"] +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_ka0sc") +alpha_curve = SubResource("CurveTexture_i4m5q") + +[sub_resource type="QuadMesh" id="QuadMesh_05b6s"] +size = Vector2(2, 2) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_5fy01"] +render_priority = 0 +shader = ExtResource("1_5fy01") +shader_parameter/mask_texture = ExtResource("4_cy50q") +shader_parameter/edge_smoothness = 0.4 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(0.815686, 0.321569, 0.00392157, 1) +shader_parameter/secondary_color = Color(1, 0.541455, 0.101383, 1) +shader_parameter/billboard = false +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_aqcd5"] +_data = [Vector2(0, 1), 0.0, -1.11523, 0, 0, Vector2(1, 0), -0.171187, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_cy50q"] +curve = SubResource("Curve_aqcd5") + +[sub_resource type="Curve" id="Curve_rqeg2"] +_data = [Vector2(0, 0.730337), 0.0, 0.87191, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_il5r6"] +curve = SubResource("Curve_rqeg2") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_d2ynh"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 180.0 +initial_velocity_min = -0.1 +initial_velocity_max = 0.1 +gravity = Vector3(0, 0, 0) +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_il5r6") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_cy50q") + +[sub_resource type="QuadMesh" id="QuadMesh_27chy"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 +orientation = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_27chy"] +render_priority = 0 +shader = ExtResource("1_5fy01") +shader_parameter/mask_texture = ExtResource("6_il5r6") +shader_parameter/edge_smoothness = 1.0 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(0.815686, 0.321569, 0.00392157, 1) +shader_parameter/secondary_color = Color(1, 0.541455, 0.101383, 1) +shader_parameter/billboard = false +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_i4m5q"] +_data = [Vector2(0, 0.393258), 0.0, -1.11523, 0, 0, Vector2(1, 0), -0.171187, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_pns5y"] +curve = SubResource("Curve_i4m5q") + +[sub_resource type="Curve" id="Curve_ka0sc"] +_data = [Vector2(0, 0.47191), 0.0, 1.45318, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_jy2lo"] +curve = SubResource("Curve_ka0sc") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_05b6s"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 10.0 +initial_velocity_min = -0.1 +initial_velocity_max = 0.1 +gravity = Vector3(0, 0, 0) +scale_min = 0.6 +scale_max = 1.1 +scale_curve = SubResource("CurveTexture_jy2lo") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_pns5y") + +[sub_resource type="QuadMesh" id="QuadMesh_doq2e"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 +orientation = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_6hydx"] +render_priority = 0 +shader = ExtResource("3_cy50q") +shader_parameter/primary_color = Color(0.815686, 0.321569, 0.00392157, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 0.5 +shader_parameter/alpha_multiplier = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="SphereMesh" id="SphereMesh_5fy01"] +radius = 1.0 +height = 2.0 +radial_segments = 32 +rings = 16 + +[sub_resource type="Animation" id="Animation_5fy01"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Flare_01:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Light:light_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Flare_02:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_6hydx"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Flare_01:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MeshInstance3D:material_override:shader_parameter/alpha_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Light:light_multiplier") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.5, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Flare_02:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_5fy01"] +_data = { +&"RESET": SubResource("Animation_5fy01"), +&"main": SubResource("Animation_6hydx") +} + +[node name="VFXHit_05" type="Node3D"] +script = ExtResource("1_rqeg2") +primary_color = Color(0.815686, 0.321569, 0.00392157, 1) +secondary_color = Color(1, 0.541455, 0.101383, 1) +light_color = Color(0.886275, 0.831373, 0.756863, 1) + +[node name="Hit_01" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_d2ynh") +emitting = false +amount = 2 +lifetime = 0.4 +one_shot = true +explosiveness = 0.6 +process_material = SubResource("ParticleProcessMaterial_jy2lo") +draw_pass_1 = SubResource("QuadMesh_05b6s") + +[node name="Flare_01" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_5fy01") +emitting = false +amount = 6 +lifetime = 0.4 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_d2ynh") +draw_pass_1 = SubResource("QuadMesh_27chy") + +[node name="Flare_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_27chy") +emitting = false +amount = 1 +lifetime = 0.6 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_05b6s") +draw_pass_1 = SubResource("QuadMesh_doq2e") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +sorting_offset = -2.0 +material_override = SubResource("ShaderMaterial_6hydx") +mesh = SubResource("SphereMesh_5fy01") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(0.886275, 0.831373, 0.756863, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("4_rqeg2") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_5fy01") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_06.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_06.tscn new file mode 100644 index 0000000..186e7ba --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_06.tscn @@ -0,0 +1,210 @@ +[gd_scene load_steps=23 format=3 uid="uid://h47wdqps3cc6"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_8tack"] +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_65c2p"] +[ext_resource type="Texture2D" uid="uid://b2ahcfqaivla7" path="res://experimental/BinbunVFX/shared/texture/flash/flash_01.png" id="3_xdu8x"] +[ext_resource type="Texture2D" uid="uid://i6dlldk10la7" path="res://experimental/BinbunVFX/shared/texture/flash/flash_04.png" id="4_1m8b4"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="4_kynun"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8tack"] +render_priority = 0 +shader = ExtResource("1_65c2p") +shader_parameter/mask_texture = ExtResource("3_xdu8x") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.847059, 0, 1) +shader_parameter/secondary_color = Color(1, 0.290196, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_65c2p"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_t0vfo"] +curve = SubResource("Curve_65c2p") + +[sub_resource type="Curve" id="Curve_21na2"] +_data = [Vector2(0, 1), 0.0, 0.032534, 0, 0, Vector2(1, 0.696629), -1.17373, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_kynun"] +curve = SubResource("Curve_21na2") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_cgcsd"] +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_kynun") +alpha_curve = SubResource("CurveTexture_t0vfo") + +[sub_resource type="QuadMesh" id="QuadMesh_r5rva"] +size = Vector2(1.5, 1.5) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_d07gb"] +render_priority = 0 +shader = ExtResource("1_65c2p") +shader_parameter/mask_texture = ExtResource("4_1m8b4") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.847059, 0, 1) +shader_parameter/secondary_color = Color(1, 0.290196, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_cc04f"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_87miy"] +curve = SubResource("Curve_cc04f") + +[sub_resource type="Curve" id="Curve_vx43j"] +_data = [Vector2(0, 1), 0.0, -0.125756, 0, 0, Vector2(1, 0.41573), -1.2228, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_jvs7g"] +curve = SubResource("Curve_vx43j") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_0t4af"] +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_jvs7g") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_87miy") + +[sub_resource type="QuadMesh" id="QuadMesh_k8870"] +size = Vector2(2, 2) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="Animation" id="Animation_dtgi6"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Light:light_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_8pcwq"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Light:light_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.6), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_cc04f"] +_data = { +&"RESET": SubResource("Animation_dtgi6"), +&"main": SubResource("Animation_8pcwq") +} + +[node name="VFXHit_06" type="Node3D"] +script = ExtResource("1_8tack") +primary_color = Color(1, 0.847059, 0, 1) +secondary_color = Color(1, 0.290196, 0, 1) +light_color = Color(1, 0.847059, 0, 1) + +[node name="Hit_01" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_8tack") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +explosiveness = 0.6 +process_material = SubResource("ParticleProcessMaterial_cgcsd") +draw_pass_1 = SubResource("QuadMesh_r5rva") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_d07gb") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_0t4af") +draw_pass_1 = SubResource("QuadMesh_k8870") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.847059, 0, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("4_kynun") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_cc04f") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_07.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_07.tscn new file mode 100644 index 0000000..1b6cf0c --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_07.tscn @@ -0,0 +1,216 @@ +[gd_scene load_steps=23 format=3 uid="uid://drtpctry2l8gr"] + +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_3wu2a"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_4r8et"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="3_5t4k4"] + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_3wu2a"] +load_path = "res://.godot/imported/flash_02.png-484d2fe310e53356e8646347ab61dab0.s3tc.ctex" + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_4r8et"] +render_priority = 0 +shader = ExtResource("1_3wu2a") +shader_parameter/mask_texture = SubResource("CompressedTexture2D_3wu2a") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0.686275, 1) +shader_parameter/secondary_color = Color(1, 0.580392, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_5t4k4"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_35dyo"] +curve = SubResource("Curve_5t4k4") + +[sub_resource type="Curve" id="Curve_sxdym"] +_data = [Vector2(0, 1), 0.0, -0.235651, 0, 0, Vector2(1, 0.213483), -1.0667, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_aqqxy"] +curve = SubResource("Curve_sxdym") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_su3r0"] +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_aqqxy") +alpha_curve = SubResource("CurveTexture_35dyo") + +[sub_resource type="QuadMesh" id="QuadMesh_m1ds4"] +size = Vector2(1.5, 1.5) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_quohl"] +load_path = "res://.godot/imported/flash_02.png-484d2fe310e53356e8646347ab61dab0.s3tc.ctex" + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3wu2a"] +render_priority = 0 +shader = ExtResource("1_3wu2a") +shader_parameter/mask_texture = SubResource("CompressedTexture2D_quohl") +shader_parameter/edge_smoothness = 1.0 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 1, 0.686275, 1) +shader_parameter/secondary_color = Color(1, 0.580392, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_4r8et"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_5t4k4"] +curve = SubResource("Curve_4r8et") + +[sub_resource type="Curve" id="Curve_35dyo"] +_data = [Vector2(0, 0.775281), 0.0, 1.24559, 0, 0, Vector2(1, 0.269663), -1.51924, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_sxdym"] +curve = SubResource("Curve_35dyo") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_aqqxy"] +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_sxdym") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_5t4k4") + +[sub_resource type="QuadMesh" id="QuadMesh_su3r0"] +size = Vector2(2, 2) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="Animation" id="Animation_3wu2a"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Light:light_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} + +[sub_resource type="Animation" id="Animation_quohl"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Light:light_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4r8et"] +_data = { +&"RESET": SubResource("Animation_quohl"), +&"main": SubResource("Animation_3wu2a") +} + +[node name="VFXHit_07" type="Node3D"] +script = ExtResource("1_4r8et") +primary_color = Color(1, 1, 0.686275, 1) +secondary_color = Color(1, 0.580392, 0, 1) +light_color = Color(1, 1, 0.541176, 1) + +[node name="Hit_01" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_4r8et") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +explosiveness = 0.6 +process_material = SubResource("ParticleProcessMaterial_su3r0") +draw_pass_1 = SubResource("QuadMesh_m1ds4") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_3wu2a") +emitting = false +amount = 1 +lifetime = 0.4 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_aqqxy") +draw_pass_1 = SubResource("QuadMesh_su3r0") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 1, 0.541176, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("3_5t4k4") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_4r8et") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_08.tscn b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_08.tscn new file mode 100644 index 0000000..1c21dcc --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_08.tscn @@ -0,0 +1,224 @@ +[gd_scene load_steps=23 format=3 uid="uid://cp7mydlqqpb17"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_ghyif"] +[ext_resource type="Shader" uid="uid://cssforqq3llvn" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic.gdshader" id="1_uiasa"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="2_ghyif"] + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_mf6mg"] +load_path = "res://.godot/imported/flash_03.png-5a9d2c66592f2873db86fa41f28ce732.s3tc.ctex" + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_746na"] +render_priority = 0 +shader = ExtResource("1_uiasa") +shader_parameter/mask_texture = SubResource("CompressedTexture2D_mf6mg") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.611765, 0.0941176, 1) +shader_parameter/secondary_color = Color(0.894118, 0.101961, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_sdvv1"] +_data = [Vector2(0.5, 1), 0.0, -3.02196, 0, 0, Vector2(1, 0), -0.0871912, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_6d4th"] +curve = SubResource("Curve_sdvv1") + +[sub_resource type="Curve" id="Curve_cpsjg"] +_data = [Vector2(0, 1), 0.0, 0.032534, 0, 0, Vector2(1, 0.775281), -0.40554, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_7vnfm"] +curve = SubResource("Curve_cpsjg") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ba0na"] +emission_shape = 1 +emission_sphere_radius = 0.1 +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +gravity = Vector3(0, 0, 0) +scale_min = 0.7 +scale_max = 1.1 +scale_curve = SubResource("CurveTexture_7vnfm") +alpha_curve = SubResource("CurveTexture_6d4th") + +[sub_resource type="QuadMesh" id="QuadMesh_shtac"] +size = Vector2(1.2, 2) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_uiasa"] +load_path = "res://.godot/imported/flash_03.png-5a9d2c66592f2873db86fa41f28ce732.s3tc.ctex" + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ghyif"] +render_priority = 0 +shader = ExtResource("1_uiasa") +shader_parameter/mask_texture = SubResource("CompressedTexture2D_uiasa") +shader_parameter/edge_smoothness = 0.5 +shader_parameter/color_smoothness = 1.0 +shader_parameter/primary_color = Color(1, 0.611765, 0.0941176, 1) +shader_parameter/secondary_color = Color(0.894118, 0.101961, 0, 1) +shader_parameter/billboard = true +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_mf6mg"] +_data = [Vector2(0.479381, 1), 0.0, -2.39775, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_746na"] +curve = SubResource("Curve_mf6mg") + +[sub_resource type="Curve" id="Curve_6d4th"] +_data = [Vector2(0, 1), 0.0, -0.125756, 0, 0, Vector2(1, 0.775281), -0.565127, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_cpsjg"] +curve = SubResource("Curve_6d4th") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7vnfm"] +emission_shape = 1 +emission_sphere_radius = 0.1 +angle_min = -720.0 +angle_max = 720.0 +gravity = Vector3(0, 0, 0) +scale_max = 1.4 +scale_curve = SubResource("CurveTexture_cpsjg") +color = Color(0, 0, 0, 1) +alpha_curve = SubResource("CurveTexture_746na") + +[sub_resource type="QuadMesh" id="QuadMesh_ba0na"] +size = Vector2(3, 2) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="Animation" id="Animation_ghyif"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Light:light_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_uiasa"] +resource_name = "main" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Hit_01:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Hit_02:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Light:light_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.4, 0.8), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mf6mg"] +_data = { +&"RESET": SubResource("Animation_ghyif"), +&"main": SubResource("Animation_uiasa") +} + +[node name="VFXHit_08" type="Node3D"] +script = ExtResource("1_ghyif") +primary_color = Color(1, 0.611765, 0.0941176, 1) +secondary_color = Color(0.894118, 0.101961, 0, 1) +light_color = Color(1, 1, 0.67451, 1) + +[node name="Hit_01" type="GPUParticles3D" parent="."] +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_746na") +emitting = false +amount = 2 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_ba0na") +draw_pass_1 = SubResource("QuadMesh_shtac") + +[node name="Hit_02" type="GPUParticles3D" parent="."] +sorting_offset = -1.0 +material_override = SubResource("ShaderMaterial_ghyif") +emitting = false +amount = 2 +lifetime = 0.4 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_7vnfm") +draw_pass_1 = SubResource("QuadMesh_ba0na") + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 1, 0.67451, 1) +light_energy = 2.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("2_ghyif") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_mf6mg") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_01.tscn b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_01.tscn new file mode 100644 index 0000000..20ff4d6 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_01.tscn @@ -0,0 +1,648 @@ +[gd_scene load_steps=57 format=3 uid="uid://34ptrnfgpwlp"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_gk7hu"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_huy36"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="1_kc1dr"] +[ext_resource type="Shader" uid="uid://dw1bkef40wjyi" path="res://assets/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader" id="1_tpmvn"] +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="2_6ypje"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="6_vw7xv"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="7_fqiel"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="8_jehp2"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="9_jehp2"] + +[sub_resource type="Gradient" id="Gradient_huy36"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_yt6d1"] +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_jehp2"] +seamless = true +color_ramp = SubResource("Gradient_huy36") +noise = SubResource("FastNoiseLite_yt6d1") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_jehp2"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_gk7hu") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_jehp2") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_gk7hu"] +_data = [Vector2(0, 0), 0.0, 2.69302, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_irlqe"] +curve = SubResource("Curve_gk7hu") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_vw7xv"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +alpha_curve = SubResource("CurveTexture_irlqe") + +[sub_resource type="SphereMesh" id="SphereMesh_gk7hu"] +radius = 1.0 +radial_segments = 32 +rings = 16 +is_hemisphere = true + +[sub_resource type="Gradient" id="Gradient_vw7xv"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_8mskx"] +gradient = SubResource("Gradient_vw7xv") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_irlqe"] +render_priority = 0 +shader = ExtResource("6_vw7xv") +shader_parameter/shape_texture = SubResource("GradientTexture2D_8mskx") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/secondary_color = Color(0.984314, 0.192157, 0, 1) + +[sub_resource type="Curve" id="Curve_vw7xv"] +_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_0gt57"] +curve = SubResource("Curve_vw7xv") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_fqiel"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 60.0 +initial_velocity_min = 5.0 +initial_velocity_max = 10.0 +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_0gt57") + +[sub_resource type="QuadMesh" id="QuadMesh_8mskx"] +size = Vector2(0.05, 0.4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_gk7hu"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_jx4yd"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_gk7hu") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_vw7xv"] +noise_type = 2 +frequency = 0.04 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_vx8h5"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_vw7xv") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fqiel"] +render_priority = 0 +shader = ExtResource("1_kc1dr") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_vx8h5") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_jx4yd") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 0.2 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_jehp2"] +_data = [Vector2(0, 0.495863), 0.0, 0.0, 0, 0, Vector2(1, 0), -1.42645, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_kt3hw"] +curve = SubResource("Curve_jehp2") + +[sub_resource type="Gradient" id="Gradient_8mskx"] +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_b3slk"] +gradient = SubResource("Gradient_8mskx") + +[sub_resource type="Gradient" id="Gradient_jx4yd"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_xbpst"] +gradient = SubResource("Gradient_jx4yd") + +[sub_resource type="Curve" id="Curve_kt3hw"] +_data = [Vector2(0.00265958, 0.542916), 0.0, 1.14448, 0, 0, Vector2(1, 1), 5.21194e-07, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_gappd"] +curve = SubResource("Curve_kt3hw") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_xbpst"] +emission_shape_offset = Vector3(0, 0.1, 0) +emission_shape = 3 +emission_box_extents = Vector3(0.2, 0.1, 0.2) +angle_min = -720.0 +angle_max = 720.0 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +damping_min = 10.0 +damping_max = 20.0 +scale_min = 0.8 +scale_curve = SubResource("CurveTexture_gappd") +color_ramp = SubResource("GradientTexture1D_xbpst") +color_initial_ramp = SubResource("GradientTexture1D_b3slk") +alpha_curve = SubResource("CurveTexture_kt3hw") + +[sub_resource type="SphereMesh" id="SphereMesh_huy36"] +radius = 1.5 +height = 1.5 +radial_segments = 32 +rings = 16 +is_hemisphere = true + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_irlqe"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_djaon"] +noise = SubResource("FastNoiseLite_irlqe") + +[sub_resource type="Gradient" id="Gradient_tpmvn"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_m3kmr"] +gradient = SubResource("Gradient_tpmvn") +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_kc1dr"] +render_priority = 0 +shader = ExtResource("1_tpmvn") +shader_parameter/shape_texture = SubResource("GradientTexture2D_m3kmr") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_djaon") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/secondary_color = Color(0.984314, 0.192157, 0, 1) +shader_parameter/decay = 0.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="PlaneMesh" id="PlaneMesh_jehp2"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_kc1dr"] +noise_type = 2 +frequency = 0.02 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3gy3r"] +seamless = true +noise = SubResource("FastNoiseLite_kc1dr") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gk7hu"] +render_priority = 0 +shader = ExtResource("2_6ypje") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_3gy3r") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/secondary_color = Color(0.984314, 0.192157, 0, 1) +shader_parameter/texture_scale = Vector2(3, 0.2) +shader_parameter/time_scale = Vector2(-0.1, 0.1) +shader_parameter/grow = 0.34 +shader_parameter/decay = 0.2 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_6ypje"] +top_radius = 1.2 +height = 4.0 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_jehp2"] +noise_type = 2 +frequency = 0.02 +offset = Vector3(412.7, 0, 0) +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_t532u"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_jehp2") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8mskx"] +render_priority = 0 +shader = ExtResource("2_6ypje") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_t532u") +shader_parameter/primary_color = Color(1, 0.529412, 0, 1) +shader_parameter/secondary_color = Color(0.984314, 0.192157, 0, 1) +shader_parameter/texture_scale = Vector2(4, 0.2) +shader_parameter/time_scale = Vector2(0.1, 0.1) +shader_parameter/grow = 0.15 +shader_parameter/decay = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_tpmvn"] +top_radius = 2.0 +bottom_radius = 0.6 +height = 1.6 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="Animation" id="Animation_gk7hu"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +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("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.34] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Smoke: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:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Sparks: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("Decal:emission_energy") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Decal:albedo_mix") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +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), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.15] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_tpmvn"] +resource_name = "main" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(0.7, 1), +"update": 0, +"values": [0.0, 1.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.6, 1), +"transitions": PackedFloat32Array(0.5, 0.5, 1, 1), +"update": 0, +"values": [1.0, 1.0, 0.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.6), +"transitions": PackedFloat32Array(0.5, 0.5, 1), +"update": 0, +"values": [0.15, 0.1, 0.05] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Smoke:emitting") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Core:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Sparks: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("Decal:emission_energy") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(0.5, 1), +"update": 0, +"values": [4.0, 0.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Decal:albedo_mix") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(0.4, 1), +"update": 0, +"values": [1.0, 0.0] +} +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, 0.6), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.6, 1), +"transitions": PackedFloat32Array(1, 0.482968, 1, 1), +"update": 0, +"values": [0.15, 0.1, 0.05, 0.05] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.6, 1), +"transitions": PackedFloat32Array(1, 0.707107, 1, 1), +"update": 0, +"values": [1.0, 1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6ypje"] +_data = { +&"RESET": SubResource("Animation_gk7hu"), +&"main": SubResource("Animation_tpmvn") +} + +[node name="VFXImpact_01" type="Node3D"] +script = ExtResource("1_huy36") +primary_color = Color(1, 0.529412, 0, 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.529412, 0, 1) +light_energy = 8.0 + +[node name="Core" type="GPUParticles3D" parent="."] +sorting_offset = 0.5 +material_override = SubResource("ShaderMaterial_jehp2") +emitting = false +amount = 1 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_vw7xv") +draw_pass_1 = SubResource("SphereMesh_gk7hu") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_irlqe") +emitting = false +amount = 16 +lifetime = 0.5 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_fqiel") +draw_pass_1 = SubResource("QuadMesh_8mskx") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +sorting_offset = 0.2 +material_override = SubResource("ShaderMaterial_fqiel") +emitting = false +amount = 1 +lifetime = 1.2 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_xbpst") +draw_pass_1 = SubResource("SphereMesh_huy36") + +[node name="Ground_Impact" type="MeshInstance3D" parent="."] +layers = 540672 +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_kc1dr") +mesh = SubResource("PlaneMesh_jehp2") + +[node name="Impact_Streaks2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_gk7hu") +mesh = SubResource("CylinderMesh_6ypje") + +[node name="Impact_Streaks1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_8mskx") +mesh = SubResource("CylinderMesh_tpmvn") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(3, 3, 3) +texture_albedo = ExtResource("7_fqiel") +texture_emission = ExtResource("8_jehp2") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.529412, 0, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("9_jehp2") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_6ypje") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_02.tscn b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_02.tscn new file mode 100644 index 0000000..ca95045 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_02.tscn @@ -0,0 +1,515 @@ +[gd_scene load_steps=41 format=3 uid="uid://x7jrg2y81jse"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_i0m4g"] +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_l4skl"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_i0m4g"] +[ext_resource type="Shader" uid="uid://dw1bkef40wjyi" path="res://assets/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader" id="4_k1np2"] +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="5_o354m"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="6_3rv0o"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_ckj5u"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="8_q6tea"] + +[sub_resource type="Gradient" id="Gradient_l4skl"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_i0m4g"] +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_ewqdq"] +seamless = true +color_ramp = SubResource("Gradient_l4skl") +noise = SubResource("FastNoiseLite_i0m4g") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_k1np2"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_l4skl") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_ewqdq") +shader_parameter/primary_color = Color(1, 0.462745, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_o354m"] +_data = [Vector2(0, 0), 0.0, 2.69302, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_3rv0o"] +curve = SubResource("Curve_o354m") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ckj5u"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +alpha_curve = SubResource("CurveTexture_3rv0o") + +[sub_resource type="SphereMesh" id="SphereMesh_l4skl"] +radius = 1.0 +height = 0.7 +radial_segments = 32 +rings = 16 +is_hemisphere = true + +[sub_resource type="Gradient" id="Gradient_i0m4g"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ewqdq"] +gradient = SubResource("Gradient_i0m4g") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_o354m"] +render_priority = 0 +shader = ExtResource("2_i0m4g") +shader_parameter/shape_texture = SubResource("GradientTexture2D_ewqdq") +shader_parameter/primary_color = Color(1, 0.462745, 0, 1) +shader_parameter/secondary_color = Color(1, 0.0627451, 0, 1) + +[sub_resource type="Curve" id="Curve_3rv0o"] +_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_ckj5u"] +curve = SubResource("Curve_3rv0o") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_q6tea"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 60.0 +initial_velocity_min = 5.0 +initial_velocity_max = 10.0 +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_ckj5u") + +[sub_resource type="QuadMesh" id="QuadMesh_mbqgx"] +size = Vector2(0.05, 0.4) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_ewqdq"] +noise_type = 2 +fractal_octaves = 3 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_k1np2"] +noise = SubResource("FastNoiseLite_ewqdq") + +[sub_resource type="Gradient" id="Gradient_k1np2"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_o354m"] +gradient = SubResource("Gradient_k1np2") +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_3rv0o"] +render_priority = 0 +shader = ExtResource("4_k1np2") +shader_parameter/shape_texture = SubResource("GradientTexture2D_o354m") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_k1np2") +shader_parameter/primary_color = Color(1, 0.462745, 0, 1) +shader_parameter/secondary_color = Color(1, 0.0627451, 0, 1) +shader_parameter/decay = 0.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="PlaneMesh" id="PlaneMesh_l4skl"] +size = Vector2(3, 3) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_q6tea"] +noise_type = 0 +fractal_type = 2 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_mbqgx"] +seamless = true +noise = SubResource("FastNoiseLite_q6tea") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mlvcm"] +render_priority = 0 +shader = ExtResource("5_o354m") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_mbqgx") +shader_parameter/primary_color = Color(1, 0.462745, 0, 1) +shader_parameter/secondary_color = Color(1, 0.0627451, 0, 1) +shader_parameter/texture_scale = Vector2(1, 0.5) +shader_parameter/time_scale = Vector2(-0.1, 0.3) +shader_parameter/grow = 0.2 +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="CylinderMesh" id="CylinderMesh_8fjfo"] +top_radius = 0.6 +height = 3.0 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_l4skl"] +noise_type = 0 +offset = Vector3(412.7, 0, 0) +fractal_type = 2 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_i0m4g"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_l4skl") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ewqdq"] +render_priority = 0 +shader = ExtResource("5_o354m") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_i0m4g") +shader_parameter/primary_color = Color(1, 0.462745, 0, 1) +shader_parameter/secondary_color = Color(1, 0.0627451, 0, 1) +shader_parameter/texture_scale = Vector2(2, 0.5) +shader_parameter/time_scale = Vector2(0.1, 0.1) +shader_parameter/grow = 0.2 +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="CylinderMesh" id="CylinderMesh_l4skl"] +top_radius = 1.6 +bottom_radius = 0.6 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="Animation" id="Animation_i0m4g"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +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("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Ground_Impact: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("Core: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("Sparks:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_l4skl"] +resource_name = "main" +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.05, 0.6, 1), +"transitions": PackedFloat32Array(1, 0.4, 1, 1), +"update": 0, +"values": [0.0, 1.0, 0.0, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.05, 0.6, 1), +"transitions": PackedFloat32Array(1, 0.4, 1, 1), +"update": 0, +"values": [0.2, 0.1, 0.05, 0.05] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.05, 0.6, 1), +"transitions": PackedFloat32Array(1, 0.4, 1, 1), +"update": 0, +"values": [0.0, 1.0, 0.0, 0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.05, 0.6, 1), +"transitions": PackedFloat32Array(1, 0.4, 1, 1), +"update": 0, +"values": [0.2, 0.1, 0.05, 0.05] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Core: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("Sparks:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.05), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(0.5, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_i0m4g"] +_data = { +&"RESET": SubResource("Animation_i0m4g"), +&"main": SubResource("Animation_l4skl") +} + +[node name="VFXImpact_02" type="Node3D"] +script = ExtResource("1_i0m4g") +primary_color = Color(1, 0.462745, 0, 1) +secondary_color = Color(1, 0.0627451, 0, 1) +tertiary_color = Color(0.303233, 0.303233, 0.303233, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +sorting_offset = 0.5 +material_override = SubResource("ShaderMaterial_k1np2") +emitting = false +amount = 1 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_ckj5u") +draw_pass_1 = SubResource("SphereMesh_l4skl") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_o354m") +emitting = false +amount = 16 +lifetime = 0.5 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_q6tea") +draw_pass_1 = SubResource("QuadMesh_mbqgx") + +[node name="Ground_Impact" type="MeshInstance3D" parent="."] +layers = 540672 +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_3rv0o") +mesh = SubResource("PlaneMesh_l4skl") + +[node name="Impact_Streaks2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_mlvcm") +mesh = SubResource("CylinderMesh_8fjfo") + +[node name="Impact_Streaks1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_ewqdq") +mesh = SubResource("CylinderMesh_l4skl") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(3, 3, 3) +texture_albedo = ExtResource("6_3rv0o") +texture_emission = ExtResource("7_ckj5u") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.529412, 0, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("8_q6tea") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_i0m4g") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_03.tscn b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_03.tscn new file mode 100644 index 0000000..f770a92 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_03.tscn @@ -0,0 +1,656 @@ +[gd_scene load_steps=57 format=3 uid="uid://b6eowhdx7a7vq"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_7tx03"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_b0uon"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_b0uon"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="3_54wdx"] +[ext_resource type="Shader" uid="uid://dw1bkef40wjyi" path="res://assets/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader" id="4_fomv7"] +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="5_so335"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="6_4rgj4"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_5ouiv"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="8_mhplm"] + +[sub_resource type="Gradient" id="Gradient_7tx03"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_fomv7"] +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_so335"] +seamless = true +color_ramp = SubResource("Gradient_7tx03") +noise = SubResource("FastNoiseLite_fomv7") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_5ouiv"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_7tx03") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_so335") +shader_parameter/primary_color = Color(1, 0.780392, 0.231373, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_mhplm"] +_data = [Vector2(0, 0), 0.0, 2.69302, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_hksqb"] +curve = SubResource("Curve_mhplm") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_iajpn"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +alpha_curve = SubResource("CurveTexture_hksqb") + +[sub_resource type="SphereMesh" id="SphereMesh_ak2t6"] +radius = 1.5 +height = 0.5 +is_hemisphere = true + +[sub_resource type="Gradient" id="Gradient_b0uon"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_54wdx"] +gradient = SubResource("Gradient_b0uon") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mhplm"] +render_priority = 0 +shader = ExtResource("2_b0uon") +shader_parameter/shape_texture = SubResource("GradientTexture2D_54wdx") +shader_parameter/primary_color = Color(1, 0.780392, 0.231373, 1) +shader_parameter/secondary_color = Color(0.960784, 0.388235, 0.176471, 1) + +[sub_resource type="Curve" id="Curve_hksqb"] +_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_iajpn"] +curve = SubResource("Curve_hksqb") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ak2t6"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 60.0 +initial_velocity_min = 5.0 +initial_velocity_max = 10.0 +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_iajpn") + +[sub_resource type="QuadMesh" id="QuadMesh_pto8m"] +size = Vector2(0.05, 0.4) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_so335"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_4rgj4"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_so335") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_5ouiv"] +noise_type = 2 +frequency = 0.04 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_mhplm"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_5ouiv") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hksqb"] +render_priority = 0 +shader = ExtResource("3_54wdx") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_mhplm") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_4rgj4") +shader_parameter/primary_color = Color(1, 0.780392, 0.231373, 1) +shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_7tx03"] +_data = [Vector2(0, 0.47191), 0.0, 0.0, 0, 0, Vector2(1, 0), -0.45351, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_b0uon"] +curve = SubResource("Curve_7tx03") + +[sub_resource type="Gradient" id="Gradient_fomv7"] +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_so335"] +gradient = SubResource("Gradient_fomv7") + +[sub_resource type="Gradient" id="Gradient_4rgj4"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_5ouiv"] +gradient = SubResource("Gradient_4rgj4") + +[sub_resource type="Curve" id="Curve_iajpn"] +_data = [Vector2(0.00265958, 0.542916), 0.0, 1.14448, 0, 0, Vector2(1, 1), 5.21194e-07, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_ak2t6"] +curve = SubResource("Curve_iajpn") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_pto8m"] +particle_flag_align_y = true +emission_shape_offset = Vector3(0, 0.1, 0) +emission_shape = 3 +emission_box_extents = Vector3(0.2, 0.1, 0.2) +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 30.0 +initial_velocity_min = 2.0 +initial_velocity_max = 4.0 +gravity = Vector3(0, 0, 0) +damping_min = 3.0 +damping_max = 5.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_ak2t6") +color_ramp = SubResource("GradientTexture1D_5ouiv") +color_initial_ramp = SubResource("GradientTexture1D_so335") +alpha_curve = SubResource("CurveTexture_b0uon") + +[sub_resource type="SphereMesh" id="SphereMesh_iajpn"] +radius = 1.0 +height = 2.5 +radial_segments = 32 +rings = 16 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_7tx03"] +noise_type = 4 +fractal_type = 3 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 16.5 +domain_warp_fractal_gain = 0.2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_b0uon"] +noise = SubResource("FastNoiseLite_7tx03") + +[sub_resource type="Gradient" id="Gradient_54wdx"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_fomv7"] +gradient = SubResource("Gradient_54wdx") +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_so335"] +render_priority = 0 +shader = ExtResource("4_fomv7") +shader_parameter/shape_texture = SubResource("GradientTexture2D_fomv7") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_b0uon") +shader_parameter/primary_color = Color(1, 0.780392, 0.231373, 1) +shader_parameter/secondary_color = Color(0.960784, 0.388235, 0.176471, 1) +shader_parameter/decay = 0.164988 +shader_parameter/alpha_mode = 0 + +[sub_resource type="PlaneMesh" id="PlaneMesh_4rgj4"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_b0uon"] +noise_type = 3 +fractal_type = 3 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 29.885 +domain_warp_frequency = 0.02 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_54wdx"] +seamless = true +noise = SubResource("FastNoiseLite_b0uon") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fomv7"] +render_priority = 0 +shader = ExtResource("5_so335") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_54wdx") +shader_parameter/primary_color = Color(1, 0.780392, 0.231373, 1) +shader_parameter/secondary_color = Color(0.960784, 0.388235, 0.176471, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/time_scale = Vector2(-0.1, 0.1) +shader_parameter/grow = 0.1 +shader_parameter/decay = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_7tx03"] +top_radius = 1.6 +height = 3.0 +cap_top = false +cap_bottom = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_54wdx"] +noise_type = 0 +offset = Vector3(412.7, 0, 0) +fractal_type = 3 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 20.0 +domain_warp_frequency = 0.04 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_fomv7"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_54wdx") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_4rgj4"] +render_priority = 0 +shader = ExtResource("5_so335") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_fomv7") +shader_parameter/primary_color = Color(1, 0.780392, 0.231373, 1) +shader_parameter/secondary_color = Color(0.960784, 0.388235, 0.176471, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/time_scale = Vector2(0.1, 0.1) +shader_parameter/grow = 0.2 +shader_parameter/decay = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_b0uon"] +top_radius = 2.0 +bottom_radius = 0.6 +height = 1.6 +cap_top = false +cap_bottom = false + +[sub_resource type="Animation" id="Animation_b0uon"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.1] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Ground_Impact: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.164988] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Core: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("Smoke:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Sparks:emitting") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_7tx03"] +resource_name = "main" +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.05, 0.25, 1), +"transitions": PackedFloat32Array(0.5, 0.5, 1, 1), +"update": 0, +"values": [0.2, 0.05, 0.02, 0.02] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.05, 0.3, 1), +"transitions": PackedFloat32Array(0.5, 1, 1, 1), +"update": 0, +"values": [0.2, 0.05, 0.05, 0.05] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.55, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.8, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Core: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("Smoke:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.8, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [4.0, 0.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Sparks:emitting") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_b0uon"] +_data = { +&"RESET": SubResource("Animation_b0uon"), +&"main": SubResource("Animation_7tx03") +} + +[node name="VFXImpact_03" type="Node3D"] +script = ExtResource("1_b0uon") +primary_color = Color(1, 0.780392, 0.231373, 1) +secondary_color = Color(0.960784, 0.388235, 0.176471, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +sorting_offset = 0.5 +material_override = SubResource("ShaderMaterial_5ouiv") +emitting = false +amount = 1 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_iajpn") +draw_pass_1 = SubResource("SphereMesh_ak2t6") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_mhplm") +emitting = false +amount = 16 +lifetime = 0.5 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_ak2t6") +draw_pass_1 = SubResource("QuadMesh_pto8m") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +sorting_offset = 0.2 +material_override = SubResource("ShaderMaterial_hksqb") +emitting = false +lifetime = 1.2 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_pto8m") +draw_pass_1 = SubResource("SphereMesh_iajpn") + +[node name="Ground_Impact" type="MeshInstance3D" parent="."] +layers = 540672 +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_so335") +mesh = SubResource("PlaneMesh_4rgj4") + +[node name="Impact_Streaks2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_fomv7") +mesh = SubResource("CylinderMesh_7tx03") + +[node name="Impact_Streaks1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_4rgj4") +mesh = SubResource("CylinderMesh_b0uon") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(3, 3, 3) +texture_albedo = ExtResource("6_4rgj4") +texture_emission = ExtResource("7_5ouiv") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.529412, 0, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("8_mhplm") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_b0uon") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_04.tscn b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_04.tscn new file mode 100644 index 0000000..e310cea --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_04.tscn @@ -0,0 +1,661 @@ +[gd_scene load_steps=57 format=3 uid="uid://2eq2j53sic1i"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_hdc0q"] +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_yy7r0"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_hdc0q"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="3_235d3"] +[ext_resource type="Shader" uid="uid://dw1bkef40wjyi" path="res://assets/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader" id="4_3tcg6"] +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="5_3w10a"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="6_nw0c3"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_2j8l2"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="8_dc2st"] + +[sub_resource type="Gradient" id="Gradient_yy7r0"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_hdc0q"] +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_235d3"] +seamless = true +color_ramp = SubResource("Gradient_yy7r0") +noise = SubResource("FastNoiseLite_hdc0q") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3tcg6"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_yy7r0") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_235d3") +shader_parameter/primary_color = Color(0.917647, 0.439216, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_3w10a"] +_data = [Vector2(0, 0), 0.0, 2.69302, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_nw0c3"] +curve = SubResource("Curve_3w10a") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_2j8l2"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +alpha_curve = SubResource("CurveTexture_nw0c3") + +[sub_resource type="SphereMesh" id="SphereMesh_dc2st"] +radius = 0.8 +height = 0.5 +is_hemisphere = true + +[sub_resource type="Gradient" id="Gradient_mbt53"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_kl6uu"] +gradient = SubResource("Gradient_mbt53") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_rhnvq"] +render_priority = 0 +shader = ExtResource("2_hdc0q") +shader_parameter/shape_texture = SubResource("GradientTexture2D_kl6uu") +shader_parameter/primary_color = Color(0.917647, 0.439216, 0, 1) +shader_parameter/secondary_color = Color(1, 0.627451, 0.294118, 1) + +[sub_resource type="Curve" id="Curve_o2r4g"] +_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_ovten"] +curve = SubResource("Curve_o2r4g") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_iqw3l"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 60.0 +initial_velocity_min = 5.0 +initial_velocity_max = 10.0 +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_ovten") + +[sub_resource type="QuadMesh" id="QuadMesh_omfat"] +size = Vector2(0.05, 0.4) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_yy7r0"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_hdc0q"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_yy7r0") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_235d3"] +noise_type = 2 +frequency = 0.04 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3tcg6"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_235d3") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3w10a"] +render_priority = 0 +shader = ExtResource("3_235d3") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_3tcg6") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_hdc0q") +shader_parameter/primary_color = Color(0.917647, 0.439216, 0, 1) +shader_parameter/tertiary_color = Color(0.317647, 0.317647, 0.219608, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 0.6 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_yy7r0"] +_data = [Vector2(0, 0.47191), 0.0, 0.0, 0, 0, Vector2(1, 0), -0.45351, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_hdc0q"] +curve = SubResource("Curve_yy7r0") + +[sub_resource type="Gradient" id="Gradient_235d3"] +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_3tcg6"] +gradient = SubResource("Gradient_235d3") + +[sub_resource type="Gradient" id="Gradient_3w10a"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_nw0c3"] +gradient = SubResource("Gradient_3w10a") + +[sub_resource type="Curve" id="Curve_2j8l2"] +_data = [Vector2(0.00265958, 0.542916), 0.0, 1.14448, 0, 0, Vector2(1, 1), 5.21194e-07, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_dc2st"] +curve = SubResource("Curve_2j8l2") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mbt53"] +particle_flag_align_y = true +emission_shape_offset = Vector3(0, 0.5, 0) +emission_shape = 3 +emission_box_extents = Vector3(0.2, 0.1, 0.2) +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 20.0 +initial_velocity_min = 2.0 +initial_velocity_max = 6.0 +gravity = Vector3(0, 0, 0) +damping_min = 3.0 +damping_max = 5.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_dc2st") +color_ramp = SubResource("GradientTexture1D_nw0c3") +color_initial_ramp = SubResource("GradientTexture1D_3tcg6") +alpha_curve = SubResource("CurveTexture_hdc0q") + +[sub_resource type="SphereMesh" id="SphereMesh_kl6uu"] +radius = 0.6 +height = 2.5 +radial_segments = 32 +rings = 16 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_3tcg6"] +noise_type = 4 +fractal_type = 3 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 16.5 +domain_warp_fractal_gain = 0.2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3w10a"] +noise = SubResource("FastNoiseLite_3tcg6") + +[sub_resource type="Gradient" id="Gradient_nw0c3"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_2j8l2"] +gradient = SubResource("Gradient_nw0c3") +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_dc2st"] +render_priority = 0 +shader = ExtResource("4_3tcg6") +shader_parameter/shape_texture = SubResource("GradientTexture2D_2j8l2") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_3w10a") +shader_parameter/primary_color = Color(0.917647, 0.439216, 0, 1) +shader_parameter/secondary_color = Color(1, 0.627451, 0.294118, 1) +shader_parameter/decay = 0.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="PlaneMesh" id="PlaneMesh_uetuo"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_3lxlv"] +noise_type = 3 +frequency = 0.005 +fractal_type = 3 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 29.885 +domain_warp_frequency = 0.02 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_ojxkw"] +seamless = true +noise = SubResource("FastNoiseLite_3lxlv") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1d7b2"] +render_priority = 0 +shader = ExtResource("5_3w10a") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_ojxkw") +shader_parameter/primary_color = Color(0.917647, 0.439216, 0, 1) +shader_parameter/secondary_color = Color(1, 0.627451, 0.294118, 1) +shader_parameter/texture_scale = Vector2(3, 1) +shader_parameter/time_scale = Vector2(-0.1, 0.1) +shader_parameter/grow = 0.05 +shader_parameter/decay = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_yy7r0"] +top_radius = 1.5 +height = 1.6 +cap_top = false +cap_bottom = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_7lxyq"] +noise_type = 0 +frequency = 0.003 +offset = Vector3(412.7, 0, 0) +fractal_type = 3 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 20.0 +domain_warp_frequency = 0.04 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_25mym"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_7lxyq") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_uyueq"] +render_priority = 0 +shader = ExtResource("5_3w10a") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_25mym") +shader_parameter/primary_color = Color(0.917647, 0.439216, 0, 1) +shader_parameter/secondary_color = Color(1, 0.627451, 0.294118, 1) +shader_parameter/texture_scale = Vector2(4, 1) +shader_parameter/time_scale = Vector2(0.1, 0.1) +shader_parameter/grow = 0.05 +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="CylinderMesh" id="CylinderMesh_hdc0q"] +top_radius = 2.0 +bottom_radius = 0.6 +height = 0.8 +cap_top = false +cap_bottom = false + +[sub_resource type="Animation" id="Animation_ms5jo"] +resource_name = "main" +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.05, 0.1, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 0.6, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0, 0.0, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.1, 0.15, 0.55, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0, 0.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.05, 0.5, 1), +"transitions": PackedFloat32Array(4, 4, 1, 1), +"update": 0, +"values": [0.05, 0.05, 0.2, 0.2] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.15, 0.55, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.05, 0.05, 0.2, 0.2] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Core:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Sparks: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("Smoke:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.55, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.6, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Light:light_multiplier") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.55, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="Animation" id="Animation_yy7r0"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +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("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.05] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.05] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Core:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Sparks: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("Smoke:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Light:light_multiplier") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_tw8oj"] +_data = { +&"RESET": SubResource("Animation_yy7r0"), +&"main": SubResource("Animation_ms5jo") +} + +[node name="VFXImpact_04" type="Node3D"] +script = ExtResource("1_hdc0q") +primary_color = Color(0.917647, 0.439216, 0, 1) +secondary_color = Color(1, 0.627451, 0.294118, 1) +tertiary_color = Color(0.317647, 0.317647, 0.219608, 1) +light_color = Color(0.917647, 0.439216, 0, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +sorting_offset = 0.5 +material_override = SubResource("ShaderMaterial_3tcg6") +emitting = false +amount = 1 +lifetime = 1.6 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_2j8l2") +draw_pass_1 = SubResource("SphereMesh_dc2st") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_rhnvq") +emitting = false +amount = 16 +lifetime = 0.5 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_iqw3l") +draw_pass_1 = SubResource("QuadMesh_omfat") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +sorting_offset = 0.2 +material_override = SubResource("ShaderMaterial_3w10a") +emitting = false +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_mbt53") +draw_pass_1 = SubResource("SphereMesh_kl6uu") + +[node name="Ground_Impact" type="MeshInstance3D" parent="."] +layers = 540672 +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_dc2st") +mesh = SubResource("PlaneMesh_uetuo") + +[node name="Impact_Streaks2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_1d7b2") +mesh = SubResource("CylinderMesh_yy7r0") + +[node name="Impact_Streaks1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_uyueq") +mesh = SubResource("CylinderMesh_hdc0q") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(3, 3, 3) +texture_albedo = ExtResource("6_nw0c3") +texture_emission = ExtResource("7_2j8l2") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(0.917647, 0.439216, 0, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("8_dc2st") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_tw8oj") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_05.tscn b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_05.tscn new file mode 100644 index 0000000..720474b --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_05.tscn @@ -0,0 +1,643 @@ +[gd_scene load_steps=57 format=3 uid="uid://dgct4mxupvyvi"] + +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_am62u"] +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_rr123"] +[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_am62u"] +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="3_8q4jv"] +[ext_resource type="Shader" uid="uid://dw1bkef40wjyi" path="res://assets/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader" id="4_b5ep3"] +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="5_chide"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="6_iidpi"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_k6d2x"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="8_s328v"] + +[sub_resource type="Gradient" id="Gradient_am62u"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_iidpi"] +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_k6d2x"] +seamless = true +color_ramp = SubResource("Gradient_am62u") +noise = SubResource("FastNoiseLite_iidpi") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3533t"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_rr123") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_k6d2x") +shader_parameter/primary_color = Color(1, 0.560784, 0.462745, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_2sgf2"] +_data = [Vector2(0, 0), 0.0, 0.439471, 0, 0, Vector2(1, 1), 1.98161, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_rrrcj"] +curve = SubResource("Curve_2sgf2") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_amm2i"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +alpha_curve = SubResource("CurveTexture_rrrcj") + +[sub_resource type="SphereMesh" id="SphereMesh_5oy36"] +radius = 0.8 +height = 0.2 +radial_segments = 32 +rings = 16 +is_hemisphere = true + +[sub_resource type="Gradient" id="Gradient_rr123"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_am62u"] +gradient = SubResource("Gradient_rr123") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8q4jv"] +render_priority = 0 +shader = ExtResource("2_am62u") +shader_parameter/shape_texture = SubResource("GradientTexture2D_am62u") +shader_parameter/primary_color = Color(1, 0.560784, 0.462745, 1) +shader_parameter/secondary_color = Color(1, 0.337255, 0, 1) + +[sub_resource type="Curve" id="Curve_rr123"] +_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_am62u"] +curve = SubResource("Curve_rr123") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8q4jv"] +particle_flag_align_y = true +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +spread = 30.0 +initial_velocity_min = 5.0 +initial_velocity_max = 15.0 +damping_min = 5.0 +damping_max = 10.0 +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_am62u") + +[sub_resource type="QuadMesh" id="QuadMesh_k6d2x"] +size = Vector2(0.05, 0.4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_rr123"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_am62u"] +seamless = true +normalize = false +noise = SubResource("FastNoiseLite_rr123") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_8q4jv"] +noise_type = 2 +frequency = 0.04 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_b5ep3"] +width = 128 +height = 128 +invert = true +seamless = true +noise = SubResource("FastNoiseLite_8q4jv") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_chide"] +render_priority = 0 +shader = ExtResource("3_8q4jv") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_b5ep3") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_am62u") +shader_parameter/primary_color = Color(1, 0.560784, 0.462745, 1) +shader_parameter/tertiary_color = Color(0.57, 0.312645, 0.2109, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 0.6 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 2.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_iidpi"] +_data = [Vector2(0, 0.47191), 0.0, 0.0, 0, 0, Vector2(1, 0), -0.45351, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_k6d2x"] +curve = SubResource("Curve_iidpi") + +[sub_resource type="Gradient" id="Gradient_s328v"] +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_3533t"] +gradient = SubResource("Gradient_s328v") + +[sub_resource type="Gradient" id="Gradient_2sgf2"] +offsets = PackedFloat32Array(0.133333, 0.735897) +colors = PackedColorArray(1, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_rrrcj"] +gradient = SubResource("Gradient_2sgf2") + +[sub_resource type="Curve" id="Curve_amm2i"] +_data = [Vector2(0.00265958, 0.542916), 0.0, 1.14448, 0, 0, Vector2(1, 1), 5.21194e-07, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_5oy36"] +curve = SubResource("Curve_amm2i") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_yp81r"] +particle_flag_align_y = true +emission_shape_offset = Vector3(0, 0.5, 0) +emission_shape = 3 +emission_box_extents = Vector3(0.2, 0.1, 0.2) +angle_min = -720.0 +angle_max = 720.0 +direction = Vector3(0, 1, 0) +initial_velocity_min = 1.0 +initial_velocity_max = 4.0 +gravity = Vector3(0, 0, 0) +damping_min = 3.0 +damping_max = 5.0 +scale_min = 0.2 +scale_curve = SubResource("CurveTexture_5oy36") +color_ramp = SubResource("GradientTexture1D_rrrcj") +color_initial_ramp = SubResource("GradientTexture1D_3533t") +alpha_curve = SubResource("CurveTexture_k6d2x") + +[sub_resource type="SphereMesh" id="SphereMesh_ptibk"] +radius = 1.0 +height = 0.5 +radial_segments = 32 +rings = 16 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_am62u"] +noise_type = 4 +fractal_type = 3 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 16.5 +domain_warp_fractal_gain = 0.2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_8q4jv"] +noise = SubResource("FastNoiseLite_am62u") + +[sub_resource type="Gradient" id="Gradient_b5ep3"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_chide"] +gradient = SubResource("Gradient_b5ep3") +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_iidpi"] +render_priority = 0 +shader = ExtResource("4_b5ep3") +shader_parameter/shape_texture = SubResource("GradientTexture2D_chide") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_8q4jv") +shader_parameter/primary_color = Color(1, 0.560784, 0.462745, 1) +shader_parameter/secondary_color = Color(1, 0.337255, 0, 1) +shader_parameter/decay = 0.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="PlaneMesh" id="PlaneMesh_rr123"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_chide"] +noise_type = 3 +frequency = 0.005 +fractal_type = 3 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 29.885 +domain_warp_frequency = 0.02 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_iidpi"] +seamless = true +noise = SubResource("FastNoiseLite_chide") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_s328v"] +render_priority = 0 +shader = ExtResource("5_chide") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_iidpi") +shader_parameter/primary_color = Color(1, 0.560784, 0.462745, 1) +shader_parameter/secondary_color = Color(1, 0.337255, 0, 1) +shader_parameter/texture_scale = Vector2(3, 1) +shader_parameter/time_scale = Vector2(-0.1, 0.1) +shader_parameter/grow = 0.0518914 +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="CylinderMesh" id="CylinderMesh_2sgf2"] +top_radius = 1.6 +bottom_radius = 0.6 +height = 1.4 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_b5ep3"] +noise_type = 0 +frequency = 0.003 +offset = Vector3(412.7, 0, 0) +fractal_type = 3 +fractal_octaves = 2 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 20.0 +domain_warp_frequency = 0.04 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_chide"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_b5ep3") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_k6d2x"] +render_priority = 0 +shader = ExtResource("5_chide") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_chide") +shader_parameter/primary_color = Color(1, 0.560784, 0.462745, 1) +shader_parameter/secondary_color = Color(1, 0.337255, 0, 1) +shader_parameter/texture_scale = Vector2(4, 1) +shader_parameter/time_scale = Vector2(0.1, 0.1) +shader_parameter/grow = 0.3 +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="CylinderMesh" id="CylinderMesh_yp81r"] +top_radius = 1.6 +bottom_radius = 0.0 +height = 0.4 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="Animation" id="Animation_s328v"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.3] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +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("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Core: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("Smoke:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Sparks: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("Ground_Impact:material_override:shader_parameter/decay") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="Animation_rr123"] +resource_name = "main" +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.05, 0.5, 1), +"transitions": PackedFloat32Array(0.2, 0.5, 1, 1), +"update": 0, +"values": [0.3, 0.1, 0.03, 0.03] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.05, 0.65, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 0.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.1, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 0.0, 0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Core:emitting") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.05), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Smoke:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0.05), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Sparks: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("Ground_Impact:material_override:shader_parameter/decay") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Light:light_multiplier") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Decal:emission_energy") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Decal:albedo_mix") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_am62u"] +_data = { +&"RESET": SubResource("Animation_s328v"), +&"main": SubResource("Animation_rr123") +} + +[node name="VFXImpact_05" type="Node3D"] +script = ExtResource("1_am62u") +primary_color = Color(1, 0.560784, 0.462745, 1) +secondary_color = Color(1, 0.337255, 0, 1) +tertiary_color = Color(0.57, 0.312645, 0.2109, 1) +light_color = Color(1, 0.560784, 0.462745, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_3533t") +emitting = false +amount = 1 +lifetime = 0.8 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_amm2i") +draw_pass_1 = SubResource("SphereMesh_5oy36") + +[node name="Sparks" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_8q4jv") +emitting = false +amount = 32 +lifetime = 0.5 +one_shot = true +explosiveness = 1.0 +transform_align = 3 +process_material = SubResource("ParticleProcessMaterial_8q4jv") +draw_pass_1 = SubResource("QuadMesh_k6d2x") + +[node name="Smoke" type="GPUParticles3D" parent="."] +layers = 540672 +sorting_offset = 0.2 +material_override = SubResource("ShaderMaterial_chide") +emitting = false +amount = 16 +lifetime = 0.8 +one_shot = true +explosiveness = 1.0 +process_material = SubResource("ParticleProcessMaterial_yp81r") +draw_pass_1 = SubResource("SphereMesh_ptibk") + +[node name="Ground_Impact" type="MeshInstance3D" parent="."] +layers = 540672 +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_iidpi") +mesh = SubResource("PlaneMesh_rr123") + +[node name="Impact_Streaks2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_s328v") +mesh = SubResource("CylinderMesh_2sgf2") + +[node name="Impact_Streaks1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_k6d2x") +mesh = SubResource("CylinderMesh_yp81r") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(3, 3, 3) +texture_albedo = ExtResource("6_iidpi") +texture_emission = ExtResource("7_k6d2x") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.560784, 0.462745, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("8_s328v") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_am62u") +} diff --git a/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_06.tscn b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_06.tscn new file mode 100644 index 0000000..72cb931 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_06.tscn @@ -0,0 +1,536 @@ +[gd_scene load_steps=45 format=3 uid="uid://ditmybmcrt283"] + +[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_1ainm"] +[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_cpglc"] +[ext_resource type="Shader" uid="uid://dw1bkef40wjyi" path="res://assets/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader" id="2_cpglc"] +[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://assets/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="3_hekmx"] +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="3_i6n1f"] +[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="4_hekmx"] +[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_j1n3n"] +[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="6_uiprv"] + +[sub_resource type="Gradient" id="Gradient_l6bhb"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_6r8sx"] +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_7aqx2"] +seamless = true +color_ramp = SubResource("Gradient_l6bhb") +noise = SubResource("FastNoiseLite_6r8sx") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3syo3"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_1ainm") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_7aqx2") +shader_parameter/primary_color = Color(1, 0.454902, 0, 1) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="Curve" id="Curve_jtj2s"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_4kqba"] +curve = SubResource("Curve_jtj2s") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_rcnau"] +angle_min = -720.0 +angle_max = 799.5 +spread = 180.0 +flatness = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.8 +alpha_curve = SubResource("CurveTexture_4kqba") + +[sub_resource type="SphereMesh" id="SphereMesh_3ky6y"] +radius = 0.8 +height = 0.8 +radial_segments = 32 +rings = 16 +is_hemisphere = true + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_i6n1f"] +noise_type = 2 +fractal_octaves = 3 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_hekmx"] +seamless = true +noise = SubResource("FastNoiseLite_i6n1f") + +[sub_resource type="Gradient" id="Gradient_j1n3n"] +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_uiprv"] +gradient = SubResource("Gradient_j1n3n") +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_l6bhb"] +render_priority = 0 +shader = ExtResource("3_hekmx") +shader_parameter/ring_texture = SubResource("GradientTexture2D_uiprv") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_hekmx") +shader_parameter/primary_color = Color(1, 0.294118, 0.0666667, 1) +shader_parameter/secondary_color = Color(0.713726, 0.192157, 0, 1) +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 4.0 +shader_parameter/alpha_mode = 1 + +[sub_resource type="Curve" id="Curve_6r8sx"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -2.57182, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_7aqx2"] +curve = SubResource("Curve_6r8sx") + +[sub_resource type="Curve" id="Curve_3syo3"] +_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_jtj2s"] +curve = SubResource("Curve_3syo3") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_4kqba"] +angle_min = 1.07288e-05 +angle_max = 1.07288e-05 +direction = Vector3(0, 1, 0) +spread = 90.0 +initial_velocity_min = -1.0 +initial_velocity_max = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.6 +scale_max = 1.2 +scale_curve = SubResource("CurveTexture_jtj2s") +alpha_curve = SubResource("CurveTexture_7aqx2") + +[sub_resource type="QuadMesh" id="QuadMesh_i6n1f"] +size = Vector2(4, 4) +orientation = 1 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_b5pcy"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_3f5vg"] +noise = SubResource("FastNoiseLite_b5pcy") + +[sub_resource type="Gradient" id="Gradient_imq44"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_gsjnu"] +gradient = SubResource("Gradient_imq44") +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_tn6s4"] +render_priority = 0 +shader = ExtResource("2_cpglc") +shader_parameter/shape_texture = SubResource("GradientTexture2D_gsjnu") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_3f5vg") +shader_parameter/primary_color = Color(1, 0.454902, 0, 1) +shader_parameter/secondary_color = Color(1, 0.270588, 0.0392157, 1) +shader_parameter/decay = 0.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="PlaneMesh" id="PlaneMesh_xgc35"] +size = Vector2(4, 4) +subdivide_width = 32 +subdivide_depth = 32 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_2lstl"] +noise_type = 2 +frequency = 0.02 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_gisu5"] +seamless = true +noise = SubResource("FastNoiseLite_2lstl") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_573mb"] +render_priority = 0 +shader = ExtResource("3_i6n1f") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_gisu5") +shader_parameter/primary_color = Color(1, 0.454902, 0, 1) +shader_parameter/secondary_color = Color(1, 0.270588, 0.0392157, 1) +shader_parameter/texture_scale = Vector2(3, 1) +shader_parameter/time_scale = Vector2(-0.1, 0.1) +shader_parameter/grow = 0.04 +shader_parameter/decay = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_n55o1"] +top_radius = 1.2 +bottom_radius = 0.0 +height = 1.0 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_7dous"] +noise_type = 2 +frequency = 0.02 +offset = Vector3(412.7, 0, 0) +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_sg858"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_7dous") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2n5mr"] +render_priority = 0 +shader = ExtResource("3_i6n1f") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_sg858") +shader_parameter/primary_color = Color(1, 0.454902, 0, 1) +shader_parameter/secondary_color = Color(1, 0.270588, 0.0392157, 1) +shader_parameter/texture_scale = Vector2(4, 1) +shader_parameter/time_scale = Vector2(0.1, 0.1) +shader_parameter/grow = 0.16 +shader_parameter/decay = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 + +[sub_resource type="CylinderMesh" id="CylinderMesh_1oo0j"] +top_radius = 2.0 +bottom_radius = 0.0 +height = 0.4 +radial_segments = 32 +cap_top = false +cap_bottom = false + +[sub_resource type="Animation" id="Animation_1ainm"] +resource_name = "main" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.433333, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 1.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.1, 0.433333, 1), +"transitions": PackedFloat32Array(1, 0.366021, 1, 1), +"update": 0, +"values": [0.52, 0.1, 0.05, 0.52] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.166667, 0.433333), +"transitions": PackedFloat32Array(2, 1, 1), +"update": 0, +"values": [0.0, 1.0, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.1, 0.166667, 0.433333, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.4, 0.16, 0.05, 0.05, 0.4] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.1, 0.433333), +"transitions": PackedFloat32Array(1, 2, 1), +"update": 0, +"values": [0.0, 1.0, 0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Decal:emission_energy") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 0.7, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [4.0, 0.0, 0.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Decal:albedo_mix") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.7, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +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, 0.433333, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [1.0, 0.0, 0.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Rings:emitting") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_cpglc"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Core:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Ground_Impact:material_override:shader_parameter/decay") +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("Impact_Streaks2:material_override:shader_parameter/grow") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.04] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Impact_Streaks1:material_override:shader_parameter/decay") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Impact_Streaks1:material_override:shader_parameter/grow") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.16] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Impact_Streaks2:material_override:shader_parameter/decay") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Decal:emission_energy") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [4.0] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Decal:albedo_mix") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +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), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Rings:emitting") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_cpglc"] +_data = { +&"RESET": SubResource("Animation_cpglc"), +&"main": SubResource("Animation_1ainm") +} + +[node name="VFXImpact_06" type="Node3D"] +script = ExtResource("1_cpglc") +primary_color = Color(1, 0.454902, 0, 1) +secondary_color = Color(1, 0.270588, 0.0392157, 1) +light_color = Color(1, 0.454902, 0, 1) + +[node name="Core" type="GPUParticles3D" parent="."] +sorting_offset = 0.5 +material_override = SubResource("ShaderMaterial_3syo3") +emitting = false +amount = 1 +lifetime = 0.8 +one_shot = true +explosiveness = 0.8 +process_material = SubResource("ParticleProcessMaterial_rcnau") +draw_pass_1 = SubResource("SphereMesh_3ky6y") + +[node name="Rings" type="GPUParticles3D" parent="."] +layers = 540672 +material_override = SubResource("ShaderMaterial_l6bhb") +emitting = false +amount = 1 +one_shot = true +explosiveness = 0.9 +process_material = SubResource("ParticleProcessMaterial_4kqba") +draw_pass_1 = SubResource("QuadMesh_i6n1f") + +[node name="Ground_Impact" type="MeshInstance3D" parent="."] +layers = 540672 +sorting_offset = -0.5 +material_override = SubResource("ShaderMaterial_tn6s4") +mesh = SubResource("PlaneMesh_xgc35") + +[node name="Impact_Streaks2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_573mb") +mesh = SubResource("CylinderMesh_n55o1") + +[node name="Impact_Streaks1" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) +layers = 540672 +material_override = SubResource("ShaderMaterial_2n5mr") +mesh = SubResource("CylinderMesh_1oo0j") + +[node name="Decal" type="Decal" parent="."] +size = Vector3(3, 3, 3) +texture_albedo = ExtResource("4_hekmx") +texture_emission = ExtResource("5_j1n3n") +emission_energy = 4.0 +modulate = Color(1, 0.32549, 0, 1) +cull_mask = 507903 + +[node name="Light" type="OmniLight3D" parent="."] +light_color = Color(1, 0.454902, 0, 1) +light_energy = 8.0 +light_size = 4.0 +light_cull_mask = 4294426623 +omni_range = 8.0 +script = ExtResource("6_uiprv") +base_energy = 8.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_cpglc") +} diff --git a/experimental/BinbunVFX/impact_explosions/main.tscn b/experimental/BinbunVFX/impact_explosions/main.tscn new file mode 100644 index 0000000..34cddcf --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/main.tscn @@ -0,0 +1,289 @@ +[gd_scene load_steps=32 format=3 uid="uid://bc0gv4he0k5ta"] + +[ext_resource type="Texture2D" uid="uid://c6p8bs6eksvr5" path="res://experimental/BinbunVFX/shared/texture/placeholder.png" id="1_vn7vm"] +[ext_resource type="PackedScene" uid="uid://bflg720h1w3d3" path="res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_01.tscn" id="2_t2wbt"] +[ext_resource type="PackedScene" uid="uid://dato0qpbqvwnj" path="res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_02.tscn" id="3_0ayp4"] +[ext_resource type="PackedScene" uid="uid://cdsloy1kvhikp" path="res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_03.tscn" id="4_hwdop"] +[ext_resource type="PackedScene" uid="uid://cl82y5gxnb8d6" path="res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_04.tscn" id="5_pn2nt"] +[ext_resource type="PackedScene" uid="uid://shl0iw1x775r" path="res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_05.tscn" id="6_1w6h6"] +[ext_resource type="PackedScene" uid="uid://bjru1p8jhdp1b" path="res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_06.tscn" id="7_qbfoq"] +[ext_resource type="PackedScene" uid="uid://34ptrnfgpwlp" path="res://experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_01.tscn" id="8_o25xt"] +[ext_resource type="PackedScene" uid="uid://x7jrg2y81jse" path="res://experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_02.tscn" id="9_1plst"] +[ext_resource type="PackedScene" uid="uid://b6eowhdx7a7vq" path="res://experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_03.tscn" id="10_htcnc"] +[ext_resource type="PackedScene" uid="uid://2eq2j53sic1i" path="res://experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_04.tscn" id="11_doqkh"] +[ext_resource type="PackedScene" uid="uid://dgct4mxupvyvi" path="res://experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_05.tscn" id="12_xqauc"] +[ext_resource type="PackedScene" uid="uid://ditmybmcrt283" path="res://experimental/BinbunVFX/impact_explosions/effects/impact/vfx_impact_06.tscn" id="13_i3mhr"] +[ext_resource type="PackedScene" uid="uid://ri1dspbxt43r" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_01.tscn" id="14_3gj8a"] +[ext_resource type="PackedScene" uid="uid://se15ow6u0q0m" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_02.tscn" id="15_lek47"] +[ext_resource type="PackedScene" uid="uid://b40oyf32pgee" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_03.tscn" id="16_d84l7"] +[ext_resource type="PackedScene" uid="uid://bbynk4p3biw83" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_04.tscn" id="17_rldqb"] +[ext_resource type="PackedScene" uid="uid://vkstbs4fu60" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_05.tscn" id="18_8nvr1"] +[ext_resource type="PackedScene" uid="uid://h47wdqps3cc6" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_06.tscn" id="19_xubrg"] +[ext_resource type="PackedScene" uid="uid://drtpctry2l8gr" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_07.tscn" id="20_bwmwf"] +[ext_resource type="PackedScene" uid="uid://cp7mydlqqpb17" path="res://experimental/BinbunVFX/impact_explosions/effects/hit/vfx_hit_08.tscn" id="21_y8o6q"] + +[sub_resource type="Shader" id="Shader_0xm2m"] +code = "// NOTE: Shader automatically converted from Godot Engine 4.4.1.stable's StandardMaterial3D. + +shader_type spatial; +render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx; + +uniform vec4 albedo : source_color; +uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01); +uniform ivec2 albedo_texture_size; +uniform float point_size : hint_range(0.1, 128.0, 0.1); + +uniform float roughness : hint_range(0.0, 1.0); +uniform sampler2D texture_metallic : hint_default_white, filter_linear_mipmap, repeat_enable; +uniform vec4 metallic_texture_channel; +uniform sampler2D texture_roughness : hint_roughness_r, filter_linear_mipmap, repeat_enable; + +uniform float specular : hint_range(0.0, 1.0, 0.01); +uniform float metallic : hint_range(0.0, 1.0, 0.01); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +uniform vec3 uv1_scale; +uniform vec3 uv1_offset; +uniform vec3 uv2_scale; +uniform vec3 uv2_offset; + +void vertex() { + UV = UV * uv1_scale.xy + uv1_offset.xy; +} + +void fragment() { + vec2 base_uv = UV; + + vec4 albedo_tex = texture(texture_albedo, base_uv); + ALBEDO = albedo.rgb * albedo_tex.rgb; + + float metallic_tex = dot(texture(texture_metallic, base_uv), metallic_texture_channel); + METALLIC = metallic_tex * metallic; + SPECULAR = specular; + + vec4 roughness_texture_channel = vec4(1.0, 0.0, 0.0, 0.0); + float roughness_tex = dot(texture(texture_roughness, base_uv), roughness_texture_channel); + ROUGHNESS = roughness_tex * roughness; + ALPHA *= albedo.a * albedo_tex.a; + + // Proximity Fade: Enabled + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + ALPHA *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); +} +" + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1bvp3"] +render_priority = 0 +shader = SubResource("Shader_0xm2m") +shader_parameter/albedo = Color(1, 1, 1, 1) +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/albedo_texture_size = Vector2i(0, 0) +shader_parameter/point_size = 1.0 +shader_parameter/roughness = 1.0 +shader_parameter/metallic_texture_channel = Vector4(1, 0, 0, 0) +shader_parameter/specular = 0.5 +shader_parameter/metallic = 0.0 +shader_parameter/uv1_scale = Vector3(1, 1, 1) +shader_parameter/uv1_offset = Vector3(0, 0, 0) +shader_parameter/uv2_scale = Vector3(1, 1, 1) +shader_parameter/uv2_offset = Vector3(0, 0, 0) + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_7dm0k"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_h2yge"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_lquwl"] + +[sub_resource type="Sky" id="Sky_lquwl"] +sky_material = SubResource("ProceduralSkyMaterial_lquwl") + +[sub_resource type="Environment" id="Environment_0xm2m"] +background_mode = 2 +background_color = Color(0.266667, 0, 0, 1) +background_energy_multiplier = 0.8 +sky = SubResource("Sky_lquwl") +ambient_light_source = 3 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_energy = 2.0 +ssao_enabled = true +ssao_intensity = 4.0 +glow_enabled = true +glow_normalized = true +glow_intensity = 0.0 +glow_bloom = 0.05 +glow_map_strength = 0.0 +fog_enabled = true +fog_light_color = Color(0.0629, 0.09503, 0.17, 1) +fog_light_energy = 2.0 +fog_density = 0.02 +volumetric_fog_enabled = true +volumetric_fog_density = 0.01 +volumetric_fog_albedo = Color(0.482927, 0.681971, 0.820904, 1) +volumetric_fog_emission_energy = 0.0 +adjustment_enabled = true +adjustment_contrast = 1.1 +adjustment_saturation = 1.1 + +[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_0xm2m"] +dof_blur_far_enabled = true +dof_blur_far_distance = 30.0 +dof_blur_far_transition = 64.0 +dof_blur_near_transition = -1.0 + +[sub_resource type="BoxMesh" id="BoxMesh_ig7tw"] +size = Vector3(1000, 6, 1000) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1bvp3"] +albedo_color = Color(0.866489, 0.931253, 0.944994, 1) +albedo_texture = ExtResource("1_vn7vm") +uv1_triplanar = true + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +visible = false +material_override = SubResource("ShaderMaterial_1bvp3") +mesh = SubResource("CapsuleMesh_7dm0k") +surface_material_override/0 = SubResource("ShaderMaterial_h2yge") + +[node name="Environment" type="Node3D" parent="."] + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] +transform = Transform3D(0.708475, 0.540625, 0.453638, 1.62119e-08, -0.642788, 0.766044, 0.705736, -0.542723, -0.455399, 0, 2.19112, 0) +light_color = Color(1, 0.992157, 0.956863, 1) +light_energy = 1.5 +shadow_enabled = true +shadow_opacity = 0.5 +shadow_blur = 9.219 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="Environment"] +environment = SubResource("Environment_0xm2m") +camera_attributes = SubResource("CameraAttributesPractical_0xm2m") + +[node name="Ground" type="MeshInstance3D" parent="Environment"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3, 0) +mesh = SubResource("BoxMesh_ig7tw") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_1bvp3") + +[node name="Lights" type="Node3D" parent="Environment"] + +[node name="SpotLight3D" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 10, 0) +light_energy = 30.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D2" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -7, 10, 0) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D3" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -14, 10, 0) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D4" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -20, 10, 0) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D5" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 10, -7) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D6" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -7, 10, -7) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D7" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -14, 10, -7) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="SpotLight3D8" type="SpotLight3D" parent="Environment/Lights"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -20, 10, -7) +light_energy = 20.0 +spot_range = 18.188 +spot_angle = 40.0 + +[node name="Effects" type="Node3D" parent="."] + +[node name="VFXExplosion_01" parent="Effects" instance=ExtResource("2_t2wbt")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +alpha_mode = 0 + +[node name="VFXExplosion_02" parent="Effects" instance=ExtResource("3_0ayp4")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 1, 0) + +[node name="VFXExplosion_03" parent="Effects" instance=ExtResource("4_hwdop")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 1, 0) + +[node name="VFXExplosion_04" parent="Effects" instance=ExtResource("5_pn2nt")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17, 1, 0) + +[node name="VFXExplosion_05" parent="Effects" instance=ExtResource("6_1w6h6")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21, 1, 0) + +[node name="VFXExplosion_06" parent="Effects" instance=ExtResource("7_qbfoq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25, 1, 0) + +[node name="VFXImpact_01" parent="Effects" instance=ExtResource("8_o25xt")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -5) + +[node name="VFXImpact_02" parent="Effects" instance=ExtResource("9_1plst")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, -5) + +[node name="VFXImpact_03" parent="Effects" instance=ExtResource("10_htcnc")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -5) + +[node name="VFXImpact_04" parent="Effects" instance=ExtResource("11_doqkh")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, -5) + +[node name="VFXImpact_05" parent="Effects" instance=ExtResource("12_xqauc")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 0, -5) + +[node name="VFXImpact_06" parent="Effects" instance=ExtResource("13_i3mhr")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25, 0, -5) + +[node name="VFXHit_01" parent="Effects" instance=ExtResource("14_3gj8a")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -9) + +[node name="VFXHit_02" parent="Effects" instance=ExtResource("15_lek47")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 1, -9) + +[node name="VFXHit_03" parent="Effects" instance=ExtResource("16_d84l7")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 1, -9) + +[node name="VFXHit_04" parent="Effects" instance=ExtResource("17_rldqb")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11, 1, -9) +proximity_fade_distance = 0.5 + +[node name="VFXHit_05" parent="Effects" instance=ExtResource("18_8nvr1")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 1, -9) + +[node name="VFXHit_06" parent="Effects" instance=ExtResource("19_xubrg")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 1, -9) + +[node name="VFXHit_07" parent="Effects" instance=ExtResource("20_bwmwf")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21, 1, -9) + +[node name="VFXHit_08" parent="Effects" instance=ExtResource("21_y8o6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24, 1, -9) + +[node name="MainCamera" type="Camera3D" parent="."] +transform = Transform3D(-1, 5.01436e-08, -7.16125e-08, 0, 0.819152, 0.573576, 8.74228e-08, 0.573576, -0.819152, -12, 16, -27) +fov = 40.0 diff --git a/experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_core.tres b/experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_core.tres new file mode 100644 index 0000000..ecd3ee1 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_core.tres @@ -0,0 +1,30 @@ +[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://ds825epdbvmpy"] + +[ext_resource type="Shader" uid="uid://b6ke6r1fjb8s3" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader" id="1_cumgj"] + +[sub_resource type="Gradient" id="Gradient_o8yid"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_8jx1v"] +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_v36aq"] +seamless = true +color_ramp = SubResource("Gradient_o8yid") +noise = SubResource("FastNoiseLite_8jx1v") + +[resource] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_cumgj") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_v36aq") +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 diff --git a/experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres b/experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres new file mode 100644 index 0000000..090e4f5 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres @@ -0,0 +1,46 @@ +[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://dnw08mtonx63d"] + +[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="1_5yu7f"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_msnhc"] +seed = 2 +fractal_type = 2 +fractal_octaves = 3 +fractal_gain = 0.55 +domain_warp_enabled = true +domain_warp_type = 1 +domain_warp_amplitude = 10.0 +domain_warp_frequency = 0.02 +domain_warp_fractal_octaves = 2 +domain_warp_fractal_lacunarity = 4.165 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_plj08"] +noise = SubResource("FastNoiseLite_msnhc") +seamless = true +normalize = false + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_plj08"] +noise_type = 2 +frequency = 0.04 +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_msnhc"] +width = 128 +height = 128 +noise = SubResource("FastNoiseLite_plj08") +seamless = true +invert = true + +[resource] +render_priority = 0 +shader = ExtResource("1_5yu7f") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_msnhc") +shader_parameter/glow_noise_texture = SubResource("NoiseTexture2D_plj08") +shader_parameter/primary_color = Color(1, 0.662745, 0.0666667, 1) +shader_parameter/tertiary_color = Color(0.227451, 0.223529, 0.180392, 1) +shader_parameter/time_scale = Vector2(0, 0.3) +shader_parameter/texture_scale = Vector2(1, 1) +shader_parameter/noise_scale = 1.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 diff --git a/experimental/BinbunVFX/impact_explosions/src/material/explosion/impact_streaks.tres b/experimental/BinbunVFX/impact_explosions/src/material/explosion/impact_streaks.tres new file mode 100644 index 0000000..1304088 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/material/explosion/impact_streaks.tres @@ -0,0 +1,28 @@ +[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://ckmhsplln2t4v"] + +[ext_resource type="Shader" uid="uid://7acg1ejnsqij" path="res://assets/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader" id="1_q4j6j"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_6ypje"] +noise_type = 2 +frequency = 0.02 +offset = Vector3(412.7, 0, 0) +fractal_octaves = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6ypje"] +seamless = true +seamless_blend_skirt = 0.5 +noise = SubResource("FastNoiseLite_6ypje") + +[resource] +render_priority = 0 +shader = ExtResource("1_q4j6j") +shader_parameter/noise_texture = SubResource("NoiseTexture2D_6ypje") +shader_parameter/primary_color = Color(0, 0, 0, 1) +shader_parameter/secondary_color = Color(0, 0, 0, 1) +shader_parameter/texture_scale = Vector2(4, 0.2) +shader_parameter/time_scale = 0.4 +shader_parameter/grow = 0.05 +shader_parameter/decay = 0.0 +shader_parameter/proximity_fade = false +shader_parameter/proximity_fade_distance = 1.0 +shader_parameter/alpha_mode = 0 diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader new file mode 100644 index 0000000..57f4b7d --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader @@ -0,0 +1,78 @@ +shader_type spatial; +render_mode blend_mix, unshaded, cull_disabled; + +uniform sampler2D mask_texture; +uniform sampler2D noise_texture; + +uniform float edge_smoothness : hint_range(0.0, 1.0, 0.0) = 0.5; +uniform float color_smoothness : hint_range(0.0, 1.0, 0.1) = 1.0; + +uniform vec4 primary_color : source_color; +uniform vec4 secondary_color : source_color; + +uniform bool billboard = true; + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +void vertex() { + if(billboard){ + // Billboard Mode: Particles + mat4 mat_world = mat4( + normalize(INV_VIEW_MATRIX[0]), + normalize(INV_VIEW_MATRIX[1]), + normalize(INV_VIEW_MATRIX[2]), + MODEL_MATRIX[3]); + mat_world = mat_world * mat4( + vec4(cos(INSTANCE_CUSTOM.x), -sin(INSTANCE_CUSTOM.x), 0.0, 0.0), + vec4(sin(INSTANCE_CUSTOM.x), cos(INSTANCE_CUSTOM.x), 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(0.0, 0.0, 0.0, 1.0)); + MODELVIEW_MATRIX = VIEW_MATRIX * mat_world; + // Billboard Keep Scale: Enabled + MODELVIEW_MATRIX = MODELVIEW_MATRIX * mat4( + vec4(length(MODEL_MATRIX[0].xyz), 0.0, 0.0, 0.0), + vec4(0.0, length(MODEL_MATRIX[1].xyz), 0.0, 0.0), + vec4(0.0, 0.0, length(MODEL_MATRIX[2].xyz), 0.0), + vec4(0.0, 0.0, 0.0, 1.0)); + MODELVIEW_NORMAL_MATRIX = mat3(MODELVIEW_MATRIX); + } +} + +void fragment() { + float mask = texture(mask_texture, UV).r; + float noise = texture(noise_texture, UV + vec2(COLOR.r)).r; + + float masked_noise = mask - (1.0 - (noise)); + + float color_value = smoothstep(0.5 - color_smoothness * 0.5,0.5 + color_smoothness * 0.5,masked_noise); + float alpha = smoothstep(0.5 - edge_smoothness * 0.5,0.5 + edge_smoothness * 0.5,masked_noise) * COLOR.a; + //float color_value = smoothstep(0.0,color_smoothness, masked_noise); + + ALBEDO = (mix(secondary_color, primary_color, color_value).rgb + COLOR.rgb) * 2.0; + EMISSION = ALBEDO; + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader.uid new file mode 100644 index 0000000..95d8d7a --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/basic.gdshader.uid @@ -0,0 +1 @@ +uid://cssforqq3llvn diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader new file mode 100644 index 0000000..6dcbe4f --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader @@ -0,0 +1,55 @@ +shader_type spatial; +render_mode blend_mix, unshaded; + +uniform sampler2D mask_texture; +uniform sampler2D noise_texture; + +uniform float edge_smoothness : hint_range(0.0, 1.0, 0.0) = 0.5; +uniform float color_smoothness : hint_range(0.0, 1.0, 0.1) = 1.0; + +uniform vec4 tertiary_color : source_color; +uniform float alpha_multiplier : hint_range(0.0, 1.0, 0.1) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +void vertex() { + mat4 modified_model_view = VIEW_MATRIX * mat4( + INV_VIEW_MATRIX[0], + INV_VIEW_MATRIX[1], + INV_VIEW_MATRIX[2], + MODEL_MATRIX[3] + ); + MODELVIEW_MATRIX = modified_model_view; +} + +void fragment() { + float mask = texture(mask_texture, UV).r; + float noise = texture(noise_texture, UV + vec2(COLOR.r)).r; + + float masked_noise = mask - (1.0 - (noise - pow(COLOR.a, 4.0))); + + float alpha = smoothstep(0.5 - edge_smoothness * 0.5,0.5 + edge_smoothness * 0.5,masked_noise) * alpha_multiplier; + //float color_value = smoothstep(0.0,color_smoothness, masked_noise); + + ALBEDO = tertiary_color.rgb; + //EMISSION = ALBEDO * 2.0; + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader.uid new file mode 100644 index 0000000..6f3ecd3 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader.uid @@ -0,0 +1 @@ +uid://ccd4kg68n7uox diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader new file mode 100644 index 0000000..90c2bd5 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader @@ -0,0 +1,63 @@ +shader_type spatial; +render_mode blend_mix, cull_disabled; + +uniform sampler2D noise_texture; +uniform sampler2D glow_noise_texture; + +uniform vec4 primary_color : source_color; + +uniform vec2 texture_scale = vec2(1.0); + +uniform float decay = 0.0; + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +float noise(vec2 uv) { + float noise = texture(noise_texture, uv * texture_scale + vec2(TIME * 0.2)).r; + return noise; +} + +void vertex() { + VERTEX = VERTEX + (NORMAL * noise(UV) * pow(decay, 0.5) * 0.3) + (NORMAL * pow(decay, 0.3)*0.1); +} + +void fragment() { + float noise = noise(UV); + + float alpha = 1.0 - smoothstep(noise, 1.0, decay); + alpha = smoothstep(0.9, 1.0, alpha); + + ALBEDO = mix(vec3(1.0), primary_color.rgb, decay); + ROUGHNESS = 1.0; + EMISSION = ALBEDO * ((1.0-decay) * 2.0); + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader.uid new file mode 100644 index 0000000..f41f96b --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader.uid @@ -0,0 +1 @@ +uid://b6ke6r1fjb8s3 diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader new file mode 100644 index 0000000..cbf6c2d --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader @@ -0,0 +1,61 @@ +shader_type spatial; +render_mode blend_mix, cull_disabled; + +uniform sampler2D noise_texture; +uniform sampler2D glow_noise_texture; + +uniform vec4 primary_color : source_color; + +uniform vec2 texture_scale = vec2(1.0); + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +float noise(vec2 uv) { + float noise = texture(noise_texture, uv * texture_scale + vec2(TIME * 0.2)).r; + return noise; +} + +void vertex() { + VERTEX = VERTEX + (NORMAL * noise(UV) * pow(COLOR.a, 0.5) * 0.3) + (NORMAL * pow(COLOR.a, 0.3)*0.1); +} + +void fragment() { + float noise = noise(UV); + + float alpha = 1.0 - smoothstep(noise, 1.0, COLOR.a); + alpha = smoothstep(0.9, 1.0, alpha); + + ALBEDO = mix(vec3(1.0), primary_color.rgb, COLOR.a); + ROUGHNESS = 1.0; + EMISSION = ALBEDO * ((1.0-COLOR.a) * 2.0); + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader.uid new file mode 100644 index 0000000..bb75fbc --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader.uid @@ -0,0 +1 @@ +uid://de7cy2qqnf2p5 diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader new file mode 100644 index 0000000..e402987 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader @@ -0,0 +1,89 @@ +shader_type spatial; +render_mode blend_mix, depth_prepass_alpha, cull_back, diffuse_burley, specular_schlick_ggx; + +uniform sampler2D noise_texture; +uniform sampler2D glow_noise_texture; + +uniform vec4 primary_color : source_color; +uniform vec4 tertiary_color : source_color; + +uniform vec2 time_scale = vec2(1.0); +uniform vec2 texture_scale = vec2(1.0); +uniform float noise_scale = 1.0; + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +float fresnel(float amount, vec3 normal, vec3 view) +{ + return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount); +} + +float noise(vec2 uv){ + float uv_mask1 = pow(uv.y, 0.2); + float uv_mask2 = pow(1.0-uv.y, 0.2); + float uv_mask = min(uv_mask1, uv_mask2); + + vec2 noise_uv = (uv * texture_scale) + vec2(TIME) * time_scale; + float noise = texture(noise_texture, noise_uv).r * uv_mask; + return noise; +} + +void vertex() { + float n = noise(UV); + n = pow(n, 0.5); + + vec3 offset = (NORMAL * n); + + VERTEX += offset * noise_scale; +} + +void fragment() { + ROUGHNESS = 1.0; + + float glow_amount = COLOR.r; + + float glow_n = texture(glow_noise_texture, UV + vec2(TIME) * time_scale * 0.5).r; + float n = pow(1.0 - noise(UV), 0.5) * (mix(glow_n, 1.0, .7)); + float glow = smoothstep(1.0 - glow_amount, 1.0, n); + + vec4 color = mix(tertiary_color, primary_color, glow); + + ALBEDO = color.rgb; + EMISSION = (ALBEDO * 4.0) * glow; + + // ALPHA + float decay_amount = 1.0 - COLOR.a; + float alpha = smoothstep(decay_amount - 0.2, decay_amount, glow_n*0.8);// + alpha *= 1.0 - fresnel(3.0, NORMAL, VIEW); + + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader.uid new file mode 100644 index 0000000..022cc97 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader.uid @@ -0,0 +1 @@ +uid://b1sjgiq8o4tvd diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader new file mode 100644 index 0000000..1e7858f --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader @@ -0,0 +1,70 @@ +shader_type spatial; +render_mode blend_mix, cull_disabled; + +uniform sampler2D ring_texture; +uniform sampler2D noise_texture; + +uniform vec4 primary_color : source_color; +uniform vec4 secondary_color : source_color; + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + + +void vertex() { + // Called for every vertex the material is visible on. +} + +float noise_fade(float v, float n, float amt, float treshold){ + float value = 1.0; + float n_amt = amt * 2.0; + + value = mix(v, v - (1.0-(n * treshold)), n_amt); + value = clamp(value, 0.0, 1.0); + + return value; +} + +void fragment() { + float ring_mask = texture(ring_texture, UV).r; + float noise = texture(noise_texture, UV).r; + float decay = (1.0 - pow(COLOR.a,0.5)) * 3.0; + + float value = noise_fade(ring_mask, noise, decay, 0.7); + + vec4 color = mix(secondary_color, primary_color, value); + + ALBEDO = mix(color.rgb, vec3(1.0), pow(COLOR.a, 8.0)); + EMISSION = ALBEDO * 2.0; + + float alpha = smoothstep(0.1,0.5, value); + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader.uid new file mode 100644 index 0000000..6aff93f --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader.uid @@ -0,0 +1 @@ +uid://bf8eiigjam2fr diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader new file mode 100644 index 0000000..eef8a8e --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader @@ -0,0 +1,49 @@ +shader_type spatial; +render_mode blend_mix, unshaded; + +uniform vec4 primary_color : source_color; + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform float alpha_multiplier : hint_range(0.0,1.0,0.05) = 0.432; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + +float fresnel(float amount, vec3 normal, vec3 view) +{ + return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount); +} + +void fragment() { + float alpha = pow(1.0 - fresnel(1.0,NORMAL, VIEW), 16.0) * alpha_multiplier; + + ALBEDO = primary_color.rgb; + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader.uid new file mode 100644 index 0000000..ece552d --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/glow.gdshader.uid @@ -0,0 +1 @@ +uid://d4eb3cue1817u diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader new file mode 100644 index 0000000..ab7e1b3 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader @@ -0,0 +1,65 @@ +shader_type spatial; +render_mode blend_mix; + +uniform sampler2D shape_texture; +uniform sampler2D noise_texture; + +uniform vec4 primary_color : source_color; +uniform vec4 secondary_color : source_color; + +uniform float decay : hint_range(0.0,1.0,0.01); + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + + +float shape(vec2 uv){ + float s = texture(shape_texture, uv).r; + return s; +} + +float wave(vec2 uv){ + float s = pow(shape(uv),0.4); + float mask1 = shape(uv); + float mask2 = pow(1.0 - shape(uv),2.0); + float w = sin(s * 16.0 + (TIME * 16.0)); + w = (w + 1.0) / 2.0; + w *= mask1 - pow(1.0 - decay, 8.0); + w *= 1.0 + mask2 - pow(decay * 2.0, 1.0); + w = clamp(w, 0.0, 1.0); + return w * 8.0; +} + +void vertex() { + VERTEX += NORMAL * wave(UV) * 0.1; +} + +void fragment() { + float wave_value = wave(UV); + + float noise = texture(noise_texture, UV).r; + + float alpha = clamp(wave_value - noise, 0.0, 1.0); + + vec3 color = mix(secondary_color, primary_color, wave_value).rgb; + + ALBEDO = color; + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader.uid new file mode 100644 index 0000000..4cb5c58 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/ground_impact.gdshader.uid @@ -0,0 +1 @@ +uid://dw1bkef40wjyi diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader new file mode 100644 index 0000000..5de3832 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader @@ -0,0 +1,62 @@ +shader_type spatial; +render_mode blend_mix, cull_disabled, depth_prepass_alpha; + +uniform sampler2D noise_texture; + +uniform vec4 primary_color : source_color; +uniform vec4 secondary_color : source_color; + +uniform vec2 texture_scale = vec2(1.0); +uniform vec2 time_scale = vec2(1.0); + +uniform float grow : hint_range(0.0, 1.0, 0.01) = 0.34; +uniform float decay : hint_range(0.0, 1.0, 0.01) = 0.34; + +uniform bool proximity_fade = false; +uniform float proximity_fade_distance : hint_range(0.0, 4096.0, 0.01) = 1.0; + +uniform int alpha_mode : hint_range(0, 2, 1) = 0; +const vec3 ign = vec3(0.06711056f, 0.00583715f, 52.9829189f); +uniform sampler2D depth_texture : hint_depth_texture, repeat_disable, filter_nearest; + + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + float noise = texture(noise_texture, (UV * texture_scale + (vec2(TIME) * time_scale))).r; + float mask = UV.y; + + float masked_noise = noise * mask; + float alpha = smoothstep(grow,grow + 0.1,masked_noise); + alpha *= decay; + + ALBEDO = mix(secondary_color.rgb, primary_color.rgb, UV.y); + EMISSION = ALBEDO * 3.0; + + // Proximity Fade: Enabled + if(proximity_fade){ + float proximity_depth_tex = textureLod(depth_texture, SCREEN_UV, 0.0).r; + vec4 proximity_view_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, proximity_depth_tex, 1.0); + proximity_view_pos.xyz /= proximity_view_pos.w; + alpha *= clamp(1.0 - smoothstep(proximity_view_pos.z + proximity_fade_distance, proximity_view_pos.z, VERTEX.z), 0.0, 1.0); + } + + if(alpha_mode == 0){ + ALPHA = alpha; + } else if (alpha_mode == 1) { + if (alpha < 0.001 || alpha < fract(ign.z * fract(dot(FRAGCOORD.xy, ign.xy)))) { + discard; + } + } else if (alpha_mode == 2) { + if (alpha < 0.2){ + discard; + } + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader.uid new file mode 100644 index 0000000..dc14534 --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/impact_streaks.gdshader.uid @@ -0,0 +1 @@ +uid://7acg1ejnsqij diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader b/experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader new file mode 100644 index 0000000..eef6f0e --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader @@ -0,0 +1,23 @@ +shader_type spatial; +render_mode blend_mix; + +uniform sampler2D shape_texture; + +uniform vec4 primary_color : source_color; +uniform vec4 secondary_color : source_color; + +void fragment() { + float mask = texture(shape_texture, UV).r; + + ALBEDO = mix(secondary_color, primary_color, mask).rgb; + EMISSION = ALBEDO * 4.0; + + if (mask < .1){ + discard; + } +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader.uid b/experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader.uid new file mode 100644 index 0000000..a36063d --- /dev/null +++ b/experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader.uid @@ -0,0 +1 @@ +uid://d28ltkmbbdcjb diff --git a/experimental/BinbunVFX/shared/script/vfx_controller.gd b/experimental/BinbunVFX/shared/script/vfx_controller.gd new file mode 100644 index 0000000..7bb03c8 --- /dev/null +++ b/experimental/BinbunVFX/shared/script/vfx_controller.gd @@ -0,0 +1,201 @@ +@tool +extends Node3D +class_name VFXController + +## Works only in the editor. By default works like "emitting" on particles. When one_shot is enabled works as a button. +@export var preview : bool = true: + set(value): + if Engine.is_editor_hint(): + if one_shot && value == true: + play() + else: + preview = value + if value == true: + play() + +@export var one_shot : bool = false: + set(value): + if Engine.is_editor_hint(): + one_shot = value + preview = false + +@export var autoplay : bool = true + +@export_group("General") +@export var local_coords : bool = false: + set(value): + local_coords = value + for p in _get_particles(): if is_instance_valid(p): p.local_coords = value +@export_range(0, 10, 0.01) var speed_scale : float = 1.0: + set(value): + speed_scale = value + _set_shader_params("time_scale", speed_scale) + _get_anim().speed_scale = value + for p in _get_particles(): if is_instance_valid(p): p.speed_scale = value + +@export_group("Colors") +@export var primary_color : Color: + set(value): + primary_color = value + _set_shader_params("primary_color", primary_color) +@export var secondary_color : Color: + set(value): + secondary_color = value + _set_shader_params("secondary_color", secondary_color) +@export var tertiary_color : Color: + set(value): + tertiary_color = value + _set_shader_params("tertiary_color", tertiary_color) + +@export_group("Light") +@export var light_enable : bool = true: + set(value): + light_enable = value + _set_light_prop("visible", value) +@export var light_color : Color: + set(value): + light_color = value + _set_light_prop("light_color", value) +@export var light_energy : float = 4.0: + set(value): + light_energy = value + _set_light_prop("base_energy", value) +@export var light_indirect_energy : float = 1.0: + set(value): + light_indirect_energy = value + _set_light_prop("light_indirect_energy", value) +@export var light_volumetric_fog_energy : float = 1.0: + set(value): + light_volumetric_fog_energy = value + _set_light_prop("light_volumetric_fog_energy", value) + +@export_group("Proximity Fade") +@export var proximity_fade : bool = false: + set(value): + proximity_fade = value + _set_shader_params("proximity_fade", proximity_fade) +@export var proximity_fade_distance : float = 1.0: + set(value): + proximity_fade_distance = value + _set_shader_params("proximity_fade_distance", proximity_fade_distance) + + +@export_group("LODs") +enum Alpha_Mode { + ## Smooth transparency. Most performance intensive + SMOOTH, + ## Displays transparency with a dithering pattern. Less performance intensive + DITHER, + ## Hard cut alpha. Like "Alpha Scissor" in [b]SpatialMaterial[/b]. Least performance intensive + CUT, + ## Uses dithering and hard cut to achieve better results + HYBRID +} +## Specifies how to handle [b]transparency[/b] within shaders. +@export var alpha_mode : Alpha_Mode = Alpha_Mode.SMOOTH: + set(value): + alpha_mode = value + _set_shader_params("alpha_mode", alpha_mode) +@export_range(0.0,1.0,0.01) var alpha_cutoff : float = 0.02: + set(value): + alpha_cutoff = value + _set_shader_params("alpha_cutoff", alpha_cutoff) +@export_range(0.0,1.0,0.01) var dither_cutoff : float = 0.8: + set(value): + dither_cutoff = value + _set_shader_params("dither_cutoff", dither_cutoff) +## Specify resolution of meshes. +## [br][br] +## [b]SphereMesh:[/b] Sets [code]radial_segments[/code] to the [b]value[/b] and +## [code]rings[/code] to [b]half the value[/b] +## [br][br] +## [b]CylinderMesh:[/b] Sets [code]radial_segments[/code] to the [b]value[/b] +## [br][br] +## [b]PlaneMesh:[/b] Sets [code]subdivide_width[/code] and [code]subdivide_depth[/code] to the [b]value[/b] +@export var mesh_resolutions : int = 32: + set(value): + mesh_resolutions = value + _set_mesh_resolutions(mesh_resolutions) + +var particles : Array[GPUParticles3D] = [] + +func _ready() -> void: + if Engine.is_editor_hint(): + return + + if autoplay: play() + +func _enter_tree() -> void: + if autoplay: preview = true + +func play(): + var anim : AnimationPlayer = _get_anim() + _reset_particles() + if !one_shot: + anim.play("main") + anim.seek(0.0) + await _get_anim().animation_finished + if Engine.is_editor_hint() && !preview: + return + play() + else: + if anim.has_animation("oneshot"): + anim.play("oneshot") + else: + anim.play("main") + +## Util +func _get_anim() -> AnimationPlayer: + return get_node("AnimationPlayer") + +func _get_particles() -> Array[GPUParticles3D]: + var result : Array[GPUParticles3D] = [] + for p in get_children(): + if p is GPUParticles3D: + result.append(p) + return result + +func _get_meshinstances() -> Array[MeshInstance3D]: + var result : Array[MeshInstance3D] = [] + for m in get_children(): + if m is MeshInstance3D: + result.append(m) + return result + +func _get_meshes() -> Array[Mesh]: + var result : Array[Mesh] + for p in _get_particles(): if is_instance_valid(p): + result.append(p.draw_pass_1) + for m in _get_meshinstances(): if is_instance_valid(m): + result.append(m.mesh) + return result + +func _set_light_prop(pname : String, value) -> void: + var light = get_node_or_null("Light") + if light != null: + light.set(pname, value) + +func _reset_particles(): + for p in _get_particles(): + p.restart() + +func _set_shader_params(name : String, value) -> void: + for p in _get_particles(): + if is_instance_valid(p): + if p.material_override is ShaderMaterial: + p.material_override.set("shader_parameter/" + name, value) + for m in _get_meshinstances(): + if is_instance_valid(m): + if m.material_override is ShaderMaterial: + m.material_override.set("shader_parameter/" + name, value) + +func _set_mesh_resolutions(value : int) -> void: + for m in _get_meshes(): if is_instance_valid(m): + if m is SphereMesh: + m.radial_segments = value + m.rings = value/2 + if m is CylinderMesh: + m.radial_segments = value + if m is PlaneMesh: + m.subdivide_width = value + m.subdivide_depth = value diff --git a/experimental/BinbunVFX/shared/script/vfx_controller.gd.uid b/experimental/BinbunVFX/shared/script/vfx_controller.gd.uid new file mode 100644 index 0000000..25cd8ba --- /dev/null +++ b/experimental/BinbunVFX/shared/script/vfx_controller.gd.uid @@ -0,0 +1 @@ +uid://tb7n6ybv43ch diff --git a/experimental/BinbunVFX/shared/script/vfx_light.gd b/experimental/BinbunVFX/shared/script/vfx_light.gd new file mode 100644 index 0000000..0ae1939 --- /dev/null +++ b/experimental/BinbunVFX/shared/script/vfx_light.gd @@ -0,0 +1,12 @@ +@tool +extends OmniLight3D +class_name VFX_Light + +@export var base_energy : float = 2.0: + set(value): + base_energy = value + light_energy = base_energy * light_multiplier +@export_range(0.0,1.0,0.01) var light_multiplier : float = 1.0: + set(value): + light_multiplier = value + light_energy = base_energy * light_multiplier diff --git a/experimental/BinbunVFX/shared/script/vfx_light.gd.uid b/experimental/BinbunVFX/shared/script/vfx_light.gd.uid new file mode 100644 index 0000000..ea52dbf --- /dev/null +++ b/experimental/BinbunVFX/shared/script/vfx_light.gd.uid @@ -0,0 +1 @@ +uid://bdk8hhttligw diff --git a/experimental/BinbunVFX/shared/texture/cracks.ptex b/experimental/BinbunVFX/shared/texture/cracks.ptex new file mode 100644 index 0000000..c0c70ab --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/cracks.ptex @@ -0,0 +1,907 @@ +{ + "connections": [ + { + "from": "voronoi2_2", + "from_port": 0, + "to": "math_2", + "to_port": 1 + }, + { + "from": "math_2", + "from_port": 0, + "to": "math_3", + "to_port": 0 + }, + { + "from": "radial_gradient", + "from_port": 0, + "to": "math_3", + "to_port": 1 + }, + { + "from": "math_3", + "from_port": 0, + "to": "sharpen", + "to_port": 0 + }, + { + "from": "voronoi2", + "from_port": 0, + "to": "math_2", + "to_port": 0 + }, + { + "from": "sharpen", + "from_port": 0, + "to": "math", + "to_port": 0 + }, + { + "from": "math", + "from_port": 0, + "to": "tones_step", + "to_port": 0 + }, + { + "from": "uniform", + "from_port": 0, + "to": "blend2", + "to_port": 0 + }, + { + "from": "uniform_2", + "from_port": 0, + "to": "blend2", + "to_port": 1 + }, + { + "from": "tones_step_2", + "from_port": 0, + "to": "blend2", + "to_port": 2 + }, + { + "from": "blend2", + "from_port": 0, + "to": "blend2_2", + "to_port": 0 + }, + { + "from": "uniform_3", + "from_port": 0, + "to": "blend2_2", + "to_port": 1 + }, + { + "from": "normal_map2", + "from_port": 0, + "to": "Material", + "to_port": 4 + }, + { + "from": "math_4", + "from_port": 0, + "to": "normal_map2", + "to_port": 0 + }, + { + "from": "tones_step", + "from_port": 0, + "to": "fast_blur", + "to_port": 0 + }, + { + "from": "fast_blur", + "from_port": 0, + "to": "tones_step_2", + "to_port": 0 + }, + { + "from": "fast_blur", + "from_port": 0, + "to": "math_4", + "to_port": 0 + }, + { + "from": "fast_blur", + "from_port": 0, + "to": "blend2_2", + "to_port": 2 + }, + { + "from": "fast_blur", + "from_port": 0, + "to": "graph_6", + "to_port": 0 + }, + { + "from": "blend2_2", + "from_port": 0, + "to": "blend2_3", + "to_port": 0 + }, + { + "from": "graph_6", + "from_port": 0, + "to": "blend2_3", + "to_port": 1 + }, + { + "from": "blend2_3", + "from_port": 0, + "to": "Material", + "to_port": 0 + } + ], + "label": "Graph", + "longdesc": "", + "name": "511", + "node_position": { + "x": 0, + "y": 0 + }, + "nodes": [ + { + "export_paths": { + + }, + "name": "Material", + "node_position": { + "x": 2029, + "y": -92 + }, + "parameters": { + "albedo_color": { + "a": 1, + "b": 1, + "g": 1, + "r": 1, + "type": "Color" + }, + "ao": 1, + "depth_scale": 0.7, + "emission_energy": 0, + "flags_transparent": false, + "metallic": 0, + "normal": 1, + "roughness": 1, + "size": 11, + "sss": 0 + }, + "seed_int": 0, + "type": "material" + }, + { + "name": "voronoi2", + "node_position": { + "x": -2174, + "y": 335 + }, + "parameters": { + "intensity": 1, + "randomness": 0.85, + "scale_x": 8, + "scale_y": 8, + "stretch_x": 1, + "stretch_y": 1 + }, + "seed_int": 1884072448, + "type": "voronoi2" + }, + { + "name": "voronoi2_2", + "node_position": { + "x": -2185.340332, + "y": 576.901062 + }, + "parameters": { + "intensity": 1, + "randomness": 1, + "scale_x": 6, + "scale_y": 6, + "stretch_x": 1, + "stretch_y": 1 + }, + "seed_int": 190614896, + "type": "voronoi2" + }, + { + "name": "math_2", + "node_position": { + "x": -1422.340332, + "y": 488.901062 + }, + "parameters": { + "clamp": false, + "default_in1": 0, + "default_in2": 0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "sharpen", + "node_position": { + "x": -292.340332, + "y": 358.901062 + }, + "parameters": { + "size": 5 + }, + "seed_int": 0, + "type": "sharpen" + }, + { + "name": "radial_gradient", + "node_position": { + "x": -888.340332, + "y": 141.901062 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1, + "b": 1, + "g": 1, + "pos": 0.400481, + "r": 1 + }, + { + "a": 1, + "b": 0, + "g": 0, + "pos": 0.718311, + "r": 0 + } + ], + "type": "Gradient" + }, + "repeat": 1 + }, + "seed_int": 0, + "type": "radial_gradient" + }, + { + "name": "math_3", + "node_position": { + "x": -582.340332, + "y": 299.901062 + }, + "parameters": { + "clamp": true, + "default_in1": 0, + "default_in2": 3, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "tones_step", + "node_position": { + "x": 141.659668, + "y": 136.901062 + }, + "parameters": { + "invert": false, + "value": 0.15, + "width": 0.28 + }, + "seed_int": 0, + "type": "tones_step" + }, + { + "name": "math", + "node_position": { + "x": -133.678223, + "y": 139.390686 + }, + "parameters": { + "clamp": false, + "default_in1": 0, + "default_in2": 2, + "op": 6 + }, + "seed_int": 0, + "type": "math" + }, + { + "generic_size": 1, + "name": "blend2", + "node_position": { + "x": 877.70166, + "y": -140.297119 + }, + "parameters": { + "amount1": 0.71, + "blend_type1": 0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "uniform", + "node_position": { + "x": 526.70166, + "y": -241.297119 + }, + "parameters": { + "color": { + "a": 0, + "b": 0.239216, + "g": 0.239216, + "r": 0.239216, + "type": "Color" + } + }, + "seed_int": 0, + "type": "uniform" + }, + { + "name": "uniform_2", + "node_position": { + "x": 521.20166, + "y": -148.297119 + }, + "parameters": { + "color": { + "a": 1, + "b": 0.183594, + "g": 0.183594, + "r": 0.183594, + "type": "Color" + } + }, + "seed_int": 0, + "type": "uniform" + }, + { + "name": "uniform_3", + "node_position": { + "x": 949.20166, + "y": 86.702881 + }, + "parameters": { + "color": { + "a": 1, + "b": 0.042969, + "g": 0.042969, + "r": 0.042969, + "type": "Color" + } + }, + "seed_int": 0, + "type": "uniform" + }, + { + "name": "tones_step_2", + "node_position": { + "x": 481.70166, + "y": -53.29715 + }, + "parameters": { + "invert": false, + "value": 0.15, + "width": 0.28 + }, + "seed_int": 0, + "type": "tones_step" + }, + { + "name": "normal_map2", + "node_position": { + "x": 1555.70166, + "y": 264.702881 + }, + "parameters": { + "buffer": 1, + "param2": 0, + "size": 11, + "strength": -1 + }, + "seed_int": 0, + "type": "normal_map2" + }, + { + "generic_size": 1, + "name": "blend2_2", + "node_position": { + "x": 1227.70166, + "y": 97.702881 + }, + "parameters": { + "amount1": 1, + "blend_type1": 0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "math_4", + "node_position": { + "x": 999.70166, + "y": 342.702881 + }, + "parameters": { + "clamp": false, + "default_in1": 0, + "default_in2": 0.9, + "op": 6 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "fast_blur", + "node_position": { + "x": 393.70166, + "y": 333.702881 + }, + "parameters": { + "param0": 11, + "param1": 4, + "param2": 1, + "param3": 1 + }, + "seed_int": 0, + "type": "fast_blur" + }, + { + "connections": [ + { + "from": "voronoi_3", + "from_port": 0, + "to": "buffer_5", + "to_port": 0 + }, + { + "from": "voronoi_2", + "from_port": 0, + "to": "buffer_7", + "to_port": 0 + }, + { + "from": "buffer_7", + "from_port": 0, + "to": "gen_outputs", + "to_port": 0 + }, + { + "from": "gen_inputs", + "from_port": 0, + "to": "buffer_2", + "to_port": 0 + }, + { + "from": "buffer_2", + "from_port": 0, + "to": "voronoi_3", + "to_port": 0 + }, + { + "from": "buffer_5", + "from_port": 0, + "to": "voronoi_2", + "to_port": 0 + } + ], + "label": "HBAO", + "longdesc": "", + "name": "graph_6", + "node_position": { + "x": 1400.70166, + "y": -410.297119 + }, + "nodes": [ + { + "name": "voronoi_3", + "node_position": { + "x": -600.80072, + "y": -894.601807 + }, + "parameters": { + "angleBiasDeg": 15, + "depth_scale": 0.08, + "intensity": 2, + "quality": 4, + "radius": 0.1 + }, + "seed": 49449, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "function": true, + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "//inspired by:\n//http://developer.download.nvidia.com/presentations/2008/SIGGRAPH/HBAO_SIG08b.pdf\n//https://gist.github.com/dotModded/981206ae1f4e760b7348\n//https://github.com/scanberg/hbao/blob/master/resources/shaders/hbao_full_frag.glsl\n//radius - radius of influence in screen space\n//angleBiasDeg - ~minimum angle for AO\n//intensity - increase strength of caclulated AO\n//noiseScale - for randomization values\nfloat $(name)_hbao(vec2 uv, float radius, float angleBiasDeg, float intensity, vec2 noiseScale) {\n int samplig_directions = 8;\n int steps = int($quality);\n\n float angleBias = 0.0174532925 * angleBiasDeg;\n\n vec3 c_point = vec3(uv*2.0 - 1.0, $in(uv)*$depth_scale);\n //fun with dfdx & dfdy - https://community.khronos.org/t/getting-the-normal-with-dfdx-and-dfdy/70177\n vec3 c_normal = normalize(cross(dFdx(c_point), dFdy(c_point)));\n\n\n float cosMaxRot = cos(6.28318530718 / float(samplig_directions));\n float sinMaxROt = sin(6.28318530718 / float(samplig_directions));\n \n // it should be faster than standard rotation in each iteartion\n mat2 deltaRotationMatrix = mat2(\n\tvec2(cosMaxRot, -sinMaxROt),\n\tvec2(sinMaxROt, cosMaxRot)\n );\n \n // calculate starting offset, as the smallest step\n vec2 offset_uv = vec2(1.0, 0.0) * (radius /float(steps));\n\n //randomize angle\n vec3 sampleNoise\t= rand3(uv * noiseScale);\n sampleNoise.xy\t = sampleNoise.xy * 2.0 - vec2(1.0);\n mat2 rotationMatrix = mat2(vec2(sampleNoise.x, -sampleNoise.y), \n\t\t\t\t\t\t\t vec2(sampleNoise.y, sampleNoise.x));\n \n // apply a random rotation to the base step vector\n offset_uv = rotationMatrix * offset_uv;\n \n float jitter = sampleNoise.z;\n float occlusion = 0.0;\n \n for (int i = 0; i < samplig_directions; ++i) {\n\t// incrementally rotate sample direction\n\toffset_uv = deltaRotationMatrix * offset_uv;\n\tfloat oldAngle = angleBias;\n\tfor (int j = 0; j < steps; ++j) {\n\t //add jitter & distance to offset UV\n\t vec2 sample_uv\t = uv + (jitter + float(j)) * offset_uv;\n\t vec3 s_point\t = vec3(sample_uv*2.0 - 1.0, $in(sample_uv)*$depth_scale);\n\t vec3 sample_tan = (s_point - c_point); //not sure if correct, but looks ok\n\t // 90 deg - (angle between normal from current point & sampled tangent)\n\t //https://math.stackexchange.com/questions/654315/how-to-convert-a-dot-product-of-two-vectors-to-the-angle-between-the-vectors\n\t float gamma = 1.57079632679 - acos(dot(c_normal, normalize(sample_tan)));\n\t \n\t if (gamma > oldAngle) {\n\t\tfloat value = sin(gamma) - sin(oldAngle);\n\t\tfloat attenuation = clamp(1.0 - pow(length(sample_tan.xy)/radius, 2.0), 0.0, 1.0);\n\t\tocclusion += attenuation * value;\n\t\t//occlusion += value;\n\t\toldAngle = gamma;\n\t }\n\t}\n }\n \n occlusion = 1.0 - occlusion / float(samplig_directions);\n return clamp(pow(occlusion, 1.0 + intensity), 0.0, 1.0);\n}", + "longdesc": "A node that generates several images from a tileable voronoi noise", + "name": "HBAO", + "outputs": [ + { + "f": "$(name)_hbao($uv,$radius, $angleBiasDeg, $intensity, vec2(16.0,16.0))", + "longdesc": "A color pattern that assigns a random color to each cell", + "shortdesc": "Random color", + "type": "f" + } + ], + "parameters": [ + { + "control": "None", + "default": 0.01, + "label": "Radius", + "longdesc": "The scale along the X axis", + "max": 1, + "min": 0, + "name": "radius", + "shortdesc": "Scale.x", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 30, + "label": "Angle Bias", + "longdesc": "Angle bias for AO", + "max": 90, + "min": 0, + "name": "angleBiasDeg", + "shortdesc": "Angle Bias", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 0.2, + "label": "Intensity", + "longdesc": "Change intensity of AO", + "max": 5, + "min": 0, + "name": "intensity", + "shortdesc": "Intensity", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 1, + "label": "Depth Scale", + "longdesc": "Lineary scales depth values afecting cacluated normals & tangents", + "max": 1, + "min": 0, + "name": "depth_scale", + "shortdesc": "Depth Scale", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 4, + "label": "Steps", + "longdesc": "Steps in given direction per ray", + "max": 12, + "min": 1, + "name": "quality", + "shortdesc": "Quality", + "step": 1, + "type": "float" + } + ], + "shortdesc": "Voronoi Noise" + }, + "type": "shader" + }, + { + "name": "gen_inputs", + "node_position": { + "x": -1338.030762, + "y": -788.080872 + }, + "parameters": { + + }, + "ports": [ + { + "group_size": 0, + "longdesc": "Greyscale heightmap", + "name": "input", + "shortdesc": "Input", + "type": "f" + } + ], + "seed": 43798, + "type": "ios" + }, + { + "name": "gen_outputs", + "node_position": { + "x": -902.684204, + "y": -327.282288 + }, + "parameters": { + + }, + "ports": [ + { + "group_size": 0, + "longdesc": "", + "name": "port0", + "shortdesc": "AO", + "type": "f" + } + ], + "seed": 42623, + "type": "ios" + }, + { + "name": "gen_parameters", + "node_position": { + "x": -1488.979004, + "y": -561.71167 + }, + "parameters": { + "param0": 10, + "param1": 0.1, + "param2": 15, + "param3": 0.08, + "param4": 4, + "param5": 2 + }, + "seed": 58911, + "type": "remote", + "widgets": [ + { + "label": "Size", + "linked_widgets": [ + { + "node": "voronoi_2", + "widget": "size" + }, + { + "node": "buffer_2", + "widget": "size" + }, + { + "node": "buffer_5", + "widget": "size" + }, + { + "node": "buffer_7", + "widget": "size" + } + ], + "name": "param0", + "shortdesc": "Size", + "type": "linked_control" + }, + { + "label": "Radius", + "linked_widgets": [ + { + "node": "voronoi_3", + "widget": "radius" + } + ], + "longdesc": "Affected radius of point in UV size", + "name": "param1", + "shortdesc": "Radius", + "type": "linked_control" + }, + { + "label": "Angle Bias", + "linked_widgets": [ + { + "node": "voronoi_3", + "widget": "angleBiasDeg" + } + ], + "longdesc": "Minimum angle on heightmap for AO to occur. Angle is calculated in UV space, where depth (grayscale input) is scaled by \"Depth Scale\" parameter", + "name": "param2", + "shortdesc": "Angle bias", + "type": "linked_control" + }, + { + "label": "Depth Scale", + "linked_widgets": [ + { + "node": "voronoi_3", + "widget": "depth_scale" + } + ], + "longdesc": "Lineary scales depth values afecting cacluated normals & tangents", + "name": "param3", + "shortdesc": "Depth Scale", + "type": "linked_control" + }, + { + "label": "Quality", + "linked_widgets": [ + { + "node": "voronoi_3", + "widget": "quality" + } + ], + "longdesc": "Number of steps per direction sampling", + "name": "param4", + "shortdesc": "Quality", + "type": "linked_control" + }, + { + "label": "Intensity", + "linked_widgets": [ + { + "node": "voronoi_3", + "widget": "intensity" + } + ], + "longdesc": "Change intensity of calculated AO", + "name": "param5", + "shortdesc": "Intensity", + "type": "linked_control" + } + ] + }, + { + "name": "voronoi_2", + "node_position": { + "x": -710.111145, + "y": -596.459534 + }, + "parameters": { + "ksigma": 4, + "sigma": 3, + "size": 10, + "threshold": 0.7 + }, + "seed": 38722, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "function": true, + "label": "", + "name": "in", + "type": "rgba" + } + ], + "instance": "//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n// Copyright (c) 2018-2019 Michele Morrone\n// All rights reserved.\n//\n// https://michelemorrone.eu - https://BrutPitt.com\n//\n// me@michelemorrone.eu - brutpitt@gmail.com\n// twitter: @BrutPitt - github: BrutPitt\n// \n// https://github.com/BrutPitt/glslSmartDeNoise/\n//\n// This software is distributed under the terms of the BSD 2-Clause license\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n// smartDeNoise - parameters\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\n// sampler2D tex\t - sampler image / texture\n// vec2 uv\t\t - actual fragment coord\n// float sigma > 0 - sigma Standard Deviation\n// float kSigma >= 0 - sigma coefficient \n//\t kSigma * sigma --> radius of the circular kernel\n// float threshold - edge sharpening threshold \nvec4 $(name)_smartDeNoise(vec2 uv, float sigma, float kSigma, float threshold)\n{\n\tfloat INV_SQRT_OF_2PI = 0.39894228040143267793994605993439; // 1.0/SQRT_OF_2PI\n\tfloat INV_PI = 0.31830988618379067153776752674503;\n\tfloat radius = round(kSigma*sigma);\n\tfloat radQ = radius * radius;\n\n\tfloat invSigmaQx2 = .5 / (sigma * sigma);\t // 1.0 / (sigma^2 * 2.0)\n\tfloat invSigmaQx2PI = INV_PI * invSigmaQx2;\t// 1/(2 * PI * sigma^2)\n\n\tfloat invThresholdSqx2 = .5 / (threshold * threshold);\t // 1.0 / (sigma^2 * 2.0)\n\tfloat invThresholdSqrt2PI = INV_SQRT_OF_2PI / threshold; // 1.0 / (sqrt(2*PI) * sigma^2)\n\n\tvec4 centrPx = $in(uv); \n\n\tfloat zBuff = 0.0;\n\tvec4 aBuff = vec4(0.0);\n\tvec2 size = vec2($size, $size);\n\n\tvec2 d;\n\tfor (d.x=-radius; d.x <= radius; d.x++) {\n\t\tfloat pt = sqrt(radQ-d.x*d.x);\t // pt = yRadius: have circular trend\n\t\tfor (d.y=-pt; d.y <= pt; d.y++) {\n\t\t\tfloat blurFactor = exp( -dot(d , d) * invSigmaQx2 ) * invSigmaQx2PI;\n\n\t\t\tvec4 walkPx = $in(uv+d/size);\n\t\t\tvec4 dC = walkPx-centrPx;\n\t\t\tfloat deltaFactor = exp( -dot(dC, dC) * invThresholdSqx2) * invThresholdSqrt2PI * blurFactor;\n\n\t\t\tzBuff += deltaFactor;\n\t\t\taBuff += deltaFactor*walkPx;\n\t\t}\n\t}\n\treturn aBuff/zBuff;\n}", + "longdesc": "A node that generates several images from a tileable voronoi noise", + "name": "Denoiser", + "outputs": [ + { + "longdesc": "A color pattern that assigns a random color to each cell", + "rgba": "$(name)_smartDeNoise($uv, $sigma, $ksigma, $threshold)", + "shortdesc": "Random color", + "type": "rgba" + } + ], + "parameters": [ + { + "default": 10, + "first": 0, + "label": "size", + "last": 12, + "longdesc": "The scale along the X axis", + "name": "size", + "shortdesc": "Scale.x", + "type": "size" + }, + { + "control": "None", + "default": 0.5, + "label": "Sigma", + "max": 1, + "min": 0.005, + "name": "sigma", + "step": 0.1, + "type": "float" + }, + { + "control": "None", + "default": 0.5, + "label": "kSigma", + "max": 1, + "min": 0, + "name": "ksigma", + "step": 0.1, + "type": "float" + }, + { + "control": "None", + "default": 0.5, + "label": "threshold", + "max": 1, + "min": 0, + "name": "threshold", + "step": 0.1, + "type": "float" + } + ], + "shortdesc": "Voronoi Noise" + }, + "type": "shader" + }, + { + "name": "buffer_5", + "node_position": { + "x": -931.449646, + "y": -724.330017 + }, + "parameters": { + "size": 10 + }, + "seed": 6771, + "type": "buffer", + "version": 1 + }, + { + "name": "buffer_7", + "node_position": { + "x": -948.36377, + "y": -449.796295 + }, + "parameters": { + "size": 10 + }, + "seed": 16139, + "type": "buffer", + "version": 1 + }, + { + "name": "buffer_2", + "node_position": { + "x": -976.009644, + "y": -975.5 + }, + "parameters": { + "size": 10 + }, + "seed": 42465, + "type": "buffer", + "version": 1 + } + ], + "parameters": { + "param0": 10, + "param1": 0.1, + "param2": 15, + "param3": 0.08, + "param4": 4, + "param5": 2 + }, + "seed": 6741, + "shortdesc": "", + "type": "graph" + }, + { + "generic_size": 1, + "name": "blend2_3", + "node_position": { + "x": 1737.70166, + "y": -221.297119 + }, + "parameters": { + "amount1": 1, + "blend_type1": 2 + }, + "seed_int": 0, + "type": "blend2" + } + ], + "parameters": { + + }, + "seed_int": 0, + "shortdesc": "", + "type": "graph" +} \ No newline at end of file diff --git a/experimental/BinbunVFX/shared/texture/cracks.ptex.mmcr b/experimental/BinbunVFX/shared/texture/cracks.ptex.mmcr new file mode 100644 index 0000000..b900188 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/cracks.ptex.mmcr @@ -0,0 +1 @@ +{"name":"511","type":"graph","parameters":{},"node_position":{"x":0,"y":0},"seed_int":0,"label":"Graph","shortdesc":"","longdesc":"","nodes":[{"name":"Material","type":"material","parameters":{"albedo_color":{"type":"Color","r":1,"g":1,"b":1,"a":1},"metallic":0,"roughness":1,"emission_energy":0,"normal":1,"ao":1,"depth_scale":0.7,"flags_transparent":false,"sss":0,"size":11},"node_position":{"x":2029,"y":-92},"seed_int":0,"export_paths":{}},{"name":"voronoi2","type":"voronoi2","parameters":{"scale_x":8,"scale_y":8,"stretch_x":1,"stretch_y":1,"intensity":1,"randomness":0.85},"node_position":{"x":-2174,"y":335},"seed_int":1884072448},{"name":"voronoi2_2","type":"voronoi2","parameters":{"scale_x":6,"scale_y":6,"stretch_x":1,"stretch_y":1,"intensity":1,"randomness":1},"node_position":{"x":-2185.340332,"y":576.901062},"seed_int":190614896},{"name":"math_2","type":"math","parameters":{"op":2,"default_in1":0,"default_in2":0,"clamp":false},"node_position":{"x":-1422.340332,"y":488.901062},"seed_int":0},{"name":"sharpen","type":"sharpen","parameters":{"size":5},"node_position":{"x":-292.340332,"y":358.901062},"seed_int":0},{"name":"radial_gradient","type":"radial_gradient","parameters":{"repeat":1,"gradient":{"type":"Gradient","points":[{"pos":0.400481,"r":1,"g":1,"b":1,"a":1},{"pos":0.718311,"r":0,"g":0,"b":0,"a":1}],"interpolation":1}},"node_position":{"x":-888.340332,"y":141.901062},"seed_int":0},{"name":"math_3","type":"math","parameters":{"op":2,"default_in1":0,"default_in2":3,"clamp":true},"node_position":{"x":-582.340332,"y":299.901062},"seed_int":0},{"name":"tones_step","type":"tones_step","parameters":{"value":0.15,"width":0.28,"invert":false},"node_position":{"x":141.659668,"y":136.901062},"seed_int":0},{"name":"math","type":"math","parameters":{"op":6,"default_in1":0,"default_in2":2,"clamp":false},"node_position":{"x":-133.678223,"y":139.390686},"seed_int":0},{"name":"blend2","type":"blend2","parameters":{"blend_type1":0,"amount1":0.71},"node_position":{"x":877.70166,"y":-140.297119},"seed_int":0,"generic_size":1},{"name":"uniform","type":"uniform","parameters":{"color":{"type":"Color","r":0.239216,"g":0.239216,"b":0.239216,"a":0}},"node_position":{"x":526.70166,"y":-241.297119},"seed_int":0},{"name":"uniform_2","type":"uniform","parameters":{"color":{"type":"Color","r":0.183594,"g":0.183594,"b":0.183594,"a":1}},"node_position":{"x":521.20166,"y":-148.297119},"seed_int":0},{"name":"uniform_3","type":"uniform","parameters":{"color":{"type":"Color","r":0.042969,"g":0.042969,"b":0.042969,"a":1}},"node_position":{"x":949.20166,"y":86.702881},"seed_int":0},{"name":"tones_step_2","type":"tones_step","parameters":{"value":0.15,"width":0.28,"invert":false},"node_position":{"x":481.70166,"y":-53.29715},"seed_int":0},{"name":"normal_map2","type":"normal_map2","parameters":{"param2":0,"size":11,"strength":-1,"buffer":1},"node_position":{"x":1555.70166,"y":264.702881},"seed_int":0},{"name":"blend2_2","type":"blend2","parameters":{"blend_type1":0,"amount1":1},"node_position":{"x":1227.70166,"y":97.702881},"seed_int":0,"generic_size":1},{"name":"math_4","type":"math","parameters":{"op":6,"default_in1":0,"default_in2":0.9,"clamp":false},"node_position":{"x":999.70166,"y":342.702881},"seed_int":0},{"name":"fast_blur","type":"fast_blur","parameters":{"param0":11,"param1":4,"param2":1,"param3":1},"node_position":{"x":393.70166,"y":333.702881},"seed_int":0},{"name":"graph_6","type":"graph","parameters":{"param0":10,"param1":0.1,"param2":15,"param3":0.08,"param4":4,"param5":2},"node_position":{"x":1400.70166,"y":-410.297119},"seed":6741,"label":"HBAO","shortdesc":"","longdesc":"","nodes":[{"name":"voronoi_3","type":"shader","parameters":{"radius":0.1,"angleBiasDeg":15,"intensity":2,"depth_scale":0.08,"quality":4},"node_position":{"x":-600.80072,"y":-894.601807},"seed":49449,"shader_model":{"code":"","global":"","inputs":[{"default":"0.0","function":true,"label":"","name":"in","type":"f"}],"instance":"//inspired by:\n//http://developer.download.nvidia.com/presentations/2008/SIGGRAPH/HBAO_SIG08b.pdf\n//https://gist.github.com/dotModded/981206ae1f4e760b7348\n//https://github.com/scanberg/hbao/blob/master/resources/shaders/hbao_full_frag.glsl\n//radius - radius of influence in screen space\n//angleBiasDeg - ~minimum angle for AO\n//intensity - increase strength of caclulated AO\n//noiseScale - for randomization values\nfloat $(name)_hbao(vec2 uv, float radius, float angleBiasDeg, float intensity, vec2 noiseScale) {\n int samplig_directions = 8;\n int steps = int($quality);\n\n float angleBias = 0.0174532925 * angleBiasDeg;\n\n vec3 c_point = vec3(uv*2.0 - 1.0, $in(uv)*$depth_scale);\n //fun with dfdx & dfdy - https://community.khronos.org/t/getting-the-normal-with-dfdx-and-dfdy/70177\n vec3 c_normal = normalize(cross(dFdx(c_point), dFdy(c_point)));\n\n\n float cosMaxRot = cos(6.28318530718 / float(samplig_directions));\n float sinMaxROt = sin(6.28318530718 / float(samplig_directions));\n \n // it should be faster than standard rotation in each iteartion\n mat2 deltaRotationMatrix = mat2(\n\tvec2(cosMaxRot, -sinMaxROt),\n\tvec2(sinMaxROt, cosMaxRot)\n );\n \n // calculate starting offset, as the smallest step\n vec2 offset_uv = vec2(1.0, 0.0) * (radius /float(steps));\n\n //randomize angle\n vec3 sampleNoise\t= rand3(uv * noiseScale);\n sampleNoise.xy\t = sampleNoise.xy * 2.0 - vec2(1.0);\n mat2 rotationMatrix = mat2(vec2(sampleNoise.x, -sampleNoise.y), \n\t\t\t\t\t\t\t vec2(sampleNoise.y, sampleNoise.x));\n \n // apply a random rotation to the base step vector\n offset_uv = rotationMatrix * offset_uv;\n \n float jitter = sampleNoise.z;\n float occlusion = 0.0;\n \n for (int i = 0; i < samplig_directions; ++i) {\n\t// incrementally rotate sample direction\n\toffset_uv = deltaRotationMatrix * offset_uv;\n\tfloat oldAngle = angleBias;\n\tfor (int j = 0; j < steps; ++j) {\n\t //add jitter & distance to offset UV\n\t vec2 sample_uv\t = uv + (jitter + float(j)) * offset_uv;\n\t vec3 s_point\t = vec3(sample_uv*2.0 - 1.0, $in(sample_uv)*$depth_scale);\n\t vec3 sample_tan = (s_point - c_point); //not sure if correct, but looks ok\n\t // 90 deg - (angle between normal from current point & sampled tangent)\n\t //https://math.stackexchange.com/questions/654315/how-to-convert-a-dot-product-of-two-vectors-to-the-angle-between-the-vectors\n\t float gamma = 1.57079632679 - acos(dot(c_normal, normalize(sample_tan)));\n\t \n\t if (gamma > oldAngle) {\n\t\tfloat value = sin(gamma) - sin(oldAngle);\n\t\tfloat attenuation = clamp(1.0 - pow(length(sample_tan.xy)/radius, 2.0), 0.0, 1.0);\n\t\tocclusion += attenuation * value;\n\t\t//occlusion += value;\n\t\toldAngle = gamma;\n\t }\n\t}\n }\n \n occlusion = 1.0 - occlusion / float(samplig_directions);\n return clamp(pow(occlusion, 1.0 + intensity), 0.0, 1.0);\n}","longdesc":"A node that generates several images from a tileable voronoi noise","name":"HBAO","outputs":[{"f":"$(name)_hbao($uv,$radius, $angleBiasDeg, $intensity, vec2(16.0,16.0))","longdesc":"A color pattern that assigns a random color to each cell","shortdesc":"Random color","type":"f"}],"parameters":[{"control":"None","default":0.01,"label":"Radius","longdesc":"The scale along the X axis","max":1,"min":0,"name":"radius","shortdesc":"Scale.x","step":0.01,"type":"float"},{"control":"None","default":30,"label":"Angle Bias","longdesc":"Angle bias for AO","max":90,"min":0,"name":"angleBiasDeg","shortdesc":"Angle Bias","step":1,"type":"float"},{"control":"None","default":0.2,"label":"Intensity","longdesc":"Change intensity of AO","max":5,"min":0,"name":"intensity","shortdesc":"Intensity","step":0.01,"type":"float"},{"control":"None","default":1,"label":"Depth Scale","longdesc":"Lineary scales depth values afecting cacluated normals & tangents","max":1,"min":0,"name":"depth_scale","shortdesc":"Depth Scale","step":0.01,"type":"float"},{"control":"None","default":4,"label":"Steps","longdesc":"Steps in given direction per ray","max":12,"min":1,"name":"quality","shortdesc":"Quality","step":1,"type":"float"}],"shortdesc":"Voronoi Noise"}},{"name":"gen_inputs","type":"ios","parameters":{},"node_position":{"x":-1338.030762,"y":-788.080872},"seed":43798,"ports":[{"group_size":0,"longdesc":"Greyscale heightmap","name":"input","shortdesc":"Input","type":"f"}]},{"name":"gen_outputs","type":"ios","parameters":{},"node_position":{"x":-902.684204,"y":-327.282288},"seed":42623,"ports":[{"group_size":0,"longdesc":"","name":"port0","shortdesc":"AO","type":"f"}]},{"name":"gen_parameters","type":"remote","parameters":{"param0":10,"param1":0.1,"param2":15,"param3":0.08,"param4":4,"param5":2},"node_position":{"x":-1488.979004,"y":-561.71167},"seed":58911,"widgets":[{"label":"Size","linked_widgets":[{"node":"voronoi_2","widget":"size"},{"node":"buffer_2","widget":"size"},{"node":"buffer_5","widget":"size"},{"node":"buffer_7","widget":"size"}],"name":"param0","shortdesc":"Size","type":"linked_control"},{"label":"Radius","linked_widgets":[{"node":"voronoi_3","widget":"radius"}],"longdesc":"Affected radius of point in UV size","name":"param1","shortdesc":"Radius","type":"linked_control"},{"label":"Angle Bias","linked_widgets":[{"node":"voronoi_3","widget":"angleBiasDeg"}],"longdesc":"Minimum angle on heightmap for AO to occur. Angle is calculated in UV space, where depth (grayscale input) is scaled by \"Depth Scale\" parameter","name":"param2","shortdesc":"Angle bias","type":"linked_control"},{"label":"Depth Scale","linked_widgets":[{"node":"voronoi_3","widget":"depth_scale"}],"longdesc":"Lineary scales depth values afecting cacluated normals & tangents","name":"param3","shortdesc":"Depth Scale","type":"linked_control"},{"label":"Quality","linked_widgets":[{"node":"voronoi_3","widget":"quality"}],"longdesc":"Number of steps per direction sampling","name":"param4","shortdesc":"Quality","type":"linked_control"},{"label":"Intensity","linked_widgets":[{"node":"voronoi_3","widget":"intensity"}],"longdesc":"Change intensity of calculated AO","name":"param5","shortdesc":"Intensity","type":"linked_control"}]},{"name":"voronoi_2","type":"shader","parameters":{"size":10,"sigma":3,"ksigma":4,"threshold":0.7},"node_position":{"x":-710.111145,"y":-596.459534},"seed":38722,"shader_model":{"code":"","global":"","inputs":[{"default":"0.0","function":true,"label":"","name":"in","type":"rgba"}],"instance":"//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n// Copyright (c) 2018-2019 Michele Morrone\n// All rights reserved.\n//\n// https://michelemorrone.eu - https://BrutPitt.com\n//\n// me@michelemorrone.eu - brutpitt@gmail.com\n// twitter: @BrutPitt - github: BrutPitt\n// \n// https://github.com/BrutPitt/glslSmartDeNoise/\n//\n// This software is distributed under the terms of the BSD 2-Clause license\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n// smartDeNoise - parameters\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\n// sampler2D tex\t - sampler image / texture\n// vec2 uv\t\t - actual fragment coord\n// float sigma > 0 - sigma Standard Deviation\n// float kSigma >= 0 - sigma coefficient \n//\t kSigma * sigma --> radius of the circular kernel\n// float threshold - edge sharpening threshold \nvec4 $(name)_smartDeNoise(vec2 uv, float sigma, float kSigma, float threshold)\n{\n\tfloat INV_SQRT_OF_2PI = 0.39894228040143267793994605993439; // 1.0/SQRT_OF_2PI\n\tfloat INV_PI = 0.31830988618379067153776752674503;\n\tfloat radius = round(kSigma*sigma);\n\tfloat radQ = radius * radius;\n\n\tfloat invSigmaQx2 = .5 / (sigma * sigma);\t // 1.0 / (sigma^2 * 2.0)\n\tfloat invSigmaQx2PI = INV_PI * invSigmaQx2;\t// 1/(2 * PI * sigma^2)\n\n\tfloat invThresholdSqx2 = .5 / (threshold * threshold);\t // 1.0 / (sigma^2 * 2.0)\n\tfloat invThresholdSqrt2PI = INV_SQRT_OF_2PI / threshold; // 1.0 / (sqrt(2*PI) * sigma^2)\n\n\tvec4 centrPx = $in(uv); \n\n\tfloat zBuff = 0.0;\n\tvec4 aBuff = vec4(0.0);\n\tvec2 size = vec2($size, $size);\n\n\tvec2 d;\n\tfor (d.x=-radius; d.x <= radius; d.x++) {\n\t\tfloat pt = sqrt(radQ-d.x*d.x);\t // pt = yRadius: have circular trend\n\t\tfor (d.y=-pt; d.y <= pt; d.y++) {\n\t\t\tfloat blurFactor = exp( -dot(d , d) * invSigmaQx2 ) * invSigmaQx2PI;\n\n\t\t\tvec4 walkPx = $in(uv+d/size);\n\t\t\tvec4 dC = walkPx-centrPx;\n\t\t\tfloat deltaFactor = exp( -dot(dC, dC) * invThresholdSqx2) * invThresholdSqrt2PI * blurFactor;\n\n\t\t\tzBuff += deltaFactor;\n\t\t\taBuff += deltaFactor*walkPx;\n\t\t}\n\t}\n\treturn aBuff/zBuff;\n}","longdesc":"A node that generates several images from a tileable voronoi noise","name":"Denoiser","outputs":[{"longdesc":"A color pattern that assigns a random color to each cell","rgba":"$(name)_smartDeNoise($uv, $sigma, $ksigma, $threshold)","shortdesc":"Random color","type":"rgba"}],"parameters":[{"default":10,"first":0,"label":"size","last":12,"longdesc":"The scale along the X axis","name":"size","shortdesc":"Scale.x","type":"size"},{"control":"None","default":0.5,"label":"Sigma","max":1,"min":0.005,"name":"sigma","step":0.1,"type":"float"},{"control":"None","default":0.5,"label":"kSigma","max":1,"min":0,"name":"ksigma","step":0.1,"type":"float"},{"control":"None","default":0.5,"label":"threshold","max":1,"min":0,"name":"threshold","step":0.1,"type":"float"}],"shortdesc":"Voronoi Noise"}},{"name":"buffer_5","type":"buffer","parameters":{"size":10},"node_position":{"x":-931.449646,"y":-724.330017},"seed":6771,"version":1},{"name":"buffer_7","type":"buffer","parameters":{"size":10},"node_position":{"x":-948.36377,"y":-449.796295},"seed":16139,"version":1},{"name":"buffer_2","type":"buffer","parameters":{"size":10},"node_position":{"x":-976.009644,"y":-975.5},"seed":42465,"version":1}],"connections":[{"from":"voronoi_3","from_port":0,"to":"buffer_5","to_port":0},{"from":"voronoi_2","from_port":0,"to":"buffer_7","to_port":0},{"from":"buffer_7","from_port":0,"to":"gen_outputs","to_port":0},{"from":"gen_inputs","from_port":0,"to":"buffer_2","to_port":0},{"from":"buffer_2","from_port":0,"to":"voronoi_3","to_port":0},{"from":"buffer_5","from_port":0,"to":"voronoi_2","to_port":0}]},{"name":"blend2_3","type":"blend2","parameters":{"blend_type1":2,"amount1":1},"node_position":{"x":1737.70166,"y":-221.297119},"seed_int":0,"generic_size":1}],"connections":[{"from":"voronoi2_2","from_port":0,"to":"math_2","to_port":1},{"from":"math_2","from_port":0,"to":"math_3","to_port":0},{"from":"radial_gradient","from_port":0,"to":"math_3","to_port":1},{"from":"math_3","from_port":0,"to":"sharpen","to_port":0},{"from":"voronoi2","from_port":0,"to":"math_2","to_port":0},{"from":"sharpen","from_port":0,"to":"math","to_port":0},{"from":"math","from_port":0,"to":"tones_step","to_port":0},{"from":"uniform","from_port":0,"to":"blend2","to_port":0},{"from":"uniform_2","from_port":0,"to":"blend2","to_port":1},{"from":"tones_step_2","from_port":0,"to":"blend2","to_port":2},{"from":"blend2","from_port":0,"to":"blend2_2","to_port":0},{"from":"uniform_3","from_port":0,"to":"blend2_2","to_port":1},{"from":"normal_map2","from_port":0,"to":"Material","to_port":4},{"from":"math_4","from_port":0,"to":"normal_map2","to_port":0},{"from":"tones_step","from_port":0,"to":"fast_blur","to_port":0},{"from":"fast_blur","from_port":0,"to":"tones_step_2","to_port":0},{"from":"fast_blur","from_port":0,"to":"math_4","to_port":0},{"from":"fast_blur","from_port":0,"to":"blend2_2","to_port":2},{"from":"fast_blur","from_port":0,"to":"graph_6","to_port":0},{"from":"blend2_2","from_port":0,"to":"blend2_3","to_port":0},{"from":"graph_6","from_port":0,"to":"blend2_3","to_port":1},{"from":"blend2_3","from_port":0,"to":"Material","to_port":0}]} \ No newline at end of file diff --git a/experimental/BinbunVFX/shared/texture/cracks_01.png b/experimental/BinbunVFX/shared/texture/cracks_01.png new file mode 100644 index 0000000..d7bf686 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/cracks_01.png differ diff --git a/experimental/BinbunVFX/shared/texture/cracks_01.png.import b/experimental/BinbunVFX/shared/texture/cracks_01.png.import new file mode 100644 index 0000000..bd83986 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/cracks_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://85fb3gemkbhp" +path="res://.godot/imported/cracks_01.png-b2883083b679e85a58b6b181da75c176.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/cracks_01.png" +dest_files=["res://.godot/imported/cracks_01.png-b2883083b679e85a58b6b181da75c176.ctex"] + +[params] + +compress/mode=0 +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=false +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=1 diff --git a/experimental/BinbunVFX/shared/texture/cracks_01.xcf b/experimental/BinbunVFX/shared/texture/cracks_01.xcf new file mode 100644 index 0000000..61b8391 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/cracks_01.xcf differ diff --git a/experimental/BinbunVFX/shared/texture/cracks_emission_01.png b/experimental/BinbunVFX/shared/texture/cracks_emission_01.png new file mode 100644 index 0000000..514b929 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/cracks_emission_01.png differ diff --git a/experimental/BinbunVFX/shared/texture/cracks_emission_01.png.import b/experimental/BinbunVFX/shared/texture/cracks_emission_01.png.import new file mode 100644 index 0000000..98fc050 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/cracks_emission_01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbxo5nkvy537a" +path="res://.godot/imported/cracks_emission_01.png-422f532765f31b10e8119ebefe47ff83.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" +dest_files=["res://.godot/imported/cracks_emission_01.png-422f532765f31b10e8119ebefe47ff83.ctex"] + +[params] + +compress/mode=0 +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=false +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=1 diff --git a/experimental/BinbunVFX/shared/texture/flare/flare.ptex b/experimental/BinbunVFX/shared/texture/flare/flare.ptex new file mode 100644 index 0000000..fe3e2c3 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flare/flare.ptex @@ -0,0 +1,1153 @@ +{ + "connections": [ + { + "from": "shape_2", + "from_port": 0, + "to": "warp", + "to_port": 1 + }, + { + "from": "shape", + "from_port": 0, + "to": "math", + "to_port": 0 + }, + { + "from": "math", + "from_port": 0, + "to": "warp", + "to_port": 0 + }, + { + "from": "warp", + "from_port": 0, + "to": "math_2", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "math_3", + "to_port": 0 + }, + { + "from": "math_3", + "from_port": 0, + "to": "math_2", + "to_port": 1 + }, + { + "from": "shape_3", + "from_port": 0, + "to": "warp_2", + "to_port": 1 + }, + { + "from": "math_2", + "from_port": 0, + "to": "scale", + "to_port": 0 + }, + { + "from": "scale", + "from_port": 0, + "to": "warp_2", + "to_port": 0 + }, + { + "from": "math_3", + "from_port": 0, + "to": "tones_map", + "to_port": 0 + }, + { + "from": "tones_map", + "from_port": 0, + "to": "scale_2", + "to_port": 0 + }, + { + "from": "warp_2", + "from_port": 0, + "to": "math_4", + "to_port": 0 + }, + { + "from": "scale_2", + "from_port": 0, + "to": "math_4", + "to_port": 1 + }, + { + "from": "warp_2", + "from_port": 0, + "to": "blend2", + "to_port": 0 + }, + { + "from": "math_4", + "from_port": 0, + "to": "blend2", + "to_port": 1 + }, + { + "from": "blend2", + "from_port": 0, + "to": "scale_3", + "to_port": 0 + }, + { + "from": "warp_2", + "from_port": 0, + "to": "blend2_2", + "to_port": 1 + }, + { + "from": "tones_map", + "from_port": 0, + "to": "scale_4", + "to_port": 0 + }, + { + "from": "scale_4", + "from_port": 0, + "to": "blend2_2", + "to_port": 0 + }, + { + "from": "scale_3", + "from_port": 0, + "to": "blend2_3", + "to_port": 0 + }, + { + "from": "math_4", + "from_port": 0, + "to": "blend2_3", + "to_port": 1 + }, + { + "from": "blend2_3", + "from_port": 0, + "to": "blend2_4", + "to_port": 0 + }, + { + "from": "blend2_2", + "from_port": 0, + "to": "scale_5", + "to_port": 0 + }, + { + "from": "scale_5", + "from_port": 0, + "to": "blend2_4", + "to_port": 1 + }, + { + "from": "math_3", + "from_port": 0, + "to": "tones_map_2", + "to_port": 0 + }, + { + "from": "tones_map_2", + "from_port": 0, + "to": "fast_blur", + "to_port": 0 + }, + { + "from": "fast_blur", + "from_port": 0, + "to": "math_6", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "invert", + "to_port": 0 + }, + { + "from": "invert", + "from_port": 0, + "to": "tones_map_3", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "tones_map_4", + "to_port": 0 + }, + { + "from": "tones_map_4", + "from_port": 0, + "to": "math_8", + "to_port": 0 + }, + { + "from": "math_8", + "from_port": 0, + "to": "math_7", + "to_port": 1 + }, + { + "from": "tones_map_3", + "from_port": 0, + "to": "math_9", + "to_port": 0 + }, + { + "from": "math_9", + "from_port": 0, + "to": "math_7", + "to_port": 0 + }, + { + "from": "blend2_4", + "from_port": 0, + "to": "math_5", + "to_port": 0 + }, + { + "from": "math_7", + "from_port": 0, + "to": "tones_map_5", + "to_port": 0 + }, + { + "from": "tones_map_5", + "from_port": 0, + "to": "math_5", + "to_port": 1 + }, + { + "from": "math_7", + "from_port": 0, + "to": "scale_6", + "to_port": 0 + }, + { + "from": "scale_6", + "from_port": 0, + "to": "math_11", + "to_port": 0 + }, + { + "from": "math_11", + "from_port": 0, + "to": "blend2_5", + "to_port": 0 + }, + { + "from": "math_5", + "from_port": 0, + "to": "blend2_5", + "to_port": 1 + }, + { + "from": "math_7", + "from_port": 0, + "to": "scale_7", + "to_port": 0 + }, + { + "from": "scale_7", + "from_port": 0, + "to": "blend2_6", + "to_port": 0 + }, + { + "from": "shape_2", + "from_port": 0, + "to": "blend2_6", + "to_port": 1 + }, + { + "from": "blend2_5", + "from_port": 0, + "to": "blend2_7", + "to_port": 0 + }, + { + "from": "blend2_6", + "from_port": 0, + "to": "blend2_7", + "to_port": 1 + }, + { + "from": "blend2_6", + "from_port": 0, + "to": "scale_8", + "to_port": 0 + }, + { + "from": "scale_8", + "from_port": 0, + "to": "math_10", + "to_port": 0 + }, + { + "from": "math_10", + "from_port": 0, + "to": "rotate", + "to_port": 0 + }, + { + "from": "blend2_6", + "from_port": 0, + "to": "blend2_8", + "to_port": 0 + }, + { + "from": "rotate", + "from_port": 0, + "to": "blend2_8", + "to_port": 1 + }, + { + "from": "blend2_8", + "from_port": 0, + "to": "export", + "to_port": 0 + }, + { + "from": "blend2_7", + "from_port": 0, + "to": "export_2", + "to_port": 0 + }, + { + "from": "scale_3", + "from_port": 0, + "to": "math_12", + "to_port": 0 + }, + { + "from": "math_12", + "from_port": 0, + "to": "fast_blur_2", + "to_port": 0 + }, + { + "from": "fast_blur_2", + "from_port": 0, + "to": "blend2_9", + "to_port": 1 + }, + { + "from": "blend2_8", + "from_port": 0, + "to": "scale_9", + "to_port": 0 + }, + { + "from": "scale_9", + "from_port": 0, + "to": "blend2_9", + "to_port": 0 + }, + { + "from": "blend2_9", + "from_port": 0, + "to": "export_3", + "to_port": 0 + }, + { + "from": "scale_9", + "from_port": 0, + "to": "blend2_10", + "to_port": 0 + }, + { + "from": "fast_blur_2", + "from_port": 0, + "to": "blend2_10", + "to_port": 1 + }, + { + "from": "blend2_10", + "from_port": 0, + "to": "export_4", + "to_port": 0 + } + ], + "label": "Graph", + "longdesc": "", + "name": "@Node@867", + "node_position": { + "x": 0.0, + "y": 0.0 + }, + "nodes": [ + { + "export_paths": { + + }, + "name": "Material", + "node_position": { + "x": 2433.98120117188, + "y": 346.927673339844 + }, + "parameters": { + "albedo_color": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0, + "type": "Color" + }, + "ao": 1.0, + "depth_scale": 0.5, + "emission_energy": 1.0, + "flags_transparent": true, + "metallic": 0.0, + "normal": 1.0, + "roughness": 1.0, + "size": 11, + "sss": 1.0 + }, + "seed_int": 0, + "type": "material" + }, + { + "name": "shape", + "node_position": { + "x": -938.0, + "y": -9.0 + }, + "parameters": { + "edge": 1.0, + "radius": 0.9, + "shape": 0.0, + "sides": 2.0 + }, + "seed_int": 0, + "type": "shape" + }, + { + "name": "shape_2", + "node_position": { + "x": -672.0, + "y": -257.0 + }, + "parameters": { + "edge": 0.6, + "radius": 0.42, + "shape": 3.0, + "sides": 5.0 + }, + "seed_int": 0, + "type": "shape" + }, + { + "generic_size": 1, + "name": "warp", + "node_position": { + "x": -456.0, + "y": -124.0 + }, + "parameters": { + "amount": 0.07, + "eps": 0.125, + "mode": 0 + }, + "seed_int": 0, + "type": "warp" + }, + { + "name": "math", + "node_position": { + "x": -772.0, + "y": -60.0 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 20.0, + "op": 17 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "math_2", + "node_position": { + "x": -242.0, + "y": -18.0 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "math_3", + "node_position": { + "x": -678.5, + "y": 123.5 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 6.0, + "op": 17.0 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "shape_3", + "node_position": { + "x": -208.0, + "y": 453.0 + }, + "parameters": { + "edge": 1.0, + "radius": 0.52, + "shape": 4.0, + "sides": 19.0 + }, + "seed_int": 0, + "type": "shape" + }, + { + "generic_size": 1, + "name": "warp_2", + "node_position": { + "x": 254.0, + "y": 56.5 + }, + "parameters": { + "amount": 0.02, + "eps": 0.065, + "mode": 0.0 + }, + "seed_int": 0, + "type": "warp" + }, + { + "generic_size": 1, + "name": "scale", + "node_position": { + "x": -21.0, + "y": -135.0 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.8, + "scale_y": 0.8 + }, + "seed_int": 0, + "type": "scale" + }, + { + "generic_size": 1, + "name": "tones_map", + "node_position": { + "x": -255.0, + "y": 152.0 + }, + "parameters": { + "in_max": 1.0, + "in_min": 0.96, + "out_max": 1.0, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "generic_size": 1, + "name": "scale_2", + "node_position": { + "x": 183.5, + "y": 300.5 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.9, + "scale_y": 0.9 + }, + "seed_int": 0, + "type": "scale" + }, + { + "name": "math_4", + "node_position": { + "x": 551.0, + "y": 115.0 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 0 + }, + "seed_int": 0, + "type": "math" + }, + { + "generic_size": 1, + "name": "blend2", + "node_position": { + "x": 780.0, + "y": -103.0 + }, + "parameters": { + "amount1": 0.5, + "blend_type1": 16 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "scale_3", + "node_position": { + "x": 1122.0, + "y": -223.0 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 1.2, + "scale_y": 1.2 + }, + "seed_int": 0, + "type": "scale" + }, + { + "generic_size": 1, + "name": "blend2_2", + "node_position": { + "x": 859.0, + "y": 241.5 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 12 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "scale_4", + "node_position": { + "x": 308.5, + "y": 467.5 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.85, + "scale_y": 0.85 + }, + "seed_int": 0, + "type": "scale" + }, + { + "generic_size": 1, + "name": "blend2_3", + "node_position": { + "x": 1357.46411132812, + "y": -83.0 + }, + "parameters": { + "amount1": 0.9, + "blend_type1": 9 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "blend2_4", + "node_position": { + "x": 1708.61791992188, + "y": 92.5 + }, + "parameters": { + "amount1": 0.94, + "blend_type1": 9.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "scale_5", + "node_position": { + "x": 1302.5, + "y": 259.5 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.85, + "scale_y": 0.85 + }, + "seed_int": 0, + "type": "scale" + }, + { + "generic_size": 1, + "name": "tones_map_2", + "node_position": { + "x": 1150.259765625, + "y": 477.901611328125 + }, + "parameters": { + "in_max": 1.0, + "in_min": 0.0, + "out_max": 1.0, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "name": "math_6", + "node_position": { + "x": 1849.81127929688, + "y": 458.743011474609 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 1.0, + "op": 2.0 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "fast_blur", + "node_position": { + "x": 1446.85217285156, + "y": 491.756042480469 + }, + "parameters": { + "param0": 11.0, + "param1": 148.0, + "param2": 1.0, + "param3": 1.0 + }, + "seed_int": 0, + "type": "fast_blur" + }, + { + "name": "invert", + "node_position": { + "x": -668.099304199219, + "y": -602.473876953125 + }, + "parameters": { + + }, + "seed_int": 0, + "type": "invert" + }, + { + "generic_size": 1, + "name": "tones_map_3", + "node_position": { + "x": -505.397155761719, + "y": -657.381469726562 + }, + "parameters": { + "in_max": 1.0, + "in_min": 0.17, + "out_max": 1.0, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "generic_size": 1, + "name": "tones_map_4", + "node_position": { + "x": -476.848419189453, + "y": -395.651153564453 + }, + "parameters": { + "in_max": 0.08, + "in_min": 0.0, + "out_max": 1.0, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "name": "math_7", + "node_position": { + "x": 256.701721191406, + "y": -520.19140625 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "math_8", + "node_position": { + "x": -225.96955871582, + "y": -460.70458984375 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 0.0 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "math_9", + "node_position": { + "x": -261.169555664062, + "y": -703.804626464844 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 3.0, + "op": 6 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "math_5", + "node_position": { + "x": 2065.93310546875, + "y": -336.539520263672 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "generic_size": 1, + "name": "tones_map_5", + "node_position": { + "x": 669.89697265625, + "y": -752.800109863281 + }, + "parameters": { + "in_max": 1.0, + "in_min": 0.16, + "out_max": 1.0, + "out_min": 0.42 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "generic_size": 1, + "name": "scale_6", + "node_position": { + "x": 1026.65661621094, + "y": -524.107604980469 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.9, + "scale_y": 0.9 + }, + "seed_int": 0, + "type": "scale" + }, + { + "name": "math_11", + "node_position": { + "x": 1648.48779296875, + "y": -784.789306640625 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 1.0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "generic_size": 1, + "name": "blend2_5", + "node_position": { + "x": 2353.13427734375, + "y": -663.288879394531 + }, + "parameters": { + "amount1": 0.5, + "blend_type1": 3 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "scale_7", + "node_position": { + "x": 516.241394042969, + "y": -1154.60974121094 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 1.1, + "scale_y": 1.1 + }, + "seed_int": 0, + "type": "scale" + }, + { + "generic_size": 1, + "name": "blend2_6", + "node_position": { + "x": 917.846435546875, + "y": -1198.91723632812 + }, + "parameters": { + "amount1": 0.32, + "blend_type1": 14 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "blend2_7", + "node_position": { + "x": 2727.4951171875, + "y": -896.712585449219 + }, + "parameters": { + "amount1": 0.5, + "blend_type1": 3.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "scale_8", + "node_position": { + "x": 1285.72302246094, + "y": -1573.34265136719 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.7, + "scale_y": 0.7 + }, + "seed_int": 0, + "type": "scale" + }, + { + "name": "math_10", + "node_position": { + "x": 1511.83215332031, + "y": -1665.67260742188 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 0.7, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "generic_size": 1, + "name": "rotate", + "node_position": { + "x": 1724.41943359375, + "y": -1670.50402832031 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "rotate": 90.0 + }, + "seed_int": 0, + "type": "rotate" + }, + { + "generic_size": 1, + "name": "blend2_8", + "node_position": { + "x": 2125.4365234375, + "y": -1455.69555664062 + }, + "parameters": { + "amount1": 0.6, + "blend_type1": 3 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "export", + "node_position": { + "x": 2903.28662109375, + "y": -1691.53381347656 + }, + "parameters": { + "format": 0, + "size": 10.0, + "suffix": "01" + }, + "seed_int": 0, + "type": "export" + }, + { + "name": "export_2", + "node_position": { + "x": 3292.69360351562, + "y": -1284.27294921875 + }, + "parameters": { + "format": 0.0, + "size": 10.0, + "suffix": "02" + }, + "seed_int": 0, + "type": "export" + }, + { + "generic_size": 1, + "name": "blend2_9", + "node_position": { + "x": 2554.17797851562, + "y": -1258.81176757812 + }, + "parameters": { + "amount1": 0.33, + "blend_type1": 13 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "math_12", + "node_position": { + "x": 1978.49584960938, + "y": -1219.08862304688 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 0.0 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "fast_blur_2", + "node_position": { + "x": 2247.4365234375, + "y": -1263.35852050781 + }, + "parameters": { + "param0": 11.0, + "param1": 31.0, + "param2": 1.0, + "param3": 1.0 + }, + "seed_int": 0, + "type": "fast_blur" + }, + { + "generic_size": 1, + "name": "scale_9", + "node_position": { + "x": 2316.93676757812, + "y": -1749.85864257812 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "scale_x": 0.9, + "scale_y": 0.9 + }, + "seed_int": 0, + "type": "scale" + }, + { + "name": "export_3", + "node_position": { + "x": 3088.43701171875, + "y": -1543.35852050781 + }, + "parameters": { + "format": 0.0, + "size": 10.0, + "suffix": "03" + }, + "seed_int": 0, + "type": "export" + }, + { + "name": "export_4", + "node_position": { + "x": 2958.43676757812, + "y": -1335.35852050781 + }, + "parameters": { + "format": 0.0, + "size": 10.0, + "suffix": "04" + }, + "seed_int": 0, + "type": "export" + }, + { + "generic_size": 1, + "name": "blend2_10", + "node_position": { + "x": 2592.43676757812, + "y": -1492.85852050781 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 11 + }, + "seed_int": 0, + "type": "blend2" + } + ], + "parameters": { + + }, + "seed_int": 0, + "shortdesc": "", + "type": "graph" +} \ No newline at end of file diff --git a/experimental/BinbunVFX/shared/texture/flare/flare_01.png b/experimental/BinbunVFX/shared/texture/flare/flare_01.png new file mode 100644 index 0000000..fa2e085 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flare/flare_01.png differ diff --git a/experimental/BinbunVFX/shared/texture/flare/flare_01.png.import b/experimental/BinbunVFX/shared/texture/flare/flare_01.png.import new file mode 100644 index 0000000..2fee130 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flare/flare_01.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hxi4xo7j57d7" +path.s3tc="res://.godot/imported/flare_01.png-998db80d842535967a4542ef99bc60fb.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flare/flare_01.png" +dest_files=["res://.godot/imported/flare_01.png-998db80d842535967a4542ef99bc60fb.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/experimental/BinbunVFX/shared/texture/flare/flare_02.png b/experimental/BinbunVFX/shared/texture/flare/flare_02.png new file mode 100644 index 0000000..6b4a07b Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flare/flare_02.png differ diff --git a/experimental/BinbunVFX/shared/texture/flare/flare_02.png.import b/experimental/BinbunVFX/shared/texture/flare/flare_02.png.import new file mode 100644 index 0000000..9994338 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flare/flare_02.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfvs2muk8b4ls" +path.s3tc="res://.godot/imported/flare_02.png-ba0ed870ef7eae70ba66322cae236a97.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flare/flare_02.png" +dest_files=["res://.godot/imported/flare_02.png-ba0ed870ef7eae70ba66322cae236a97.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/experimental/BinbunVFX/shared/texture/flare/flare_03.png b/experimental/BinbunVFX/shared/texture/flare/flare_03.png new file mode 100644 index 0000000..a7a8cd6 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flare/flare_03.png differ diff --git a/experimental/BinbunVFX/shared/texture/flare/flare_03.png.import b/experimental/BinbunVFX/shared/texture/flare/flare_03.png.import new file mode 100644 index 0000000..10c6870 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flare/flare_03.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxtojkguayub2" +path.s3tc="res://.godot/imported/flare_03.png-96332c1d1aa4bc5d6fff0fa81be47532.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flare/flare_03.png" +dest_files=["res://.godot/imported/flare_03.png-96332c1d1aa4bc5d6fff0fa81be47532.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/experimental/BinbunVFX/shared/texture/flare/flare_04.png b/experimental/BinbunVFX/shared/texture/flare/flare_04.png new file mode 100644 index 0000000..59e73fd Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flare/flare_04.png differ diff --git a/experimental/BinbunVFX/shared/texture/flare/flare_04.png.import b/experimental/BinbunVFX/shared/texture/flare/flare_04.png.import new file mode 100644 index 0000000..7fada84 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flare/flare_04.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6n72xg2cgxx2" +path.s3tc="res://.godot/imported/flare_04.png-d4bfa986ba6200a8f8fe47269ca582d5.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flare/flare_04.png" +dest_files=["res://.godot/imported/flare_04.png-d4bfa986ba6200a8f8fe47269ca582d5.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/experimental/BinbunVFX/shared/texture/flash/flash_01.png b/experimental/BinbunVFX/shared/texture/flash/flash_01.png new file mode 100644 index 0000000..1c1274a Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flash/flash_01.png differ diff --git a/experimental/BinbunVFX/shared/texture/flash/flash_01.png.import b/experimental/BinbunVFX/shared/texture/flash/flash_01.png.import new file mode 100644 index 0000000..c631797 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flash/flash_01.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2ahcfqaivla7" +path.s3tc="res://.godot/imported/flash_01.png-124ac486dfaee7dac9f6fa5ed84ea33e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flash/flash_01.png" +dest_files=["res://.godot/imported/flash_01.png-124ac486dfaee7dac9f6fa5ed84ea33e.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/experimental/BinbunVFX/shared/texture/flash/flash_02.png b/experimental/BinbunVFX/shared/texture/flash/flash_02.png new file mode 100644 index 0000000..8e43cbc Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flash/flash_02.png differ diff --git a/experimental/BinbunVFX/shared/texture/flash/flash_02.png.import b/experimental/BinbunVFX/shared/texture/flash/flash_02.png.import new file mode 100644 index 0000000..45d2b3a --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flash/flash_02.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjkuadylsfid1" +path.s3tc="res://.godot/imported/flash_02.png-17a4ad00a195fbe7dacad81bcf45261d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flash/flash_02.png" +dest_files=["res://.godot/imported/flash_02.png-17a4ad00a195fbe7dacad81bcf45261d.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/experimental/BinbunVFX/shared/texture/flash/flash_03.png b/experimental/BinbunVFX/shared/texture/flash/flash_03.png new file mode 100644 index 0000000..67ebc5b Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flash/flash_03.png differ diff --git a/experimental/BinbunVFX/shared/texture/flash/flash_03.png.import b/experimental/BinbunVFX/shared/texture/flash/flash_03.png.import new file mode 100644 index 0000000..9e07ef7 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flash/flash_03.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqqrfrrd5f7kq" +path.s3tc="res://.godot/imported/flash_03.png-c479df70ab6f702bab174d8991fc1227.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flash/flash_03.png" +dest_files=["res://.godot/imported/flash_03.png-c479df70ab6f702bab174d8991fc1227.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/experimental/BinbunVFX/shared/texture/flash/flash_04.png b/experimental/BinbunVFX/shared/texture/flash/flash_04.png new file mode 100644 index 0000000..30d5b75 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/flash/flash_04.png differ diff --git a/experimental/BinbunVFX/shared/texture/flash/flash_04.png.import b/experimental/BinbunVFX/shared/texture/flash/flash_04.png.import new file mode 100644 index 0000000..e98ea4d --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flash/flash_04.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://i6dlldk10la7" +path.s3tc="res://.godot/imported/flash_04.png-476effc01f47798e59f16f12db9f307c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/flash/flash_04.png" +dest_files=["res://.godot/imported/flash_04.png-476effc01f47798e59f16f12db9f307c.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/experimental/BinbunVFX/shared/texture/flashes.ptex b/experimental/BinbunVFX/shared/texture/flashes.ptex new file mode 100644 index 0000000..63736a0 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/flashes.ptex @@ -0,0 +1,749 @@ +{ + "connections": [ + { + "from": "voronoi2", + "from_port": 0, + "to": "tones_map", + "to_port": 0 + }, + { + "from": "tones_map", + "from_port": 0, + "to": "shape", + "to_port": 0 + }, + { + "from": "shape_2", + "from_port": 0, + "to": "math", + "to_port": 0 + }, + { + "from": "radial_gradient", + "from_port": 0, + "to": "math", + "to_port": 1 + }, + { + "from": "math", + "from_port": 0, + "to": "tones_map_3", + "to_port": 0 + }, + { + "from": "tones_map_3", + "from_port": 0, + "to": "blend2", + "to_port": 1 + }, + { + "from": "blend2", + "from_port": 0, + "to": "gaussian_blur", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "rotate", + "to_port": 0 + }, + { + "from": "rotate", + "from_port": 0, + "to": "blend2", + "to_port": 0 + }, + { + "from": "gaussian_blur", + "from_port": 0, + "to": "blend2_2", + "to_port": 0 + }, + { + "from": "radial_gradient", + "from_port": 0, + "to": "blend2_2", + "to_port": 1 + }, + { + "from": "blend2_2", + "from_port": 0, + "to": "Material", + "to_port": 0 + }, + { + "from": "blend2_2", + "from_port": 0, + "to": "export", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "transform2", + "to_port": 0 + }, + { + "from": "tones_map_3", + "from_port": 0, + "to": "transform2_2", + "to_port": 0 + }, + { + "from": "transform2_2", + "from_port": 0, + "to": "blend2_3", + "to_port": 0 + }, + { + "from": "transform2", + "from_port": 0, + "to": "blend2_3", + "to_port": 1 + }, + { + "from": "blend2_3", + "from_port": 0, + "to": "gaussian_blur_2", + "to_port": 0 + }, + { + "from": "radial_gradient", + "from_port": 0, + "to": "blend2_4", + "to_port": 1 + }, + { + "from": "gaussian_blur_2", + "from_port": 0, + "to": "blend2_4", + "to_port": 0 + }, + { + "from": "blend2_4", + "from_port": 0, + "to": "export_2", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "transform2_3", + "to_port": 0 + }, + { + "from": "tones_map_3", + "from_port": 0, + "to": "transform2_4", + "to_port": 0 + }, + { + "from": "transform2_4", + "from_port": 0, + "to": "blend2_5", + "to_port": 1 + }, + { + "from": "transform2_3", + "from_port": 0, + "to": "blend2_5", + "to_port": 0 + }, + { + "from": "blend2_5", + "from_port": 0, + "to": "gaussian_blur_3", + "to_port": 0 + }, + { + "from": "gaussian_blur_3", + "from_port": 0, + "to": "blend2_6", + "to_port": 0 + }, + { + "from": "blend2_5", + "from_port": 0, + "to": "blend2_6", + "to_port": 1 + }, + { + "from": "blend2_6", + "from_port": 0, + "to": "export_3", + "to_port": 0 + }, + { + "from": "shape", + "from_port": 0, + "to": "transform2_5", + "to_port": 0 + }, + { + "from": "tones_map_3", + "from_port": 0, + "to": "transform2_6", + "to_port": 0 + }, + { + "from": "transform2_6", + "from_port": 0, + "to": "blend2_7", + "to_port": 0 + }, + { + "from": "transform2_5", + "from_port": 0, + "to": "blend2_7", + "to_port": 1 + }, + { + "from": "blend2_7", + "from_port": 0, + "to": "gaussian_blur_4", + "to_port": 0 + }, + { + "from": "gaussian_blur_4", + "from_port": 0, + "to": "blend2_8", + "to_port": 0 + }, + { + "from": "radial_gradient", + "from_port": 0, + "to": "blend2_8", + "to_port": 1 + }, + { + "from": "blend2_8", + "from_port": 0, + "to": "export_4", + "to_port": 0 + } + ], + "label": "Graph", + "longdesc": "", + "name": "_Node_867", + "node_position": { + "x": 0.0, + "y": 0.0 + }, + "nodes": [ + { + "export_paths": { + + }, + "name": "Material", + "node_position": { + "x": 2525.98217773438, + "y": -766.519775390625 + }, + "parameters": { + "albedo_color": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0, + "type": "Color" + }, + "ao": 1.0, + "depth_scale": 0.5, + "emission_energy": 1.0, + "flags_transparent": true, + "metallic": 0.0, + "normal": 1.0, + "roughness": 1.0, + "size": 11.0, + "sss": 1.0 + }, + "seed_int": 0, + "type": "material" + }, + { + "name": "shape", + "node_position": { + "x": 623.377807617188, + "y": -679.47021484375 + }, + "parameters": { + "edge": 1.0, + "radius": 0.5, + "shape": 3.0, + "sides": 6.0 + }, + "seed_int": 0, + "type": "shape" + }, + { + "name": "voronoi2", + "node_position": { + "x": -388.564422607422, + "y": -823.6640625 + }, + "parameters": { + "intensity": 1.0, + "randomness": 0.85, + "scale_x": 8.0, + "scale_y": 8.0, + "stretch_x": 1.0, + "stretch_y": 1.0 + }, + "seed_int": 0, + "type": "voronoi2" + }, + { + "generic_size": 1, + "name": "tones_map", + "node_position": { + "x": 167.742294311523, + "y": -438.236206054688 + }, + "parameters": { + "in_max": 1.0, + "in_min": 0.0, + "out_max": 1.0, + "out_min": 0.77 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "name": "shape_2", + "node_position": { + "x": 175.742294311523, + "y": -1057.23645019531 + }, + "parameters": { + "edge": 1.0, + "radius": 0.38, + "shape": 4, + "sides": 6.0 + }, + "seed_int": 0, + "type": "shape" + }, + { + "name": "radial_gradient", + "node_position": { + "x": 129.742294311523, + "y": -1213.23645019531 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "pos": 0.0, + "r": 1.0 + }, + { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "pos": 0.709090909090909, + "r": 0.0 + } + ], + "type": "Gradient" + }, + "mirror": false, + "repeat": 1.0 + }, + "seed_int": 0, + "type": "radial_gradient" + }, + { + "name": "math", + "node_position": { + "x": 414.742309570312, + "y": -1118.23645019531 + }, + "parameters": { + "clamp": false, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "generic_size": 1, + "name": "blend2", + "node_position": { + "x": 1112.74255371094, + "y": -879.236328125 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 3 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "tones_map_3", + "node_position": { + "x": 725.742431640625, + "y": -1196.73645019531 + }, + "parameters": { + "in_max": 1.0, + "in_min": 0.0, + "out_max": 1.0, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "name": "gaussian_blur", + "node_position": { + "x": 1542.20935058594, + "y": -909.713989257812 + }, + "parameters": { + "param0": 11, + "param1": 20.0, + "param2": 0.0, + "param3": false + }, + "seed_int": 0, + "type": "gaussian_blur" + }, + { + "generic_size": 1, + "name": "rotate", + "node_position": { + "x": 734.724975585938, + "y": -347.548553466797 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "rotate": 51.755 + }, + "seed_int": 0, + "type": "rotate" + }, + { + "generic_size": 1, + "name": "blend2_2", + "node_position": { + "x": 1947.82641601562, + "y": -1093.6220703125 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 4 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "export", + "node_position": { + "x": 2406.81225585938, + "y": -1527.15307617188 + }, + "parameters": { + "format": 0, + "size": 10.0, + "suffix": "_01" + }, + "seed_int": 0, + "type": "export" + }, + { + "name": "export_2", + "node_position": { + "x": 2393.3330078125, + "y": -1347.80346679688 + }, + "parameters": { + "format": 0, + "size": 10.0, + "suffix": "_02" + }, + "seed_int": 0, + "type": "export" + }, + { + "generic_size": 1, + "name": "transform2", + "node_position": { + "x": 1210.50891113281, + "y": -1709.525390625 + }, + "parameters": { + "mode": 0.0, + "rotate": 28.7, + "scale_x": 0.8, + "scale_y": 0.6, + "translate_x": 0.0, + "translate_y": 0.0 + }, + "seed_int": 0, + "type": "transform2" + }, + { + "generic_size": 1, + "name": "transform2_2", + "node_position": { + "x": 1193.919921875, + "y": -1489.40747070312 + }, + "parameters": { + "mode": 0.0, + "rotate": -20.54, + "scale_x": 0.8, + "scale_y": 1.0, + "translate_x": 0.0, + "translate_y": 0.0 + }, + "seed_int": 0, + "type": "transform2" + }, + { + "generic_size": 1, + "name": "blend2_3", + "node_position": { + "x": 1514.20861816406, + "y": -1526.32409667969 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 3.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "gaussian_blur_2", + "node_position": { + "x": 1799.01965332031, + "y": -1752.37902832031 + }, + "parameters": { + "param0": 11.0, + "param1": 20.0, + "param2": 0.0, + "param3": false + }, + "seed_int": 0, + "type": "gaussian_blur" + }, + { + "generic_size": 1, + "name": "blend2_4", + "node_position": { + "x": 1914.25378417969, + "y": -1563.57373046875 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 4.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "generic_size": 1, + "name": "transform2_3", + "node_position": { + "x": 1294.08801269531, + "y": -2035.52844238281 + }, + "parameters": { + "mode": 0.0, + "rotate": -46.22, + "scale_x": 0.8, + "scale_y": 1.0, + "translate_x": 0.0, + "translate_y": 0.0 + }, + "seed_int": 0, + "type": "transform2" + }, + { + "generic_size": 1, + "name": "transform2_4", + "node_position": { + "x": 1312.63305664062, + "y": -2278.04370117188 + }, + "parameters": { + "mode": 0.0, + "rotate": 28.7, + "scale_x": 0.8, + "scale_y": 1.0, + "translate_x": 0.0, + "translate_y": 0.0 + }, + "seed_int": 0, + "type": "transform2" + }, + { + "generic_size": 1, + "name": "blend2_5", + "node_position": { + "x": 1648.654296875, + "y": -2108.50634765625 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 3.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "gaussian_blur_3", + "node_position": { + "x": 1873.33032226562, + "y": -2210.95288085938 + }, + "parameters": { + "param0": 11.0, + "param1": 20.0, + "param2": 0.0, + "param3": false + }, + "seed_int": 0, + "type": "gaussian_blur" + }, + { + "generic_size": 1, + "name": "blend2_6", + "node_position": { + "x": 2130.8310546875, + "y": -2087.10791015625 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 4.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "export_3", + "node_position": { + "x": 2473.35205078125, + "y": -1940.392578125 + }, + "parameters": { + "format": 0.0, + "size": 10.0, + "suffix": "_03" + }, + "seed_int": 0, + "type": "export" + }, + { + "name": "export_4", + "node_position": { + "x": 2494.75073242188, + "y": -2288.47314453125 + }, + "parameters": { + "format": 0.0, + "size": 10.0, + "suffix": "_04" + }, + "seed_int": 0, + "type": "export" + }, + { + "generic_size": 1, + "name": "transform2_5", + "node_position": { + "x": 1313.50415039062, + "y": -2789.62255859375 + }, + "parameters": { + "mode": 0.0, + "rotate": 28.7, + "scale_x": 0.4, + "scale_y": 0.7, + "translate_x": 0.0, + "translate_y": 0.0 + }, + "seed_int": 0, + "type": "transform2" + }, + { + "generic_size": 1, + "name": "transform2_6", + "node_position": { + "x": 1329.2802734375, + "y": -2568.99072265625 + }, + "parameters": { + "mode": 0.0, + "rotate": -46.22, + "scale_x": 0.8, + "scale_y": 1.0, + "translate_x": 0.0, + "translate_y": 0.0 + }, + "seed_int": 0, + "type": "transform2" + }, + { + "generic_size": 1, + "name": "blend2_7", + "node_position": { + "x": 1656.72607421875, + "y": -2713.31518554688 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 3.0 + }, + "seed_int": 0, + "type": "blend2" + }, + { + "name": "gaussian_blur_4", + "node_position": { + "x": 1871.41613769531, + "y": -2855.70532226562 + }, + "parameters": { + "param0": 11.0, + "param1": 20.0, + "param2": 0.0, + "param3": false + }, + "seed_int": 0, + "type": "gaussian_blur" + }, + { + "generic_size": 1, + "name": "blend2_8", + "node_position": { + "x": 2136.0498046875, + "y": -2721.87451171875 + }, + "parameters": { + "amount1": 1.0, + "blend_type1": 4.0 + }, + "seed_int": 0, + "type": "blend2" + } + ], + "parameters": { + + }, + "seed_int": 0, + "shortdesc": "", + "type": "graph" +} \ No newline at end of file diff --git a/experimental/BinbunVFX/shared/texture/placeholder.png b/experimental/BinbunVFX/shared/texture/placeholder.png new file mode 100644 index 0000000..3dd4b09 Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/placeholder.png differ diff --git a/experimental/BinbunVFX/shared/texture/placeholder.png.import b/experimental/BinbunVFX/shared/texture/placeholder.png.import new file mode 100644 index 0000000..5d79440 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/placeholder.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6p8bs6eksvr5" +path.s3tc="res://.godot/imported/placeholder.png-33566fb71d90ea39d1183bc75bc43eba.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://experimental/BinbunVFX/shared/texture/placeholder.png" +dest_files=["res://.godot/imported/placeholder.png-33566fb71d90ea39d1183bc75bc43eba.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/experimental/BinbunVFX/shared/texture/placeholder.xcf b/experimental/BinbunVFX/shared/texture/placeholder.xcf new file mode 100644 index 0000000..0a26b7d Binary files /dev/null and b/experimental/BinbunVFX/shared/texture/placeholder.xcf differ diff --git a/experimental/BinbunVFX/shared/texture/streak/streak.ptex b/experimental/BinbunVFX/shared/texture/streak/streak.ptex new file mode 100644 index 0000000..e743180 --- /dev/null +++ b/experimental/BinbunVFX/shared/texture/streak/streak.ptex @@ -0,0 +1,284 @@ +{ + "connections": [ + { + "from": "gradient_2", + "from_port": 0, + "to": "math", + "to_port": 1 + }, + { + "from": "sine_wave", + "from_port": 0, + "to": "rotate", + "to_port": 0 + }, + { + "from": "rotate", + "from_port": 0, + "to": "multi_warp", + "to_port": 0 + }, + { + "from": "crystal", + "from_port": 0, + "to": "multi_warp", + "to_port": 1 + }, + { + "from": "math", + "from_port": 0, + "to": "tones_map_2", + "to_port": 0 + }, + { + "from": "multi_warp", + "from_port": 0, + "to": "gaussian_blur", + "to_port": 0 + }, + { + "from": "gaussian_blur", + "from_port": 0, + "to": "tones_map", + "to_port": 0 + }, + { + "from": "tones_map", + "from_port": 0, + "to": "math", + "to_port": 0 + } + ], + "label": "Graph", + "longdesc": "", + "name": "@Node@40727", + "node_position": { + "x": 0.0, + "y": 0.0 + }, + "nodes": [ + { + "export_paths": { + + }, + "name": "Material", + "node_position": { + "x": 881.0, + "y": 292.0 + }, + "parameters": { + "albedo_color": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0, + "type": "Color" + }, + "ao": 1.0, + "depth_scale": 0.5, + "emission_energy": 1.0, + "flags_transparent": true, + "metallic": 0.0, + "normal": 1.0, + "roughness": 1.0, + "size": 11, + "sss": 1.0 + }, + "seed_int": 0, + "type": "material" + }, + { + "name": "gradient", + "node_position": { + "x": -453.5, + "y": 79.0 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "pos": 0.725, + "r": 0.0 + }, + { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "pos": 1.0, + "r": 1.0 + } + ], + "type": "Gradient" + }, + "mirror": true, + "repeat": 1.0, + "rotate": 0.0 + }, + "seed_int": 0, + "type": "gradient" + }, + { + "name": "crystal", + "node_position": { + "x": -1234.5, + "y": -174.0 + }, + "parameters": { + "param0": 6.0, + "param1": 6.0 + }, + "seed_int": 976969280, + "type": "crystal" + }, + { + "generic_size": 1, + "name": "tones_map", + "node_position": { + "x": -74.5, + "y": -330.0 + }, + "parameters": { + "in_max": 0.87, + "in_min": 0.83, + "out_max": 1.0, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "name": "gradient_2", + "node_position": { + "x": -159.5, + "y": 176.0 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "pos": 0.0, + "r": 0.0 + }, + { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "pos": 1.0, + "r": 1.0 + } + ], + "type": "Gradient" + }, + "mirror": false, + "repeat": 1.0, + "rotate": 90.0 + }, + "seed_int": 0, + "type": "gradient" + }, + { + "name": "math", + "node_position": { + "x": 219.5, + "y": -121.0 + }, + "parameters": { + "clamp": true, + "default_in1": 0.0, + "default_in2": 0.0, + "op": 2 + }, + "seed_int": 0, + "type": "math" + }, + { + "name": "sine_wave", + "node_position": { + "x": -1003.5, + "y": -279.0 + }, + "parameters": { + "amplitude": 0.05, + "frequency": 2.0, + "phase": 0.0 + }, + "seed_int": 0, + "type": "sine_wave" + }, + { + "generic_size": 1, + "name": "rotate", + "node_position": { + "x": -788.5, + "y": -396.0 + }, + "parameters": { + "cx": 0.0, + "cy": 0.0, + "rotate": 90.0 + }, + "seed_int": 0, + "type": "rotate" + }, + { + "name": "multi_warp", + "node_position": { + "x": -542.5, + "y": -228.0 + }, + "parameters": { + "param0": 10.0, + "param1": 1.5, + "param2": 36.0, + "param3": 1 + }, + "seed_int": 0, + "type": "multi_warp" + }, + { + "generic_size": 1, + "name": "tones_map_2", + "node_position": { + "x": 408.5, + "y": -394.5 + }, + "parameters": { + "in_max": 0.65, + "in_min": 0.61, + "out_max": 0.48, + "out_min": 0.0 + }, + "seed_int": 0, + "type": "tones_map" + }, + { + "name": "gaussian_blur", + "node_position": { + "x": -307.5, + "y": -387.0 + }, + "parameters": { + "param0": 9.0, + "param1": 5.0, + "param2": 0.0, + "param3": false + }, + "seed_int": 0, + "type": "gaussian_blur" + } + ], + "parameters": { + + }, + "seed_int": 0, + "shortdesc": "", + "type": "graph" +} \ No newline at end of file diff --git a/external/floatbot.bbmodel b/external/floatbot.bbmodel index 0b3b000..a51e9ff 100644 --- a/external/floatbot.bbmodel +++ b/external/floatbot.bbmodel @@ -1 +1 @@ -{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"floatbot","model_identifier":"floatbot","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"sphere","color":8,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"7Kru":[0,-8,0],"lRXo":[0,8,0],"PPTp":[2.34315,5.65685,5.65685],"0RH1":[3.31371,0,8],"9pO1":[2.34315,-5.65685,5.65685],"XhUn":[5.65685,5.65685,2.34315],"LTcd":[8,0,3.31371],"QYKS":[5.65685,-5.65685,2.34315],"AyYE":[5.65685,5.65685,-2.34315],"wwrA":[8,0,-3.31371],"Za9g":[5.65685,-5.65685,-2.34315],"rtgl":[2.34315,5.65685,-5.65685],"VCsx":[3.31371,0,-8],"Ebfc":[2.34315,-5.65685,-5.65685],"TjMr":[-2.34315,5.65685,-5.65685],"Foyx":[-3.31371,0,-8],"8MW5":[-2.34315,-5.65685,-5.65685],"6ecN":[-5.65685,5.65685,-2.34315],"tcyH":[-8,0,-3.31371],"TalW":[-5.65685,-5.65685,-2.34315],"g9yz":[-5.65685,5.65685,2.34315],"Zjbw":[-8,0,3.31371],"BXnS":[-5.65685,-5.65685,2.34315],"225C":[-2.34315,5.65685,5.65685],"kiqh":[-3.31371,0,8],"8jac":[-2.34315,-5.65685,5.65685]},"faces":{"uf8sP964":{"uv":{"lRXo":[2.3431,0],"XhUn":[4.6862,6.123],"PPTp":[0,6.123]},"vertices":["PPTp","XhUn","lRXo"]},"srhzZHMW":{"uv":{"XhUn":[5.6568,0],"PPTp":[0.9706,0],"LTcd":[6.6274,6.123],"0RH1":[0,6.123]},"vertices":["PPTp","0RH1","LTcd","XhUn"]},"8FyMyHsg":{"uv":{"LTcd":[6.6274,0],"0RH1":[0,0],"QYKS":[5.6568,6.123],"9pO1":[0.9706,6.123]},"vertices":["0RH1","9pO1","QYKS","LTcd"]},"NdMEERaX":{"uv":{"7Kru":[2.3431,6.123],"9pO1":[0,0],"QYKS":[4.6862,0]},"vertices":["QYKS","9pO1","7Kru"]},"YtK6ihQw":{"uv":{"lRXo":[2.3431,0],"AyYE":[4.6862,6.123],"XhUn":[0,6.123]},"vertices":["XhUn","AyYE","lRXo"]},"rC03GodU":{"uv":{"AyYE":[5.6568,0],"XhUn":[0.9706,0],"wwrA":[6.6274,6.123],"LTcd":[0,6.123]},"vertices":["XhUn","LTcd","wwrA","AyYE"]},"63n6C7hX":{"uv":{"wwrA":[6.6274,0],"LTcd":[0,0],"Za9g":[5.6568,6.123],"QYKS":[0.9706,6.123]},"vertices":["LTcd","QYKS","Za9g","wwrA"]},"aWgfrCLN":{"uv":{"7Kru":[2.3431,6.123],"QYKS":[0,0],"Za9g":[4.6862,0]},"vertices":["Za9g","QYKS","7Kru"]},"3qCJ89xg":{"uv":{"lRXo":[2.3431,0],"rtgl":[4.6862,6.123],"AyYE":[0,6.123]},"vertices":["AyYE","rtgl","lRXo"]},"tGM6MEUw":{"uv":{"rtgl":[5.6568,0],"AyYE":[0.9706,0],"VCsx":[6.6274,6.123],"wwrA":[0,6.123]},"vertices":["AyYE","wwrA","VCsx","rtgl"]},"FbuUpEMb":{"uv":{"VCsx":[6.6274,0],"wwrA":[0,0],"Ebfc":[5.6568,6.123],"Za9g":[0.9706,6.123]},"vertices":["wwrA","Za9g","Ebfc","VCsx"]},"W61FeU6Z":{"uv":{"7Kru":[2.3431,6.123],"Za9g":[0,0],"Ebfc":[4.6862,0]},"vertices":["Ebfc","Za9g","7Kru"]},"5U4hhUmE":{"uv":{"lRXo":[2.3431,0],"TjMr":[4.6862,6.123],"rtgl":[0,6.123]},"vertices":["rtgl","TjMr","lRXo"]},"0xPfX7UR":{"uv":{"TjMr":[5.6568,0],"rtgl":[0.9706,0],"Foyx":[6.6274,6.123],"VCsx":[0,6.123]},"vertices":["rtgl","VCsx","Foyx","TjMr"]},"37aiOz0I":{"uv":{"Foyx":[6.6274,0],"VCsx":[0,0],"8MW5":[5.6568,6.123],"Ebfc":[0.9706,6.123]},"vertices":["VCsx","Ebfc","8MW5","Foyx"]},"99b1vHbC":{"uv":{"7Kru":[2.3431,6.123],"Ebfc":[0,0],"8MW5":[4.6862,0]},"vertices":["8MW5","Ebfc","7Kru"]},"y8YfRZYx":{"uv":{"lRXo":[2.3431,0],"6ecN":[4.6862,6.123],"TjMr":[0,6.123]},"vertices":["TjMr","6ecN","lRXo"]},"ACd2706L":{"uv":{"6ecN":[5.6568,0],"TjMr":[0.9706,0],"tcyH":[6.6274,6.123],"Foyx":[0,6.123]},"vertices":["TjMr","Foyx","tcyH","6ecN"]},"6Fcmvh6M":{"uv":{"tcyH":[6.6274,0],"Foyx":[0,0],"TalW":[5.6568,6.123],"8MW5":[0.9706,6.123]},"vertices":["Foyx","8MW5","TalW","tcyH"]},"gQ1TlPI3":{"uv":{"7Kru":[2.3431,6.123],"8MW5":[0,0],"TalW":[4.6862,0]},"vertices":["TalW","8MW5","7Kru"]},"mj4w8GL1":{"uv":{"lRXo":[2.3431,0],"g9yz":[4.6862,6.123],"6ecN":[0,6.123]},"vertices":["6ecN","g9yz","lRXo"]},"JaY2xiiZ":{"uv":{"g9yz":[5.6568,0],"6ecN":[0.9706,0],"Zjbw":[6.6274,6.123],"tcyH":[0,6.123]},"vertices":["6ecN","tcyH","Zjbw","g9yz"]},"LumW6aNa":{"uv":{"Zjbw":[6.6274,0],"tcyH":[0,0],"BXnS":[5.6568,6.123],"TalW":[0.9706,6.123]},"vertices":["tcyH","TalW","BXnS","Zjbw"]},"nUlSPvcX":{"uv":{"7Kru":[2.3431,6.123],"TalW":[0,0],"BXnS":[4.6862,0]},"vertices":["BXnS","TalW","7Kru"]},"SMrDQlTP":{"uv":{"lRXo":[2.3431,0],"225C":[4.6862,6.123],"g9yz":[0,6.123]},"vertices":["g9yz","225C","lRXo"]},"olbDCYF2":{"uv":{"225C":[5.6568,0],"g9yz":[0.9706,0],"kiqh":[6.6274,6.123],"Zjbw":[0,6.123]},"vertices":["g9yz","Zjbw","kiqh","225C"]},"CGKpglpu":{"uv":{"kiqh":[6.6274,0],"Zjbw":[0,0],"8jac":[5.6568,6.123],"BXnS":[0.9706,6.123]},"vertices":["Zjbw","BXnS","8jac","kiqh"]},"DumlwXGL":{"uv":{"7Kru":[2.3431,6.123],"BXnS":[0,0],"8jac":[4.6862,0]},"vertices":["8jac","BXnS","7Kru"]},"hCagoisg":{"uv":{"lRXo":[2.3431,0],"PPTp":[4.6862,6.123],"225C":[0,6.123]},"vertices":["225C","PPTp","lRXo"]},"heXLXr0C":{"uv":{"PPTp":[5.6568,0],"225C":[0.9706,0],"0RH1":[6.6274,6.123],"kiqh":[0,6.123]},"vertices":["225C","kiqh","0RH1","PPTp"]},"cbLI7MEN":{"uv":{"0RH1":[6.6274,0],"kiqh":[0,0],"9pO1":[5.6568,6.123],"8jac":[0.9706,6.123]},"vertices":["kiqh","8jac","9pO1","0RH1"]},"y8sZXoaw":{"uv":{"7Kru":[2.3431,6.123],"8jac":[0,0],"9pO1":[4.6862,0]},"vertices":["9pO1","8jac","7Kru"]}},"type":"mesh","uuid":"978619ec-db64-c91f-e294-483c44df1aac"},{"name":"torus","color":9,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"LgjD":[8,1.46478,3.31371],"N1Ll":[8.73205,0.73239,4.03115],"nPPn":[8.73205,-0.73239,4.03115],"k8kR":[8,2.16478,-3.31371],"ouaZ":[9.73205,1.08239,-4.03115],"pNJ8":[9.73205,-1.08239,-4.03115],"TpzM":[8,-2.16478,-3.31371],"B7QO":[3.31371,2.16478,-8],"50Qh":[4.03115,1.08239,-9.73205],"Px8p":[4.03115,-1.08239,-9.73205],"SHCU":[3.31371,-2.16478,-8],"JnDo":[-3.31371,1.46478,-8],"6iMr":[-4.03115,0.73239,-8.73205],"p91x":[-4.03115,-0.73239,-8.73205],"Q5uN":[-3.31371,-1.46478,-8],"gwnU":[8,-1.46478,3.31371]},"faces":{"Cewxw9PH":{"uv":{"k8kR":[7.3448,0],"LgjD":[0.7174,0],"ouaZ":[8.0622,2.0424],"N1Ll":[0,2.0424]},"vertices":["LgjD","N1Ll","ouaZ","k8kR"]},"nMPnY5ZF":{"uv":{"ouaZ":[8.0622,0],"N1Ll":[0,0],"pNJ8":[8.0622,2.1648],"nPPn":[0,2.1648]},"vertices":["N1Ll","nPPn","pNJ8","ouaZ"]},"la0LBtfN":{"uv":{"pNJ8":[8.0622,0],"nPPn":[0,0],"TpzM":[7.3448,2.0424],"gwnU":[0.7174,2.0424]},"vertices":["nPPn","gwnU","TpzM","pNJ8"]},"QpxQ2MJB":{"uv":{"B7QO":[7.3448,0],"k8kR":[0.7174,0],"50Qh":[8.0622,2.0424],"ouaZ":[0,2.0424]},"vertices":["k8kR","ouaZ","50Qh","B7QO"]},"VCYcdfbU":{"uv":{"50Qh":[8.0622,0],"ouaZ":[0,0],"Px8p":[8.0622,2.1648],"pNJ8":[0,2.1648]},"vertices":["ouaZ","pNJ8","Px8p","50Qh"]},"Avn5xc9x":{"uv":{"Px8p":[8.0622,0],"pNJ8":[0,0],"SHCU":[7.3448,2.0424],"TpzM":[0.7174,2.0424]},"vertices":["pNJ8","TpzM","SHCU","Px8p"]},"hr9PIGTb":{"uv":{"JnDo":[7.3448,0],"B7QO":[0.7174,0],"6iMr":[8.0622,2.0424],"50Qh":[0,2.0424]},"vertices":["B7QO","50Qh","6iMr","JnDo"]},"raROHpp2":{"uv":{"6iMr":[8.0622,0],"50Qh":[0,0],"p91x":[8.0622,2.1648],"Px8p":[0,2.1648]},"vertices":["50Qh","Px8p","p91x","6iMr"]},"1hycVXyK":{"uv":{"p91x":[8.0622,0],"Px8p":[0,0],"Q5uN":[7.3448,2.0424],"SHCU":[0.7174,2.0424]},"vertices":["Px8p","SHCU","Q5uN","p91x"]},"JegbqAPf":{"uv":{"gwnU":[0,2.9296],"nPPn":[1.025,2.1972],"N1Ll":[1.025,0.7324],"LgjD":[0,0]},"vertices":["nPPn","N1Ll","LgjD","gwnU"]},"alDptqDX":{"uv":{"LgjD":[6.6274,0.7],"k8kR":[0,0],"TpzM":[0,4.3296],"gwnU":[6.6274,3.6296]},"vertices":["k8kR","TpzM","gwnU","LgjD"]},"rZtqVoBe":{"uv":{"B7QO":[0,0],"k8kR":[6.6274,0],"SHCU":[0,4.3296],"TpzM":[6.6274,4.3296]},"vertices":["SHCU","TpzM","k8kR","B7QO"]},"j8sEFIuJ":{"uv":{"JnDo":[0,0.7],"B7QO":[6.6274,0],"Q5uN":[0,3.6296],"SHCU":[6.6274,4.3296]},"vertices":["Q5uN","SHCU","B7QO","JnDo"]},"Tu4MPNHv":{"uv":{"JnDo":[1.025,0],"6iMr":[0,0.7324],"p91x":[0,2.1972],"Q5uN":[1.025,2.9296]},"vertices":["6iMr","p91x","Q5uN","JnDo"]}},"type":"mesh","uuid":"6adfc723-6452-6b4e-0510-b9269109a8d8"},{"name":"cylinder","color":9,"origin":[7.3,0,-7.3],"rotation":[90,0,45],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"gU82":[0,0,0],"Dnkl":[0,2,0],"uNwR":[1.65685,0,4],"uIp3":[1.65685,2,4],"5AWk":[4,0,1.65685],"3Gm9":[4,2,1.65685],"lHZs":[4,0,-1.65685],"V3TF":[4,2,-1.65685],"2dL2":[1.65685,0,-4],"ucFt":[1.65685,2,-4],"ou6k":[-1.65685,0,-4],"Xqf2":[-1.65685,2,-4],"E4vK":[-4,0,-1.65685],"suVF":[-4,2,-1.65685],"SWWz":[-4,0,1.65685],"Zpi4":[-4,2,1.65685],"Dz2K":[-1.65685,0,4],"UHo8":[-1.65685,2,4]},"faces":{"1siINuWa":{"uv":{"gU82":[0,3.8268],"uNwR":[3.82689,0],"5AWk":[5.41197,3.8268]},"vertices":["5AWk","uNwR","gU82"]},"e1uvKRk0":{"uv":{"uIp3":[0,0],"3Gm9":[4.1422,0],"5AWk":[4.1422,2],"uNwR":[0,2]},"vertices":["uNwR","5AWk","3Gm9","uIp3"]},"hjgyEk4s":{"uv":{"Dnkl":[0,0],"3Gm9":[3.8268,3.82689],"uIp3":[0,5.41197]},"vertices":["uIp3","3Gm9","Dnkl"]},"IjLjcRUh":{"uv":{"gU82":[0,2.0711],"5AWk":[5,0],"lHZs":[5,4.1422]},"vertices":["lHZs","5AWk","gU82"]},"aSuQkyUI":{"uv":{"3Gm9":[0,0],"V3TF":[4.1422,0],"lHZs":[4.1422,2],"5AWk":[0,2]},"vertices":["5AWk","lHZs","V3TF","3Gm9"]},"zADcmsOr":{"uv":{"Dnkl":[0,2.0711],"V3TF":[5,0],"3Gm9":[5,4.1422]},"vertices":["3Gm9","V3TF","Dnkl"]},"QhAzGCK5":{"uv":{"gU82":[0,0],"lHZs":[3.8268,3.82689],"2dL2":[0,5.41197]},"vertices":["2dL2","lHZs","gU82"]},"rE7FtNEl":{"uv":{"V3TF":[0,0],"ucFt":[4.1422,0],"2dL2":[4.1422,2],"lHZs":[0,2]},"vertices":["lHZs","2dL2","ucFt","V3TF"]},"32s3R2l3":{"uv":{"Dnkl":[0,3.8268],"ucFt":[3.82689,0],"V3TF":[5.41197,3.8268]},"vertices":["V3TF","ucFt","Dnkl"]},"s3xsnIxZ":{"uv":{"gU82":[2.0711,0],"2dL2":[4.1422,5],"ou6k":[0,5]},"vertices":["ou6k","2dL2","gU82"]},"IumBxb3n":{"uv":{"ucFt":[0,0],"Xqf2":[4.1422,0],"ou6k":[4.1422,2],"2dL2":[0,2]},"vertices":["2dL2","ou6k","Xqf2","ucFt"]},"sU231RXV":{"uv":{"Dnkl":[2.0711,5],"Xqf2":[0,0],"ucFt":[4.1422,0]},"vertices":["ucFt","Xqf2","Dnkl"]},"txYm7zw4":{"uv":{"gU82":[5.41197,0],"ou6k":[1.58509,3.8268],"E4vK":[0,0]},"vertices":["E4vK","ou6k","gU82"]},"kY19epwp":{"uv":{"Xqf2":[0,0],"suVF":[4.1422,0],"E4vK":[4.1422,2],"ou6k":[0,2]},"vertices":["ou6k","E4vK","suVF","Xqf2"]},"zyGEQI6G":{"uv":{"Dnkl":[3.8268,5.41197],"suVF":[0,1.58509],"Xqf2":[3.8268,0]},"vertices":["Xqf2","suVF","Dnkl"]},"Pmk7NBVk":{"uv":{"gU82":[5,2.0711],"E4vK":[0,4.1422],"SWWz":[0,0]},"vertices":["SWWz","E4vK","gU82"]},"EzKHFHmR":{"uv":{"suVF":[0,0],"Zpi4":[4.1422,0],"SWWz":[4.1422,2],"E4vK":[0,2]},"vertices":["E4vK","SWWz","Zpi4","suVF"]},"5UbYhYR3":{"uv":{"Dnkl":[5,2.0711],"Zpi4":[0,4.1422],"suVF":[0,0]},"vertices":["suVF","Zpi4","Dnkl"]},"P0SPig6l":{"uv":{"gU82":[3.8268,5.41197],"SWWz":[0,1.58509],"Dz2K":[3.8268,0]},"vertices":["Dz2K","SWWz","gU82"]},"DCRpbWe9":{"uv":{"Zpi4":[0,0],"UHo8":[4.1422,0],"Dz2K":[4.1422,2],"SWWz":[0,2]},"vertices":["SWWz","Dz2K","UHo8","Zpi4"]},"r1RsNv95":{"uv":{"Dnkl":[5.41197,0],"UHo8":[1.58509,3.8268],"Zpi4":[0,0]},"vertices":["Zpi4","UHo8","Dnkl"]},"hYCn70IO":{"uv":{"gU82":[2.0711,5],"Dz2K":[0,0],"uNwR":[4.1422,0]},"vertices":["uNwR","Dz2K","gU82"]},"45hsKR4M":{"uv":{"UHo8":[0,0],"uIp3":[4.1422,0],"uNwR":[4.1422,2],"Dz2K":[0,2]},"vertices":["Dz2K","uNwR","uIp3","UHo8"]},"yQdIUt2F":{"uv":{"Dnkl":[2.0711,0],"uIp3":[4.1422,5],"UHo8":[0,5]},"vertices":["UHo8","uIp3","Dnkl"]}},"type":"mesh","uuid":"b038d96c-3457-bdd7-b70f-b1778dcf3987"},{"name":"cylinder","color":9,"origin":[8.7,0,-8.7],"rotation":[90,0,45],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"gU82":[0,0,0],"Dnkl":[0,2,0],"uNwR":[0.74558,0.7,1.8],"uIp3":[1.24264,2,3],"5AWk":[1.8,0.7,0.74558],"3Gm9":[3,2,1.24264],"lHZs":[1.8,0.7,-0.74558],"V3TF":[3,2,-1.24264],"2dL2":[0.74558,0.7,-1.8],"ucFt":[1.24264,2,-3],"ou6k":[-0.74558,0.7,-1.8],"Xqf2":[-1.24264,2,-3],"E4vK":[-1.8,0.7,-0.74558],"suVF":[-3,2,-1.24264],"SWWz":[-1.8,0.7,0.74558],"Zpi4":[-3,2,1.24264],"Dz2K":[-0.74558,0.7,1.8],"UHo8":[-1.24264,2,3]},"faces":{"1siINuWa":{"uv":{"gU82":[0,3.8268],"uNwR":[3.82689,0],"5AWk":[5.41197,3.8268]},"vertices":["5AWk","uNwR","gU82"]},"e1uvKRk0":{"uv":{"uIp3":[0,0],"3Gm9":[4.1422,0],"5AWk":[4.1422,2],"uNwR":[0,2]},"vertices":["uNwR","5AWk","3Gm9","uIp3"]},"hjgyEk4s":{"uv":{"Dnkl":[0,0],"3Gm9":[3.8268,3.82689],"uIp3":[0,5.41197]},"vertices":["uIp3","3Gm9","Dnkl"]},"IjLjcRUh":{"uv":{"gU82":[0,2.0711],"5AWk":[5,0],"lHZs":[5,4.1422]},"vertices":["lHZs","5AWk","gU82"]},"aSuQkyUI":{"uv":{"3Gm9":[0,0],"V3TF":[4.1422,0],"lHZs":[4.1422,2],"5AWk":[0,2]},"vertices":["5AWk","lHZs","V3TF","3Gm9"]},"zADcmsOr":{"uv":{"Dnkl":[0,2.0711],"V3TF":[5,0],"3Gm9":[5,4.1422]},"vertices":["3Gm9","V3TF","Dnkl"]},"QhAzGCK5":{"uv":{"gU82":[0,0],"lHZs":[3.8268,3.82689],"2dL2":[0,5.41197]},"vertices":["2dL2","lHZs","gU82"]},"rE7FtNEl":{"uv":{"V3TF":[0,0],"ucFt":[4.1422,0],"2dL2":[4.1422,2],"lHZs":[0,2]},"vertices":["lHZs","2dL2","ucFt","V3TF"]},"32s3R2l3":{"uv":{"Dnkl":[0,3.8268],"ucFt":[3.82689,0],"V3TF":[5.41197,3.8268]},"vertices":["V3TF","ucFt","Dnkl"]},"s3xsnIxZ":{"uv":{"gU82":[2.0711,0],"2dL2":[4.1422,5],"ou6k":[0,5]},"vertices":["ou6k","2dL2","gU82"]},"IumBxb3n":{"uv":{"ucFt":[0,0],"Xqf2":[4.1422,0],"ou6k":[4.1422,2],"2dL2":[0,2]},"vertices":["2dL2","ou6k","Xqf2","ucFt"]},"sU231RXV":{"uv":{"Dnkl":[2.0711,5],"Xqf2":[0,0],"ucFt":[4.1422,0]},"vertices":["ucFt","Xqf2","Dnkl"]},"txYm7zw4":{"uv":{"gU82":[5.41197,0],"ou6k":[1.58509,3.8268],"E4vK":[0,0]},"vertices":["E4vK","ou6k","gU82"]},"kY19epwp":{"uv":{"Xqf2":[0,0],"suVF":[4.1422,0],"E4vK":[4.1422,2],"ou6k":[0,2]},"vertices":["ou6k","E4vK","suVF","Xqf2"]},"zyGEQI6G":{"uv":{"Dnkl":[3.8268,5.41197],"suVF":[0,1.58509],"Xqf2":[3.8268,0]},"vertices":["Xqf2","suVF","Dnkl"]},"Pmk7NBVk":{"uv":{"gU82":[5,2.0711],"E4vK":[0,4.1422],"SWWz":[0,0]},"vertices":["SWWz","E4vK","gU82"]},"EzKHFHmR":{"uv":{"suVF":[0,0],"Zpi4":[4.1422,0],"SWWz":[4.1422,2],"E4vK":[0,2]},"vertices":["E4vK","SWWz","Zpi4","suVF"]},"5UbYhYR3":{"uv":{"Dnkl":[5,2.0711],"Zpi4":[0,4.1422],"suVF":[0,0]},"vertices":["suVF","Zpi4","Dnkl"]},"P0SPig6l":{"uv":{"gU82":[3.8268,5.41197],"SWWz":[0,1.58509],"Dz2K":[3.8268,0]},"vertices":["Dz2K","SWWz","gU82"]},"DCRpbWe9":{"uv":{"Zpi4":[0,0],"UHo8":[4.1422,0],"Dz2K":[4.1422,2],"SWWz":[0,2]},"vertices":["SWWz","Dz2K","UHo8","Zpi4"]},"r1RsNv95":{"uv":{"Dnkl":[5.41197,0],"UHo8":[1.58509,3.8268],"Zpi4":[0,0]},"vertices":["Zpi4","UHo8","Dnkl"]},"hYCn70IO":{"uv":{"gU82":[2.0711,5],"Dz2K":[0,0],"uNwR":[4.1422,0]},"vertices":["uNwR","Dz2K","gU82"]},"45hsKR4M":{"uv":{"UHo8":[0,0],"uIp3":[4.1422,0],"uNwR":[4.1422,2],"Dz2K":[0,2]},"vertices":["Dz2K","uNwR","uIp3","UHo8"]},"yQdIUt2F":{"uv":{"Dnkl":[2.0711,0],"uIp3":[4.1422,5],"UHo8":[0,5]},"vertices":["UHo8","uIp3","Dnkl"]}},"type":"mesh","uuid":"d9485723-94f6-0e62-f224-eacd0e050382"}],"groups":[{"uuid":"4a1f177f-3c94-1bb9-328e-3c26787c67da","export":true,"locked":false,"origin":[0,0,0],"rotation":[0,45,0],"color":0,"name":"torus","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":true,"primary_selected":false}],"outliner":["978619ec-db64-c91f-e294-483c44df1aac",{"uuid":"4a1f177f-3c94-1bb9-328e-3c26787c67da","isOpen":true,"children":["d9485723-94f6-0e62-f224-eacd0e050382","b038d96c-3457-bdd7-b70f-b1778dcf3987","6adfc723-6452-6b4e-0510-b9269109a8d8"]}],"textures":[]} \ No newline at end of file +{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"floatbot","model_identifier":"floatbot","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"sphere","color":8,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"7Kru":[0,-8,0],"lRXo":[0,8,0],"PPTp":[2.34315,5.65685,5.65685],"0RH1":[3.31371,0,8],"9pO1":[2.34315,-5.65685,5.65685],"XhUn":[5.65685,5.65685,2.34315],"LTcd":[8,0,3.31371],"QYKS":[5.65685,-5.65685,2.34315],"AyYE":[5.65685,5.65685,-2.34315],"wwrA":[8,0,-3.31371],"Za9g":[5.65685,-5.65685,-2.34315],"rtgl":[2.34315,5.65685,-5.65685],"VCsx":[3.31371,0,-8],"Ebfc":[2.34315,-5.65685,-5.65685],"TjMr":[-2.34315,5.65685,-5.65685],"Foyx":[-3.31371,0,-8],"8MW5":[-2.34315,-5.65685,-5.65685],"6ecN":[-5.65685,5.65685,-2.34315],"tcyH":[-8,0,-3.31371],"TalW":[-5.65685,-5.65685,-2.34315],"g9yz":[-5.65685,5.65685,2.34315],"Zjbw":[-8,0,3.31371],"BXnS":[-5.65685,-5.65685,2.34315],"225C":[-2.34315,5.65685,5.65685],"kiqh":[-3.31371,0,8],"8jac":[-2.34315,-5.65685,5.65685]},"faces":{"uf8sP964":{"uv":{"lRXo":[6.375,6.4846],"XhUn":[0.03365,4.82072],"PPTp":[2.76443,1.0124]},"vertices":["PPTp","XhUn","lRXo"],"texture":2},"srhzZHMW":{"uv":{"XhUn":[21.7794,29],"PPTp":[17.0932,29],"LTcd":[22.75,35],"0RH1":[16.1226,35]},"vertices":["PPTp","0RH1","LTcd","XhUn"],"texture":2},"8FyMyHsg":{"uv":{"LTcd":[30.75,30],"0RH1":[24.1226,30],"QYKS":[29.7794,36],"9pO1":[25.0932,36]},"vertices":["0RH1","9pO1","QYKS","LTcd"],"texture":2},"NdMEERaX":{"uv":{"7Kru":[17.375,17.27779],"9pO1":[13.76443,22.75],"QYKS":[11.03365,18.94168]},"vertices":["QYKS","9pO1","7Kru"],"texture":2},"YtK6ihQw":{"uv":{"lRXo":[6.375,6.4846],"AyYE":[0.54286,9.47917],"XhUn":[0.03365,4.82072]},"vertices":["XhUn","AyYE","lRXo"],"texture":2},"rC03GodU":{"uv":{"AyYE":[13.7181,24],"XhUn":[9.0319,24],"wwrA":[14.6887,30],"LTcd":[8.0613,30]},"vertices":["XhUn","LTcd","wwrA","AyYE"],"texture":2},"63n6C7hX":{"uv":{"wwrA":[29.6887,23],"LTcd":[23.0613,23],"Za9g":[28.7181,29],"QYKS":[24.0319,29]},"vertices":["LTcd","QYKS","Za9g","wwrA"],"texture":2},"aWgfrCLN":{"uv":{"7Kru":[17.375,17.27779],"QYKS":[11.03365,18.94168],"Za9g":[11.54286,14.28323]},"vertices":["Za9g","QYKS","7Kru"],"texture":2},"3qCJ89xg":{"uv":{"lRXo":[6.375,6.4846],"rtgl":[4.0319,12.6076],"AyYE":[0.54286,9.47917]},"vertices":["AyYE","rtgl","lRXo"],"texture":2},"tGM6MEUw":{"uv":{"rtgl":[13.6568,31],"AyYE":[8.9706,31],"VCsx":[14.6274,37],"wwrA":[8,37]},"vertices":["AyYE","wwrA","VCsx","rtgl"],"texture":2},"FbuUpEMb":{"uv":{"VCsx":[6.6274,28],"wwrA":[0,28],"Ebfc":[5.6568,34],"Za9g":[0.9706,34]},"vertices":["wwrA","Za9g","Ebfc","VCsx"],"texture":2},"W61FeU6Z":{"uv":{"7Kru":[17.375,17.27779],"Za9g":[11.54286,14.28323],"Ebfc":[15.0319,11.15479]},"vertices":["Ebfc","Za9g","7Kru"],"texture":2},"5U4hhUmE":{"uv":{"lRXo":[6.375,6.4846],"TjMr":[8.7181,12.6076],"rtgl":[4.0319,12.6076]},"vertices":["rtgl","TjMr","lRXo"],"texture":2},"0xPfX7UR":{"uv":{"TjMr":[5.7181,21],"rtgl":[1.0319,21],"Foyx":[6.6887,27],"VCsx":[0.0613,27]},"vertices":["rtgl","VCsx","Foyx","TjMr"],"texture":2},"37aiOz0I":{"uv":{"Foyx":[6.6887,14],"VCsx":[0.0613,14],"8MW5":[5.7181,20],"Ebfc":[1.0319,20]},"vertices":["VCsx","Ebfc","8MW5","Foyx"],"texture":2},"99b1vHbC":{"uv":{"7Kru":[17.375,17.27779],"Ebfc":[15.0319,11.15479],"8MW5":[19.7181,11.15479]},"vertices":["8MW5","Ebfc","7Kru"],"texture":2},"y8YfRZYx":{"uv":{"lRXo":[6.375,6.4846],"6ecN":[12.20714,9.47917],"TjMr":[8.7181,12.6076]},"vertices":["TjMr","6ecN","lRXo"],"texture":2},"ACd2706L":{"uv":{"6ecN":[37.7794,28],"TjMr":[33.0932,28],"tcyH":[38.75,34],"Foyx":[32.1226,34]},"vertices":["TjMr","Foyx","tcyH","6ecN"],"texture":2},"6Fcmvh6M":{"uv":{"tcyH":[37.75,21],"Foyx":[31.1226,21],"TalW":[36.7794,27],"8MW5":[32.0932,27]},"vertices":["Foyx","8MW5","TalW","tcyH"],"texture":2},"gQ1TlPI3":{"uv":{"7Kru":[17.375,17.27779],"8MW5":[19.7181,11.15479],"TalW":[23.20714,14.28323]},"vertices":["TalW","8MW5","7Kru"],"texture":2},"mj4w8GL1":{"uv":{"lRXo":[6.375,6.4846],"g9yz":[12.71635,4.82072],"6ecN":[12.20714,9.47917]},"vertices":["6ecN","g9yz","lRXo"],"texture":2},"JaY2xiiZ":{"uv":{"g9yz":[30.7181,14],"6ecN":[26.0319,14],"Zjbw":[31.6887,20],"tcyH":[25.0613,20]},"vertices":["6ecN","tcyH","Zjbw","g9yz"],"texture":2},"LumW6aNa":{"uv":{"Zjbw":[30.6887,7],"tcyH":[24.0613,7],"BXnS":[29.7181,13],"TalW":[25.0319,13]},"vertices":["tcyH","TalW","BXnS","Zjbw"],"texture":2},"nUlSPvcX":{"uv":{"7Kru":[17.375,17.27779],"TalW":[23.20714,14.28323],"BXnS":[23.71635,18.94168]},"vertices":["BXnS","TalW","7Kru"],"texture":2},"SMrDQlTP":{"uv":{"lRXo":[6.375,6.4846],"225C":[9.98557,1.0124],"g9yz":[12.71635,4.82072]},"vertices":["g9yz","225C","lRXo"],"texture":2},"olbDCYF2":{"uv":{"225C":[37.6568,7],"g9yz":[32.9706,7],"kiqh":[38.6274,13],"Zjbw":[32,13]},"vertices":["g9yz","Zjbw","kiqh","225C"],"texture":2},"CGKpglpu":{"uv":{"kiqh":[36.6274,0],"Zjbw":[30,0],"8jac":[35.6568,6],"BXnS":[30.9706,6]},"vertices":["Zjbw","BXnS","8jac","kiqh"],"texture":2},"DumlwXGL":{"uv":{"7Kru":[17.375,17.27779],"BXnS":[23.71635,18.94168],"8jac":[20.98557,22.75]},"vertices":["8jac","BXnS","7Kru"],"texture":2},"hCagoisg":{"uv":{"lRXo":[6.375,6.4846],"PPTp":[2.76443,1.0124],"225C":[7.33996,0]},"vertices":["225C","PPTp","lRXo"],"texture":2},"heXLXr0C":{"uv":{"PPTp":[27.7181,0],"225C":[23.0319,0],"0RH1":[28.6887,6],"kiqh":[22.0613,6]},"vertices":["225C","kiqh","0RH1","PPTp"],"texture":2},"cbLI7MEN":{"uv":{"0RH1":[20.6887,0],"kiqh":[14.0613,0],"9pO1":[19.7181,6],"8jac":[15.0319,6]},"vertices":["kiqh","8jac","9pO1","0RH1"],"texture":2},"y8sZXoaw":{"uv":{"7Kru":[17.37055,17.25561],"8jac":[20.93865,22.75361],"9pO1":[13.80245,22.70361]},"vertices":["9pO1","8jac","7Kru"],"texture":2}},"type":"mesh","uuid":"978619ec-db64-c91f-e294-483c44df1aac"},{"name":"torus","color":9,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"LgjD":[8,1.46478,3.31371],"N1Ll":[8.73205,0.73239,4.03115],"nPPn":[8.73205,-0.73239,4.03115],"k8kR":[8,2.16478,-3.31371],"ouaZ":[9.73205,1.08239,-4.03115],"pNJ8":[9.73205,-1.08239,-4.03115],"TpzM":[8,-2.16478,-3.31371],"B7QO":[3.31371,2.16478,-8],"50Qh":[4.03115,1.08239,-9.73205],"Px8p":[4.03115,-1.08239,-9.73205],"SHCU":[3.31371,-2.16478,-8],"JnDo":[-3.31371,1.46478,-8],"6iMr":[-4.03115,0.73239,-8.73205],"p91x":[-4.03115,-0.73239,-8.73205],"Q5uN":[-3.31371,-1.46478,-8],"gwnU":[8,-1.46478,3.31371]},"faces":{"Cewxw9PH":{"uv":{"k8kR":[40,32],"LgjD":[30,32],"ouaZ":[40,34],"N1Ll":[30,34]},"vertices":["LgjD","N1Ll","ouaZ","k8kR"],"texture":0},"nMPnY5ZF":{"uv":{"ouaZ":[63,32],"N1Ll":[30,32],"pNJ8":[63,38],"nPPn":[30,38]},"vertices":["N1Ll","nPPn","pNJ8","ouaZ"],"texture":0},"la0LBtfN":{"uv":{"pNJ8":[49,38],"nPPn":[32,38],"TpzM":[49,42],"gwnU":[32,42]},"vertices":["nPPn","gwnU","TpzM","pNJ8"],"texture":0},"QpxQ2MJB":{"uv":{"B7QO":[37.56695,32.39561],"k8kR":[30.8998,32.5],"50Qh":[37.6418,35.40221],"ouaZ":[30.90753,35.44673]},"vertices":["k8kR","ouaZ","50Qh","B7QO"],"texture":0},"VCYcdfbU":{"uv":{"50Qh":[58,45],"ouaZ":[50,45],"Px8p":[58,47],"pNJ8":[50,47]},"vertices":["ouaZ","pNJ8","Px8p","50Qh"],"texture":0},"Avn5xc9x":{"uv":{"Px8p":[43.63046,49.53282],"pNJ8":[38.05407,55.35545],"SHCU":[44.6093,51.46361],"TpzM":[40.02532,56.25]},"vertices":["pNJ8","TpzM","SHCU","Px8p"],"texture":0},"hr9PIGTb":{"uv":{"JnDo":[44.7802,32.40151],"B7QO":[37.567,32.39551],"6iMr":[44.85,35.41871],"50Qh":[37.6418,35.40221]},"vertices":["B7QO","50Qh","6iMr","JnDo"],"texture":0},"raROHpp2":{"uv":{"6iMr":[30,32],"50Qh":[63,32],"p91x":[30,38],"Px8p":[63,38]},"vertices":["50Qh","Px8p","p91x","6iMr"],"texture":0},"1hycVXyK":{"uv":{"p91x":[49,38],"Px8p":[32,38],"Q5uN":[49,42],"SHCU":[32,42]},"vertices":["Px8p","SHCU","Q5uN","p91x"],"texture":0},"JegbqAPf":{"uv":{"gwnU":[29,30.9296],"nPPn":[30,30.1972],"N1Ll":[30,28.7324],"LgjD":[29,28]},"vertices":["nPPn","N1Ll","LgjD","gwnU"],"texture":0},"alDptqDX":{"uv":{"LgjD":[40,44.7],"k8kR":[33,44],"TpzM":[33,48.3296],"gwnU":[40,47.6296]},"vertices":["k8kR","TpzM","gwnU","LgjD"],"texture":0},"rZtqVoBe":{"uv":{"B7QO":[41,44],"k8kR":[48,44],"SHCU":[41,48],"TpzM":[48,48]},"vertices":["SHCU","TpzM","k8kR","B7QO"],"texture":0},"j8sEFIuJ":{"uv":{"JnDo":[39.8,47.9296],"B7QO":[32.8,48.6296],"Q5uN":[39.8,45],"SHCU":[32.8,44.3]},"vertices":["Q5uN","SHCU","B7QO","JnDo"],"texture":0},"Tu4MPNHv":{"uv":{"JnDo":[27,28],"6iMr":[26,28.7324],"p91x":[26,30.1972],"Q5uN":[27,30.9296]},"vertices":["6iMr","p91x","Q5uN","JnDo"],"texture":0}},"type":"mesh","uuid":"6adfc723-6452-6b4e-0510-b9269109a8d8"},{"name":"cylinder","color":9,"origin":[7.3,0,-7.3],"rotation":[90,0,45],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"gU82":[0,0,0],"Dnkl":[0,2,0],"uNwR":[1.65685,0,4],"uIp3":[1.65685,2,4],"5AWk":[4,0,1.65685],"3Gm9":[4,2,1.65685],"lHZs":[4,0,-1.65685],"V3TF":[4,2,-1.65685],"2dL2":[1.65685,0,-4],"ucFt":[1.65685,2,-4],"ou6k":[-1.65685,0,-4],"Xqf2":[-1.65685,2,-4],"E4vK":[-4,0,-1.65685],"suVF":[-4,2,-1.65685],"SWWz":[-4,0,1.65685],"Zpi4":[-4,2,1.65685],"Dz2K":[-1.65685,0,4],"UHo8":[-1.65685,2,4]},"faces":{"1siINuWa":{"uv":{"gU82":[15,49.10755],"uNwR":[8.7868,64.10755],"5AWk":[0,55.32075]},"vertices":["5AWk","uNwR","gU82"]},"e1uvKRk0":{"uv":{"uIp3":[8.7868,64.10755],"3Gm9":[0,55.32075],"5AWk":[0,55.32075],"uNwR":[8.7868,64.10755]},"vertices":["uNwR","5AWk","3Gm9","uIp3"]},"hjgyEk4s":{"uv":{"Dnkl":[15,49.10755],"3Gm9":[0,55.32075],"uIp3":[8.7868,64.10755]},"vertices":["uIp3","3Gm9","Dnkl"]},"IjLjcRUh":{"uv":{"gU82":[15,49.10755],"5AWk":[0,55.32075],"lHZs":[0,42.89435]},"vertices":["lHZs","5AWk","gU82"]},"aSuQkyUI":{"uv":{"3Gm9":[0,55.32075],"V3TF":[0,42.89435],"lHZs":[0,42.89435],"5AWk":[0,55.32075]},"vertices":["5AWk","lHZs","V3TF","3Gm9"]},"zADcmsOr":{"uv":{"Dnkl":[15,49.10755],"V3TF":[0,42.89435],"3Gm9":[0,55.32075]},"vertices":["3Gm9","V3TF","Dnkl"]},"QhAzGCK5":{"uv":{"gU82":[15,49.10755],"lHZs":[0,42.89435],"2dL2":[8.7868,34.10755]},"vertices":["2dL2","lHZs","gU82"]},"rE7FtNEl":{"uv":{"V3TF":[0,42.89435],"ucFt":[8.7868,34.10755],"2dL2":[8.7868,34.10755],"lHZs":[0,42.89435]},"vertices":["lHZs","2dL2","ucFt","V3TF"]},"32s3R2l3":{"uv":{"Dnkl":[15,49.10755],"ucFt":[8.7868,34.10755],"V3TF":[0,42.89435]},"vertices":["V3TF","ucFt","Dnkl"]},"s3xsnIxZ":{"uv":{"gU82":[15,49.10755],"2dL2":[8.7868,34.10755],"ou6k":[21.2132,34.10755]},"vertices":["ou6k","2dL2","gU82"]},"IumBxb3n":{"uv":{"ucFt":[8.7868,34.10755],"Xqf2":[21.2132,34.10755],"ou6k":[21.2132,34.10755],"2dL2":[8.7868,34.10755]},"vertices":["2dL2","ou6k","Xqf2","ucFt"]},"sU231RXV":{"uv":{"Dnkl":[15,49.10755],"Xqf2":[21.2132,34.10755],"ucFt":[8.7868,34.10755]},"vertices":["ucFt","Xqf2","Dnkl"]},"txYm7zw4":{"uv":{"gU82":[15,49.10755],"ou6k":[21.2132,34.10755],"E4vK":[30,42.89435]},"vertices":["E4vK","ou6k","gU82"]},"kY19epwp":{"uv":{"Xqf2":[21.2132,34.10755],"suVF":[30,42.89435],"E4vK":[30,42.89435],"ou6k":[21.2132,34.10755]},"vertices":["ou6k","E4vK","suVF","Xqf2"]},"zyGEQI6G":{"uv":{"Dnkl":[15,49.10755],"suVF":[30,42.89435],"Xqf2":[21.2132,34.10755]},"vertices":["Xqf2","suVF","Dnkl"]},"Pmk7NBVk":{"uv":{"gU82":[15,49.10755],"E4vK":[30,42.89435],"SWWz":[30,55.32075]},"vertices":["SWWz","E4vK","gU82"]},"EzKHFHmR":{"uv":{"suVF":[30,42.89435],"Zpi4":[30,55.32075],"SWWz":[30,55.32075],"E4vK":[30,42.89435]},"vertices":["E4vK","SWWz","Zpi4","suVF"]},"5UbYhYR3":{"uv":{"Dnkl":[15,49.10755],"Zpi4":[30,55.32075],"suVF":[30,42.89435]},"vertices":["suVF","Zpi4","Dnkl"]},"P0SPig6l":{"uv":{"gU82":[15,49.10755],"SWWz":[30,55.32075],"Dz2K":[21.2132,64.10755]},"vertices":["Dz2K","SWWz","gU82"]},"DCRpbWe9":{"uv":{"Zpi4":[30,55.32075],"UHo8":[21.2132,64.10755],"Dz2K":[21.2132,64.10755],"SWWz":[30,55.32075]},"vertices":["SWWz","Dz2K","UHo8","Zpi4"]},"r1RsNv95":{"uv":{"Dnkl":[15,49.10755],"UHo8":[21.2132,64.10755],"Zpi4":[30,55.32075]},"vertices":["Zpi4","UHo8","Dnkl"]},"hYCn70IO":{"uv":{"gU82":[15,49.10755],"Dz2K":[21.2132,64.10755],"uNwR":[8.7868,64.10755]},"vertices":["uNwR","Dz2K","gU82"]},"45hsKR4M":{"uv":{"UHo8":[21.2132,64.10755],"uIp3":[8.7868,64.10755],"uNwR":[8.7868,64.10755],"Dz2K":[21.2132,64.10755]},"vertices":["Dz2K","uNwR","uIp3","UHo8"]},"yQdIUt2F":{"uv":{"Dnkl":[15,49.10755],"uIp3":[8.7868,64.10755],"UHo8":[21.2132,64.10755]},"vertices":["UHo8","uIp3","Dnkl"]}},"type":"mesh","uuid":"b038d96c-3457-bdd7-b70f-b1778dcf3987"},{"name":"cylinder","color":9,"origin":[8.7,0,-8.7],"rotation":[90,0,45],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"gU82":[0,0,0],"Dnkl":[0,2,0],"uNwR":[0.74558,0.7,1.8],"uIp3":[1.24264,2,3],"5AWk":[1.8,0.7,0.74558],"3Gm9":[3,2,1.24264],"lHZs":[1.8,0.7,-0.74558],"V3TF":[3,2,-1.24264],"2dL2":[0.74558,0.7,-1.8],"ucFt":[1.24264,2,-3],"ou6k":[-0.74558,0.7,-1.8],"Xqf2":[-1.24264,2,-3],"E4vK":[-1.8,0.7,-0.74558],"suVF":[-3,2,-1.24264],"SWWz":[-1.8,0.7,0.74558],"Zpi4":[-3,2,1.24264],"Dz2K":[-0.74558,0.7,1.8],"UHo8":[-1.24264,2,3]},"faces":{"1siINuWa":{"uv":{"gU82":[3.35235,3.71687],"uNwR":[2.51969,5.625],"5AWk":[1.44277,4.57983]},"vertices":["5AWk","uNwR","gU82"],"texture":1},"e1uvKRk0":{"uv":{"uIp3":[12.6176,0.20433],"3Gm9":[14.73921,1.49854],"5AWk":[13.39364,2.75],"uNwR":[12.1206,1.97343]},"vertices":["uNwR","5AWk","3Gm9","uIp3"],"texture":1},"hjgyEk4s":{"uv":{"Dnkl":[9,9],"3Gm9":[12,10.2426],"uIp3":[10.2426,12]},"vertices":["uIp3","3Gm9","Dnkl"],"texture":1},"IjLjcRUh":{"uv":{"gU82":[3.35235,3.71687],"5AWk":[1.44277,4.57983],"lHZs":[1.46007,2.75641]},"vertices":["lHZs","5AWk","gU82"],"texture":1},"aSuQkyUI":{"uv":{"3Gm9":[0.0074,7],"V3TF":[2.4926,7],"lHZs":[1.9956,9],"5AWk":[0.5044,9]},"vertices":["5AWk","lHZs","V3TF","3Gm9"],"texture":1},"zADcmsOr":{"uv":{"Dnkl":[9,9],"V3TF":[12,7.7574],"3Gm9":[12,10.2426]},"vertices":["3Gm9","V3TF","Dnkl"],"texture":1},"QhAzGCK5":{"uv":{"gU82":[3.35235,3.71687],"lHZs":[1.46007,2.75641],"2dL2":[2.73311,1.77984]},"vertices":["2dL2","lHZs","gU82"],"texture":1},"rE7FtNEl":{"uv":{"V3TF":[0.11449,1.30495],"ucFt":[2.23611,0.01074],"2dL2":[2.73311,1.77984],"lHZs":[1.46007,2.75641]},"vertices":["lHZs","2dL2","ucFt","V3TF"],"texture":1},"32s3R2l3":{"uv":{"Dnkl":[9,9],"ucFt":[10.2426,6],"V3TF":[12,7.7574]},"vertices":["V3TF","ucFt","Dnkl"],"texture":1},"s3xsnIxZ":{"uv":{"gU82":[3.35235,3.71687],"2dL2":[2.73311,1.77984],"ou6k":[4.22431,1.77984]},"vertices":["ou6k","2dL2","gU82"],"texture":1},"IumBxb3n":{"uv":{"ucFt":[2.23611,0.01074],"Xqf2":[4.72131,0.01074],"ou6k":[4.22431,1.77984],"2dL2":[2.73311,1.77984]},"vertices":["2dL2","ou6k","Xqf2","ucFt"],"texture":1},"sU231RXV":{"uv":{"Dnkl":[9,9],"Xqf2":[7.7574,6],"ucFt":[10.2426,6]},"vertices":["ucFt","Xqf2","Dnkl"],"texture":1},"txYm7zw4":{"uv":{"gU82":[3.35235,3.71687],"ou6k":[4.22431,1.77984],"E4vK":[5.37866,2.90688]},"vertices":["E4vK","ou6k","gU82"],"texture":1},"kY19epwp":{"uv":{"Xqf2":[5.04502,0.13572],"suVF":[6.88551,1.80569],"E4vK":[5.37866,2.90688],"ou6k":[4.22431,1.77984]},"vertices":["ou6k","E4vK","suVF","Xqf2"],"texture":1},"zyGEQI6G":{"uv":{"Dnkl":[9,9],"suVF":[6,7.7574],"Xqf2":[7.7574,6]},"vertices":["Xqf2","suVF","Dnkl"],"texture":1},"Pmk7NBVk":{"uv":{"gU82":[3.35235,3.71687],"E4vK":[5.37866,2.90688],"SWWz":[5.37317,4.54106]},"vertices":["SWWz","E4vK","gU82"],"texture":1},"EzKHFHmR":{"uv":{"suVF":[0.0074,10],"Zpi4":[2.4926,10],"SWWz":[1.9956,12],"E4vK":[0.5044,12]},"vertices":["E4vK","SWWz","Zpi4","suVF"],"texture":1},"5UbYhYR3":{"uv":{"Dnkl":[9,9],"Zpi4":[6,10.2426],"suVF":[6,7.7574]},"vertices":["suVF","Zpi4","Dnkl"],"texture":1},"P0SPig6l":{"uv":{"gU82":[3.35235,3.71687],"SWWz":[5.37317,4.54106],"Dz2K":[4.38288,5.61233]},"vertices":["Dz2K","SWWz","gU82"],"texture":1},"DCRpbWe9":{"uv":{"Zpi4":[8.01079,1.49854],"UHo8":[10.1324,0.20433],"Dz2K":[10.6294,1.97343],"SWWz":[9.35636,2.75]},"vertices":["SWWz","Dz2K","UHo8","Zpi4"],"texture":1},"r1RsNv95":{"uv":{"Dnkl":[9,9],"UHo8":[7.7574,12],"Zpi4":[6,10.2426]},"vertices":["Zpi4","UHo8","Dnkl"],"texture":1},"hYCn70IO":{"uv":{"gU82":[3.35235,3.71687],"Dz2K":[4.38288,5.61233],"uNwR":[2.51969,5.625]},"vertices":["uNwR","Dz2K","gU82"],"texture":1},"45hsKR4M":{"uv":{"UHo8":[10.1324,0.20433],"uIp3":[12.6176,0.20433],"uNwR":[12.1206,1.97343],"Dz2K":[10.6294,1.97343]},"vertices":["Dz2K","uNwR","uIp3","UHo8"],"texture":1},"yQdIUt2F":{"uv":{"Dnkl":[9,9],"uIp3":[10.2426,12],"UHo8":[7.7574,12]},"vertices":["UHo8","uIp3","Dnkl"],"texture":1}},"type":"mesh","uuid":"d9485723-94f6-0e62-f224-eacd0e050382"}],"groups":[{"uuid":"4a1f177f-3c94-1bb9-328e-3c26787c67da","export":true,"locked":false,"origin":[0,0,0],"rotation":[0,-135,0],"color":0,"name":"torus","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":true,"primary_selected":true}],"outliner":["978619ec-db64-c91f-e294-483c44df1aac",{"uuid":"4a1f177f-3c94-1bb9-328e-3c26787c67da","isOpen":true,"children":["d9485723-94f6-0e62-f224-eacd0e050382","b038d96c-3457-bdd7-b70f-b1778dcf3987","6adfc723-6452-6b4e-0510-b9269109a8d8"]}],"textures":[{"name":"floatbot metal","path":"","folder":"block","namespace":"","id":"0","group":"","width":64,"height":64,"uv_width":64,"uv_height":64,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":false,"uuid":"b284a031-6700-7adb-22c7-ccda187f2f81","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADK0lEQVR4AexZPW4VMRDeLE0OQImUJmUkCiTEIWipuQYXQAIKaFAKREOJkKg4BD+iIiUNEiUHQIqiRN8qn+XMyzz/jN/a3reRJuOxZ8Yz34w33s347//F5TYalJ8vZ38mO7nM+W0+b1ujn1x7+qSfWD7GKi5VLwgAKgLqBYDUWIMAPDq+N4CGTn5SYx3vHt45AH39/beJFB+fHE3xIKZcSkkk2AEpznrUdQAQea0TcLZATJL6lEtx7GGh1DgcACFDnC1QSK/EOvbJpdT9R6JNQ1Y21AnSTtrL86v5o10tPhLp2ACoTx5rR2AlMJRj/ZTWiz4C2sbsBI1rdtp8CCgCpnHNrzZvBoCdoHFt41bmVQBYCevZlZ3BxOV8rEz7UlwFoNQGsjN8v3ItRvbtS4zdTVBzxk7Qzpy1Q7R955o3d0AIIAncXIlp+8h5MwDSYW/yCkBsxWKf0iG92P3m0kvqgJindEhnrsRi9wkCwIoisVinMXqpD08+TGN8p+gEAYCz0snDZyukApBbeVZK460kzjhUAKCw5MojP9AGALGVD1WYflI5gpqTNgDA5qUqDz+phP3nJAcAK4WAtwXAym/T6WnNAYCgQ8lDZ2nkvgmGkl9a5VnI5G+CNFwKv3EEbktqqZVnrkEAqNgrD8XtvgjJLzu1Ks//8++a468ewHEdIF9OsGgh6Y+Aklt8W21R7LOf3yc3DoBJ6vzXr+Mjl4E/Pnz9coCMxJ3C9WBRALw7P79Oaxj88Y/T00lG1QECOBXdPQBnIpfoDFz6wNxcdP/V2wEJgvzxt+dvBsgnDx5uhOLuAbgI5ZL06vuRazkyEoIdOMgfQyb5CcqxlOEDVO0I8GH4/uPnIURoWeiAg/wxZDxwU+nZ0ycHVQHA5i2QuwewIjm8hURyY6h2BHIDLm1XHQCcRStZQKkOwIsPny6t1DUAluBL2FbvgBJJWHysAFjQa9E2Naa1A1IRW5p+9Q6w3gFgbylKdQAswZewLQ4A3srwPoFX1BIB7tpHcQAYMIGg3CrfGQCtJizjWgGQiOybvHbAvlVc5rt2gERk3+S1A/at4jLf7jtAJpQqXwEAAP//8sGCLwAAAAZJREFUAwC1ebmuw4cdBwAAAABJRU5ErkJggg=="},{"name":"laser","path":"","folder":"block","namespace":"","id":"1","group":"","width":64,"height":64,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":false,"uuid":"ea7cff12-ed54-bf8a-5b77-14620d7d7798","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACbklEQVR4AexZsU7DMBB1I1XiD7pU6tIRRiRWdn6AH2Don7AwduAH+AF2ViRGGLtU6tJv6FD0Il10TZ3YTnLJOXGlJzv2+e7eu0tJaPa8WJwlYRwfidhfy2XByRHeZDB4mc+NBOB7CLyfTt5hcwG8rUdomASQLCpuq/I9LhnP5pvHt+2LdwBEINgSGHpNXIChCbriJwFcCt3t9obgsu1j/+N4nHG0jVnbASDOA9xvNvxyFPNaATjDm7dXfjmaeS4AnpwInNnvemVAHMD6z3aLIQjkF6PtIG9nn3nZh88ZsimfxXVGmzSWEwVpAg6EAL7IL40h5/uwzTugj0BaY4gLgCcxreSRl7gAaH0E0oJyHiIC4N4HysE0XncuQCzEqRidChAbeYhQKUAomVB7BNeASgHwCutLqmyHLz6CBpJ1OVQKgEMkAgjWAbaxolYAkIIIGH2ByvvaarC7EgAEHg+HGQfW6gAitI95TLgSoEnyIF917vNvf5ZEVVzf9U4EcAV7WC+NBEwHn14E6CBPMRdJALytceB3NRvESjCw44sOCP2TN3DunYS/EKATj5E5Gb0ArnoUAkyx/SFOIQAupogkwBSrzjkXvwvwlx/bnB8a0zzdAmOqZhMuqQPw3M/fBarmTdSN4UzeAVN9CEKBcgEwmaoIhQBTFeFCgCmKcCUARLCBvhxtezGvWQWo+j6o++9vrCJYBbCRaUP+e3cwErDlGbqW2Z77sQbCHKGOyf7pdjWTBMVpOnp3QNMA2s8lAbRXSDq/1AHSCmv3nzpAe4Wk80sdIK2wdv+pA7RXSDq/1AHSCmv3nzpAe4Vc+bXd/wcAAP//TZmeoQAAAAZJREFUAwBhyD2foBz6mwAAAABJRU5ErkJggg=="},{"name":"floatbot body","path":"","folder":"block","namespace":"","id":"2","group":"","width":256,"height":256,"uv_width":64,"uv_height":64,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":false,"uuid":"3a72e5d5-c90d-e735-9738-5699df894e17","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAKYUlEQVR4AezdvZIbVRAG0K19CZwRkFFUkZMRkfPspARk5imMbllbJVSz0ozm/nYfaofVambu7T5tfchrbL///sef3yIfP//627dex4yOvXov+8zYv5oev77f3/xDgEBaAQGQdvQaJ/D2JgD8KCCQVKC0LQCKgoNAUgEBkHTw2iZQBARAUXAQSCogAJIOXtu5BT66FwAfEj4TSCggABIOXcsEPgQEwIeEzwQSCgiAhEPXcm6B2+4FwK2GxwSSCQiAZAPXLoFbAQFwq+ExgWQCAiDZwLWbW+C+ewFwL+JrAokEBECiYWuVwL2AALgX8TWBRAICoMOw//369a310aENWywusFV+0wD48adf3m6PrQI8R4DAOIFmAVBe+FttlefLsXUu4nPlv/wR+9JTDIEmAfDZC/z2+dvHMSjHdiFoxvqvunuTANiLIQT2SrmOwDmBz+6uHgCzvah/+PLlrdexhdxr77LPjPtv1eS5eQSqB8A8ramEAIFnAgLgmZDzBAILCIDAw9UagSLw6BAAj3Q6nCvfve91dGjHFosJVA+Af/7+azfBkWt3L+pCAgR2C1QPgLLznhf2nmvKWg4CBNoJNAmAUm55gZejPL4/Pnv+/jpfEyBwTuDZ3c0C4GPj8mK/Pz7O+UyAwFiB5gEwtj27EyDwSEAAPNJxjkBwAQEQfMDayyuwp3MBsEfJNQSCCgiAoIPVFoE9AgJgj5JrCAQVEABBB6ut3AJ7uxcAe6VcRyCggAAIOFQtEdgrIAD2SrmOQEABARBwqFrKLXCk++UCoNfvne+xz5FBuZZAC4HlAqAFgjUJZBUQAFknr28CFwEBcEHI/NHjpzplj8zGPXs/upcAOCrmegKBBARAoGFqhcBRAQFwVMz1BAIJCIBAw5y5Fd8HaD+dV3YQAK+oVbyn/J1+vY6tsnvtXfbZ2t9zYwUEwFh/uxMYKiAAhvLbnMBYAQEw1t/uBKoIvLrIe/nmTK/j1SLdR4BAGwHvANq4WpXAEgICYIkxKZJAGwEB0MbVqgS6CZzZSACc0XMvgcUFBMDiA1Q+gTMCAuCMnnsJLC4gABYfoPJzC5ztXgCcFXQ/gYUFBMDCw1M6gbMCAuCsoPsJLCwgABYentJzC9ToXgDUULQGgUUFBMCig1M2gRoCAqCGojUILCogABYdnLJzC9TqXgDUkrQOgQUFBMCCQ1MygVoCAqCWpHUILCggACYcWo8/om3CtpW0U6DmZQKgpqa1CCwmIAAWG5hyCdQUEAA1NSusVd7+V1jm6RK99nlaiAuGCgiAofw2J3BMoPbV7+XvbOt11C4+4nq9ZlH2ieinp2MC3gEc83I1gVACAiDUODVD4JiAADjm5WoCwwRabCwAWqhOvGb57n+vY2IGpV0FBMAVwicCGQUEQMap65nAVUAAXCF8IjCzQKvaBEArWesSWEBAACwwJCUSaCUgAFrJWpfAAgICYIEhKTG3QMvulwuA8v+wr3zcDrP1r8ff7uUxgS2B5QJgqwnPESDwmoAAeM3NXQRCCAiAEGPURFSB1n0JgNbC1icwsYAAmHg4SiPQWkAAtBa2PoGJBQTAxMNRWm6BHt0LgB7K9iAwqYAAmHQwyiLQQ0AA9FC2B4FJBQTApINRVm6BXt0LgF7S9iEwoYAAmHAoSiLQS0AA9JK2D4EJBQTAhENRUm6Bnt0LgJ7aE+zV889SmKBdJTwREABPgJwmEFlAAESert4IPBEQAE+AnCbQU6D3Xu+t/1y62/V7N2c/AgQeC3gH8NjHWQKhBQRA6PFqjsBjgSkC4PanCa0eP2ZwlsB4gREVTBEAIxoftadfhx8lb98tAQGwpeI5AkkEhgdAecufxFqbBKYTGB4A04koiMAAgVFbDg+AXj8nHgX8bN/yDqjX8awW5/MJDA+AfOQ6JjCPgACYZxYqIdBdQAB0J7chgf8LjPxKAIzUtzeBwQICYPAAbE9gpIAAGKlvbwKDBQTA4AHYPrfA6O4FwOgJ2J/AQAEBMBDf1gRGCwiA0ROwP4GBAgJgIL6tcwvM0L0AmGEKaiAwSEAADIK3LYEZBATADFNQA4FBAgLgAu+3414QfHQVmGWz916/H7/sM0vT6iBA4LuAdwDfHfybQEqB9AFQ3v6nnLymCVwE0gfAxcAHga4CM22WPgDK9yZ6HTMNXi0EikD6ACgIDgJZBQRA1snrm8BFQABcEHwQ6CUw2z4CYPBEen3/oewzuFXbTyggACYcipII9BIQAL2k7UNgQgEBMOFQlBRTYMauBMCMU1ETgU4CAqATtG0IzCggAGacipoIdBIQAJ2gbZNbYNbuBcCsk1EXgQ4CAqADsi0IzCogAGadjLoIdBAQAB2QbZFbYObuBcDM01EbgcYCAqAxsOUJzCwgAGaejtoINBYQAI2BLZ9bYPbuBcDsE1IfgYYCAqAhrqUJzC4gAGafkPoINBQQAA1xLZ1bYIXuBcAKU1IjgUYCAqARrGUJrCAgAFaYkhoJNBIQAI1gLZtbYJXuBcAqk1IngQYCAqABqiUJrCIgAFaZlDoJNBAQAA1QLZlbYKXuBcBK01IrgcoCAqAyqOUIrCQgAFaalloJVBYQAJVBLZdbYLXuBcBqE1MvgYoCAqAipqUIrCYgAFabmHoJVBQQABUxLZVbYMXuBcCKU1MzgUoCAqASpGUIrCggAFacmpoJVBIQAJUgLZNbYNXuBcCqk1M3gQoCAqACoiUIrCogAFadnLoJVBAQABUQLZFbYOXuBcDK01M7gZMCAuAkoNsJrCwgAFaentoJnBQQACcB3Z5bYPXuBcDqE1Q/gRMCAuAEnlsJrC4gAFafoPoJnBAQACfw3JpbIEL3AiDCFPVA4EUBAfAinNsIRBAQABGmqAcCLwoIgBfh3JZbIEr3AiDKJPVB4AUBAfACmlsIRBEQAFEmqQ8CLwgIgBfQ3JJbIFL3AiDSNPVC4KCAADgI5nICkQQEQKRp6oXAQQEBcBDM5bkFonUvAKJNVD8EDggIgANYLiUQTUAARJuofggcEBAAB7BcmlsgYvcCIOJU9URgp4AA2AnlMgIRBQRAxKnqicBOAQGwE8pluQWidi8Aok5WXwR2CAiAHUguIRBVQABEnay+COwQEAA7kFySWyBy9wIg8nT1RuCJgAB4AuQ0gcgCAiDydPVG4ImAAHgC5HRugejdC4DoE9YfgQcCAuABjlMEogsIgOgT1h+BBwIC4AGOU7kFMnQvADJMWY8EPhEQAJ/AeJpABgEBkGHKeiTwiYAA+ATG07kFsnQvALJMWp8ENgQEwAaKpwhkERAAWSatTwIbAgJgA8VTuQUydS8AMk1brwTuBATAHYgvCWQSEACZpq1XAncCAuAOxJe5BbJ1LwCyTVy/BG4EBMANhocEsgkIgGwT1y+BGwEBcIPhYW6BjN0LgIxT1zOBq4AAuEL4RCCjgADIOHU9E7gKCIArhE+5BbJ2LwCyTl7fBC4CAuCC4INAVgEBkHXy+iZwERAAFwQfuQUydy8AMk9f7+kFBED6HwIAMgsIgMzT13t6AQGQ/odAboDs3f8HAAD//y+RTZYAAAAGSURBVAMARYAHW0hlxloAAAAASUVORK5CYII="}],"export_options":{"gltf":{"encoding":"ascii","scale":48,"embed_textures":true,"armature":false,"animations":true}}} \ No newline at end of file diff --git a/models/default_mesh.res b/models/default_mesh.res index 80c5188..403f129 100644 Binary files a/models/default_mesh.res and b/models/default_mesh.res differ diff --git a/models/floatbot.gltf b/models/floatbot.gltf new file mode 100644 index 0000000..4654aff --- /dev/null +++ b/models/floatbot.gltf @@ -0,0 +1 @@ +{"asset":{"version":"2.0","generator":"Blockbench 5.0.7 glTF exporter"},"scenes":[{"nodes":[0,4],"name":"blockbench_export"}],"scene":0,"nodes":[{"name":"sphere","mesh":0},{"name":"torus","mesh":1},{"rotation":[0.6532814824381882,-0.27059805007309845,0.2705980500730985,0.6532814824381883],"translation":[0.18124999999999997,0,-0.18124999999999947],"name":"cylinder","mesh":2},{"rotation":[0.6532814824381882,-0.27059805007309845,0.2705980500730985,0.6532814824381883],"translation":[0.15208333333333332,0,-0.15208333333333296],"name":"cylinder","mesh":3},{"rotation":[0,-0.9238795325112867,0,0.38268343236508984],"translation":[0,0,-1.1102230246251565e-16],"name":"torus","children":[1,2,3]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":1344,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1344,"byteLength":1344,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2688,"byteLength":896,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":3584,"byteLength":288,"target":34963},{"buffer":0,"byteOffset":3872,"byteLength":672,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4544,"byteLength":672,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5216,"byteLength":448,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":5664,"byteLength":168,"target":34963},{"buffer":0,"byteOffset":5832,"byteLength":960,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":6792,"byteLength":960,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7752,"byteLength":640,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":8392,"byteLength":192,"target":34963},{"buffer":0,"byteOffset":8584,"byteLength":960,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":9544,"byteLength":960,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":10504,"byteLength":640,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":11144,"byteLength":192,"target":34963}],"buffers":[{"byteLength":11336,"uri":"data:application/octet-stream;base64,zfJHPe9b8T3vW/E971vxPe9b8T3N8kc9AAAAAKuqKj4AAAAAiWKNPZhBPCOrqio+q6oqPphBPCOJYo09zfJHPe9b8T3vW/E971vxPe9b8T3N8kc9zfJHPe9b8b3vW/E971vxPe9b8b3N8kc9iWKNPZhBPCOrqio+q6oqPphBPCOJYo0971vxPe9b8b3N8kc9zfJHPe9b8b3vW/E9AAAAAKuqKr4AAAAA71vxPe9b8T3N8kc971vxPe9b8T3N8ke9AAAAAKuqKj4AAAAAq6oqPphBPCOJYo09q6oqPphBPCOJYo2971vxPe9b8T3N8kc971vxPe9b8T3N8ke971vxPe9b8b3N8kc971vxPe9b8b3N8ke9q6oqPphBPCOJYo09q6oqPphBPCOJYo2971vxPe9b8b3N8ke971vxPe9b8b3N8kc9AAAAAKuqKr4AAAAA71vxPe9b8T3N8ke9zfJHPe9b8T3vW/G9AAAAAKuqKj4AAAAAq6oqPphBPCOJYo29iWKNPZhBPCOrqiq+71vxPe9b8T3N8ke9zfJHPe9b8T3vW/G971vxPe9b8b3N8ke9zfJHPe9b8b3vW/G9q6oqPphBPCOJYo29iWKNPZhBPCOrqiq+zfJHPe9b8b3vW/G971vxPe9b8b3N8ke9AAAAAKuqKr4AAAAAzfJHPe9b8T3vW/G9zfJHve9b8T3vW/G9AAAAAKuqKj4AAAAAiWKNPZhBPCOrqiq+iWKNvZhBPCOrqiq+zfJHPe9b8T3vW/G9zfJHve9b8T3vW/G9zfJHPe9b8b3vW/G9zfJHve9b8b3vW/G9iWKNPZhBPCOrqiq+iWKNvZhBPCOrqiq+zfJHve9b8b3vW/G9zfJHPe9b8b3vW/G9AAAAAKuqKr4AAAAAzfJHve9b8T3vW/G971vxve9b8T3N8ke9AAAAAKuqKj4AAAAAiWKNvZhBPCOrqiq+q6oqvphBPCOJYo29zfJHve9b8T3vW/G971vxve9b8T3N8ke9zfJHve9b8b3vW/G971vxve9b8b3N8ke9iWKNvZhBPCOrqiq+q6oqvphBPCOJYo2971vxve9b8b3N8ke9zfJHve9b8b3vW/G9AAAAAKuqKr4AAAAA71vxve9b8T3N8ke971vxve9b8T3N8kc9AAAAAKuqKj4AAAAAq6oqvphBPCOJYo29q6oqvphBPCOJYo0971vxve9b8T3N8ke971vxve9b8T3N8kc971vxve9b8b3N8ke971vxve9b8b3N8kc9q6oqvphBPCOJYo29q6oqvphBPCOJYo0971vxve9b8b3N8kc971vxve9b8b3N8ke9AAAAAKuqKr4AAAAA71vxve9b8T3N8kc9zfJHve9b8T3vW/E9AAAAAKuqKj4AAAAAq6oqvphBPCOJYo09iWKNvZhBPCOrqio+71vxve9b8T3N8kc9zfJHve9b8T3vW/E971vxve9b8b3N8kc9zfJHve9b8b3vW/E9q6oqvphBPCOJYo09iWKNvZhBPCOrqio+zfJHve9b8b3vW/E971vxve9b8b3N8kc9AAAAAKuqKr4AAAAAzfJHve9b8T3vW/E9zfJHPe9b8T3vW/E9AAAAAKuqKj4AAAAAiWKNvZhBPCOrqio+iWKNPZhBPCOrqio+zfJHve9b8T3vW/E9zfJHPe9b8T3vW/E9zfJHve9b8b3vW/E9zfJHPe9b8b3vW/E9iWKNvZhBPCOrqio+iWKNPZhBPCOrqio+zfJHPe9b8b3vW/E9zfJHve9b8b3vW/E9AAAAAKuqKr4AAAAA1IuKPl6DbD/Ui4o+1IuKPl6DbD/Ui4o+1IuKPl6DbD/Ui4o+dT0nPxXvwz51PSc/dT0nPxXvwz51PSc/dT0nPxXvwz51PSc/dT0nPxXvwz51PSc/dT0nPxXvw751PSc/dT0nPxXvw751PSc/dT0nPxXvw751PSc/dT0nPxXvw751PSc/1IuKPl6DbL/Ui4o+1IuKPl6DbL/Ui4o+1IuKPl6DbL/Ui4o+Fe/DPl6DbD8AAAAAFe/DPl6DbD8AAAAAFe/DPl6DbD8AAAAAXoNsPxXvwz4AAAAAXoNsPxXvwz4AAAAAXoNsPxXvwz4AAAAAXoNsPxXvwz4AAAAAXoNsPxXvw74AAAAAXoNsPxXvw74AAAAAXoNsPxXvw74AAAAAXoNsPxXvw74AAAAAFe/DPl6DbL8AAAAAFe/DPl6DbL8AAAAAFe/DPl6DbL8AAAAA1IuKPl6DbD/Ui4q+1IuKPl6DbD/Ui4q+1IuKPl6DbD/Ui4q+dT0nPxXvwz51PSe/dT0nPxXvwz51PSe/dT0nPxXvwz51PSe/dT0nPxXvwz51PSe/dT0nPxXvw751PSe/dT0nPxXvw751PSe/dT0nPxXvw751PSe/dT0nPxXvw751PSe/1IuKPl6DbL/Ui4q+1IuKPl6DbL/Ui4q+1IuKPl6DbL/Ui4q+AAAAAF6DbD8V78O+AAAAAF6DbD8V78O+AAAAAF6DbD8V78O+T2iXJRXvwz5eg2y/T2iXJRXvwz5eg2y/T2iXJRXvwz5eg2y/T2iXJRXvwz5eg2y/AAAAABXvw75eg2y/AAAAABXvw75eg2y/AAAAABXvw75eg2y/AAAAABXvw75eg2y/AAAAAF6DbL8V78O+AAAAAF6DbL8V78O+AAAAAF6DbL8V78O+1IuKvl6DbD/Ui4q+1IuKvl6DbD/Ui4q+1IuKvl6DbD/Ui4q+dT0nvxXvwz51PSe/dT0nvxXvwz51PSe/dT0nvxXvwz51PSe/dT0nvxXvwz51PSe/dT0nvxXvw751PSe/dT0nvxXvw751PSe/dT0nvxXvw751PSe/dT0nvxXvw751PSe/1IuKvl6DbL/Ui4q+1IuKvl6DbL/Ui4q+1IuKvl6DbL/Ui4q+Fe/Dvl6DbD91PaekFe/Dvl6DbD91PaekFe/Dvl6DbD91PaekXoNsvxXvwz5PaBelXoNsvxXvwz5PaBelXoNsvxXvwz5PaBelXoNsvxXvwz5PaBelXoNsvxXvw75bH1alXoNsvxXvw75bH1alXoNsvxXvw75bH1alXoNsvxXvw75bH1alFe/Dvl6DbL91PaekFe/Dvl6DbL91PaekFe/Dvl6DbL91Paek1IuKvl6DbD/Ui4o+1IuKvl6DbD/Ui4o+1IuKvl6DbD/Ui4o+dT0nvxXvwz51PSc/dT0nvxXvwz51PSc/dT0nvxXvwz51PSc/dT0nvxXvwz51PSc/dT0nvxXvw751PSc/dT0nvxXvw751PSc/dT0nvxXvw751PSc/dT0nvxXvw751PSc/1IuKvl6DbL/Ui4o+1IuKvl6DbL/Ui4o+1IuKvl6DbL/Ui4o+dT0npV6DbD8V78M+dT0npV6DbD8V78M+dT0npV6DbD8V78M+T2iXpRXvwz5eg2w/T2iXpRXvwz5eg2w/T2iXpRXvwz5eg2w/T2iXpRXvwz5eg2w/Wx/WpRXvw75eg2w/Wx/WpRXvw75eg2w/Wx/WpRXvw75eg2w/Wx/WpRXvw75eg2w/dT0npV6DbL8V78M+dT0npV6DbL8V78M+dT0npV6DbL8V78M+bOwwPUCWgTxp0wk6WEOaPQAAzD3ggc89FvuAPgAADD8AALY+AAAMP+C+iD4AAOg+NjyuPgAA6D7gvsg+AAAQPzY87j4AABA/FvvAPgAA8D4AAPY+AADwPtOJMD6QiJc+GztcPgAAtj4AAIs+7DiKPmnTCTpYQ5o9GvkKPLCqFz4AAMw94IHPPRb7AD4AAPA+6gRrPgAA8D6qghA+AADAPlZ9Wz4AAMA+VUHAPgAA6D6rvuU+AADoPot9uD4AALg+dYLtPgAAuD6Srzg+HIhkPtOJMD6QiJc+AACLPuw4ij4a+Qo8sKoXPlMFgT3AuEk+AADMPeCBzz0AAAA+AAAUP9UJaj4AABQ/lIcPPgAA+D5Bglo+AAD4Pj55eDwAAAg/gQS1PQAACD8AAAAAAADgPqkT1D0AAOA+qoJwPgx6Mj6Srzg+HIhkPgAAiz7sOIo+UwWBPcC4ST5WfQs+wLhJPgAAzD3ggc89tRV7OgAA2D7VCdY9AADYPk0VhDwAAKg+rfq2PQAAqD5NFYQ8AACgPq36tj0AAKA+tRV7OgAAYD7VCdY9AABgPqu+nT4MejI+qoJwPgx6Mj4AAIs+7DiKPlZ9Cz7AuEk+blBDPrCqFz4AAMw94IHPPYt9AD8AAAg/AAAbPwAACD9wXwQ/AADgPhseFz8AAOA+cF8APwAA2D4bHhM/AADYPhb7+D4AAKg+AAAXPwAAqD43qLk+HIhkPqu+nT4MejI+AACLPuw4ij5uUEM+sKoXPi12Sz5YQ5o9AADMPeCBzz2Lfcg+AACgPnWC/T4AAKA+VUHQPgAAYD6rvvU+AABgPlVByD4AAFA+q77tPgAAUD6LfcA+AADgPXWC9T4AAOA9Fru9PpCIlz43qLk+HIhkPgAAiz7sOIo+LXZLPlhDmj3lxB8+QJaBPAAAzD3ggc89AAAAPwAAUD51gho/AABQPuXhAz8AAOA9kKAWPwAA4D3Kw/c+AADAPZCgDj8AAMA9AADwPgAAAAB1ghI/AAAAAHPipz4AALY+Fru9PpCIlz4AAIs+7DiKPv7g6j0AAAAAbOwwPUCWgTwAAMw94IHPPYt9sD4AAMA9dYLlPgAAwD1VQbg+AAAAAKu+3T4AAAAAqoJwPgAAwD2rvp0+AADAPRb7YD4AAAAAdYKlPgAAAADY1lw+/KC1PlyCpz5iB7Y+5PaKPnwLij4AAAEAAgAFAAMABAAFAAQABgAJAAcACAAJAAgACgALAAwADQAOAA8AEAATABEAEgATABIAFAAXABUAFgAXABYAGAAZABoAGwAcAB0AHgAhAB8AIAAhACAAIgAlACMAJAAlACQAJgAnACgAKQAqACsALAAvAC0ALgAvAC4AMAAzADEAMgAzADIANAA1ADYANwA4ADkAOgA9ADsAPAA9ADwAPgBBAD8AQABBAEAAQgBDAEQARQBGAEcASABLAEkASgBLAEoATABPAE0ATgBPAE4AUABRAFIAUwBUAFUAVgBZAFcAWABZAFgAWgBdAFsAXABdAFwAXgBfAGAAYQBiAGMAZABnAGUAZgBnAGYAaABrAGkAagBrAGoAbABtAG4AbwCkSDo+aP15POH+qz35nU8+cLq4POH+q72rqio+aP35PIlijT2rqio+cLo4PYlijb2kSDo+aP15vOH+qz35nU8+cLq4vOH+q72kSDo+aP15POH+qz35nU8+cLq4POH+q72rqio+aP35vIlijT2rqio+cLo4vYlijb2kSDo+aP15vOH+qz35nU8+cLq4vOH+q735nU8+cLq4POH+q73h/qs9cLq4PPmdT76rqio+cLo4PYlijb2JYo09cLo4PauqKr75nU8+cLq4vOH+q73h/qs9cLq4vPmdT775nU8+cLq4POH+q73h/qs9cLq4PPmdT76rqio+cLo4vYlijb2JYo09cLo4vauqKr75nU8+cLq4vOH+q73h/qs9cLq4vPmdT77h/qs9cLq4PPmdT77h/qu9aP15PKRIOr6JYo09cLo4PauqKr6JYo29aP35PKuqKr7h/qs9cLq4vPmdT77h/qu9aP15vKRIOr7h/qs9cLq4PPmdT77h/qu9aP15PKRIOr6JYo09cLo4vauqKr6JYo29aP35vKuqKr7h/qs9cLq4vPmdT77h/qu9aP15vKRIOr6kSDo+aP15POH+qz2rqio+aP35PIlijT2kSDo+aP15vOH+qz2rqio+aP35vIlijT2rqio+cLo4vYlijb2rqio+aP35vIlijT2rqio+cLo4PYlijb2rqio+aP35PIlijT2JYo09cLo4vauqKr6rqio+cLo4vYlijb2rqio+cLo4PYlijb2JYo09cLo4PauqKr6JYo29aP35vKuqKr6JYo09cLo4vauqKr6JYo09cLo4PauqKr6JYo29aP35PKuqKr7h/qu9aP15vKRIOr6JYo29aP35vKuqKr7h/qu9aP15PKRIOr6JYo29aP35PKuqKr7kMiU/Q2tBP44Y5z3kMiU/Q2tBP44Y5z3kMiU/Q2tBP44Y5z3kMiU/Q2tBP44Y5z2gDX4/AAAAABkX/D2gDX4/AAAAABkX/D2gDX4/AAAAABkX/D2gDX4/AAAAABkX/D1vaCo/Rfw9v2uIoD1vaCo/Rfw9v2uIoD1vaCo/Rfw9v2uIoD1vaCo/Rfw9v2uIoD3B3L8+bhhZP8Hcv77B3L8+bhhZP8Hcv77B3L8+bhhZP8Hcv77B3L8+bhhZP8Hcv77zBDU/AAAAAPMENb/zBDU/AAAAAPMENb/zBDU/AAAAAPMENb/zBDU/AAAAAPMENb/B3L8+bhhZv8Hcv77B3L8+bhhZv8Hcv77B3L8+bhhZv8Hcv77B3L8+bhhZv8Hcv7576ta9XL9SP+3TDr976ta9XL9SP+3TDr976ta9XL9SP+3TDr976ta9XL9SP+3TDr8ZF/y9AAAAAKANfr8ZF/y9AAAAAKANfr8ZF/y9AAAAAKANfr8ZF/y9AAAAAKANfr/TILO9Dv5Tv7rADb/TILO9Dv5Tv7rADb/TILO9Dv5Tv7rADb/TILO9Dv5Tv7rADb94LzO/AAAAALnVNj94LzO/AAAAALnVNj94LzO/AAAAALnVNj94LzO/AAAAALnVNj8AAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAADzBDW/AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAPMENT8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD+51Ta/AAAAAHgvMz+51Ta/AAAAAHgvMz+51Ta/AAAAAHgvMz+51Ta/AAAAAHgvMz8AAPA+AAAIPwAAID8AAAg/AADwPgAAAD8AACA/AAAAPwAA8D4AABg/AAB8PwAAGD8AAPA+AAAAPwAAfD8AAAA/AAAAPwAAKD8AAEQ/AAAoPwAAAD8AABg/AABEPwAAGD+hQvc+cskNPzSRFj/emw0/yTL3PgAAAj+ORBY/G5UBPwAASD8AADw/AABoPwAAPD8AAEg/AAA0PwAAaD8AADQ/7RkgPwAAYT/sbzI/vNpNP103GD/6a10/l4UuP50hRj80kRY/3psNP2ZmMz/DrA0/nEQWPwKVAT/tHjM/JpsBPwAAfD8AABg/AADwPgAAGD8AAHw/AAAAPwAA8D4AAAA/AAAAPwAAKD8AAEQ/AAAoPwAAAD8AABg/AABEPwAAGD8AAPA+9NvlPgAA6D4AAOA+AADwPt6T8T4AAOg+0m/3PgAABD+DUUE/AAAgP7aEPj8AAAQ/AAAwPwAAID/NzDI/AAAkPwAAQD8AAEA/AABAPwAAQD8AADA/AAAkPwAAMD8zMx8/AAA0PzMzAz8zMzE/MzMDP7aEQj8zMx8/6bc/PwAA0D7ek/E+AADYPtJv9z4AANA+9NvlPgAA2D4AAOA+AgAAAAEAAgABAAMABgAEAAUABgAFAAcACgAIAAkACgAJAAsADgAMAA0ADgANAA8AEgAQABEAEgARABMAFgAUABUAFgAVABcAGgAYABkAGgAZABsAHgAcAB0AHgAdAB8AIgAgACEAIgAhACMAJgAkACUAJgAlACcAKgAoACkAKgApACsALAAtAC4ALAAuAC8AMAAxADIAMAAyADMANgA0ADUANgA1ADcAmZkZPe/ubjwpfn48KX5+PO/ubjyZmRk9AAAAAAAAAAAAAAAAKX5+PO/ubjyZmRk9mZkZPe/ubjwpfn48AACAPauqKj3NE9Q8zRPUPKuqKj0AAIA9zRPUPKuqKj0AAIA9AACAPauqKj3NE9Q8vLs7IquqKj0AAAAAmZkZPe/ubjwpfn68mZkZPe/ubjwpfn48AAAAAAAAAAAAAAAAmZkZPe/ubjwpfn48mZkZPe/ubjwpfn68AACAPauqKj3NE9S8AACAPauqKj3NE9Q8AACAPauqKj3NE9Q8AACAPauqKj3NE9S8vLs7IquqKj0AAAAAKX5+PO/ubjyZmRm9mZkZPe/ubjwpfn68AAAAAAAAAAAAAAAAmZkZPe/ubjwpfn68KX5+PO/ubjyZmRm9zRPUPKuqKj0AAIC9AACAPauqKj3NE9S8AACAPauqKj3NE9S8zRPUPKuqKj0AAIC9vLs7IquqKj0AAAAAKX5+vO/ubjyZmRm9KX5+PO/ubjyZmRm9AAAAAAAAAAAAAAAAKX5+PO/ubjyZmRm9KX5+vO/ubjyZmRm9zRPUvKuqKj0AAIC9zRPUPKuqKj0AAIC9zRPUPKuqKj0AAIC9zRPUvKuqKj0AAIC9vLs7IquqKj0AAAAAmZkZve/ubjwpfn68KX5+vO/ubjyZmRm9AAAAAAAAAAAAAAAAKX5+vO/ubjyZmRm9mZkZve/ubjwpfn68AACAvauqKj3NE9S8zRPUvKuqKj0AAIC9zRPUvKuqKj0AAIC9AACAvauqKj3NE9S8vLs7IquqKj0AAAAAmZkZve/ubjwpfn48mZkZve/ubjwpfn68AAAAAAAAAAAAAAAAmZkZve/ubjwpfn68mZkZve/ubjwpfn48AACAvauqKj3NE9Q8AACAvauqKj3NE9S8AACAvauqKj3NE9S8AACAvauqKj3NE9Q8vLs7IquqKj0AAAAAKX5+vO/ubjyZmRk9mZkZve/ubjwpfn48AAAAAAAAAAAAAAAAmZkZve/ubjwpfn48KX5+vO/ubjyZmRk9zRPUvKuqKj0AAIA9AACAvauqKj3NE9Q8AACAvauqKj3NE9Q8zRPUvKuqKj0AAIA9vLs7IquqKj0AAAAAKX5+PO/ubjyZmRk9KX5+vO/ubjyZmRk9AAAAAAAAAAAAAAAAKX5+vO/ubjyZmRk9KX5+PO/ubjyZmRk9zRPUPKuqKj0AAIA9zRPUvKuqKj0AAIA9zRPUvKuqKj0AAIA9zRPUPKuqKj0AAIA9vLs7IquqKj0AAAAANTiDPtyXbr81OIM+NTiDPtyXbr81OIM+NTiDPtyXbr81OIM+fQMFP8SjLb99AwU/fQMFP8SjLb99AwU/fQMFP8SjLb99AwU/fQMFP8SjLb99AwU/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAjpK5PtyXbr8AAAAAjpK5PtyXbr8AAAAAjpK5PtyXbr8AAAAAFBw8P8SjLb8AAAAAFBw8P8SjLb8AAAAAFBw8P8SjLb8AAAAAFBw8P8SjLb8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAANTiDPtyXbr81OIO+NTiDPtyXbr81OIO+NTiDPtyXbr81OIO+fQMFP8SjLb99AwW/fQMFP8SjLb99AwW/fQMFP8SjLb99AwW/fQMFP8SjLb99AwW/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAANyXbr+Okrm+AAAAANyXbr+Okrm+AAAAANyXbr+Okrm+AAAAAMSjLb8UHDy/AAAAAMSjLb8UHDy/AAAAAMSjLb8UHDy/AAAAAMSjLb8UHDy/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAANTiDvtyXbr81OIO+NTiDvtyXbr81OIO+NTiDvtyXbr81OIO+fQMFv8SjLb99AwW/fQMFv8SjLb99AwW/fQMFv8SjLb99AwW/fQMFv8SjLb99AwW/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAjpK5vtyXbr9Bj5uljpK5vtyXbr9Bj5uljpK5vtyXbr9Bj5ulFBw8v8SjLb+6rx2mFBw8v8SjLb+6rx2mFBw8v8SjLb+6rx2mFBw8v8SjLb+6rx2mAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAANTiDvtyXbr81OIM+NTiDvtyXbr81OIM+NTiDvtyXbr81OIM+fQMFv8SjLb99AwU/fQMFv8SjLb99AwU/fQMFv8SjLb99AwU/fQMFv8SjLb99AwU/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAA6Ks6pdyXbr+Okrk+6Ks6pdyXbr+Okrk+6Ks6pdyXbr+Okrk+Rjm9pcSjLb8UHDw/Rjm9pcSjLb8UHDw/Rjm9pcSjLb8UHDw/Rjm9pcSjLb8UHDw/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAxay4Pe6Nkj6LQiE+AAC0PtOMVj5E4W0++u1BP3CZ/D1VTFY/AAAwPtHTaz840L89seFJP4A8UTyx4SM/AABAPwAAQD+w4SM/AAAQPwAAED+W47o9AGkwPsWsuD3ujZI+04xWPkThbT5cIAE9AAAQP9Jv/z0AABA/woYfPgAA4D6ze/I5AADgPgAAQD+w4SM/AABAP548+D4AABA/AAAQPzfrLj7Y0eM9luO6PQBpMD7TjFY+ROFtPpbjuj0AaTA+N+suPtjR4z1eHA8+APwvOpt76jugCKc9AABAP548+D6x4SM/AADAPgAAED8AABA/hS2HPtjR4z036y4+2NHjPdOMVj5E4W0+N+suPtjR4z2FLYc+2NHjPfEUlz4A/C86XhwPPgD8Lzqx4SM/AADAPp88+D4AAMA+AAAQPwAAED/1Haw+YAo6PoUthz7Y0eM904xWPkThbT6FLYc+2NHjPfUdrD5gCjo+ElbcPgAh5z3PcKE+APkKPJ88+D4AAMA+AADAPp48+D4AABA/AAAQPwrxqz5kUJE+9R2sPmAKOj7TjFY+ROFtPlwgAT0AAEA/0m//PQAAQD/Chh8+AAAgP7N78jkAACA/AADAPp48+D4AAMA+sOEjPwAAED8AABA/hECMPi6Ysz4K8as+ZFCRPtOMVj5E4W0+q7MVPwAAMD4GEio/cJn8PU8eIj+APFE8LywAPzjQvz0AAMA+sOEjP588+D4AAEA/AAAQPwAAED+LQiE+AAC0PoRAjD4umLM+04xWPkThbT4GEio/cJn8PfrtQT9wmfw9seFJP4A8UTxPHiI/gDxRPJ88+D4AAEA/seEjPwAAQD8AABA/AAAQPwAAAQACAAMABAAFAAMABQAGAAcACAAJAAoACwAMAA0ADgAPAA0ADwAQABEAEgATABQAFQAWABcAGAAZABcAGQAaABsAHAAdAB4AHwAgACEAIgAjACEAIwAkACUAJgAnACgAKQAqACsALAAtACsALQAuAC8AMAAxADIAMwA0ADUANgA3ADUANwA4ADkAOgA7ADwAPQA+AD8AQABBAD8AQQBCAEMARABFAEYARwBIAEkASgBLAEkASwBMAE0ATgBPAKuqqj0AAAAAiWINPYliDT0AAAAAq6qqPYmICCIAAAAAAAAAAIliDT0AAAAAq6qqPauqqj0AAAAAiWINPauqqj2rqio9iWINPYliDT2rqio9q6qqPYliDT2rqio9q6qqPauqqj2rqio9iWINPYmICCKrqio9AAAAAKuqqj0AAAAAiWINvauqqj0AAAAAiWINPYmICCIAAAAAAAAAAKuqqj0AAAAAiWINPauqqj0AAAAAiWINvauqqj2rqio9iWINvauqqj2rqio9iWINPauqqj2rqio9iWINPauqqj2rqio9iWINvYmICCKrqio9AAAAAIliDT0AAAAAq6qqvauqqj0AAAAAiWINvYmICCIAAAAAAAAAAKuqqj0AAAAAiWINvYliDT0AAAAAq6qqvYliDT2rqio9q6qqvauqqj2rqio9iWINvauqqj2rqio9iWINvYliDT2rqio9q6qqvYmICCKrqio9AAAAAIliDb0AAAAAq6qqvYliDT0AAAAAq6qqvYmICCIAAAAAAAAAAIliDT0AAAAAq6qqvYliDb0AAAAAq6qqvYliDb2rqio9q6qqvYliDT2rqio9q6qqvYliDT2rqio9q6qqvYliDb2rqio9q6qqvYmICCKrqio9AAAAAKuqqr0AAAAAiWINvYliDb0AAAAAq6qqvYmICCIAAAAAAAAAAIliDb0AAAAAq6qqvauqqr0AAAAAiWINvauqqr2rqio9iWINvYliDb2rqio9q6qqvYliDb2rqio9q6qqvauqqr2rqio9iWINvYmICCKrqio9AAAAAKuqqr0AAAAAiWINPauqqr0AAAAAiWINvYmICCIAAAAAAAAAAKuqqr0AAAAAiWINvauqqr0AAAAAiWINPauqqr2rqio9iWINPauqqr2rqio9iWINvauqqr2rqio9iWINvauqqr2rqio9iWINPYmICCKrqio9AAAAAIliDb0AAAAAq6qqPauqqr0AAAAAiWINPYmICCIAAAAAAAAAAKuqqr0AAAAAiWINPYliDb0AAAAAq6qqPYliDb2rqio9q6qqPauqqr2rqio9iWINPauqqr2rqio9iWINPYliDb2rqio9q6qqPYmICCKrqio9AAAAAIliDT0AAAAAq6qqPYliDb0AAAAAq6qqPYmICCIAAAAAAAAAAIliDb0AAAAAq6qqPYliDT0AAAAAq6qqPYliDT2rqio9q6qqPYliDb2rqio9q6qqPYliDb2rqio9q6qqPYliDT2rqio9q6qqPYmICCKrqio9AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAPMENT8AAAAA8wQ1P/MENT8AAAAA8wQ1P/MENT8AAAAA8wQ1P/MENT8AAAAA8wQ1PwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAPMENT8AAAAA8wQ1v/MENT8AAAAA8wQ1v/MENT8AAAAA8wQ1v/MENT8AAAAA8wQ1vwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAPMENb8AAAAA8wQ1v/MENb8AAAAA8wQ1v/MENb8AAAAA8wQ1v/MENb8AAAAA8wQ1vwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgL8AAAAAtsPnpQAAgL8AAAAAtsPnpQAAgL8AAAAAtsPnpQAAgL8AAAAAtsPnpQAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAPMENb8AAAAA8wQ1P/MENb8AAAAA8wQ1P/MENb8AAAAA8wQ1P/MENb8AAAAA8wQ1PwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAALbD56UAAAAAAACAP7bD56UAAAAAAACAP7bD56UAAAAAAACAP7bD56UAAAAAAACAPwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAB0SF0/uJYMPhE3gD8AAHA+Im5EP7iWDD4RN4A/AAAAAHRIXT8AAAAAdEhdP7iWDD60OIA/uJYMPhE3gD8AAAAAdEhdPwAAcD4ibkQ/AAAAANCTKz8AAAAAdEhdPwAAcD4ibkQ/AAAAAHRIXT8AAAAA0JMrPwAAAADQkys/AAAAALtLXT8AAAAAdEhdPwAAAADQkys/AABwPiJuRD+4lgw+Im4IPwAAAADQkys/AABwPiJuRD8AAAAA0JMrP7iWDD4ibgg/uJYMPiJuCD8AAAAAFpcrPwAAAADQkys/uJYMPiJuCD8AAHA+Im5EP6S0qT4ibgg/uJYMPiJuCD8AAHA+Im5EP7iWDD4ibgg/pLSpPiJuCD+ktKk+Im4IP7iWDD5ocQg/uJYMPiJuCD+ktKk+Im4IPwAAcD4ibkQ/AADwPtCTKz+ktKk+Im4IPwAAcD4ibkQ/pLSpPiJuCD8AAPA+0JMrPwAA8D7Qkys/pLSpPmhxCD+ktKk+Im4IPwAA8D7Qkys/AABwPiJuRD8AAPA+dEhdPwAA8D7Qkys/AABwPiJuRD8AAPA+0JMrPwAA8D50SF0/AADwPnRIXT8AAPA+FpcrPwAA8D7Qkys/AADwPnRIXT8AAHA+Im5EP6S0qT4RN4A/AADwPnRIXT8AAHA+Im5EPwAA8D50SF0/pLSpPhE3gD+ktKk+ETeAPwAA8D67S10/AADwPnRIXT+ktKk+ETeAPwAAcD4ibkQ/uJYMPhE3gD+ktKk+ETeAPwAAcD4ibkQ/pLSpPhE3gD+4lgw+ETeAP7iWDD4RN4A/pLSpPhE3gD+ktKk+ETeAP7iWDD4RN4A/AABwPiJuRD8AAAEAAgADAAQABQADAAUABgAHAAgACQAKAAsADAANAA4ADwANAA8AEAARABIAEwAUABUAFgAXABgAGQAXABkAGgAbABwAHQAeAB8AIAAhACIAIwAhACMAJAAlACYAJwAoACkAKgArACwALQArAC0ALgAvADAAMQAyADMANAA1ADYANwA1ADcAOAA5ADoAOwA8AD0APgA/AEAAQQA/AEEAQgBDAEQARQBGAEcASABJAEoASwBJAEsATABNAE4ATwA="}],"accessors":[{"bufferView":0,"componentType":5126,"count":112,"max":[0.1666666716337204,0.1666666716337204,0.1666666716337204],"min":[-0.1666666716337204,-0.1666666716337204,-0.1666666716337204],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":112,"max":[0.9238795042037964,0.9238795042037964,0.9238795042037964],"min":[-0.9238795042037964,-0.9238795042037964,-0.9238795042037964],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":112,"max":[0.60546875,0.578125],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":144,"max":[111],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":56,"max":[0.2027510553598404,0.04509967565536499,0.08398223668336868],"min":[-0.08398223668336868,-0.04509967565536499,-0.2027510553598404],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":56,"max":[0.9923954010009766,0.8480290174484253,1],"min":[-1,-0.8480290174484253,-0.9923954010009766],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":56,"max":[0.984375,0.87890625],"min":[0.40625,0.4375],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":84,"max":[55],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":80,"max":[0.0625,0.0416666679084301,0.0625],"min":[-0.0625,0,-0.0625],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":80,"max":[0.7348034381866455,1,0.7348034381866455],"min":[-0.7348034381866455,-0.9320046901702881,-0.7348034381866455],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":80,"max":[0.9212008118629456,0.75],"min":[0.0004625000001396984,0.0006713271141052246],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":96,"max":[79],"min":[0],"type":"SCALAR"},{"bufferView":12,"componentType":5126,"count":80,"max":[0.0833333358168602,0.0416666679084301,0.0833333358168602],"min":[-0.0833333358168602,0,-0.0833333358168602],"type":"VEC3"},{"bufferView":13,"componentType":5126,"count":80,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":14,"componentType":5126,"count":80,"max":[0.46875,1.0017304420471191],"min":[0,0.5329304933547974],"type":"VEC2"},{"bufferView":15,"componentType":5123,"count":96,"max":[79],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true},{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":1}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true},{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":2}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true},{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"floatbot body"},{"sampler":1,"source":1,"name":"floatbot metal"},{"sampler":2,"source":2,"name":"laser"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071},{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071},{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAKYUlEQVR4AezdvZIbVRAG0K19CZwRkFFUkZMRkfPspARk5imMbllbJVSz0ozm/nYfaofVambu7T5tfchrbL///sef3yIfP//627dex4yOvXov+8zYv5oev77f3/xDgEBaAQGQdvQaJ/D2JgD8KCCQVKC0LQCKgoNAUgEBkHTw2iZQBARAUXAQSCogAJIOXtu5BT66FwAfEj4TSCggABIOXcsEPgQEwIeEzwQSCgiAhEPXcm6B2+4FwK2GxwSSCQiAZAPXLoFbAQFwq+ExgWQCAiDZwLWbW+C+ewFwL+JrAokEBECiYWuVwL2AALgX8TWBRAICoMOw//369a310aENWywusFV+0wD48adf3m6PrQI8R4DAOIFmAVBe+FttlefLsXUu4nPlv/wR+9JTDIEmAfDZC/z2+dvHMSjHdiFoxvqvunuTANiLIQT2SrmOwDmBz+6uHgCzvah/+PLlrdexhdxr77LPjPtv1eS5eQSqB8A8ramEAIFnAgLgmZDzBAILCIDAw9UagSLw6BAAj3Q6nCvfve91dGjHFosJVA+Af/7+azfBkWt3L+pCAgR2C1QPgLLznhf2nmvKWg4CBNoJNAmAUm55gZejPL4/Pnv+/jpfEyBwTuDZ3c0C4GPj8mK/Pz7O+UyAwFiB5gEwtj27EyDwSEAAPNJxjkBwAQEQfMDayyuwp3MBsEfJNQSCCgiAoIPVFoE9AgJgj5JrCAQVEABBB6ut3AJ7uxcAe6VcRyCggAAIOFQtEdgrIAD2SrmOQEABARBwqFrKLXCk++UCoNfvne+xz5FBuZZAC4HlAqAFgjUJZBUQAFknr28CFwEBcEHI/NHjpzplj8zGPXs/upcAOCrmegKBBARAoGFqhcBRAQFwVMz1BAIJCIBAw5y5Fd8HaD+dV3YQAK+oVbyn/J1+vY6tsnvtXfbZ2t9zYwUEwFh/uxMYKiAAhvLbnMBYAQEw1t/uBKoIvLrIe/nmTK/j1SLdR4BAGwHvANq4WpXAEgICYIkxKZJAGwEB0MbVqgS6CZzZSACc0XMvgcUFBMDiA1Q+gTMCAuCMnnsJLC4gABYfoPJzC5ztXgCcFXQ/gYUFBMDCw1M6gbMCAuCsoPsJLCwgABYentJzC9ToXgDUULQGgUUFBMCig1M2gRoCAqCGojUILCogABYdnLJzC9TqXgDUkrQOgQUFBMCCQ1MygVoCAqCWpHUILCggACYcWo8/om3CtpW0U6DmZQKgpqa1CCwmIAAWG5hyCdQUEAA1NSusVd7+V1jm6RK99nlaiAuGCgiAofw2J3BMoPbV7+XvbOt11C4+4nq9ZlH2ieinp2MC3gEc83I1gVACAiDUODVD4JiAADjm5WoCwwRabCwAWqhOvGb57n+vY2IGpV0FBMAVwicCGQUEQMap65nAVUAAXCF8IjCzQKvaBEArWesSWEBAACwwJCUSaCUgAFrJWpfAAgICYIEhKTG3QMvulwuA8v+wr3zcDrP1r8ff7uUxgS2B5QJgqwnPESDwmoAAeM3NXQRCCAiAEGPURFSB1n0JgNbC1icwsYAAmHg4SiPQWkAAtBa2PoGJBQTAxMNRWm6BHt0LgB7K9iAwqYAAmHQwyiLQQ0AA9FC2B4FJBQTApINRVm6BXt0LgF7S9iEwoYAAmHAoSiLQS0AA9JK2D4EJBQTAhENRUm6Bnt0LgJ7aE+zV889SmKBdJTwREABPgJwmEFlAAESert4IPBEQAE+AnCbQU6D3Xu+t/1y62/V7N2c/AgQeC3gH8NjHWQKhBQRA6PFqjsBjgSkC4PanCa0eP2ZwlsB4gREVTBEAIxoftadfhx8lb98tAQGwpeI5AkkEhgdAecufxFqbBKYTGB4A04koiMAAgVFbDg+AXj8nHgX8bN/yDqjX8awW5/MJDA+AfOQ6JjCPgACYZxYqIdBdQAB0J7chgf8LjPxKAIzUtzeBwQICYPAAbE9gpIAAGKlvbwKDBQTA4AHYPrfA6O4FwOgJ2J/AQAEBMBDf1gRGCwiA0ROwP4GBAgJgIL6tcwvM0L0AmGEKaiAwSEAADIK3LYEZBATADFNQA4FBAgLgAu+3414QfHQVmGWz916/H7/sM0vT6iBA4LuAdwDfHfybQEqB9AFQ3v6nnLymCVwE0gfAxcAHga4CM22WPgDK9yZ6HTMNXi0EikD6ACgIDgJZBQRA1snrm8BFQABcEHwQ6CUw2z4CYPBEen3/oewzuFXbTyggACYcipII9BIQAL2k7UNgQgEBMOFQlBRTYMauBMCMU1ETgU4CAqATtG0IzCggAGacipoIdBIQAJ2gbZNbYNbuBcCsk1EXgQ4CAqADsi0IzCogAGadjLoIdBAQAB2QbZFbYObuBcDM01EbgcYCAqAxsOUJzCwgAGaejtoINBYQAI2BLZ9bYPbuBcDsE1IfgYYCAqAhrqUJzC4gAGafkPoINBQQAA1xLZ1bYIXuBcAKU1IjgUYCAqARrGUJrCAgAFaYkhoJNBIQAI1gLZtbYJXuBcAqk1IngQYCAqABqiUJrCIgAFaZlDoJNBAQAA1QLZlbYKXuBcBK01IrgcoCAqAyqOUIrCQgAFaalloJVBYQAJVBLZdbYLXuBcBqE1MvgYoCAqAipqUIrCYgAFabmHoJVBQQABUxLZVbYMXuBcCKU1MzgUoCAqASpGUIrCggAFacmpoJVBIQAJUgLZNbYNXuBcCqk1M3gQoCAqACoiUIrCogAFadnLoJVBAQABUQLZFbYOXuBcDK01M7gZMCAuAkoNsJrCwgAFaentoJnBQQACcB3Z5bYPXuBcDqE1Q/gRMCAuAEnlsJrC4gAFafoPoJnBAQACfw3JpbIEL3AiDCFPVA4EUBAfAinNsIRBAQABGmqAcCLwoIgBfh3JZbIEr3AiDKJPVB4AUBAfACmlsIRBEQAFEmqQ8CLwgIgBfQ3JJbIFL3AiDSNPVC4KCAADgI5nICkQQEQKRp6oXAQQEBcBDM5bkFonUvAKJNVD8EDggIgANYLiUQTUAARJuofggcEBAAB7BcmlsgYvcCIOJU9URgp4AA2AnlMgIRBQRAxKnqicBOAQGwE8pluQWidi8Aok5WXwR2CAiAHUguIRBVQABEnay+COwQEAA7kFySWyBy9wIg8nT1RuCJgAB4AuQ0gcgCAiDydPVG4ImAAHgC5HRugejdC4DoE9YfgQcCAuABjlMEogsIgOgT1h+BBwIC4AGOU7kFMnQvADJMWY8EPhEQAJ/AeJpABgEBkGHKeiTwiYAA+ATG07kFsnQvALJMWp8ENgQEwAaKpwhkERAAWSatTwIbAgJgA8VTuQUydS8AMk1brwTuBATAHYgvCWQSEACZpq1XAncCAuAOxJe5BbJ1LwCyTVy/BG4EBMANhocEsgkIgGwT1y+BGwEBcIPhYW6BjN0LgIxT1zOBq4AAuEL4RCCjgADIOHU9E7gKCIArhE+5BbJ2LwCyTl7fBC4CAuCC4INAVgEBkHXy+iZwERAAFwQfuQUydy8AMk9f7+kFBED6HwIAMgsIgMzT13t6AQGQ/odAboDs3f8HAAD//y+RTZYAAAAGSURBVAMARYAHW0hlxloAAAAASUVORK5CYII="},{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADK0lEQVR4AexZPW4VMRDeLE0OQImUJmUkCiTEIWipuQYXQAIKaFAKREOJkKg4BD+iIiUNEiUHQIqiRN8qn+XMyzz/jN/a3reRJuOxZ8Yz34w33s347//F5TYalJ8vZ38mO7nM+W0+b1ujn1x7+qSfWD7GKi5VLwgAKgLqBYDUWIMAPDq+N4CGTn5SYx3vHt45AH39/beJFB+fHE3xIKZcSkkk2AEpznrUdQAQea0TcLZATJL6lEtx7GGh1DgcACFDnC1QSK/EOvbJpdT9R6JNQ1Y21AnSTtrL86v5o10tPhLp2ACoTx5rR2AlMJRj/ZTWiz4C2sbsBI1rdtp8CCgCpnHNrzZvBoCdoHFt41bmVQBYCevZlZ3BxOV8rEz7UlwFoNQGsjN8v3ItRvbtS4zdTVBzxk7Qzpy1Q7R955o3d0AIIAncXIlp+8h5MwDSYW/yCkBsxWKf0iG92P3m0kvqgJindEhnrsRi9wkCwIoisVinMXqpD08+TGN8p+gEAYCz0snDZyukApBbeVZK460kzjhUAKCw5MojP9AGALGVD1WYflI5gpqTNgDA5qUqDz+phP3nJAcAK4WAtwXAym/T6WnNAYCgQ8lDZ2nkvgmGkl9a5VnI5G+CNFwKv3EEbktqqZVnrkEAqNgrD8XtvgjJLzu1Ks//8++a468ewHEdIF9OsGgh6Y+Aklt8W21R7LOf3yc3DoBJ6vzXr+Mjl4E/Pnz9coCMxJ3C9WBRALw7P79Oaxj88Y/T00lG1QECOBXdPQBnIpfoDFz6wNxcdP/V2wEJgvzxt+dvBsgnDx5uhOLuAbgI5ZL06vuRazkyEoIdOMgfQyb5CcqxlOEDVO0I8GH4/uPnIURoWeiAg/wxZDxwU+nZ0ycHVQHA5i2QuwewIjm8hURyY6h2BHIDLm1XHQCcRStZQKkOwIsPny6t1DUAluBL2FbvgBJJWHysAFjQa9E2Naa1A1IRW5p+9Q6w3gFgbylKdQAswZewLQ4A3srwPoFX1BIB7tpHcQAYMIGg3CrfGQCtJizjWgGQiOybvHbAvlVc5rt2gERk3+S1A/at4jLf7jtAJpQqXwEAAP//8sGCLwAAAAZJREFUAwC1ebmuw4cdBwAAAABJRU5ErkJggg=="},{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACbklEQVR4AexZsU7DMBB1I1XiD7pU6tIRRiRWdn6AH2Don7AwduAH+AF2ViRGGLtU6tJv6FD0Il10TZ3YTnLJOXGlJzv2+e7eu0tJaPa8WJwlYRwfidhfy2XByRHeZDB4mc+NBOB7CLyfTt5hcwG8rUdomASQLCpuq/I9LhnP5pvHt+2LdwBEINgSGHpNXIChCbriJwFcCt3t9obgsu1j/+N4nHG0jVnbASDOA9xvNvxyFPNaATjDm7dXfjmaeS4AnpwInNnvemVAHMD6z3aLIQjkF6PtIG9nn3nZh88ZsimfxXVGmzSWEwVpAg6EAL7IL40h5/uwzTugj0BaY4gLgCcxreSRl7gAaH0E0oJyHiIC4N4HysE0XncuQCzEqRidChAbeYhQKUAomVB7BNeASgHwCutLqmyHLz6CBpJ1OVQKgEMkAgjWAbaxolYAkIIIGH2ByvvaarC7EgAEHg+HGQfW6gAitI95TLgSoEnyIF917vNvf5ZEVVzf9U4EcAV7WC+NBEwHn14E6CBPMRdJALytceB3NRvESjCw44sOCP2TN3DunYS/EKATj5E5Gb0ArnoUAkyx/SFOIQAupogkwBSrzjkXvwvwlx/bnB8a0zzdAmOqZhMuqQPw3M/fBarmTdSN4UzeAVN9CEKBcgEwmaoIhQBTFeFCgCmKcCUARLCBvhxtezGvWQWo+j6o++9vrCJYBbCRaUP+e3cwErDlGbqW2Z77sQbCHKGOyf7pdjWTBMVpOnp3QNMA2s8lAbRXSDq/1AHSCmv3nzpAe4Wk80sdIK2wdv+pA7RXSDq/1AHSCmv3nzpAe4Vc+bXd/wcAAP//TZmeoQAAAAZJREFUAwBhyD2foBz6mwAAAABJRU5ErkJggg=="}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":4,"NORMAL":5,"TEXCOORD_0":6},"indices":7,"material":1}]},{"primitives":[{"mode":4,"attributes":{"POSITION":8,"NORMAL":9,"TEXCOORD_0":10},"indices":11,"material":2}]},{"primitives":[{"mode":4,"attributes":{"POSITION":12,"NORMAL":13,"TEXCOORD_0":14},"indices":15,"material":3}]}]} \ No newline at end of file diff --git a/models/floatbot.gltf.import b/models/floatbot.gltf.import new file mode 100644 index 0000000..125a353 --- /dev/null +++ b/models/floatbot.gltf.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dvh2uowmdibki" +path="res://.godot/imported/floatbot.gltf-beaff3ce560f4a62ce29a0971ed4de70.scn" + +[deps] + +source_file="res://models/floatbot.gltf" +dest_files=["res://.godot/imported/floatbot.gltf-beaff3ce560f4a62ce29a0971ed4de70.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/models/floatbot_0.png b/models/floatbot_0.png new file mode 100644 index 0000000..cfb985a Binary files /dev/null and b/models/floatbot_0.png differ diff --git a/models/floatbot_0.png.import b/models/floatbot_0.png.import new file mode 100644 index 0000000..5a0c8ef --- /dev/null +++ b/models/floatbot_0.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cp87uq7dy2vel" +path.s3tc="res://.godot/imported/floatbot_0.png-6d1013487026a31528d62d89a3cf380c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "d3006d7f4e22f99f5e346f9ecb6a60be" +} + +[deps] + +source_file="res://models/floatbot_0.png" +dest_files=["res://.godot/imported/floatbot_0.png-6d1013487026a31528d62d89a3cf380c.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/models/floatbot_1.png b/models/floatbot_1.png new file mode 100644 index 0000000..d59a3f2 Binary files /dev/null and b/models/floatbot_1.png differ diff --git a/models/floatbot_1.png.import b/models/floatbot_1.png.import new file mode 100644 index 0000000..6adb042 --- /dev/null +++ b/models/floatbot_1.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chuuya65ejbda" +path.s3tc="res://.godot/imported/floatbot_1.png-44f81e8f231dfc6de0214bb4810d5512.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "03fd931f7bcd116c0b3657472a095224" +} + +[deps] + +source_file="res://models/floatbot_1.png" +dest_files=["res://.godot/imported/floatbot_1.png-44f81e8f231dfc6de0214bb4810d5512.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/models/floatbot_2.png b/models/floatbot_2.png new file mode 100644 index 0000000..a878b54 Binary files /dev/null and b/models/floatbot_2.png differ diff --git a/models/floatbot_2.png.import b/models/floatbot_2.png.import new file mode 100644 index 0000000..6f14052 --- /dev/null +++ b/models/floatbot_2.png.import @@ -0,0 +1,44 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3514n5fs0ra3" +path.s3tc="res://.godot/imported/floatbot_2.png-6b229d305a0a261afca1787091aa77d6.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={ +"md5": "212bf5b056a47932761c6e878705e622" +} + +[deps] + +source_file="res://models/floatbot_2.png" +dest_files=["res://.godot/imported/floatbot_2.png-6b229d305a0a261afca1787091aa77d6.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/project.godot b/project.godot index 7c765c7..cefd6e8 100644 --- a/project.godot +++ b/project.godot @@ -31,6 +31,10 @@ window/size/resizable=false project/assembly_name="Trap Gunner" +[editor_plugins] + +enabled=PackedStringArray("res://addons/nodetunnel/plugin.cfg") + [global_group] level_spawner="" diff --git a/scenes/manufactory.tscn b/scenes/manufactory.tscn index a3ee18e..b95b342 100644 --- a/scenes/manufactory.tscn +++ b/scenes/manufactory.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://dewb10lmvj1yy"] +[gd_scene load_steps=14 format=3 uid="uid://dewb10lmvj1yy"] [ext_resource type="Script" uid="uid://d3t381vws7vns" path="res://scripts/level.gd" id="1_0a1dj"] [ext_resource type="PackedScene" uid="uid://bgocskbofewsr" path="res://templates/HUD.tscn" id="2_uckv6"] @@ -7,11 +7,40 @@ [ext_resource type="MeshLibrary" uid="uid://bp5402nbrw3hx" path="res://manufactory_minimap_mesh_library.tres" id="6_0a1dj"] [ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="7_cttrw"] [ext_resource type="PackedScene" uid="uid://c8xf3qawk5c6u" path="res://templates/pawn_controller.tscn" id="8_d3ajt"] +[ext_resource type="Texture2D" uid="uid://dm4flob70q133" path="res://visuals/images/enemy vision tile.png" id="8_owm7e"] +[ext_resource type="PackedScene" uid="uid://dvh2uowmdibki" path="res://models/floatbot.gltf" id="9_0nmat"] [sub_resource type="Environment" id="Environment_x4b8f"] background_energy_multiplier = 0.29 glow_enabled = true +[sub_resource type="Animation" id="Animation_0fg7r"] +resource_name = "Hover" +loop_mode = 1 +tracks/0/type = "position_3d" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Mesh") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 0.23333333, 1, 0, -0.05, 0, 0.5, 1, 0, 0, 0, 0.73333335, 1, 0, 0.05, 0, 1, 1, 0, 0, 0) + +[sub_resource type="Animation" id="Animation_cttrw"] +length = 0.001 +tracks/0/type = "position_3d" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Mesh") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0) + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_2pygi"] +_data = { +&"Hover": SubResource("Animation_0fg7r"), +&"RESET": SubResource("Animation_cttrw") +} + [node name="Level" type="Node3D"] script = ExtResource("1_0a1dj") difficulty = 5 @@ -249,4 +278,70 @@ metadata/_editor_floor_ = Vector3(0, -1, 0) [node name="Player" parent="." instance=ExtResource("8_d3ajt")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4709167, 2.008789, -0.08325195) +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49184608, 2.0179443, 0.5048561) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Sprite3D2" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5309963, 2.0179443, 0.5048561) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Sprite3D4" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5478954, 2.0179443, 0.5048561) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Sprite3D5" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49184608, 2.0179443, 1.5390358) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Sprite3D6" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5309963, 2.0179443, 1.5390358) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Sprite3D7" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5478954, 2.0179443, 1.5390358) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Sprite3D3" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5309963, 2.0179443, -0.5017357) +pixel_size = 0.0156 +axis = 1 +texture_filter = 0 +texture = ExtResource("8_owm7e") + +[node name="Node3D" type="CharacterBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50392485, 3.0340576, 0) + +[node name="Mesh" parent="Node3D" instance=ExtResource("9_0nmat")] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Node3D"] +libraries = { +&"": SubResource("AnimationLibrary_2pygi") +} + +[node name="CanvasLayer" type="CanvasLayer" parent="Node3D"] +follow_viewport_enabled = true + +[node name="ProgressBar" type="ProgressBar" parent="Node3D"] +offset_right = 147.0 +offset_bottom = 27.0 + [editable path="CanvasLayer/HUD"] diff --git a/scripts/autos/multiplayer.gd b/scripts/autos/multiplayer.gd index 567743c..14ca741 100644 --- a/scripts/autos/multiplayer.gd +++ b/scripts/autos/multiplayer.gd @@ -14,11 +14,34 @@ var waiting : bool = false func become_host() -> void: print("Starting host!") - var server_peer = ENetMultiplayerPeer.new() - server_peer.create_server(SERVER_PORT) + var server_peer = NodeTunnelPeer.new() + server_peer.error.connect( + func(error_msg): + push_error("NodeTunnel Error: ", error_msg) + ) + server_peer.connect_to_relay("us_east.nodetunnel.io:8080", "1dl00j5zgo2uxk0") + multiplayer.multiplayer_peer = server_peer + print("Authenticating") + await server_peer.authenticated + print("Authenticated") + var metadata = { + "players": 2, + "name": "testing", + "password_req": false + } + + server_peer.host_room(true, JSON.stringify(metadata)) + print("Hosting Room...") + var room_id = await server_peer.room_connected + print("Connected to room: ", server_peer.room_id) + server_peer.get_rooms() + var rooms = await server_peer.rooms_received + for r in rooms: + var meta = JSON.parse_string(r.metadata) + #can now use meta.players, meta.name, meta.password_req, etc. players[handle] = 1 player_readiness[1] = false - multiplayer.multiplayer_peer = server_peer + id = multiplayer.get_unique_id() print("%s %d t" % [handle, multiplayer.get_unique_id()]) multiplayer.peer_connected.connect(_add_player_to_game) diff --git a/visuals/images/enemy vision tile.png b/visuals/images/enemy vision tile.png new file mode 100644 index 0000000..37ae1fd Binary files /dev/null and b/visuals/images/enemy vision tile.png differ diff --git a/visuals/images/enemy vision tile.png.import b/visuals/images/enemy vision tile.png.import new file mode 100644 index 0000000..71affd8 --- /dev/null +++ b/visuals/images/enemy vision tile.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm4flob70q133" +path.s3tc="res://.godot/imported/enemy vision tile.png-562b2a225203d9901f3968310f621877.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://visuals/images/enemy vision tile.png" +dest_files=["res://.godot/imported/enemy vision tile.png-562b2a225203d9901f3968310f621877.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