Animating a Base Attack

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:

Download Resources

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:

Download Schematic

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.