This tutorial is fairly self explanatory. Something goes boom, units go flying. We'll be making a radial blast that pushes units back and a shockwave that tosses units into the air. I thought about adding more variations, but I realized that they'd all just be lesser versions of the Ground Pound Ability. Thus everything you need to start using Apply Force can be found in this tutorial.
Example map: (
link)
ONE VERY IMPORTANT NOTE: If the unit isn't in the air when you push/pull it, the unit will drag along the ground and almost "hop" in the direction it's being moved. This means that if you want to throw units any distance you need to lift them off the ground, even if it's just a barley noticeable height.
Shockwave
Effects Tab
- Create a new Effect named Shockwave (Damage) with Effect Type: Damage
- set AI Notify Flags: Hurt Enemy
- set Amount: 10
- set Flags: Notification
- Create a new Effect named Shockwave (Drop) with Effect Type: Modify Unit
- set Height: -2
- set Height Time: 0.24
- Create a new Effect named Shockwave (Lift) with Effect Type: Modify Unit
- set Height: 2
- set Height Time: 0.24
- Create a new Effect named Shockwave (Height) with Effect Type: Apply Behavior
This is a placeholder in the effect chain until you have created the actual behavior and validator.
- Create a new Effect named Shockwave (Search) with Effect Type: Search Area
- set Areas +: (Arc: 360; Effect: Shockwave (Height); Max Count: -1; Radius: 1)
- set Search Filters: Exclude [Dead/Hidden/Invulnerable/Missile/Self/Stasis], Require [Ground] and Uncheck [Ally/Player]
- Create a new Effect named Shockwave (Line) with Effect Type: Create Persistent
- set Period Count: 12
- set Period Durations: 0.075
- set Period Effects: Shockwave (Search)
- set Periodic Offsets: ([0, -0.5] .... [0, -6]) In increments of 0.5
- set Location +: Source Point
- set Location Offset - End +: Source Point
- set Location Offset - Start +: Source Unit
This is what will create your shockwave and apply its effects. You can make the line longer by increasing the increment size or making more Periodic Offsets while increasing the Period Count.
Behaviors Tab
- Create a new Behavior named Shockwave (Height) with Behavior Type: Buff
- set Categories: Temporary
- set Modification +:
- Behavior Modify Flags: Enable Disable Abilities
- set Effect - Final: Shockwave (Damage
- set Effect - Initial: Shockwave (Lift)
- set Effect - Periodic: Shockwave (Drop)
- set Duration: 0.56
- set Flags: Hidden
- set Period: 0.32
- set Period Count: 1
- link the Effect - Apply Behavior: Shockwave (Height)
Validators Tab
- Create a new Validator named HasShockwave with Validator Type: Unit Compare Behavior Count
- set Behavior: Shockwave (Height)
- set Compare: Equal To
- set Unit +: Target
- set Value: 0
- add Validator to Effect - Apply Behavior: Shockwave (Height)
- Create a new Button named Shockwave
- set Hotkey: D
- set Icon: btn-ability-protoss-shieldbattery.dds
Abilities Tab
- Create a new Ability named Shockwave
- open Commands + and set the Default Button for Execute to Shockwave
- open Cost + and set Cooldown > Time Use: 2
- set Effect: Shockwave (Line)
- set Range: 6
Models Tab
- Create a new Model named Shockwave (Impact)
- set Model: BurrowFXSmall.m3
- Create a new Model named Shockwave (Line)
- set Model: BurrowFXLarge.m3
Actors Tab
- Create a new Actor named Shockwave (Impact) with Actor Type: Model and Based On: Model Animation Style One Shot
- set Model: Shockwave (Impact)
- set Host +: Implicit:Implicit:Disabled (Remove Subject)
- open Events + and create the following events:
- Effect - Shockwave (Damage) - Start
- Actor Creation
- Animation Play (Name: Land; Animation Properties: Unburrow, 02; Time Variant: 0.5; Time Type: Duration)
- Animation Done
- Create a new Actor named Shockwave (Line) with Actor Type: Model and Based On: Model Animation Style One Shot
- set Model: Shockwave (Line)
- set Host +: Implicit:Implicit:Disabled (Remove Subject)
- open Events + and create the following events:
- Effect - Shockwave (Search) - Start
- Actor Creation
- Animation Play (Name: AoE; Animation Properties: Unburrow; Time Variant: 0.5; Time Type: Duration)
- Animation Done
- Create a new Actor named Shockwave Sound with Actor Type: Sound and Based On: SoundOneShot
- set Sound: Zerg_UnburrowMedium
- open Events + and create the following events:
- Effect - Shockwave (Search) - Start
- Sound Done
Ground Pound
Effects Tab
- Create a new Effect named Ground Pound (Damage) with Effect Type: Damage
- set AI Notify Flags: Hurt Enemy
- set Amount: 10
- set Flags: Notification
- Create a new Effect named Ground Pound (Drop) with Effect Type: Modify Unit
- set Height: -1.5
- set Height Time: 0.36
- Create a new Effect named Ground Pound (Lift) with Effect Type: Modify Unit
- set Height: 1.5
- set Height Time: 0.36
- Create a new Effect named Ground Pound (Height) with Effect Type: Apply Behavior
This is a placeholder in the effect chain until you have created the actual behavior and validator.
- Create a new Effect named Ground Pound (Push) with Effect Type: Apply Force
- set Amount: 1
- set Mass Fraction: 1
- set Time Scale Source +: Caster
- set Location +: Source Unit/Point
- set Unit +: Target
This is responsible for moving the units in whatever direction the force is moving. If you want to "suck" units into a vortex, use negative amounts. It is important that you understand this isn't just a single application. The Persistent will push/pull the unit(s) repeatedly over a short period of time to cause significant movement. If your Force Effect isn't moving your unit far enough, it's likely because you aren't using a Persistent/Buff to apply it rapidly over a brief time period.
- Create a new Effect named Ground Pound (Set) with Effect Type: Set
- set Effects: Ground Pound (Height) and Ground Pound (Push)
- set Maximum Count: -1
- Create a new Effect named Ground Pount (Search) with Effect Type: Search Area
- set Areas +: (Arc: 360; Effect: Ground Pound (Set); Max Count: -1; Radius: 2; Radius Bonus: 0.25)
- set Search Filters: Exclude [Dead/Hidden/Invulnerable/Missile/Self/Stasis], Require [Ground] and Uncheck [Ally/Player]
- Create a new Effect named Ground Pound (Shockwave) with Effect Type: Create Persistent
- set Period Count: 17
- set Period Durations: 0.05
- set Period Effects: Ground Pound (Search)
This is what will create your radial shockwave and apply its effects. You can make the blast bigger by increasing the increment the Period Count.
- Create a new Effect named Ground Pound (Jump) with Effect Type: Apply Behavior
This is a placeholder in the effect chain until you have created the actual behavior.
Behaviors Tab
- Create a new Behavior named Ground Pound (Height) with Behavior Type: Buff
- set Categories: Temporary
- set Modification +:
- Behavior Modify Flags: Enable Disable Abilities
- set Effect - Final: Ground Pound (Damage)
- set Effect - Initial: Ground Pound (Lift)
- set Effect - Periodic: Ground Pound (Drop)
- set Duration: 0.84
- set Flags: Hidden
- set Period: 0.48
- set Period Count: 1
- link the Effect - Apply Behavior: Ground Pound (Height)
- Create a new Behavior named Ground Pound (Jump) with Behavior Type: Buff
- set Categories: Temporary
- set Modification +:
- Behavior Modify Flags: Enable Disable Abilities
- set Effect - Final: Ground Pound (Shockwave)
- set Effect - Initial: Ground Pound (Lift)
- set Effect - Periodic: Ground Pound (Drop)
- set Duration: 0.72
- set Flags: Hidden
- set Period: 0.36
- set Period Count: 1
- link the Effect - Apply Behavior: Ground Pound (Jump)
Validators Tab
- Create a new Validator named HasGroundPound with Validator Type: Unit Compare Behavior Count
- set Behavior: Ground Pound (Height)
- set Compare: Equal To
- set Unit +: Target
- set Value: 0
- add Validator to Effect - Apply Behavior: Ground Pound (Height)
- Create a new Button named Ground Pound
- set Hotkey: F
- set Icon: btn-ability-protoss-blink.dds
Abilities Tab
- Create a new Ability named Ground Pound
- open Commands + and set the Default Button for Execute to Ground Pound
- open Cost + and set Cooldown > Time Use: 2
- set Effect: Ground Pound (Jump)
Models Tab
- Create a new Model named Ground Pound (Impact)
- set Model: BurrowFXSmall.m3
- Create a new Model named Ground Pound (Slam)
- set Model: DragoonForceShield.m3
Actors Tab
- Create a new Actor named Ground Pound (Impact) with Actor Type: Model and Based On: Model Animation Style One Shot
- set Model: Ground Pound (Impact)
- set Host +: Implicit:Implicit:Disabled (Remove Subject)
- open Events + and create the following events:
- Effect - Ground Pound (Damage) - Start
- Actor Creation
- Animation Play (Name: Land; Animation Properties: Unburrow, 02; Time Variant: 0.5; Time Type: Duration)
- Animation Done
- Create a new Actor named Ground Pound (Slam) with Actor Type: Model and Based On: Model Animation Style One Shot
- set Model: Ground Pound (Slam)
- set Host +: Implicit:Implicit:Disabled (Remove Subject)
- open Events + and create the following events:
- Effect - Ground Pound (Shockwave) - Start
- Actor Creation
- Animation Play (Name: Land; Animation Properties: Stand; Time Variant: 0.333; Time Type: Time Scale)
- Actor Creation
- Set Scale (Scale: 6; Blend: 0.85; Label: Shockwave)
- Animation Done
This actor's events are very important if you want to create expanding blasts. It takes some tweaking and a lot of guess and check to figure out what the best setup is, but if your animation isn't moving fast enough, use Time Scale. Perhaps you need to slow it down instead. If it starts with the right speed, you can use Duration and match the times. The most important part, though, is to match your model's final scale to the actual Search Area so that the units being affected are visibly touched by the blast. In our case the model was expanding too slowly so we sped it up. The model also expands by default, so you don't need to Scale it as much.
- Create a new Actor named Ground Pound Sound with Actor Type: Sound and Based On: SoundOneShot
- set Sound: Hybrid_PsionicShockwaveLaunch
- open Events + and create the following events:
- Effect - Ground Pound (Shockwave) - Start
- Sound Done
The Caster
Units Tab
Duplicate the Zeratul Hero and its corresponding Actor. Everything else will be stock or made from scratch.
- Name it Yo Duh
- open Abilities + and remove all but [Move/Stop]; add [Shockwave/Ground Pound]
- open Command Card + and remove all Zeratul's Abilities and Attack; add [Shockwave/Ground Pound]
- (Button: [NAME]; Command Type: Ability Command; Ability: [NAME]; Ability Command: [NAME])
You now have a Master of the Force >:D
Feel free to use the attached Test Map or contact me via forum post, PM or IRC (#SC2Mapster on chat.freenode.net:6667) if you encounter problems. Keep in mind that I'm a busy person so I may not reply right away, but I'll do my best to answer all questions/concerns that I am aware of :)