HeroBlade and World Builder Training
From HEWIKI
This information assumes you have already installed HeroBlade and received a login for your HeroEngine system.
Getting Started
- Run HeroBlade
- Login
- Select a HeroEngine world
- Hit the Play button to enter the world
- Create a new character, or select an existing character if one already exists
HeroBlade Icon Bar and Camera Movement
- HeroBlade displays a comprehensive editing environment that wraps around the actual player client
- Control+g toggles the game UI on or off
- Main icons are presented in icon bars across the top of HeroBlade
- Each has a tool tip which is displayed when you hover over it
- Each icon also maps to a shortcut number key, which is shown in the tool tip
- Character mode (person icon)
- Press to jump back to your character and run around in the world
- Camera /fly mode (camera icon)
- Allows free camera movement in all directions
- Camera controls
- Uses standard WASD keys, or arrow keys for movement
- Z, X decreases camera movement speed
- C, V increases camera movement speed
- R, F move the camera up and down
- Q, E turn the camera left and right
- Pressing right mouse button and dragging mouse also controls camera turning
- Mouse wheel zooms in and out
- Holding both left and right mouse buttons and dragging the mouse pans
- In camera mode, you can't select anything
- Basic selection mode (arrow icon)
- Left mouse button to select objects
- Holding the SHIFT key while repeatedly pressing the left mouse button cycles through multiple objects under the mouse cursor in depth order
- Holding the CONTROL key, you can use the left mouse button to select multiple, individual objects
- Holding down the left mouse button and dragging the mouse will select multiple objects
- Selection lock toggle
- Located in the bottom left of the UI
- Prevents the current selection from changing
- And, prevents you from selecting anything else
- Select and translate/ transform/ move tool (icon)
- Selects an object to be moved using the gizmo
- Selected axis, or axes, are highlighted in yellow
- CONTROL key shows movement snap grid
- Defaults to global grid
- Artists can create asset specific grid in Max or Maya
- Objects can be translated in either world space or local space
- Multiple objects can be selected and moved at once
- Select and rotate tool (icon)
- Selects an object to be rotated using the gizmo
- Selected axis, or axes, are highlighted in yellow
- CONTROL key shows rotation snap grid
- Defaults to global grid
- Artists can create asset specific grid in Max or Maya
- Objects can be rotated in either world space or local space
- Multiple objects can be selected and moved at once
- In world space, multiple objects rotate about the center of the volume of objects
- In local space, each object rotates about its own center
- CONTROL+D duplicates an object, and automatically selects the new object
- DELETE key deletes the selected object
- Select and scale tool (icon)
- Works like translate and rotate tools
- Don't use scale tools to fix very badly sized source assets as this may distort the pixel/screen ration (e.g.: stretch textures). Go fix the source art asset
- CONTROL+Z (undo) undoes the last operation
- SHIFT+CONTROL+Z (redo) redoes the last operation
- Select and dynamic place tool (target icon)
- Takes whatever is selected and allows it to be dragged with the mouse, using the left mouse button
- Bounds tool, width/height/depth tool (icon)
- Filter dropdown
- Toggles selectability and visibility of objects
- Clicking on label toggles both at once
- Reset to default values on exit
HeroBlade Panels
- Panels can be docked inside the HeroBlade window, or free floating outside the HeroEngine window
- Helpers allow you to dock panels inside the HeroBlade window
- Each tab can be undocked or redocked
- Panel positions are stored in an XML file
- Scene analysis and performance panels have a high impact on framerate due to amount of information and data probes in use
- Close them before looking at frame rate (fps)
Creating an Area
- Go to the Panels menu, and choose Organizer
- Create New Area button
- You can also create areas from script
- Name the area and create it
- The new area appears in the Organizer
- Create a folder
- Drag & drop moves the area into the folder
- CONTROL + drag & drop creates a shortcut to the area in the folder
- Remove only removes the area from the Organizer list, it does not delete it
- Add re-adds the removed area to the Organizer
Creating an Area Instance
- Double click on an area
- Two types of area instances
- Edit instances
- Play instances
- Can edit in both instances
- Only edit instances persist their changes (or edits) and are saved
- Edit instances are written to the repository as .dat files
- A play instance is a copy of an edit instance (.dat file) at the time the play instance is created
- Changes to play instances are not saved
- If there are changes to a play instance while it is running, they are sent to clients as they join
- Changes are coalesced to reduce the number of updates
Editing Height Map Terrain in an Area
- Double click on an area
- Choose Edit and Goto Area
- Bottom right corner of HeroBlade shows "Edit" if editing, or play instance number if in a play instance
- Make sure you are in an edit instance, so that your changes will be saved
- Right clicking on the indicator allows you to travel between play instances, or go to an edit instance
- Select the camera (icon) or selection tool (icon) to change to free mode
- Select the Height Map Tool (terrain icon)
- Displays height map terrain panel
- Make sure height map selection is enabled on the filter dropdown
- Select height map (displayed as a checkerboard)
- Bounds tool (icon ribbon) can be used to expand height map area
- For larger areas, create multiple height maps in a tiling pattern to help performance
- Height maps are natural occluders, e.g.: items hidden behind a hill will not be drawn
- Bounds tool (icon ribbon) can be used to expand height map area
- Edit height (top tool on panel)
- Brush shows influence on terrain wireframe
- Mouse wheel changes brush size
- CONTROL + mouse wheel changes strength
- Holding the left mouse button and dragging the mouse moves the vertices in the height map up or down
- Additional options
- Falloff tools control brush influence
- Brush shape controls shape of brush
- Raise/ lower tool
- Use left mouse button to raise terrain
- Use right mouse button to lower terrain
- Level tool
- Levels terrain to the vertex under the brush when you hold the left mouse button down and drag the mouse
- Ability to make ramps and angled leveling, instead of horizontal levels
- SHIFT + mouse wheel displays leveling grid and allows rotation around horizontal axis
- SHIFT + CONTROL + mouse wheel displays leveling grid and allows rotation around vertical axis
- ALT + left mouse button changes entire height map to the level where button is clicked
- Effectively, flood fills terrain to single level
- Soften tool
- Hold left mouse button and drag mouse to erode and soften terrain
- Multiple styles of erosion
- SHIFT + left mouse button and dragging makes terrain spiky
- Unspike selection checkbox can be used to smooth out spikes without completely smoothing terrain
- Holding CONTROL key temporarily stops terrain modification
- For example, use soften tool, hold left mouse button and drag around to terrain to smooth, then hold CONTROL down when you reach terrain you want to skip softening. Release CONTROL key to continue softening
- Edit height tool
- Brush pattern selector
- Nothing - effects all vertices under brush
- Gaussian - effects vertices under brush as determined by strength and pattern of Gaussian noise
- Noise texture - effects vertices under brush as determined by strength and pattern of noise texture
- Gaussian brush pattern
- Holding the left mouse button and dragging the mouse applies the pattern to the terrain
- SHIFT + mouse wheel scales the pattern
- CONTROL + mouse wheel changes the strength of the pattern
- SHIFT + CONTROL + mouse wheel rotates the pattern
- Texture brush pattern
- Use any texture as a brush
- "stamp" by pressing and releasing the left mouse button on the terrain
- Holding the left mouse button and dragging the mouse applies the pattern to the terrain
- Brush pattern selector
Creating Additional Height Map Terrain
- Create Height Map button
- Visualizer shows if new terrain overlaps existing terrain
- Move terrain so it is next to existing terrain
- All terrain tools work seamlessly across terrain boundaries
Editing Height Map Terrain in an Area (continued)
- Stitch Edges tool
- Hold left mouse button and drag brush over abutted terrain to automatically seam and repair edges
- Limiter control box
- Can limit actions to selected terrain
- Can limit actions to selected vertices
- Can limit actions to terrain height or altitude
- Can limit actions to terrain slope or angle
- Right click in limiter control box to reset
- Right click on end point to invert limits
- Scissor tool
- Hold left mouse button and drag mouse to cut holes in terrain
- Pressing SHIFT while holding left mouse button and dragging will undo the cuts
- Split height map tool
- Cuts height map into two pieces based on mouse cursor position
- Mouse wheel rotates the cutting plane
- Billboard tool
- Draws line of billboard textures
- Typically used for distant objects, e.g.: distant tree line
- Click on box with 'x'
- Browse for billboard texture in repository
- Choose billboard texture
- Limited to one terrain; each additional terrain requires its own billboard line
- Every left mouse click places a new billboard
- Holding CONTROL while left mouse clicking deletes a point
- Texture tool (checkerboard icon)
- Scroll down to lower part of panel
- Click on 'x' in box to add texture
- Browse in repository for texture
- Choose texture
- Textures are arranged in up to 4 layers, with up to 256 textures per layer
- Paint texture on terrain
- Click on Add button to add a new texture to the first layer
- Works with brush patterns
- For example, use Gaussian brush pattern to paint random texture pattern to breakup tiling
- Scroll to layer 2
- Add channel
- Add texture
- Paint with texture
- Note that this layer paints over the first layer
- Many options per layer: UV tiling, rotation, etc
- Normal map can be locked to the texture, or independent
- Specular and normal maps are per channel
- Vertex color tool
- Hold left mouse button and drag to paint
- Can use with pattern brushes
- Holding SHIFT key while painting will erase
- Dynamic detail tool
- Ability to paint non-colliding flora, etc
- Click on 'x' in box
- Choose detail texture from browser
- Appropriately set tiling of flora: 1x1, 4x4, or 1x2
- Hold left mouse button and drag to paint detail
- Many options including density, height, color, etc
- Holding SHIFT while painting erases the detail
- Change to Mesh tab
- Add a mesh by clicking on the 'x' and selecting one from the repository, e.g.: mushroom
- Meshes are painted just like texture dynamic details
- Defaults to randomized x, y, and z rotation - disable y rotation for objects which have orientation, like mushrooms
- Clone tool
- Hold CONTROL key and left click to sample terrain area: all textures, dynamic detail, etc
- Hold left mouse button and drag mouse to paint cloned textures, dynamic detail, etc
- Options to filter and limit what can be cloned
- Erase tool
- Hold left mouse button and drag mouse to erase everything under brush
- Options to filter and limit what can be erased
- Select vertex tool
- Hold left mouse button and drag mouse to select vertices
- Selected vertices can be used as mask for terrain editing, texture painting, etc
- Create Height Map Grid tool
- Creates two dimensional array of height map terrain pieces
- Height map vertex poles are 2 meters apart
Environment Panel
- Panel menu, select Environment panel
- Set light color
- Defaults to 3 point lighting
- Ambient / diffuse lighting doesn't support normal maps
- Dynamic Sky checkbox
- Time of day timeline
- Click on timeline to add keys
- Timeline starts at 6 a.m., not midnight
- Cloud layers
- Supports multiple layers
- Environment schemes
- Arbitrary number of environment schemes can be created and saved
- Environment schemes can be turned into Global Environment Schemes and shared amongst areas
- Environment schemes support blending between schemes, e.g.: fair weather into storm
- Wind
- Effects SpeedTrees and dynamic details
- Can adjust speed and other options
- Rain
- Ability to change star map
Asset Library
- Library button on HeroBlade icon ribbon
- Organizer of all game content
- Select asset, e.g.: wall section
- Double click on asset to add to world
- Or, select and press Add button
- Depending on the placement mode, giant objects may be created enclosing your camera
- Causes other world items to be culled (not drawn)
- F2 toggles whether the camera collides with objects
- Change selection to place at selection or use dynamic placement to place on terrain
- Create library (button)
- Create a new folder
- Select object in world
- Right click in library and choose 'add selected' to add selected object to library
- Multiple objects can be selected and added as a single pre-fab
- "No Icon" by default
- Several ways to create icon on right click menu: snapshot, thumbnail, etc
- "No Icon" by default
- Multiple objects can be selected and added as a single pre-fab
- Can use libraries as selection sets in order to build areas faster
Parenting
- Find, or place, two objects in the world
- Right click on the top HeroBlade frame menu and display the Parenting toolbar
- Click Parent, and choose the parent object in the world
- Select the parent, hit Child, and choose the child object in the world
- Adding either asset to the Asset Library will add both, and keep them parented
Rooming
- Rooming is a broad-phase culling solution
- HeroEngine also supports occlusion culling
- Can assign environment schemes to rooms
- By default, everything is in the 'default room'
- Create 3 height maps, arrange them in "L" shape, e.g.:
1 2 3
- Select terrain 1
- Go to Rooms on HeroBlade ribbon bar, and click Add; type 'Room 1'
- Terrain 1 will disappear because it is now in Room 1
- Click on Visibility and add 'Room 1' to default room, and Terrain 1 will reappear
- Select terrain 2
- Go to Rooms on HeroBlade ribbon bar, and click Add; type 'Room 2'
- Terrain 2 will disappear because it is now in Room 2
- Click on Visibility and add 'Room 2' to default room, and Terrain 2 will reappear
- Select terrain 3
- Go to Rooms on HeroBlade ribbon bar, and click Add; type 'Room 3'
- Terrain 3 will disappear because it is now in Room 3
- Click the Select and Modify Room Visibility button
- Yellow is currently active room
- Left click on default room
- Hold CONTROL key and left click on Room 3 to make it visible to default room
- Same functionality for room visibility is available on the area panel
- Go to terrain 1, and switch to character mode (icon)
- Notice that you can't see Room 2 or Room 3, and the terrain they contain
- Walk to Room 2, and notice that you can't see Rooms 1 or 3, and the terrain they contain
- Add Room 1 to Room 2's visibility
- Note that you can see Room 1 when standing in Room 2, but that you still cannot see Room 2 when standing in Room 1
- Need to add Room 2 to Room 1's visibility
- Add object to Room 1 that is on terrain 1, and a second object that is on terrain 2
- Notice that even though the second object is on Terrain 2, it belongs to Room 1
- Select the object placed on terrain 2
- Go to Panels, and choose the Asset Panel
- Change the selected objects room from Room 1 to Room 2
Nodes
- All objects are nodes
- All nodes are creatable from the HeroBlade GUI (Create -> ) or from HeroScript (HSL)
- All nodes are accessible from script
- Any node can be parented to any other node; conversely, any node can be a child of any node
- Make sure that you have visibility and/or selectability of the node you are interested in checked in the HeroBlade Filters dropdown
- Property panel (Panels -> Property Panel)
- Shows configurable properties and parameters of selected node or nodes
- If multiple nodes are selected, only properties common to all the nodes are displayed
Action Mark Node
- Action marks are helper objects which help to align characters with interactions
- Example
- Find and place the lever from the asset library into the world
- Lever is actually a pre-fab which includes an action mark to align character with lever
- Action mark is parented to level
- Create an action mark (Create -> Action Mark)
- Select the action mark, and display the property panel if it isn't already
- Several built-in types of action marks: generic, chair, climb down, etc; and, you can create your own as well
- Action marks have adjustable width and depth
- Adjust from property panel or gizmo
- Cue - where character needs to reach, and is an oriented ray
- CueDepth - adjusts the placement of the cue in relation to the area of the action mark
- DeadZone - perpendicular to the cue, is the proximity the character needs to be in to activate the cue
- Adjust CueDepth and DeadZone to align character with the desired interaction
Audio Node
- Places audio
- Examples
- Place in environment for ambient sound
- Group torch, flame particles, and burning sound into parent/child pre-fab and store in asset library for easy, repeated placement
- Default audio system utilizes DirectMusic, while other options are available
Billboard Node
- Allow placement of interactive GUI in world space
- Example
- Parent to a computer console to provide an interactive display
Bone Tracker Node
- Used to track a bone in any mesh asset with a root bone (e.g.: anything which uses Granny/ gr2)
- Set the targetInstance to the ID of the character to track
- Set boneName to the name of the bone on the character
- Examples
- Attach a light node or backpack to a character via a bone tracker
Flare Node
- Multiple styles of lens flare
- Placement either in camera space (normal), or from sun
Light Node
- Various types of lights
- Most properties can be singletons (e.g.: single color) or variable (e.g.: timeline)
- Use limiters to restrict what lights effect for aesthetic or performance reasons
- On the Render panel (Panels -> Render)
- Isolate Light - shows exactly what a selected light is effecting
== Mirror / Water Node
- Mirrors and various types of water
- Can be single or double sided
- Can use a cubic environment map, or reflect the actual environment
- Water can have depth, which can be used to trigger character actions such as swimming on entering the water volume
- Environment schemes can be assigned to water volumes so that the environment changes (e.g.: blue or green) when the camera enters the water volume (i.e.:"goes underwater")
- Several water types, and water shapes
- Ribbon water provides gizmo's for extending the ribbon along a spline path
- CONTROL+W toggles wireframe display
- Ribbon water can change in x, y, or z, and the whole node can be moved by holding SHIFT and left mouse button and dragging
Assets Panel
- Lists all assets in the area
- Assets shown in light gray are not in the current room
- May be in other rooms
- May not be used in the area at all
- Asset menu
- Remove assets with no instances in the area to cleanup unused assets
Path Node
- Easier to use Path Panel to create and manipulate instead of using the Create -> Path Node menu
- Path is an arbitrary of set of points (waypoints) with position and orientation
- Use add button or gizmo to add new points
- Waypoint orientation only matters if you have a script that utilizes it
- Waypoints can have arbitrary data associated with them
Path Follower Node
- On the Path Panel, select path, then Create Follower
- Path Followers have script callbacks which are activated when they hit a waypoint
- Examples:
- Attach camera to path follower node for cinematic
- Attach NPC to path follower to patrol along path
Pathing and Initial Area Entry
- On initial area entry, the player character is placed at the origin
- If an Arrival Path exists (Path Panel -> Create Arrival Path), the player character is placed there
- Should be in a valid spot, not necessarily a valid gameplay spot
- Place above ground, not in or below the ground or else the character may become stuck
- Player character's position can also be set from HSL
Physics Joint Node
- Uses Nvidia PhysX to create joints
Region Node
- Arbitrary area of space
- Convex or concave in x, z
- Specified height, or depth, in y
Path Finding Panel
- Path planning shows process of navigation mesh generation
- Visualizes navigation mesh
- Navigation mesh is updated in realtime in both edit and play instances as pathability changes
Path Finding Node
- Only needed for specific effects since path generation is automatic and realtime
- Allows region to be marked as active or inactive for pathing
- Can override basic pathing system
- Can adjust cost so that AI is more or less likely to choose one path over another
- Example: use to disallow pathing through a door until the door is unlocked and opened
Trigger Node
- Activated by player, NPC, or camera, movement into, out of, inside, or through a space
- Arbitrary name and user data string accessible from script
- Events generated to script on entry, exit, inside, etc
- Period specifies how often it checks for event conditions
- Available on both client and server
- Used on client for visual events that have no gameplay or security implication
Using the Area State System to Create a Stateful Object
- Find asset in library (e.g.: door with origin point, or pivot, at corner) and place it in the world
- Select the door if it's not selected
- Task: make the door rotate open and closed
- Example:
- In the asset library find the Chomper Gate under Cleandemo
- Hover over it with the mouse and notice the giant tooltip
- Tooltip shows assets included in this prefab and where they are in the repository
- Also shows stateful command for its opening and closing behavior
- Right click, edit command, shows stateful command and allows it to be edited
- SHIFT+F1 displays the utility menu
- On the Tools tab, select Area State Editor
- How area states work
Current State States State Transitions Action Lists (what to do) ============= ====== ================= ============ CLOSED OPEN OPEN -> CLOSED :: closing closing CLOSED CLOSED -> OPEN :: opening opening NOTSET *
- NOTSET specifies that the current state is not set
- "*" is a wildcard that allows you to map from any state to a specific state
- On the Area State Editor
- Select the Values tab
- Add -> Opened -> OK
- Add -> Closed -> OK
- Select the Action Lists tab
- Add -> Opening -> OK. Close the action list editor popup
- Add -> Closing -> OK. Close the action list editor popup
- Select the Transitions tab
- Add -> From: Closed, To: Open, Action List: opening -> OK
- Add -> From: Open, To: Closed, Action List: closing -> OK
- Select the Action Lists tab again
- Double-click on opening
- Add Actions (extensible system with several built-in types)
- Set Action to Transform
- TargetNode: the object that is the target of the transformation
- Select the door you placed in the world
- Press the green 'Grab Selected Node' button which will use information from the door
- TransformInterval: 3 seconds
- RotationalOffset: (0, 90, 0)
- To rotate 90 degrees about y axis
- ReverseAtEnd: false
- OK
- TargetNode: the object that is the target of the transformation
- OK
- Double-click on closing
- Add a transform action (as above)
- Set the target node (as above)
- TransitionInterval: 3 seconds
- OK
- OK
- Double-click on opening
- Select the Property Sheet tab
- Value: CLOSED
- Default: CLOSED
- Press green button to apply change
- Select the door if it's not already selected
- Press the link button to link the door to the state
- If you change the Value property to OPEN, the door will now open
- Select the Values tab
- You can link multiple nodes to one state system
Creating a Stateful Object that can be Instanced from the Asset Library
- Similar to creating a single stateful object, but allows it to be stored and instanced
- SHIFT+F1 to display the Utilities menu
- Select the Tools tab
- Under Spec Oracle, select Stateful Objects
- Look at the existing _DOOR for an example of what we're going to do
- Edit _DOOR
- Go to the Tokens tab
- and ? are prefixes that are used to replace parameters when working with different objects
- Go to the Tokens tab
- Edit _DOOR
- Add button
- _StatefulObjectCategory -> door (this is an arbitrary text string used for sorting)
- displayName -> SwingDoor
- _StatefulObjecDefaultValue -> CLOSED
- Values tab
- Add -> CLOSED
- Add -> OPENED
- Action Lists tab
- Add -> OPENING
- Add Transform
- TargetNode -> ?statefulObject
- RotationalOffset -> #rotationalOffset
- TransformIntervale -> #transformDuration
- OK
- Add Transform
- Add -> CLOSING
- OK
- There is no need to add anything to the CLOSING action list, because you're just returning it to its original state
- Add -> OPENING
- Tokens tab
- Add
- tokenName -> #transformDuration
- _StatefulObjectTokenHint -> #transformDuration = '00:00:05:00'
- Add
- tokenName -> #rotationalOffset
- _StatefulObjectTokenHint -> rotationalOffset='(0,0,0)'
- Add
- Tokens tab
- LIB CMD button shows library command that is stored
- Copy the displayed command
- LIB CMD button shows library command that is stored
- Select door which was placed in the world, or place out and select it
- Right click in the Asset Library and choose Add Selected to add the door to the library
- Right click on the door in the library and edit it
- Paste in the command you previously copied from the library command button
- Change the rotation from (0,0,0) to (0,90,0)
- Save
- Placing a new door from the library will now have the state attached to it
Lightning Node
- Two end points with polygonal lightning between them
- In the Asset Panel, this is the zip.zap under the Lightning group
Particle Node
- To prevent accidental changes to particle systems, they can only be modified in the area they are created in
- Suggest a dedicated area, or areas, for particle system editing
- Create -> Particle -> New Particle Spec -> Local
- Name -> MyParticle
- Type -> Billboard Point
- Texture -> click option button and browse in repository for textures
- Sample particle textures are in Engine\Clean Game\Global Particles\Textures
- Particle appears in Asset Panel in two places
- Under emitter group: MyParticle_
- Under particle group: MyParticle_p.prt
- Select emitter
- Press Instances menu, choose Add Emitter
- Property Panel has three tabs
- Emitter: master emitter, changes all instances of this emitter
- MyParticle_.prt: this instance of the emitter
- MyParticel_p.prt: particles emitted by this instance
- Typical settings
- Particle tab
- Texture: Select a texture from the repository
- Buoyancy: < 1 sinks, 1 nuetral, > 1 rises
- Pressing option box (ellipsis) allows you to change between single value and Gaussian distribution which can provide more variability
- Lifespan: value or Gaussian distribution
- Diffuse Color
- Defaults particles to black when opened
- Can use value or timeline
- On a timeline, use the Link to Particle Spec option to link to the particle's Lifespan
- Also controls alpha for transparency
- Instance Emitter tab
- Set Rate of Particle Emission
- Particle tab
- Other interesting settings
- Particle tab
- Motion -> Wind Multiplier (react to environment wind)
- Motion -> Collision Response
- Ignore is default, and very inexpensive
- Collide and die takes more CPU
- Trails - creates ribbon of polygons behind each particle
- Emit at Death Spec - instantiates a new emitter of the specified type when a particle dies
- Particle tab
FX System
- Event-based sequencer for audio and visual effects
- Visual effects can use any node
- SHIFT+F1 to display the Utilities menu
- Tools tab, under FX, choose FXSpecOracleEditor
- Add
- Select object to attach the effect to
- Name -> MyEffect
- FX Task Browser
- Drag effects from toolbar to task list
- You can create new or specialized effects from script as well
- FX Emitter Properties
- Set name, when to start, start location, and target
- Preview Panel
- Used to preview the effect
- FX Event section of node controls when effect fires
- Add
Hero's Journey Quest System
- Example of advanced HeroScript Language (HSL) functionality
- Built completely in HSL
- Used to build complex, component-based quests
- Provided as part of Hero's Journey Reference
- SHIFT+F1 to display Utilities menu
- Tools tab, under Quests, choose Quest Browser
- Quest Browser tabs
- Info: Information about the quest
- Areas: Areas the quest can be found
- Prerequisites: Requirements to get the quest
- Goals: What's required to complete the quest
- Conditionals: Conditional changes during the execution of the quest
- Drops: Items, etc that parts of the quest can drop
- Speakers: NPCs interacted with for quest start, quest completion, and each quest stage
- Rewards: What player receives for completing the quest
- Checklist
- Validates all the quest components before saving
- Flags errors and warning with suggestions on how and what to fix
Animation System
- More complete discussion during Art Training
HSL <---> Advanced Customizable Character Controller (ACCC) | | Behavior \|/ Animation Agent Script (AAS) File <----> Animation Agent | | \|/ Animation Mixer <---- Animation Sequence (ASQ) File
- Animation Panel
- Select Character
- Review animations
- More information at ASQ