by Bearded Shepherd in
Coding Creation Tutorials

This tutorial is meant as an overall guide for dealing with VFX/Particle via bins.

If you encounter any issues with this tutorial or you don’t understand part of it, you can ask for help on the Killerskins-Discord server
or you can contact me directly: Bearded Shepherd#0849



Infos

Note: As we continue to learn more about particles as a community through experimenting, this post will constantly be updated.
This is a comprehensive dictionary for the most common terms that are used in particles. We will cover most of the basics so that hopefully you can gain an understanding of how you can manipulate the visuals of particles towards your desires.

This post overall is very complicated as we cover a LOT of things, so if you feel confused about something, always refer back to the terms at the top of the page. Don’t be afraid to go try it out and experiment since that is how most of us have learned. Should you need help, ask for it in the #help channel in the Killerskins Discord.


Required tutorials

In order to follow this tutorial you must understand and be able to follow the following tutorials:


Required tools


Written tutorial

Terms

vfxsystemdefinitiondata

Container. Think of this as a neighborhood. A “Q_Mis” for example.

This is what defines all of the particles (vfxemitter) listed under the ability. Anything outside of this will not be seen while the ability is in action.

Best term to search for specific abilities.

vfxemitter

Particle or particle system within a container (vfxsystemdefinitiondata).

Think of this as the different houses within the neighborhood. This can be sparkles, a trail, indicators, mesh, etc.

ParticleName

Another way by which you can search for specific abilities should “vfxsystemdefinitiondata” names be hashed.

Example, “particleName: string = “Graves_Skin18_recall_Hit.”

These can be renamed for organization purposes.

This is just like “vfxsystemdefinitiondata” just that it’s actually on the end of the system rather than the beginning.

emitterName

A name given for a vfxemitter which can be renamed as desired. Good to rename for organization purposes.

Examples include, “Flash, Burst, ground_decall, bokeh_dots.”

Their names can be random sometimes but it’s always named to make sense to whoever originally made the particle.

texture

Defines what texture will be used. Always in “.dds” format.

Most of the time they are perfect squares (1024×1024, 512×512, etc). It is also not uncommon for particles especially to not match a perfect square ratio.

textureMult

Typically found directly underneath a “texture: string.”

This is a texture which is multiplied over the texture it is listed under. If you know about the “multiply” blending mode in Photoshop, this is exactly what is happening.

This is ideal for being used over completely white textures in order to give a color. Useful for rainbow effects and scrolling textures!

Scrollrate

If a texture is seamless, what this does is that it tells that texture to move horizontally, vertically, or both. (listed here are the different types of scrollrates that you can find).

The values listed next to scroll rate define how quickly a texture moves.

mSimpleMeshName

Followed by an SCB or SCO mesh. This defines what mesh will be used in an emitter.

SCB

Mesh

SCO

Mesh with joint(s) and materials.

SKN/SKL

Mesh with a full skeleton and materials (standard export for League champions.

Used for animated meshes (Ivern’s root, Swain’s bird) if found in particle folder.

SkinScale

This determines the actual size of your champion in-game.

Changes per champ.

Materials

Controls how an object is viewed on screen.

Assigning a texture to a material applies the texture to all objects within that material.

Most older champions usually just have one material but you can actually add more if desired. Materials can be useful for when you want to have multiple pieces on a champion’s skin using different texture maps.

Recall assets are nearly always hidden meshes. Anything that won’t be visible on the champion throughout the game will be listed as hidden. Through the animation bin under skin0 (or desired skin), you can actually tell these meshes to appear during certain animations. You can find more on that in the animation tips (will be added later).

BLendmode

Just like in photoshop, this determines how an emitter is projected over the environment.

For regular texture files.
1 = Normal (Used when a particle has color information on the texture)
2 = Darkens
3 = Darkens
4 = Whiten (Sometimes a particle with color information and has a black background) Sometimes acts like overlay?
5 = Overlay like in photoshop.

Blending modes are different for SCB/SCOs.
3 = Normal.

Birthcolor

This is a color code which is typically followed by four values. “{ 0, 0, 0, 1 }.”

The first three numbers are RGB values which can be calculated by dividing the color’s number with white (255).
Say for example I have R = 144.
144 divided by 255 = 0.5647058… My first value will be that number.


I will repeat the same process for the other two values in order to get my desired color.
0 = Black, 1 = White.

The final value after RGB is the alpha.
1 is opaque and 0 is Full opacity.

You can use Marcius’s program, “Hacksaw” to make recoloring fast and easy!
Doing math won’t be required at all. This is just useful information to help you understand how these values work!

Fresnel

Shader which gives a highlighted appearance to an object.

fresnel color = A color value given to a fresnel. Similar to birthcolor, this is followed by RGBA values.

VfxPaletteDefinitionData

This is a texture image which typically displays a varying amount of gradients. The emitter using this pulls a specific gradient from the image as opposed to the other types of coloring.

Rate

Determines the amount of particles that emit from the emitter.

Adjusting the rate on KDA ALL OUT Prestige Evelynn’s sparkles.

dynamics

Gives a list of RGBA values, rotation, position, AND/OR times. Given RGBA values which define changes in color. Times which relate back to RGBA by defining when each value change occurs within the emitter’s lifetime.

IF these values are related to position, the particle will change position during its lifetime.
IF these values are related to rotation, the particle will change rotation during its lifetime.
You will be able to tell what these values are related to by reading what follows after “dynamics: pointer =”

erosion map

This is a map which defines how an ability, effect, or mesh appears.

It is typically a black and white texture. White represents what appears first while black is what appears last.

Sometimes this can also use a green, red, and even blue texture. Each erosion pattern is defined by their own color channels. So X has it’s own erosion pattern as well as the green. The full on green or red appears first while the darker shades appear last.
– In combination with a pink and yellow texture map, this is what is used to define what the erosion map is constrained to. The yellow is the strongest visibility.

normal map

As it is specifically used in League, this defines distortions for anything behind the actual effect. Commonly used for explosions and puddles. Has a shockwave or airy appearance.

numFrames: u16

Always found directly underneath a “texture: string” to define how many frames the animated texture will cycle through.

texDiv

Always found directly underneath a “texture: string” to define how many squares the image is divided into. For example, “2,2” defines two squares on the top half of the texture, and two squares on the bottom half of the texture, both equally divided. Mostly used for animated textures.

Particle colors

There are different types of ways that particles within League are colored. They can be colored through a texture or within the actual bin files. The different types of colors that you can see fall under the following, “birthColor, color: embed = ValueColor, VfxPalleteDefinitionData and particleColortexture.


Tips

First Tip (H4)

Will be added later.

0 0 votes
Post rating
guest

0 Comments
Inline Feedbacks
View all comments