-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework Particles2D tutorial to be artist friendly #4283
Comments
Related issue on the main repo: godotengine/godot#27878 |
How bout using a system similar to how layers works on 2D painting software like photoshop or GIMP, maybe make the parts of the particle system being described like effects of layers or blending modes. |
From my understanding these properties are applied in the order they are listed. So that's not a problem, but worth pointing out. |
Additional info about the Randomness property of the Particle Node: The in editor XML claims that i affects the emission lifetime. However that is completely opposite to the documentation, which simply shows a formula seemingly indicating that it randomizes the randomization properties of the individual ParticleMaterial parameters. So now i'm confused, and my initial suggested change is probably completely wrong. |
Maybe a basic wizard to help you make your particle? |
I like this rewrite idea. However, I don't know the viability of a basic wizard. I feel like that is what a tutorial would be for, or as @TheDuriel is proposing, examples inside of the doc. |
CurvesCurves animate their associated ParticleMaterial parameter over the lifetime of the Particle. They are created from CurveTexture resources. CurveTexture resources represent a mathematical curve, and include a basic curve editor in the inspector. The final number of key frames (the number of times the parameter is updated), is equal to the curves width divided by its bake resolution. This means that a curve with a width of 2048 and bake resolution of 100 (the default values) will update the ParticleMaterial parameter 20 times over the course of its lifetime. To keep the interpolation smooth, you can decrease the bake resolution in proportion to the lifetime. Note: Right clicking the curve editor allows loading of presets and adding of points. This needs documenting as well. Note 2: Curves allow saving to png, but doing to results in an error and no png. Loading pngs into curves is impossible. |
I think the new property names are an improvement. re. Randomness Scale. I'd swap 'scale' for 'strength;, since scale can also refer to the frequency of random variations ver time in other a/v contexts. I think strength indicates the meaning of the property with a bit less ambiguity. Randomness = Randomness Strength |
Thanks for the reminder. After digging into the file: https://github.com/godotengine/godot/blob/master/drivers/gles3/shaders/particles.glsl#L95 Seems like "Lifetime Randomness" is what it should actually be. |
Moved this to godot-proposals which is better suited for such discussion. |
With the particle randomness properties being changed to min/max ranges in 4.0 for better control, I think all we need to resolve this is to implement #4315. |
This is my proposal for a rewrite of the ParticleMaterial properties. From a 2D artists usage standpoint. Nearly all of this should translate to 3D as well i think.
The goal of this rework is to make particles more accessible to artists, and those who did not pay much attention in their physics and mathematics classes. This means renaming properties to practical and descriptive counter parts, reworking descriptions to use existing terminology, and adding real usage examples. Mathematical property names can may be kept as a side note in the description.
Part of this proposal is also to change the engines naming of these properties. But i am focusing first on the descriptive text.
The below text is my first pass draft of the new names and descriptions. With editorial notes. I will only list things that need changing. The format is as follows:
Old Name = New Name
New Description. Usage example. Mathematical Name.
Particle2D Node
Randomness = Randomness Scale
Multiplies the effect of the Randomness properties of the individual particle parameters. A value of 0 will result in no randomization.
Fract Delta
What even does this do?
ParticleMaterial
Spread = Emission Cone
The direction in which a particle is emitted. A value of 0 is a straight line, a value of 180 will cause particles to emit in a circle shape in all directions. The thruster of a jet engine may use a value of 22.5 to emit particles in a 45° cone.
Extra Proposal: Rework the property to use a range of 0-360.
Gravity = World Gravity
The the directional pull per second applied to the particle. A negative value on the vertical axis will cause particles to fall towards the ground.
Initial Velocity = Linear Velocity
The initial linear speed per second with which a particle is is emitted.
Angular Velocity = Initial Angular Velocity
The initial rotational speed of the particle, in degrees. This parameter does not affect the position of the particle but rotates it in local space.
Spin Velocity
This appears to not exist. I imagine it a duplicate of angular Velocity.
Orbit Velocity = Orbits
The number of complete circles the particle describes during its lifetime.
Note: This needs some clarification, as the orbits are not around the emitter, but appears to be tangental to its linear velocity.
Linear Accel = Acceleration
The rate at which a particle loses or gains momentum. You can use this to simulate a rough or slippery surface, and slow down or speed up a particles motion over time.
Radial Accel = Emitter Gravity
The gravitational force the emission point excerts on the particle. You can use this to make the particle fall towards or accellerate away from the emitter. This is similar to the gravitational pull a planet excerts on its sattelites. In mathematics this is the Radial Accelleration.
Tangental Accel = Tangental Speed
The rate at which a particle moves around its emitter. You can use this to cause particles to spiral outwards from the emitter, like the spiral arms of a galaxy. In mathematics this is the Tangental Accelleration.
https://www.youtube.com/watch?v=MkDlAI4dYvE
Angle = Rotation
The base rotation of the particles texture in degrees.
Proposal: Limit to -180 to +180
Other things
The gifs need an overhaul. The particle used should be one that allows clear identification of its rotation. Like a compass start with a red tip indicating north. And some gifs do not actually represent the real effect caused by the property, due to the fact that they were recorded with gravity instead of linear velocity.
The text was updated successfully, but these errors were encountered: