Skip to content

Commit

Permalink
Add Godot project, update README
Browse files Browse the repository at this point in the history
Co-authored by: Henrique Campos <[email protected]>
  • Loading branch information
NathanLovato committed May 12, 2020
1 parent b016f00 commit 4a88c2d
Show file tree
Hide file tree
Showing 43 changed files with 2,708 additions and 3 deletions.
32 changes: 29 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
# Godot Visual Effects

⚠ This repository is a work-in-progress. To know when its content is available, [follow us on Twitter](https://twitter.com/NathanGDQuest)

![project banner](./img/banner-vfx-secrets.png)

This project is a Free and Open-Source set of polished visual effects from our course [Godot VFX Secrets](). They are available under the permissive MIT license
Godot Visual Effects is a Free and Open-Source set of polished visual effects from our course **Godot VFX Secrets**.

ℹ Follow us on [Twitter](https://twitter.com/NathanGDQuest) and [YouTube](https://www.youtube.com/c/gdquest/) for free game creation tutorials, tips, and news. You can support our work on Free Software by [getting one of our courses](https://gdquest.mavenseed.com/).

![Laser effect](./img/laser.png)

ℹ The course isn't out yet. To know when it's available, you can [subscribe via email](https://gdquest.mavenseed.com/p/follow).

This hands-on tutorial series will teach you essential techniques to design effects such as explosions, ghost trails behind the player as in Castlevania games, lasers, background animation, and more.

Expand All @@ -16,3 +20,25 @@ All available effects are currently 2D-only.
- Laser beam
- Ghost trail or after image
- Star field
- Trail that follows the character

![Trail effect](./img/trail.png)

## How to use

Download the Godot project. Each effect is in a self-contained directory with all its dependencies.

To add an effect to your own project, copy its directory to the root of your project, and move it from Godot's _FileSystem_ tab. That's it!

![Explosion effect](./img/explosion_1.png)

## Contributing

Contributors are welcome!

If you encounter a bug, please [open an issue](https://github.com/GDQuest/godot-game-harvester/issues/new).

If you want to contribute to the project, for instance by fixing a bug or adding a feature, check out our:

1. [Contributor guidelines](https://www.gdquest.com/docs/guidelines/contributing-to/gdquest-projects/).
1. [GDScript style guide](https://www.gdquest.com/docs/guidelines/best-practices/godot-gdscript/)
314 changes: 314 additions & 0 deletions godot/Explosion/Explosion.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,314 @@
[gd_scene load_steps=23 format=2]

[ext_resource path="res://assets/sparkle.png" type="Texture" id=1]
[ext_resource path="res://Explosion/explosion_gradient.tres" type="Texture" id=2]
[ext_resource path="res://assets/puff.png" type="Texture" id=3]
[ext_resource path="res://assets/puff_smooth.png" type="Texture" id=5]
[ext_resource path="res://Explosion/scraps_gradient.tres" type="Texture" id=6]

[sub_resource type="Gradient" id=1]
offsets = PoolRealArray( 0.0494297, 0.913043, 1 )
colors = PoolColorArray( 0.226562, 0.217086, 0.217086, 1, 0.133333, 0.12549, 0.12549, 1, 0.133333, 0.12549, 0.12549, 0 )

[sub_resource type="GradientTexture" id=2]
gradient = SubResource( 1 )

[sub_resource type="Curve" id=3]
_data = [ Vector2( 0, 0.290223 ), 0.0, 3.6562, 0, 0, Vector2( 0.682482, 1 ), -0.0677277, -0.0677277, 0, 0, Vector2( 1, 0.554545 ), -0.29932, 0.0, 0, 0 ]

[sub_resource type="CurveTexture" id=4]
curve = SubResource( 3 )

[sub_resource type="ParticlesMaterial" id=5]
emission_shape = 1
emission_sphere_radius = 40.0
flag_disable_z = true
spread = 180.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 80.0
initial_velocity_random = 0.6
angular_velocity = 40.0
orbit_velocity = 0.0
orbit_velocity_random = 0.0
damping = 40.0
damping_random = 0.5
angle = 360.0
angle_random = 1.0
scale = 2.6
scale_random = 0.5
scale_curve = SubResource( 4 )
color_ramp = SubResource( 2 )

[sub_resource type="Curve" id=6]
_data = [ Vector2( 0, 0.377273 ), 0.0, 2.60769, 0, 0, Vector2( 0.761062, 0.986364 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.322727 ), -0.564845, 0.0, 0, 0 ]

[sub_resource type="CurveTexture" id=7]
curve = SubResource( 6 )

[sub_resource type="ParticlesMaterial" id=8]
trail_divisor = 50
emission_shape = 1
emission_sphere_radius = 15.0
flag_disable_z = true
spread = 180.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 1000.0
initial_velocity_random = 0.4
orbit_velocity = 0.3
orbit_velocity_random = 1.0
tangential_accel = 1000.0
tangential_accel_random = 1.0
damping = 1500.0
scale = 0.2
scale_random = 0.2
scale_curve = SubResource( 7 )
color_ramp = ExtResource( 6 )

[sub_resource type="Curve" id=9]
_data = [ Vector2( 0, 0.0409091 ), 0.0, 8.35303, 0, 0, Vector2( 0.251678, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.993289, 0.0136364 ), 0.0, 0.0, 0, 0 ]

[sub_resource type="CurveTexture" id=10]
curve = SubResource( 9 )

[sub_resource type="ParticlesMaterial" id=11]
flag_disable_z = true
spread = 180.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 350.0
initial_velocity_random = 0.5
angular_velocity = 80.0
angular_velocity_random = 0.8
orbit_velocity = 0.0
orbit_velocity_random = 0.0
damping = 100.0
damping_random = 0.85
angle = 220.0
angle_random = 1.0
scale = 2.0
scale_random = 0.2
scale_curve = SubResource( 10 )
color_ramp = ExtResource( 2 )

[sub_resource type="Gradient" id=12]
offsets = PoolRealArray( 0, 0.130909, 0.345455, 0.607273, 1 )
colors = PoolColorArray( 1, 1, 1, 1, 1, 0.648972, 0.164062, 1, 1, 0.475624, 0.136719, 1, 0.888672, 0.17704, 0.17704, 1, 0.203922, 0.203922, 0.203922, 1 )

[sub_resource type="GradientTexture" id=13]
gradient = SubResource( 12 )

[sub_resource type="Curve" id=14]
_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.483222, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]

[sub_resource type="CurveTexture" id=15]
curve = SubResource( 14 )

[sub_resource type="ParticlesMaterial" id=16]
lifetime_randomness = 0.6
emission_shape = 1
emission_sphere_radius = 50.0
flag_disable_z = true
spread = 180.0
gravity = Vector3( 0, 0, 0 )
orbit_velocity = 0.0
orbit_velocity_random = 0.0
radial_accel = 200.0
radial_accel_random = 0.3
tangential_accel = 100.0
scale = 0.1
scale_random = 0.3
scale_curve = SubResource( 15 )
color_ramp = SubResource( 13 )

[sub_resource type="Animation" id=17]
length = 3.0
step = 0.05
tracks/0/type = "value"
tracks/0/path = NodePath("FireBurstParticles2D:emitting")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("SparkleParticles2D:emitting")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 0.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("SmokeParticles2D:emitting")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("FireTrails/FireTrailParticles2D5:emitting")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0, 0.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("FireTrails/FireTrailParticles2D4:emitting")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0.05, 0.55 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("FireTrails/FireTrailParticles2D3:emitting")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0.1, 0.6 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("FireTrails/FireTrailParticles2D2:emitting")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0.15, 0.65 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("FireTrails/FireTrailParticles2D:emitting")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0, 0.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
}

[node name="Explosion" type="Node2D"]
z_index = 1
z_as_relative = false

[node name="SmokeParticles2D" type="Particles2D" parent="."]
emitting = false
amount = 16
lifetime = 3.0
preprocess = 0.6
explosiveness = 0.6
local_coords = false
process_material = SubResource( 5 )
texture = ExtResource( 3 )

[node name="FireTrails" type="Node2D" parent="."]

[node name="FireTrailParticles2D" type="Particles2D" parent="FireTrails"]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 50
lifetime = 0.5
randomness = 0.5
local_coords = false
process_material = SubResource( 8 )
texture = ExtResource( 5 )

[node name="FireTrailParticles2D2" type="Particles2D" parent="FireTrails"]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 50
lifetime = 0.5
randomness = 0.5
local_coords = false
draw_order = 1
process_material = SubResource( 8 )
texture = ExtResource( 5 )

[node name="FireTrailParticles2D3" type="Particles2D" parent="FireTrails"]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 50
lifetime = 0.5
randomness = 0.5
local_coords = false
draw_order = 1
process_material = SubResource( 8 )
texture = ExtResource( 5 )

[node name="FireTrailParticles2D4" type="Particles2D" parent="FireTrails"]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 50
lifetime = 0.5
randomness = 0.5
local_coords = false
draw_order = 1
process_material = SubResource( 8 )
texture = ExtResource( 5 )

[node name="FireTrailParticles2D5" type="Particles2D" parent="FireTrails"]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 50
lifetime = 0.5
randomness = 0.5
local_coords = false
draw_order = 1
process_material = SubResource( 8 )
texture = ExtResource( 5 )

[node name="FireBurstParticles2D" type="Particles2D" parent="."]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 64
lifetime = 0.5
explosiveness = 0.3
randomness = 1.0
local_coords = false
draw_order = 1
process_material = SubResource( 11 )
texture = ExtResource( 3 )

[node name="SparkleParticles2D" type="Particles2D" parent="."]
modulate = Color( 1.2, 1.2, 1.2, 1 )
emitting = false
amount = 32
explosiveness = 0.2
randomness = 1.0
process_material = SubResource( 16 )
texture = ExtResource( 1 )

[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/Explode = SubResource( 17 )
Loading

0 comments on commit 4a88c2d

Please sign in to comment.