14 Shoot Schematics

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.

Store Angle #

Add Node > Value > Float > Store Angle

We need the angle from user to target for rotating the arrow.

  • Variable Key
    Set to angle.
  • Variable Origin
    Select Local.
  • Operator
    Select Set.
  • Object (From Object)
    Select Machine Object.
  • Object (To Object)
    Select Starting Object.

Change Rotation #

Add Node > Movement > Rotation > Change Rotation

We’ll now set the arrow’s rotation.

  • Object (Rotating Object)
    Select Prefab 1.
  • Set Rotation
    Enable this setting.
  • Vector3 Type
    Select Value > Set Axis.
  • Z-Axis
    Select Variable > Float Variable.
  • Variable Key
    Set to angle.
  • Variable Origin
    Select Local.

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).