Create a schematic to animate an attack, e.g. the base attack.
In this tutorial we’ll create a simple schematics to animate a standard attack with an animation, particle effect and damage audio.
Resources #
We’ll use 2 particle effects (sparks) and a damage audio clip (played via a sound type).
You can download the particle effect prefabs and hit audio clip here:
Sound Type Setup #
The damage audio in our schematic will play via a sound type that plays whatever audio clip is linked to it on a combatant. We’ll do a default setup that’s used by each combatant.
You can learn more about sound types and sound assignments in the audio and music Makinom documentation.
Navigate to Base/Control > Sound Types to check if you already have a Damage sound type set up. If not, add a new sound type and change it’s name.
- Name
Set to Damage.
Combatant Sound Assignment Setup #
Navigate to Combatants > Combatants > General Settings and change the following settings.
Animations & Movement > Sound Settings #
Click on Add Sound to add a sound assignment.
- Sound Type
Select Damage. - Audio Clip
Select the hit audio clip from the downloaded resources.
Or use whatever audio clip you want.
Individual combatants can overrule the default sound assignment with custom clips.
Additionally, equipment that’s equipped on a combatant can also override the sound assignment (Level Settings > Battle Sounds of the equipment). This can be used to play different damage sounds based on the armor a combatant wears, e.g. using a metalic clonk sound for metal armor.
Don’t forget to save your changes via the Save Settings button.
Base Attack Schematic #
This schematic will play an attack animation, calculate the outcome and either spawn a particle effect and play a sound on the target (on hit) or doesn’t do that (on miss). The user is the Machine Object and the target is the Starting Object of the schematic.
You can download the finished schematic here:
You’ll have to select the prefabs (Settings node), animation type (Combatant Animation node) and sound type (Play Sound node) to get the schematic working in your project.
Settings #
We need to set up the spark particle prefabs.
Prefabs #
- Destroy Prefabs
Enable this setting.
Any prefab we spawn will be automatically destoyed at the end of the schematic.
Click on Add Prefab Resource.
- Name
Set to Sparks. - Use Order
Select Random.
We’ll use 2 prefabs and randomly select one.
There’s already a prefab setup added for us.
- Prefab (1st Prefab)
Select the Sparks prefab from the downloaded resources.
Or use whatever prefabyou want.
Click on Add Prefab to add a 2nd prefab.
- Prefab (2nd Prefab)
Select the Sparks2 prefab from the downloaded resources.
Or use whatever prefabyou want.
Combatant Animation #
Add Node > Animation > Combatant > Combatant Animation
We’ll play an attack animation on the user.
- Object
Select Machine Object.
Animation #
- Animation Type
Select Attack.
Or whatever animation you want to play. - Wait
Enable this setting. - Normalized Time
Set to 0.3.
We’ll only wait for 30% of the animation’s duration to be able to deal our damage at that time.
You might need to adjust this depending on your own animation. - Store Duration
Enable this setting.
We’ll store the duration into a float variable to be able to wait afterwards for it to finish. - Normalized Time (Store Duration)
Set to 0.7.
We’ll store the remaining 70% of the animation’s duration.
If your first normalized time (from wait) is changed, this needs to be adjusted accordingly.
Variable Settings #
These settings are used to store the remaining duration for later use.
- Variable Key
Set to wait. - Variable Origin
Select Local. - Operator
Select Set.
Calculate Action #
Add Node > Battle > Action Outcome > Calculate Action
This node is used to calculate the outcome of an action, e.g. an ability or item’s user and target changes.
- Animate Target
Enable this setting.
This’ll play damage or evade animations of the attack based on the damage type of the ability.
Learn more about damage types in this documentation. - Use ‘Miss’ Next
Enable this setting.
In case the attack misses (i.e. it uses a hit chance), we’ll have a different Next slot for it.
Play Sound #
Add Node > Audio > Audio > Play Sound
We’ll play the damage sound on the target.
This node is connected to the Next slot of the Calculate Action node.
Play On #
- Object
Select Starting Object.
Audio Settings #
- Use Sound Type
Enable this setting. - Sound Type
Select Damage.
Or whatever sound type you want to play. - Play One Shot
Enable this setting.
Spawn Prefab #
Add Node > Game Object > Prefab > Spawn Prefab
Now we’ll spawn a random spark prefab on the target.
- Prefab
Select Prefab 0: Sparks. - Target Type
Select Object.
Target Object #
- Object
Select Starting Object. - Local Space
Enable this setting. - Offset
Set to X=0, Y=1, Z=0.
Depending on your combatant setup (and being 2D or 3D game) the offset might need to be different.
You can also use a child object (On Child setting) to place prefabs.
Wait #
Add Node > Base > Wait
Add a short wait time to give the particle effect on the prefab time to … spark.
- Time
Select Value > Value.
Set the value to 0.1.
Emit Particles #
Add Node > Game Object > Component > Emit Particles
Now we’ll stop the particle effect – it’s only a quick burst we want.
- Emit
Disable this setting.
Target Object #
- Object
Select Prefab 0: Sparks.
Set the prefab ID to -1 (i.e. using all spawned instances of the prefab). - Scope
Select All In Children.
Wait #
Add Node > Base > Wait
Well use the remaining animation duration we stored into the local wait variable (float).
This node is connected to the Next slot of the Emit Particles node and the Miss slot of the Calculate Action node.
- Time
Select Variable > Float Variable. - Variable Key
Set to wait. - Variable Origin
Select Local.
And that’s it for the schematic. Click on Save Schematic to save it, e.g. as BaseAttack.
Using the Schematic #
The schematic is used to animate an attack ability.
E.g. to animate your base attack ability, navigate to Status > Abilities, select your attack ability and change the following settings.
Battle Animation #
Click on Add Battle Animation to add the schematic animating the attack and calculating the damage.
- Schematic Asset
Select the BaseAttack schematic (or however you named it).
You can also limit using the schematics to defined battle systems or only use them for the player faction, etc.
To combine this with running up to the target and back (or moving a step forward and back, you’ll add a schematic before and after the BaseAttack schematic. In the end, your battle animation will probably have 3 schematics:
- Battle Animation 0: Move To Target
- Battle Animation 1: Base Attack
- Battle Animation 2: Move To Base
See this tutorial for moving to the target and back.