diff --git a/README.md b/README.md index 7e1e63f..a47da75 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,10 @@ ![Sparks](./docs/images/particles/sparks.png) +### Rain + +![Rain](./docs/images/particles/rain.png) + ## License Kenney Particle Pack is copyrighted by Kenney, and can be found at https://kenney.nl/assets/particle-pack diff --git a/docs/images/particles/rain.png b/docs/images/particles/rain.png new file mode 100644 index 0000000..ab60275 Binary files /dev/null and b/docs/images/particles/rain.png differ diff --git a/docs/images/particles/rain.png.import b/docs/images/particles/rain.png.import new file mode 100644 index 0000000..c680d46 --- /dev/null +++ b/docs/images/particles/rain.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvbmo12qi7fki" +path="res://.godot/imported/rain.png-e24fea4605b42511defd9335054e8516.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://docs/images/particles/rain.png" +dest_files=["res://.godot/imported/rain.png-e24fea4605b42511defd9335054e8516.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/environments/black-environment.tres b/environments/black-environment.tres index 5ffbac2..4b4abca 100644 --- a/environments/black-environment.tres +++ b/environments/black-environment.tres @@ -4,3 +4,6 @@ background_mode = 1 glow_enabled = true glow_blend_mode = 4 +fog_enabled = true +fog_light_energy = 0.82 +fog_sun_scatter = 0.15 diff --git a/particle-effects.tscn b/particle-effects.tscn index 012b10d..ad22f6b 100644 --- a/particle-effects.tscn +++ b/particle-effects.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://chomobsn1vdo4"] +[gd_scene load_steps=11 format=3 uid="uid://chomobsn1vdo4"] [ext_resource type="Environment" uid="uid://dxrk0u62aekxt" path="res://environments/black-environment.tres" id="1_k1rat"] [ext_resource type="PackedScene" uid="uid://cxj4cf67il71y" path="res://particles/smoke.tscn" id="1_vs4eb"] @@ -7,6 +7,7 @@ [ext_resource type="PackedScene" uid="uid://ce6advdj56x0c" path="res://particles/hyperdrive.tscn" id="4_waeec"] [ext_resource type="PackedScene" uid="uid://b2dthk7xytysh" path="res://particles/shield.tscn" id="5_iqqai"] [ext_resource type="PackedScene" uid="uid://ck5vuhi3tffgl" path="res://particles/sparks.tscn" id="6_n8y86"] +[ext_resource type="PackedScene" uid="uid://1nbihtdf4hnv" path="res://particles/rain.tscn" id="8_pqidy"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_njwlo"] shading_mode = 0 @@ -16,38 +17,6 @@ albedo_color = Color(0, 0, 0, 1) material = SubResource("StandardMaterial3D_njwlo") size = Vector2(10, 10) -[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_yeau7"] -emission_shape = 6 -emission_ring_axis = Vector3(0, 0, 1) -emission_ring_height = 1.0 -emission_ring_radius = 3.0 -emission_ring_inner_radius = 0.0 -collision_mode = 1 -collision_friction = 0.0 -collision_bounce = 0.3 - -[sub_resource type="Gradient" id="Gradient_wmx1f"] -offsets = PackedFloat32Array(0.469751, 0.647687) -colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) - -[sub_resource type="GradientTexture2D" id="GradientTexture2D_c4vav"] -gradient = SubResource("Gradient_wmx1f") -fill = 1 -fill_from = Vector2(0.5, 0.5) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_isb3u"] -transparency = 1 -vertex_color_use_as_albedo = true -albedo_texture = SubResource("GradientTexture2D_c4vav") -billboard_mode = 3 -particles_anim_h_frames = 1 -particles_anim_v_frames = 1 -particles_anim_loop = false - -[sub_resource type="QuadMesh" id="QuadMesh_r2rct"] -material = SubResource("StandardMaterial3D_isb3u") -size = Vector2(0.01, 0.1) - [node name="Particle Effects" type="Node3D"] [node name="Camera3D" type="Camera3D" parent="."] @@ -88,11 +57,4 @@ visible = false [node name="Sparks" parent="." instance=ExtResource("6_n8y86")] visible = false -[node name="Rain" type="Node3D" parent="."] - -[node name="Droplets" type="GPUParticles3D" parent="Rain"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) -amount = 64 -fixed_fps = 60 -process_material = SubResource("ParticleProcessMaterial_yeau7") -draw_pass_1 = SubResource("QuadMesh_r2rct") +[node name="Rain" parent="." instance=ExtResource("8_pqidy")] diff --git a/particles/rain.tscn b/particles/rain.tscn new file mode 100644 index 0000000..8c8effb --- /dev/null +++ b/particles/rain.tscn @@ -0,0 +1,82 @@ +[gd_scene load_steps=15 format=3 uid="uid://1nbihtdf4hnv"] + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_yeau7"] +emission_shape = 3 +emission_box_extents = Vector3(3, 0.1, 3) +collision_mode = 1 +collision_friction = 0.0 +collision_bounce = 0.3 +sub_emitter_mode = 3 +sub_emitter_amount_at_collision = 1 + +[sub_resource type="Gradient" id="Gradient_wmx1f"] +offsets = PackedFloat32Array(0.469751, 0.647687) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_c4vav"] +gradient = SubResource("Gradient_wmx1f") +fill = 1 +fill_from = Vector2(0.5, 0.5) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_isb3u"] +transparency = 1 +vertex_color_use_as_albedo = true +albedo_texture = SubResource("GradientTexture2D_c4vav") + +[sub_resource type="QuadMesh" id="QuadMesh_r2rct"] +material = SubResource("StandardMaterial3D_isb3u") +size = Vector2(0.01, 0.1) + +[sub_resource type="Curve" id="Curve_utnjj"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.501639, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_vxkt7"] +curve = SubResource("Curve_utnjj") + +[sub_resource type="Curve" id="Curve_jops4"] +_data = [Vector2(0, 0.0519054), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_h2jh6"] +curve = SubResource("Curve_jops4") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_kmy1d"] +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_h2jh6") +alpha_curve = SubResource("CurveTexture_vxkt7") + +[sub_resource type="Gradient" id="Gradient_oi1wo"] +offsets = PackedFloat32Array(0.30605, 0.327402, 0.352313, 0.565836, 0.587189, 0.640569) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.380392, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_lh0c0"] +gradient = SubResource("Gradient_oi1wo") +fill = 1 +fill_from = Vector2(0.5, 0.5) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pwl4w"] +transparency = 1 +blend_mode = 1 +vertex_color_use_as_albedo = true +albedo_texture = SubResource("GradientTexture2D_lh0c0") + +[sub_resource type="PlaneMesh" id="PlaneMesh_631li"] +material = SubResource("StandardMaterial3D_pwl4w") +size = Vector2(1, 1) + +[node name="Rain" type="Node3D"] + +[node name="Droplets" type="GPUParticles3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) +amount = 240 +sub_emitter = NodePath("../Ripples") +fixed_fps = 60 +process_material = SubResource("ParticleProcessMaterial_yeau7") +draw_pass_1 = SubResource("QuadMesh_r2rct") + +[node name="Ripples" type="GPUParticles3D" parent="."] +lifetime = 0.5 +fixed_fps = 60 +process_material = SubResource("ParticleProcessMaterial_kmy1d") +draw_pass_1 = SubResource("PlaneMesh_631li")