In this tutorial we’ll continue setting up schematics to animate battle actions.
Animating the bow attacks is a bit more complex, because we also want to shoot an actual arrow at the target. We’ll set up a separate schematic for the arrow shot (and damage by the arrow) – this allows us to reuse the shot in the Double Shot ability and shoot an arrow for each target in the Round Shot ability via a Start Machine node.
We’ll set up:
- arrow shot schematic
- shoot schematic (will be used by Shoot and Round Shot)
- double shot schematic
- update shoot abilities
Let’s get to it.
Arrow Shot Schematic #
The arrow shot will spawn the arrow prefab, move it to the target and damage it – with some sound and hit prefab like the attack schematic.
This schematic will be used by other schematics via a Start Machine node, which will set the Machine Object to the attack’s user and the Starting Object to the individual target (i.e. for the Round Shot ability this’ll be executed for each target individually).
Navigate to Schematics and start working on a new schematic.
Settings #
We’ll add two prefabs, one for the hit effect and the arrow.
Prefabs #
Click on Add Prefab Resource.
- Auto Destroy After Time
Enable this setting. - Time
Set to 0.55. - Prefab
Select Slash.
Click on Add Prefab Resource.
- Prefab
Select Arrow.
The arrow isn’t automatically destroyed, so we need to do that manually.
Play Sound #
Add Node > Audio > Audio > Play Sound
Play the Attack sound type on the user.
- Object (Play On)
Select Machine Object. - Use Sound Type
Enable this setting. - Sound Type
Select Attack. - Play One Shot
Enable this setting.
Spawn Prefab #
Add Node > Game Object > Prefab > Spawn Prefab
We’ll spawn the arrow on the user.
- Prefab
Select Prefab 1. - Target Type
Select Object. - Object (Target Object)
Select Machine Object.
Rotate To #
Add Node > Movement > Rotation > Rotate To
We’ll now rotate the arrow to face the target.
- Is 2D
Enable this setting. - Object (Rotating Object)
Select Prefab 1: Arrow.
Set the value to -1.
This’ll use all instances of the arrow prefab that where spawned by the running schematic. - Rotate Component
Select Auto.
Since the arrow prefab only has a Transform and no Rigidbody 2D like the players, we can use the automatic setup here. - Is 2D Look At
Enable this setting. - Rotation Target
Select Game Object. - Object (Rotation Target)
Select Starting Object.
Change Position #
Add Node > Movement > Movement > Change Position
And now we move the arrow to the target.
- Object (Moving Object)
Select Prefab 1. - To Object
Enable this setting. - Object (Target Position)
Select Starting Object. - Move
Enable this setting. - Wait
Enable this setting. - Move By Speed
Enable this setting. - Stop At Target
Enable this setting. - Speed
Select Value > Value.
Set the value to 5.
Destroy Prefab #
Add Node > Game Object > Prefab > Destroy Prefab
The arrow reached the target, we can now destroy it.
- Prefab
Select Prefab 1.
Spawn Prefab #
Add Node > Game Object > Prefab > Spawn Prefab
But we spawn the effect on the target.
- Prefab
Select Prefab 0. - Target Type
Select Object. - Object (Target Object)
Select Starting Object.
Wait #
Add Node > Base > Wait
- Time
Select Value > Value.
Set the value to 0.2.
Calculate Action #
Add Node > Battle > Action Outcome > Calculate Action
We now calculate the outcome of the action, but we only use the target of the schematic.
E.g. when this schematic is used by the Round Shot per target, we only want it to damage that one target, otherwise it’ll damage all targets of the action.
- Use Other Targets
Enable this setting. - Object
Select Starting Object.
Play Sound #
Add Node > Audio > Audio > Play Sound
Play the Hit sound type on the target.
- Object (Play On)
Select Starting Object. - Use Sound Type
Enable this setting. - Sound Type
Select Hit. - Play One Shot
Enable this setting.
And that’s it for the schematic. Click on Save Schematic to save it, e.g. as ArrowShot.
Shoot Schematic #
The shoot schematic is similar to the attack schematic, but we’ll replace the attack effect part with using our ArrowShot schematic.
We’ll simply change what we need to for this variation and use Save Schematic As to save it as a new schematic.
Open the Attack schematic we set up in the last tutorial.
Settings #
Remove the added prefab, we don’t need them here (they’re handled by the ArrowShot schematic).
Removing Nodes #
We don’t need any of the nodes between the 2 Play Sound nodes (including the Play Sound nodes), i.e. you can remove the whole block:
- Play Sound
- Spawn Prefab
- Wait (0.2 seconds)
- Calculate Action
- Play Sound
Start Machine #
Add Node > Machine > Start Machine
This node is used to start a schematic.
Add the node after the first Change Variables node, i.e. it’s connected to the Next slot of the Change Variables node and connects to the 2nd Wait node.
We’ll start the ArrowShot schematic using the user and target and waiting for it to finish.
- Schematic Asset
Select the ArrowShot schematic. - Execution Type
Select Multi.
This’ll allow the schematic to be used multiple times at the same time.
We’ll use that to shoot arrows at all targets of the Round Shot ability at the same time. - Wait
Enable this setting.
We wait for the arrow to hit. - Object (Machine Object)
Select Machine Object.
The user will also be the user of the started schematic. - Object (Starting Object)
Select Starting Object.
The target will also be the target of the started schematic.
However, it’ll execute for each individual target, so our Round Shot ability will fire arrows at each target.
And that’s it for the schematic. Click on Save Schematic As … to save it, e.g. as Shoot.
Double Shot Schematic #
We’ll continue working on the same schematic, since the Double Shot simply needs to shoot twice.
We’ll change what we need to for this variation and use Save Schematic As to save it as a new schematic.
Start Machine #
Copy the already added Start Machine node and add it before the original, i.e. the first Change Variables node is connected to the copy.
We’ll disable waiting for this first shot to finish.
- Wait
Disable this setting.
Wait #
Copy one of the Wait nodes (all have 0.5 second waits).
Place the node between the 2 Start Machine nodes, i.e. there’s a 0.5 second wait between shots.
And that’s it for the schematic. Click on Save Schematic As … to save it, e.g. as DoubleShot.
Abilities #
All that’s left is to add the schematic to our bow attacks.
Navigate to Status > Abilities.
1: Shoot #
Battle Animation #
Click on Add Battle Animation.
- Schematic Asset
Select the Shoot schematic.
5: Double Shot #
Battle Animation #
Click on Add Battle Animation.
- Schematic Asset
Select the DoubleShot schematic.
6: Round Shot #
Since our Shoot schematic shoots an arrow at every target of the action, we can just use it here as well.
Battle Animation #
Click on Add Battle Animation.
- Schematic Asset
Select the Shoot schematic.
Save Changes #
And that’s it for the bow attack animations!
Don’t forget to save your changes by clicking on Save Settings at the bottom of the editor.
Testing #
Hit play in the Forest Battle 1 scene and shoot some enemies.
Arrows are flying, great!
However, you’ll most likely only have access to the regular Shoot attack due to the others being learned at later levels. Let’s change that.
Updating Combatants #
We’ll make the abilities of the combatants available to them at level 1.
Navigate to Combatants > Combatants, we’ll change them for:
- Warrior
- Rogue
- Ranger
- Wizard
- Cleric
The monk only has a single ability and that’s already learned at level 1.
Attacks & Abilities > Ability Development #
We’ll simply set the Learn at Level settinf for all added Learn Ability settings to 1.
Learn Ability X #
- Learn at Level
Set to 1.
Repeat that for all combatants listed above and all their abilities.
Save Changes #
And now we’re done.
Don’t forget to save your changes by clicking on Save Settings at the bottom of the editor.
Testing #
Hit play in the Forest Battle 1 scene and test your ability arsenal.
Next, we’ll connect the town with the forest battle.
Optional: Study #
The Study ability is the only one we haven’t animated – and we won’t do it in this tutorial series.
However, you can follow this tutorial from the 3D RPG Playground series to set it up (probably without the menu, but you can naturally also add menus to game based on the 3D RPG Playground series).