Grease Pencil Particles

Suzuka Ka

Content

Grease Pencil Particles ✏✨ | Suzuka Ka

This addon creates a hand drawn particle animation from a Grease Pencil drawing, allowing to create lots of cool effects! It automatically animates every stroke of a drawing and offers lots of possibilities to make lots of cool and weird things!

Supports Grease Pencil 3.0 and also previous versions of Grease Pencil! 🥳

out.webp

Installation 💻

How to install the addon
  1. Download the .zip file containing the addon and place it wherever you like.
  2. In Blender, go to Edit → Preferences. Once there, press the Add-ons tab and press Install button on the top-right corner:

Untitled

  1. Select the .zip file.
  2. Once installed, search for Grease Pencil Particles in the search bar, and enable the addon.

Executing the operator

To execute the operator:

  • While being in Edit Mode, go to Grease Pencil menu, and there select Bake particle Animation (SZK K):

    how to use it 4 Edited 3.gif

  • (Or) In Edit Mode or Weight Paint Mode, go to the N (properties) panel and under the panel SZK Bake Particles FX in the Grease Pencil tab, and press Bake Particles:

    Untitled

  • You can also search the operator in the Search Pop-up menu 🔍 (F3(or space) by default), and look for Bake Particle Animation (SZK K).

    how to use it search.gif

💡 The operator works in Edit Mode and in Weight Paint mode. Is not visible in other contexts.

Operator’s Properties

Basic options

Untitled

  1. Operator Presets - Allows to save (➕) and delete (➖) a set of properties that you liked to use it in the future.
  2. Frames - The total frames for the animation. Press the keyframe icon to change the keyframe type used in the dopesheet.
  3. Seed - The seed used for the random generation. Change it to achieve different results while keeping the same properties.
  4. Fragment strokes - Choose if the strokes will be fragmented into pieces or not.
    • No fragmentation - The strokes will not be fragmented.
    • By Points - The strokes will be fragmented by a random value between min points and max points.
    • By Distance - The strokes will be fragmented by its total distance determined by a random value between min and max distance.
    • By Vertex Group - The strokes will be fragmented depending a selected vertex group (weight variations above a treshold will determine where to fragment the stroke).
  5. FX Type - Determines the algorithm used to determine the starting point where a stroke/fragment is affected by the FX.
    • Explosion Radius - Simulates an explosion. All strokes inside the explosion’s radius will be affected. It gives the option to increase the radius over time.
    • Build - The strokes will be affected depending their drawing order.
    • Vertex Group - The strokes will by affected depending its weight in a vertex group.
    • Distance to point - The strokes will be affected depending how closer (or far) they are to a poing.
    • Random - The strokes will be affected randomly.
    • X Position - The strokes will be affected according their X position.
    • Y Position - The strokes will be affected according their Y position.
    • Z Position - The strokes will be affected according their Z position.

Tip: Use the button to reverse the effect.

  1. FX Frames - The total frames it takes the effect to affect all strokes.
    • Rand - Randomizes the time on which the strokes starts to being affected by the particle simulation.
  2. Anchor Position - Initializes the pivot point where the particles are dragged in or out.
  3. Anchor position offset - Offsets the pivot position.

    Use ♻ to reset the offset to (0, 0, 0)

  4. Force - The force applied to the strokes/particles when they are affected by the effect.
    1. Random - Adds randomness to the force applied to each stroke/particle.
  5. Mass influence - The higher the level, the more the strokes/particles will be affected by their mass.

Note: The weight of a stroke/particle is determined by its size and width.

  1. Max Scatter - The maximum random direction deviation in the vector

Gravity & Size over life

Untitled

  1. Gravity vector - The direction of the gravity that affects the particles.
  2. Rotation - The maximum rotation speed for the strokes/particles.
  3. Turbulence - Offsets the rotation center of each point to create some kind of “spiral effect” and more chaotic rotation.
    1. Randomness - Randomizes the turbulence for each stroke/particle.
  4. Size sampling algorithm - Determines the algorithm used for sampling the Size over life curve (in the properties panel).
    1. Lifetime - The size curve will be sampled once entirely during the stroke’s/particle’s lifetime. Older particles (with a sooner start) will sample it slower than “younger” particles (they will sample it faster since their life time will be shorter).
    2. Speed - The sample curve will be sample at a constant speed. If its exceeded, it will loop from the start.
      1. Randomness - The level of randomization in the speed for each stroke/particle.

Effects

Noise

Adds a random movement to the strokes/particles.

Untitled

  1. Noise type - The type of noise used.
  2. Seed - The seed used for the noise. Change it to obtain different results while keeping all the properties.
  3. Strength - The strength of the noise.
  4. Mass influence - Determines how the stroke’s/particle’s weight affects the noise movement. For higher values, lighter values will be moved easier by the noise.

Use the icon to reverse the effect (heavier particles will be affected the most by the noise).

  1. Frequency - The frequency in the movement for the noise. Use low values for a smoother movement.

  2. Dissonance - Determines how similar is the noise along every particles. For values around 0, all particles will be move in harmony with a similar noise movement. Kinda in a starlings kind of movement:

    Higher values will produce a more chaotic effect.

  3. Lock Axis - Locking an axis to ignore the noise movement in that axis.

Distort Strokes

Applies a distortion effect right directly when the strokes starts to be affected.

Untitled

  1. Intensity - The intensity of the stroke’s distortion.

    1. Randomness - Randomizes the intensity for each stroke.
  2. Frequency - The frequency of the noise used to distort the strokes. Use higher values for a more spiky effect. Use lower values for a more smoth distortion.

    1. Frame variation - Determines how much the noise changes for each frame. Set it to 0 to do not move the distortion effect along the frames.
  3. Frames - The duration of the distortion.

    1. Randomness - Randomizes the duration for each stroke.
  4. Use Color - If True, it will sample the colors from the Sidebar N panel during the distortion time*:*

    aa.png

  5. Blend mode - The blending mode used to mix the distortion color with the original stroke’s color.

Fade Strokes

Fades the strokes.

Untitled

  1. Fade type - Choose the algorithm used for the fading. There are 2 types:

    a. Stroke thickness - Changes the strokes thickness during the fade effect.

    b. Points opacity - Changes the opacity of every point in the stroke.

  2. Fade Algorithm - The fading algorithm used when fading the strokes. 2 types: Proportional and Constant.

Proportional Fade

The strokes/particles will be faded according their lifetime, ensuring that all particles will be faded at the end of the effect.

  1. Start - Percentage of the stroke’s lifetime from which the stroke starts to fade.
    1. End - Percentage of the stroke’s lifetime on which the stroke’s fading has been comleted
  2. Randomness - Randomizes the start and end percentages for each stroke.

Constant Fade

The fade effect will take a constant number of frames to achieve a similar fade pace for every particle.

Untitled

  1. Start - The delay it takes for a particle since it started to move to start the fade.
  2. Fade - The total frames it takes the particle to fade away.
  3. Randomness - Randomizes the start and fade frames for each particle.

In this animation, the bomb’s fuse was animated with a Constant fading, to ignore the particle’s lifetime and achieve a constant fade for each particle. While the rest of the drawing used a Proportional fade (randomized).

50scale.webp

Color 🎨

Adds colours to the strokes/particles.

Untitled

  1. Blend mode - The blending mode algorithm for mixing the original stroke’s color with the new color.

  2. Color algorithm - The algorithm used to tint the particles. It has 2 options:

    a. Random - It chooses a random color of the color ramp.

    b. Variable - The color varies according the color ramp.

  3. Delay frames - The frames it takes before the strokes/particles changes the color after their start time.

  4. Fade frames - The total frames it takes to fade the original stroke’s/particle’s color to the new color.

Color variable algorithm

Untitled

  1. Speed - The speed with which each particle samples the color of the color ramp.

    a. Speed randomness - The level of randomization in the speed for each stroke/particle.

  2. Randomness - Randomizes the starting point in the color ramp.

Depth Color

Tints the particle according their distance to the active camera, creating some kind of depth and helping to distinguish near particles from far particles.

Untitled

  1. Distance - The minimum and maximum distance. Particles near to the minimum distance will sample a color from the left side of the color ramp in the Sidebar N Panel, while particles near to the maximum distance will sample a color in the right side of the ramp.

You can locate the depth color ramp in the N Panel, under the Grease Pencil tab. (View properties panel)

Image
  1. Blend frames - El total de frames que se tarda para mezclar ambos colores. Util para evitar cambios bruscos.

Extra Debris (Fragmentos extra)

Añade partículas/trazos extras. Porque cuantas más, mejor!

Untitled

  1. Extra debris count - The amount of total debris added.
  2. Debris size - The size of the new debris will be randomly choose between the minimum and maximum points.
  3. Proportional distribution - If True, the bigger strokes, the higher the chance to have more particles instanced in their position.
  4. Random width - The level of the randomization for the debris width. If is set to 0, the new debris will have the same size of the stroke’s they are instanced into.

Various Options

Untitled

  1. Resolution - Simplifies (or subdivides (if the value is positive)) the drawing. Useful when you want to reduce the points to execute the operator faster, or to increase the points to increase the quality.

    You can see a counter of the total points next to it.

    💡 I personally recommend having a low resolution while editing the values, and once you are sure that it looks as you want, increase the resolution if desired. Big drawings can take some time to process.

  2. Offset - Offsets the entire animation X frames.

  3. Preview - Lets you decide the frame you want to preview first after editing a value.

  4. Loop - If True, a temporary loop will be added just to loop the frames of the animation (to better see the changes you are making).

  5. Time Scale - Multiplies the time scale, to accelerate or slow down the animation.

  6. Frames gap - The gap between each frame in the baked animation. Useful if you want to achieve some kind of step motion vibe or similar.

  7. Use mask - If True, enables the option to use a vertex group as a mask to exlude some parts of the drawing from the particle effect.

  8. Vertex group - The vertex group to be used as a mask.

  9. Mask Treshold - Weight values in the mask vertex group above/below the treshold will be included/excluded from the mask and won’t be affected by the effect.

  10. Bypass - If True, the operator won’t be processed.

    Why is that helpful? Since the operator can be hard to process depending the drawing complexity, there would be some times when you would like to edit different values without triggering the operator’s execution. In those cases, is better to press bypass, make your changes, and then disable bypass, to avoid waiting between each change.

Properties Panel

The addon uses some more complex properties that Blender doesn’t allow to be displayed in the Operator’s panel, like curves and color ramps.

They are located in the N Panel (Properties Panel), under the Grease Pencil tab:

Untitled

Here you can find some properties that are related to each section in the Operator’s panel.

Worth mention the Time Scale curve:

Untitled

It allows to alter the Time Scale along the effect, creating cool changes in the pace that looks awesome!

In this animation, the time scale curve was changed to slower it a bit after the start, and then accelerates again, creating some kind of time warp:

cool_fx.webp

If the Operator’s panel is showing, and you edit a property from the N Panel, after changing a property in the Operator’s panel, it will call undo/redo internally, and you will lose the changes you made.

If you want to execute the operator again with the previous properties and with the new edited curves/color ramps from the N Panel, place the cursor above the range of the last baked particles, and press the button RE-EXECUTE:

Image

Other operators ⚙

The addon adds as an extra some new handy operators for better working with animations.

Remove frames block

It removes/selects a frame block with frames of the same keyframe type.

Delete Frames block.gif

I made it because I personally hated having to precisely choose with the mouse interpolated frames and such, so this makes it easier!

Select frames block

Only selects the frame block, without deleting it.

💡 You can find both in the dopesheet, under the Suzuka Ka tab.

FAQ ❔

  • When I move the cursor beyond a certain point, it goes back! Why?

    I made hacky loop while executing the operator to easily preview the particle animation. It should be removed when executing a new operator (for example, pressing TAB to switch the mode should be enough).

    If you want to delete it manually, you can go to the N panel and under the addon panel, and press Disable Loop:

Untitled

Limitations

Strokes with fill materials are not supported at the moment in the current version, only normal non-filled strokes.

Options related Vertex Groups only work in the Grease Pencil Legacy version (previous to Grease Pencil 3.0).

Why?

Old methods for accessing the vertex group weight of a Grease Pencil point previous to Grease Pencil 3.0 have been removed, and the new way for accessing the weight is currently bugged 🐛.


It will be supported when Blender fixes it 👍.

Credits ©

The required attribution to some icons used:

Contact 🐺✉

You can reach me via:

@SuzukaKDev suzukakadev@gmail.com
Have a nice day and have fun creating!

Related articles