CHAPTER 12 A – Magic

Created By: Game Audio Resource Ltd     Date: 21/08/2019      Version: 2.00

In this chapter will focus on a generic default hierarchy that can be used for all types of magic attacks that are triggered by enemy entities.

We will highlight how to implement the Magic type Fireball in this guide.
The hierarchy we set up can then be duplicated and assigned to other types of magic events.

  • TIP: The names of the magic events is slightly confusing; We would have recommended naming events the following
    > Fireball_Fire
    > Fireball_Flight_Start
    > Fireball_Flight_Stop
    > Fireball_Impact

Guide Steps:

  • STEP 01: Launch
  • STEP 02: Projectile Flight
  • STEP 03: Projectile Impact
  • STEP 04: Test & Integrity Report

Task Time Needed: 3 Hours (to implement all magic types)


Video Guide


Written Guide

Chapter 12 – Step 01
Launch

The first step is to set up a hierarchy for the fireball launch

HIERARCHY

  1. Navigate to the Actor-Mixer Hierarchy > Default Work Unit > Magic Wwise Work Unit.
    Right click the Work Unit, then select New Child > Actor Mixer
    Name: Magic_Fireball
  2. With the new Actor Mixer selected in the Property Editor > Output Bus, assign the following path: SFX > Magic
  3. Right click the New Actor Mixer, then select New Child > Random Container
    Name it: Magic_Fireball_Launch
  4. Drag in associated one-shot Fireball launch audio assets to the new Random Container.
    Place them under the place: SFX > Magic > Fireball

ATTENUATION

  1. Navigate to the ShareSets tab. Under the Attenuation’s > Weapon Wwise Work Unit, copy the following 3 attenuation’s
    > Weapon_Fire
    > Weapon_Projectile_Flight
    > Weapon_Projectile_Impact
    Copy & paste the 3 attenuation’s into the Magic Wwise Work Unit
    Then rename the 3 attenuation’s via the Batch rename tool from Weapon > Magic.
    Also remove the _01 from the container names.
    Change the Magic_Fire attenuation to be called Magic_Launch.
  2. Navigate back to the Actor-Mixer Hierarchy > Random Container.
    Select the Random Container. Then in the Property Editor select the positioning tab.
    Then add the following:
    Tick Override parent
    Under Listener Relative Routing > 3D Spartailization, in the drop-down menu select: Position + Orientation
    Then under Attenuation assign the following path:
    My Cube > Magic > Magic_Launch

EVENT

  1. Navigate to the Project Explorer > Events tab.
    Locate the Magic Work Unit.
    Right click the Work unit, then select New Child > Virtual Folder
    Name it: Magic_Fireball
  2. Locate the following events in the Unused folder
    > End_Fireball_Monster
    > End_Fireball_Player
    > Fire_Fireball_Monster
    > Fire_Fireball_Player
    > Hit_Fireball_Monster
    > Hit_Fireball_Player
    Cut & paste these 6 events into the new Virtual Folder Magic_Fireball
  3. Select the Event Fire_Fireball_Monster, then with the Event Editor properties displayed, Navigate back to the Audio tab > Actor-Mixer Hierarchy > Magic_Fireball_Fire Random Container. Drag the Random Container on to the Play Action in the Event Editor that is currently assigned to Placeholder_Silence_One_Shot
  4. Save your Wwise Project updates and Generate the sound banks.
  • TIP: The event Fire_Fireball_Player is not currently used by the default game. Leave the event play action pointing at Placeholder_Silence_One_Shot.
    In a professional company, you would either:
    > Fully remove the event in data, Wwise and code (this is not the best process, as Game Designers could enable the projectile type for the player at any time)
    > Assign a new type of Silence to the project, so that you can tell the difference between Placeholder_Silence (needs content assigned) and Silence (implemented on purpose) containers when viewing your Wwise project.
    > Stop the event data trail in game engine databases and not add data to Wwise to highlight the event exists.

Chapter 12 – Step 02
Projectile Flight

Next, we will implement a generic hierarchy for a fireball flight looping asset to play and stop depending on the status of the projectile being alive or dead.

HIERARCHY

  1. Navigate to the Project Explorer > Audio tab > Default Work Unit > Magic > Magic_Fireball Actor Mixer.
  2. Drag in a looping fireball flight asset loop under the Actor Mixer hierarchy.
    In the Import Window, Place it under the path: SFX > Magic > Fireball
  3. With the loop asset selected, In the Property Editor > General Settings tab, tick the loop box.

ATTENUATION

  1. Select the audio looping assets in the Actor-Mixer Hierarchy. Then in the Property Editor > Positioning tab, add the following:
    Tick Override parent
    Under Listener Relative Routing > 3D Spartailization, in the drop-down menu select: Position + Orientation
    Then under Attenuation assign the following path: My Cube > Magic > Magic_Projectile_Flight

EVENT

Next, we assign how the flight loop will start and stop.

  1. Navigate to the Project Explorer > Events tab.
    Locate the events:
    > End_Fireball_Monster
    > Fire_Fireball_Monster
    > Hit_Fireball_Monster
  2. Select the event Fire_Fireball_Monster.
    Then in the Event Editor, right click, then select New Action > Play
  3. Select the new Event Play Action line, then add a Fade time value of 0.3
  • TIP: This fade time value allows the fireball flight loop to fade up in volume over 0.3 of a second when the Fireball_Fire event is triggered.
    This allows focus on the Fireball_Fire audio asset to play then the flight loop takes over.
  1. Select the End_Fireball_Monster event, then in the Events list, right click, select New Action > Stop > Stop.
  2. Select the new Event Stop Sction line, then add a Fade Time value of 0.3
  • TIP: This fade time value allows the flight looping asset to fade out when it disappears (usually on impact)
  1. Also, to be doubly sure the flight loop stops we will add a stop Action to the Hit_Fireball_Monster event.
    Select the Event Hit_Fireball_Monster, then in the Event Editor List, right click, select New Action > Stop > Stop.
  2. Select the new Event Play Action line, then add a Fade Time value of 0.3
  3. Navigate back to the Audio tab > Actor-Mixer Hierarchy > Magic_Fireball_Flight looping audio asset. Then drag the asset onto each of the new Play and Stop Event actions we have just added.
  4. Save your Wwise Project updates and Generate the Sound Banks.
  • TIP: As previously mentioned in Step one there are other events named for the Fireball player. The default game does not allow the Player character to use the fireball attack. You can leave the events assigned to Placeholder_Silence_One_Shot or a new Silence container.

Chapter 12 – Step 03
Projectile Impact

The final part of the basic magic projectile structure is to implement an impact hierarchy

  • TIP: This step would best suit a blend container so you could have close and far assets triggering based on distance away from the player character.
    However, for this guide we will implement a simply Random Container.
    If you would like to add a Blend Container for close and far assets, please see the previous guide Chapter 11 C Rocket Launcher for guidance. Note: You will then also need to create your own Far audio assets.

HIERARCHY

  1. Navigate to the Project Explorer > Audio tab > Default Work Unit > Magic > Magic_Fireball Actor Mixer.
    Right click the Actor Mixer, then select New Child > Random Container.
    Name it: Magic_Fireball_Impact
  2. Drag in associated one-shot Fireball Impact audio assets to the Random Container.
    Place them under the path: SFX > Magic > Fireball.

ATTENUATION

  1. With the Random Container selected, in the Property Editor > Positioning tab, add the following:
    Tick Override parent
    Under Listener Relative Routing > 3D spartialization, in the drop-down menu  select Position + Orientation.
    Then under Attenuation assign the following path:
    My Cube > Magic > Magic_Projectile_Impact

EVENT

  1. In the Project Explorer > Events tab, locate the following event:
    Hit_Fireball_Monster
    (ensure it is under the Magic_Fireball Virtual Folder)
  2. With the event selected and the Event Editor Actions displayed, navigate back to the Audio tab > Actor-Mixer Hierarchy > Magic_Fireball_Impact Random Container.
    Drag the Random Container on to the events Play action currently assigned to Placeholder_Silence_One_Shot.
  3. Save your Wwise Project updates and Generate the Sound Banks.
  • TIP: For the initial game-play, we added sweetener layer for close distance impacts, to reflect a fire sizzle aftereffect of the impact explosion.
    If you would like to add the same extra detail layer. Simply add a new Random Container and new audio assets to the Magic_Fireball Actor Mixer, then add a Play event to the Hit_Fireball_Monster event assigned to trigger the sweetener layer Random Container. Also, add a Fade Time to the Play Action so it does not play instantly when the impact event is triggered. However long the sweetener sound plays after the impact is up to you.

At this point you could now duplicate the Magic_Fireball Actor Mixer hierarchy 3 Times. Then rename the hierarchies individually to Iceball (the entity Knight’s attack), Rocket (the entity Bauul’s attack) & Slimeball (the entity Goblin Attack)
Add new audio assets for the different content types. Then point the hierarchy containers to the related sound events that share similar names to the fireball events mentioned in this guide.

Chapter 12 – Step 04
Test & Integrity Report

In this step we will test our updates in game.

  1. Boot up the Cube game and Connect Wwise to the game.
  2. Solo the Magic_Fireball Actor Mixer
  3. Change to the Wwise Layout Profiler.
  4. Filter the Capture log by the Magic_Fireball Actor Mixer.
  5. Back in game Change to a single player map so enemy entities can spawn.
  6. Wait till an ogre is spawned, then test the Magic_Fireball content.
    Allow the Ogre to fire its Fireball attack at you in various situations.
  7. Add any balancing changes you wish to add
  8. Close the game
  9. Save your Wwise Project updates and Generate the Sound Banks.
  10. Run a Wwise Integrity Report to validate your Hierarchy data structure

If you have added other magic types, fully test and balancing the associated content.

%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close