Particles with a menu

This commit is contained in:
Mario Brandao
2023-12-14 22:10:23 +01:00
parent 1355303d37
commit c711af00ec
17 changed files with 380 additions and 168 deletions

View File

@ -3,7 +3,7 @@
[ext_resource type="Texture2D" uid="uid://52dsxhh2k7e1" path="res://addons/kenney_particle_pack/fire_01.png" id="1_q2wt5"]
[sub_resource type="Gradient" id="Gradient_eonhu"]
offsets = PackedFloat32Array(0, 0.201566, 0.78865, 1)
offsets = PackedFloat32Array(0.104693, 0.238267, 0.78865, 1)
colors = PackedColorArray(0, 0.356863, 1, 1, 0.894118, 0.290196, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_cmn7d"]
@ -29,7 +29,7 @@ color_ramp = SubResource("GradientTexture1D_cmn7d")
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
albedo_color = Color(2, 2, 2, 1)
albedo_color = Color(1.5, 1.5, 1.5, 1)
albedo_texture = ExtResource("1_q2wt5")
billboard_mode = 3
billboard_keep_scale = true

View File

@ -1,7 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://jyk4uwcupa50"]
[gd_scene load_steps=17 format=3 uid="uid://xilvyurttymc"]
[ext_resource type="Texture2D" uid="uid://cpqufbjs2rf5t" path="res://addons/kenney_particle_pack/muzzle_01.png" id="1_nj335"]
[ext_resource type="Texture2D" uid="uid://b8yqiftn6q2ij" path="res://addons/kenney_particle_pack/circle_05.png" id="2_6unvo"]
[ext_resource type="Texture2D" uid="uid://bixgnuiv2dcuu" path="res://addons/kenney_particle_pack/muzzle_04.png" id="1_vpc1r"]
[sub_resource type="Curve" id="Curve_lqnej"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.370492, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
@ -10,26 +9,44 @@ point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_rymgb"]
curve = SubResource("Curve_lqnej")
[sub_resource type="Curve" id="Curve_mr68g"]
_data = [Vector2(0, 0.521682), 0.0, 0.0, 0, 0, Vector2(0.144262, 1), 0.0, 0.0, 0, 0]
[sub_resource type="Curve" id="Curve_3ftq8"]
max_value = 2.0
_data = [Vector2(0, 0.0519054), 0.0, 0.0, 0, 0, Vector2(1, 2), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_7xpum"]
curve = SubResource("Curve_mr68g")
[sub_resource type="Curve" id="Curve_d7y1q"]
_data = [Vector2(0.272131, 1), 0.0, 0.0, 0, 0, Vector2(0.386885, 0.666886), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Curve" id="Curve_orjn8"]
_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="CurveXYZTexture" id="CurveXYZTexture_j5tl2"]
curve_x = SubResource("Curve_3ftq8")
curve_y = SubResource("Curve_d7y1q")
curve_z = SubResource("Curve_orjn8")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_s3tbj"]
gravity = Vector3(0, 0, 0)
scale_curve = SubResource("CurveTexture_7xpum")
emission_shape_offset = Vector3(0, 1, 0)
gravity = Vector3(0, -20, 0)
scale_curve = SubResource("CurveXYZTexture_j5tl2")
alpha_curve = SubResource("CurveTexture_rymgb")
sub_emitter_mode = 2
sub_emitter_amount_at_end = 1
hue_variation_min = -0.5
hue_variation_max = 0.5
collision_mode = 1
collision_friction = 0.0
collision_bounce = 0.0
collision_use_scale = true
sub_emitter_mode = 3
sub_emitter_amount_at_collision = 1
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ky36s"]
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
albedo_color = Color(1, 1, 1, 0.0392157)
albedo_texture = ExtResource("1_nj335")
albedo_texture = ExtResource("1_vpc1r")
rim_enabled = true
billboard_mode = 3
billboard_keep_scale = true
@ -41,35 +58,53 @@ particles_anim_loop = false
material = SubResource("StandardMaterial3D_ky36s")
center_offset = Vector3(0, 0.4, 0)
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_iv2ux"]
[sub_resource type="Curve" id="Curve_tsw8s"]
_data = [Vector2(0, 0.812089), 0.0, 0.0, 0, 0, Vector2(0.501639, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.461892), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_bum2j"]
curve = SubResource("Curve_tsw8s")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7no0b"]
direction = Vector3(0, 2, 0)
initial_velocity_min = 3.0
initial_velocity_max = 3.0
scale_curve = SubResource("CurveTexture_bum2j")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6ojok"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_4ivdu"]
load_path = "res://.godot/imported/circle_05.png-2d6c777c446ba2a583b61d30e52bc466.s3tc.ctex"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xhpkt"]
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("2_6unvo")
albedo_texture = SubResource("CompressedTexture2D_4ivdu")
rim_enabled = true
billboard_mode = 3
billboard_keep_scale = true
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="QuadMesh" id="QuadMesh_pmnps"]
material = SubResource("StandardMaterial3D_6ojok")
[sub_resource type="QuadMesh" id="QuadMesh_hvt0q"]
material = SubResource("StandardMaterial3D_xhpkt")
size = Vector2(0.1, 0.1)
[node name="Impact" type="Node3D"]
[node name="GPUParticles3D" type="GPUParticles3D" parent="."]
[node name="Impact" type="GPUParticles3D"]
amount = 10
sub_emitter = NodePath("../GPUParticles3D2")
sub_emitter = NodePath("GPUParticles3D2")
speed_scale = 0.5
explosiveness = 1.0
fixed_fps = 60
process_material = SubResource("ParticleProcessMaterial_s3tbj")
draw_pass_1 = SubResource("QuadMesh_ot0ot")
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
process_material = SubResource("ParticleProcessMaterial_iv2ux")
draw_pass_1 = SubResource("QuadMesh_pmnps")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
emitting = false
amount = 16
lifetime = 2.0
one_shot = true
explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_7no0b")
draw_pass_1 = SubResource("QuadMesh_hvt0q")

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=23 format=3 uid="uid://10u16dtnpupt"]
[gd_scene load_steps=21 format=3 uid="uid://b8468qkcraev"]
[ext_resource type="Script" path="res://scripts/MultiParticles.cs" id="1_weson"]
[ext_resource type="Texture2D" uid="uid://b8yqiftn6q2ij" path="res://addons/kenney_particle_pack/circle_05.png" id="2_qtlvw"]
@ -23,8 +23,8 @@ curve = SubResource("Curve_7t07v")
emission_shape = 2
emission_sphere_radius = 3.0
gravity = Vector3(2.08165e-12, 2.08165e-12, 2.08165e-12)
radial_accel_min = 0.2
radial_accel_max = 0.2
radial_accel_min = 0.18
radial_accel_max = 0.22
radial_accel_curve = SubResource("CurveTexture_8froe")
color = Color(0, 0.564706, 1, 1)
alpha_curve = SubResource("CurveTexture_wtgks")
@ -48,14 +48,14 @@ material = SubResource("StandardMaterial3D_blklt")
size = Vector2(0.1, 0.1)
[sub_resource type="Curve" id="Curve_0jmg7"]
_data = [Vector2(0.251318, 1), 0.0, 0.0, 0, 0, Vector2(0.991213, 0), 0.0, 0.0, 0, 0]
_data = [Vector2(0.251318, 1), 0.0, 0.0, 0, 0, Vector2(0.898361, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_gf3su"]
curve = SubResource("Curve_0jmg7")
[sub_resource type="Gradient" id="Gradient_vj4no"]
offsets = PackedFloat32Array(0.448141, 0.636008)
offsets = PackedFloat32Array(0, 0.636008)
colors = PackedColorArray(0, 0.894118, 1, 1, 0, 0.564706, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_8k4ey"]
@ -83,30 +83,15 @@ color_ramp = SubResource("GradientTexture1D_8k4ey")
alpha_curve = SubResource("CurveTexture_gf3su")
emission_curve = SubResource("CurveTexture_ga1td")
[sub_resource type="Gradient" id="Gradient_30bhn"]
offsets = PackedFloat32Array(0.506744, 0.689788)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_1pmsb"]
gradient = SubResource("Gradient_30bhn")
width = 256
height = 256
fill = 1
fill_from = Vector2(0.5, 0.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k5esa"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_egr1g"]
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
albedo_texture = SubResource("GradientTexture2D_1pmsb")
billboard_mode = 3
billboard_keep_scale = true
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
emission = Color(0, 0.682353, 1, 1)
emission_energy_multiplier = 11.57
rim_enabled = true
[sub_resource type="QuadMesh" id="QuadMesh_gvf03"]
material = SubResource("StandardMaterial3D_k5esa")
[sub_resource type="SphereMesh" id="SphereMesh_ik8yd"]
material = SubResource("StandardMaterial3D_egr1g")
[node name="Implosion" type="Node3D" node_paths=PackedStringArray("Particles")]
script = ExtResource("1_weson")
@ -125,4 +110,4 @@ amount = 1
lifetime = 4.0
fixed_fps = 60
process_material = SubResource("ParticleProcessMaterial_t7lly")
draw_pass_1 = SubResource("QuadMesh_gvf03")
draw_pass_1 = SubResource("SphereMesh_ik8yd")

View File

@ -0,0 +1,36 @@
extends Node3D
@onready var labelVisibleEffects = %LabelVisibleEffects
@onready var buttonSmoke = %ButtonSmoke
@onready var effectsContainer = %Effects
@onready var sideBarMenu = $"CanvasLayer UI/SideBar/SideBar Menu"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
pass
func updateVisibleEffects():
var pressedButton = buttonSmoke.button_group.get_pressed_button()
var effect = get_node("Effects/" + pressedButton.text.strip_edges())
for child in effectsContainer.get_children():
if child == effect:
child.show()
else:
child.hide()
labelVisibleEffects.text = "[center]" + pressedButton.text
func toggleSideBar():
if sideBarMenu.visible: # Replace with function body.
sideBarMenu.hide()
else:
sideBarMenu.show()

View File

@ -0,0 +1,3 @@
[gd_resource type="ButtonGroup" format=3 uid="uid://crqtlmwxkve6i"]
[resource]

View File

@ -1,46 +1,10 @@
[gd_scene load_steps=17 format=3 uid="uid://brf0ftux0hwy8"]
[gd_scene load_steps=15 format=3 uid="uid://r8y6qoevceyk"]
[ext_resource type="Script" path="res://scripts/MultiParticles.cs" id="1_yvu1a"]
[ext_resource type="Texture2D" uid="uid://bd2arrqo7xw7c" path="res://addons/kenney_particle_pack/circle_01.png" id="2_s6tl6"]
[sub_resource type="Curve" id="Curve_jaxyf"]
_data = [Vector2(0.381371, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.0937408), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_qx1ma"]
curve = SubResource("Curve_jaxyf")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_dbh2b"]
gravity = Vector3(2.08165e-12, 2.08165e-12, 2.08165e-12)
scale_curve = SubResource("CurveTexture_qx1ma")
[sub_resource type="Gradient" id="Gradient_2mquu"]
offsets = PackedFloat32Array(0.506744, 0.689788)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_fmsbu"]
gradient = SubResource("Gradient_2mquu")
width = 256
height = 256
fill = 1
fill_from = Vector2(0.5, 0.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_82lug"]
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
albedo_texture = SubResource("GradientTexture2D_fmsbu")
billboard_mode = 3
billboard_keep_scale = true
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="QuadMesh" id="QuadMesh_vwe5g"]
material = SubResource("StandardMaterial3D_82lug")
[sub_resource type="Curve" id="Curve_q71c2"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
_data = [Vector2(0, 0.487516), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_5xkdf"]
@ -48,7 +12,7 @@ curve = SubResource("Curve_q71c2")
[sub_resource type="Curve" id="Curve_0s8ld"]
max_value = 3.0
_data = [Vector2(0, 0.0927029), 0.0, 0.0, 0, 0, Vector2(1, 3), 0.0, 0.0, 0, 0]
_data = [Vector2(0, 0.591327), 0.0, 0.0, 0, 0, Vector2(1, 3), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_406ad"]
@ -68,20 +32,42 @@ rim_enabled = true
[sub_resource type="PlaneMesh" id="PlaneMesh_iktve"]
material = SubResource("StandardMaterial3D_y7i1b")
[sub_resource type="Curve" id="Curve_jaxyf"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.381371, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.0937408), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_qx1ma"]
curve = SubResource("Curve_jaxyf")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_dbh2b"]
gravity = Vector3(2.08165e-12, 2.08165e-12, 2.08165e-12)
scale_curve = SubResource("CurveTexture_qx1ma")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kcy1j"]
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
rim_enabled = true
[sub_resource type="SphereMesh" id="SphereMesh_7m7gc"]
material = SubResource("StandardMaterial3D_kcy1j")
radius = 0.4
height = 0.8
[node name="Shockwave" type="Node3D" node_paths=PackedStringArray("Particles")]
script = ExtResource("1_yvu1a")
Particles = [NodePath("Sphere"), NodePath("Ripple")]
Particles = [NodePath("Sphere"), NodePath("Waves")]
[node name="Waves" type="GPUParticles3D" parent="."]
amount = 3
lifetime = 3.0
explosiveness = 0.8
process_material = SubResource("ParticleProcessMaterial_aak2r")
draw_pass_1 = SubResource("PlaneMesh_iktve")
[node name="Sphere" type="GPUParticles3D" parent="."]
amount = 1
lifetime = 3.0
fixed_fps = 60
process_material = SubResource("ParticleProcessMaterial_dbh2b")
draw_pass_1 = SubResource("QuadMesh_vwe5g")
[node name="Ripple" type="GPUParticles3D" parent="."]
amount = 3
lifetime = 3.0
explosiveness = 0.8
process_material = SubResource("ParticleProcessMaterial_aak2r")
draw_pass_1 = SubResource("PlaneMesh_iktve")
draw_pass_1 = SubResource("SphereMesh_7m7gc")

View File

@ -39,7 +39,6 @@ alpha_curve = SubResource("CurveTexture_qjymw")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0ufmo"]
transparency = 1
blend_mode = 1
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("1_v5mjt")
billboard_mode = 3