I don't need to test my programs. I have an error-correcting modem.
Legacy:SuperApe/OSMObjectiveManager
This is the main actor responsible for Objective management in OSM Adventure maps. Level designers will use this actor to control a wide variety of aspects of their OSM Adventure. It includes a standardized database of information for each objective, but it's also responsible for launching Intro cutscene Matinees, forcing specific player character profiles, name and inventory. It is also responsible for defining the DeathScene Matinee. This actor handles many hidden aspects of cutscene operation, including player pawn script execution, "bullettime" management, per Objective timelimits and resuming Adrenaline combos that were running at the time a cutscene started. It also handles score/adrenaline awards per Objective.
This actor is part of the Old Skool Monsta Toolz and designed specifically for use in the OSM Adventure gametype.
Contents
Struct
struct ObjectiveInfo { var() name AchieveEvent; // The Event indicating Objective has been reached. var() name CutSceneTag; // The Tag of the Matinee (SceneManager) to run. var() bool bBulletTime; // Slow to "Bullet Time" during cutscene. var() int ScoringValue; // The score award for achieving this Objective. var() int AdrenalineAward; // The Adrenaline aware for achieving this Objective. var() name PlayerStartTag; // The Tag of the TriggerPlayerStart(s) that should be turned on. var() float NextObjectiveTimelimit; // Optional timelimit to reach next Objective. var() string AdditionalEquipment[16]; // Adds per Objective inventory. (OSMT v1.1 and later) };
Properties
Main
- array<ObjectiveInfo> Objectives
- The database of Objectives a player can reach in this OSM Adventure map. These Objectives can be reached in any order, or skipped entirely, as in a branching Objective system.
- name IntroCutSceneTag
- The Tag of the Matinee (SceneManager) which should run as this adventure's intro cutscene.
- float IntroCutSceneLength
- The length of time to let the intro cutscene run before starting the countdown to match start.
- bool bPreventIntroInterrupt
- Allows the player to bypass the intro cutscene with a click. (fire)
- name BeginPlayerStartTag
- The Tag of the TriggeredPlayerStart(s) that begin the adventure. (These should be the only TriggeredPlayerStarts bEnabled)
- name DeathSceneTag
- The Tag of the Matinee (SceneManager) that is used as the DeathScene for this OSM Adventure map.
- string DefaultCharacter
- The character profile to force on the player's Pawn. The player will control this character no matter when their current settings indicate.
- string DefaultName
- The name to force on the player.
- string DefaultEquipment[16]
- The equipment the player will always start with (each respawn). This string property expects to be formatted as <PackageName>.<InventoryName>, such as XWeapons.LinkGun.
Hidden
- int CurrentObjective
- This is the value of the currently playing Objective. (-1 = introductory objective)
- name CurrentPStartTag
- This is the Tag of the last TriggerPlayerStart(s) that were activated (or the BeginPlayerStarts).
- int MatchTimeLimit
- This is the total time limit, as set by the player in the game config menu.
- float MatchRemainingTime
- This is the total remaining time for the match.
- float SaveTime
- This is a placeholder for MatchRemainingTime, used during per Objective timelimits.
- bool bDeathScene
- Indicates the currently playing cutscene is a DeathScene.
- AIScript NextScript
- Indentifies a ScriptedSequence that should be used to control the player Pawn.
- class<Combo> LocalPlayerCombo
- Placeholder for an Adrenaline combo that was running when a cutscene started, used to restart the combo once the cutscene is done.
- Pawn LocalPlayerPawn
- Placeholder for the local player's Pawn.
Operation, Rules & Tips
- It's important to note that each of these properties the level designer can set are optional.
- It is not necessary for Triggers that fire Objective AchieveEvents to be set to bTriggerOnceOnly. OSMObjectiveManager automatically spawns OSMObjectiveTriggers at the start of the match for each Objective for this purpose.
- As long as the Objective cutscene is started by the OSMObjectiveManager, the player's Pawn will be controlled during the cutscene by the ScriptedSequence whose Tag matches the Matinee's (SceneManager) PlayerScriptTag property. (This corrects a small bug in the stock code that prevented this operation)
- In order for the player's Pawn to be controlled by the appropriate ScriptedSequence identified by the Matinee (SceneManager), or for score or Adrenline to be awarded appropriately, the Objective's AchieveEvent must be Instigated by the player Pawn. For more on Trigger System Instigators, see Trigger Systems.
- Player's who die during cutscenes are automatically revived after the cutscene is done.
- While IntroCutScenes can be interrupted (if configured by the level designer), both intermediate Objective cutscenes and DeathScenes are not interruptable. Level designers are encouraged to keep these short and to the point for the sake of the player's patience.
- If an IntroCutScne is interrupted the OSMGame actor fires a special Event meant to signal that the intro cutscene is over and the match is about to begin. This Event, "IntroInterrupted", is mean to help level designers clean up intro cutscene actors and move appropriate Movers to get ready for the start of the match.
- While Match TimeLimits set by the player in the game config menu will time the entire adventure, including the time cutscenes take, Per-Objective TimeLimits as defined by the level designer in the OSMObjectiveManager do not count the time taken during cutscenes. Per-Objective TimeLimits begin after the cutscene is finished and end before the start of the next Objective's cutscene.
- Adrenaline combos interrupted by cutscenes will be automatically continued after the cutscene ends.
- If Adrenaline is not desired in this map, simply use a LevelGameRules actor set to the NoAdrenaline mutator.
- DeathScenes are simply Matinees. If a DeathSceneTag matches a Matinee (SceneManager) Tag, that DeathScene will run whenever the player dies.
- A DeathScene always centers on the player Pawn or the Pawn's last location if gibbed.
- DeathScenes have their camera locked at a distance of about 256 UU automatically, so the DeathScene Matinee is simply used to provide camera angle motion.
- DeathScenes are always in "BulletTime".
- DeathScenes can utilize all Matinee features, including camera effects and camera overlays. A special bloody "You Died" texture is provided by this actor's Skins property. It is available under the OSMTex texture package for use as a stock DeathScene camera overlay.
External Links
- Angel Mapper's Matinee Tutorial - An excellent resource for learning to use cutscenes.
Related Topics
- Old Skool Monsta Toolz - Hub for OSMT, the main toolset for monster support in any UT2004 gametype.
- Mapping For OSM Adventure - A guide for level designers of the OSM Adventure gametype.
- Matinee and SceneManager.
- AIScript, ScriptedSequence and ScriptedAction.
- TriggeredPlayerStart
- Adrenaline
- Trigger Systems