- Entry to Character Animation System 1/2 -
Welcome! In this section we will be talking about Character Animation System, shortly "FAnim" as Fighters will be using this System most of the time.
System is actually pretty simple. It's main focus is holding variable information for Fighters so they can get properly animated. As you know, Fighters can get pretty complicated visual wise. They can contain more than outfit, palette or even be completely hand drawn.
For these reasons, a separate component is needed to handle such systems. Projectiles and Stage Objects contains animation data in their own Blueprints due to their basic nature. So let's see what they are about!
1- Preparation
-
First things first, we should copy the Template in "External / FR_Templates / Fighter" Folder and paste it in where the Fighter_Char is. In this case we are making a new "FAnim" for Omen_Char. Let's not forget to rename it as well!
-
Then in Omen_Char, we are setting the "Animation System" variable to what we have created. That's it, really!
2- Variables
-
Now let's check what the variables are for. Note that most of FAnim blueprints won't contain any actual code so you will see an "only variable style" of view once you open up one of them. Also this is a work in progress system so expect a lot of additions and changes to arrive later on!
-
System Variables - DO NOT EDIT are systematical values that one should not edit as they are updated when in game.
-
Transform Values are used to offset both Shadow and Reflection Flipbooks. In some cases depending on your sprites they might be too far or close to the Main Character Flipbook. This is where you adjust them.
-
Force Unlit Mode is TRUE by default and allows Fighters to be completely visible in scene regardless of how Stage Lighting is.
-
Character Icons are used by Menus and Fighting Stage Interfaces to get visual data of the Fighter. For example "Main Character Icon" variable is used by Team UI to show a flipbook of the Fighter right beside the Health Bars. This list will grow in time.
-
OUTFIT LISTS is the first important section we will be dealing with so let's see what's going on!
In UF2D, every Fighter needs to have at least one outfit. It is what your Fighter is wearing anything. Yes, even Mai from KoF is actually wearing one and I know it is hard to believe but let's move on.
-
Default Outfit is exactly that. We will talk about extra Outfits later on so let's see what an Outfit has as variables!
-
Outfit Icon / Icon Tint are used by Character Select Screens and just optional values that can be left alone if desired.
-
Unique value defines whether other Team(s) Fighters can use this outfit or not if they are attempting to select the same outfit.
It is a MUST to keep the value FALSE if there is only 1 outfit to select for the Fighter. However, you need to set this to TRUE and have more than one outfit you are using hand-drawn Fighters!
-
Palette System On value lets Character Select Screens to know that this Fighter needs to select a Palette and it is not a hand-drawn Fighter. Important to have it TRUE if outfits are not unique!
-
Non-Palette Material value is used by hand-drawn Fighters that can't use palette systems. Generally default value is enough for them to function.
-
Palette List is the section of the Outfit where Palettes are stored. An outfit can have unlimited amount of palettes. Hand-drawn Fighters don't need to have a Palette List.
-
Slot Icon / Icon Tint are used by Character Select Screens and just optional values that can be left alone if desired.
-
Unique value defines whether other Team(s) Fighters can use this palette or not if they are attempting to select the same one. Mostly set to TRUE.
Same Image Above
-
Unique mostly contains 4 Materials, each used by the Team's Fighters. UF2D currently supports 4 Fighters in a Team, hence the number.
-
Exra Outfit List can contain an Array of Outfit Data. This is where you add extra outfits for your Fighter. For now up to 10 is supported but it will be increased later on.
The list can be left empty but if you are going to use hand-drawn Fighters, highly suggested to prepare them beforehand.
-
Each Outfit needs to have its own Texture. As the video on the right shows, Normal Akuma Sprite has an "Additional Texture" as Cyber Akuma.
-
If you are using hand-drawn Fighters, you need to prepare a lot of images. As Palette System won't be working on, you need to have different colored images pretending to be palette swaps!
3- Animation Lists
-
Standard Animation List contains all the Animations that a Fighter MUST have in order to function properly.
-
These values are mostly used by "Fighter_MainSM" State Module which all Fighters have and contains all the basic states they must have.
-
Struct variables such as "Standing Idle" contains properties that allows you to change and self explanatory. Reason they are not on Flipbooks is that, flipbook assets themselves are mostly used just for making the animation in Paper2D. Something I might change later but being able to have unique properties for a flipbook for each animation also has its benefits. This way you don't have to make one flipbook that loops and one that doesn't and just adjust the variables in code itself, letting you use one flipbook more than many times!
-
Now let's see what those Animation Properties contain!
-
Play Rate is how fast the animation will play. Suggested to keep it at 1.0.
-
Loop Toggle allows the animation to Loop. Loop Count declares how many times the animation will loop before UF2D considers the animation is over. Loop Start Frame allows you to make animation loop from a specific frame.
-
Loop Toggle allows the animation to Loop. Loop Count declares how many times the animation will loop before UF2D considers the animation is over. Loop Start Frame allows you to make animation loop from a specific frame.
-
Primary 0 is the value for Character's Main Flipbook Animation.
-
In UF2D, Shadows and Reflections can have their unique flipbooks. If that's not needed for you, feel free to keep the values empty.
-
Currently animations have slots for "Secondary" Flipbooks that are supposed to be used for other Sprites that a Fighter might have. Soon UF2D will support more than one sprite for objects but this function is not used yet.
-
Further below you will be seeing single sprite variables such as "GSpr - Standing High 0". These are Grab-Sprites that are used for throw animations but again, they are placeholders as well.
-
We will be getting into further detail on how to use those animations (and non-standard ones) in Fighter tutorials!
-
Grab Event Sprites List contains Sprites that are used by Throw Attacks where a unique Flipbook animation need to be constructed runtime for the Fighter that got grabbed.
-
The Fighter called "Shura" got many grab attacks that uses these Sprites as example. However it is too early to speak about this system as it is pretty complex and will be improved further. For now this section can be left alone.
-
Receive Hit Animation List contains the default animation data needed for Fighters when they got hit by non-grab attacks.
-
"Impact" values are for when the first Attack lands and "Recover" values are for animations where the fighter starts to get the control back.
-
Depending on the Hit Time of Attack Definition, these animations can be interrupted and Fighters can immediately recover.
-
This list is subject to big changes later on (mostly additions.)
Animation System will grow in size in time and there are some extra functionality I am not mentioning here as they are in testing phase. Feel free to check about how we create FAnim from Scratch.