-
Notifications
You must be signed in to change notification settings - Fork 1
Doc_Halo1_ActorVariantTransforms
The actor variant transforms system allows you to replace AI actors with other types based on a variety of criteria. For instance you can have a flood infection form cause an elite to turn into a flood combat elite, or have an elite pull out it's sword when it begins to charge or berserk.
The system adds 3 new tags:
actor_variant_transform_collection
actor_variant_transform_out
actor_variant_transform_in
The transform collection contains the transform types you want to include in your map. You can have multiple collections included in your scenario, which will be collated into a single tag at build time. This allows you to have for instance, a set of transforms for general elite transforms, and a second collection for flood elite transforms. You add collections to your map via the tag collection tag referenced in your map's project_yellow
tag.
The actor variant transform block defines the transforms that can be used on a particular actor variant type.
Field | Type | Usage |
---|---|---|
actor variant | tag reference | The actor variant that can be transformed. |
The transform block links together the other transform tags.
Field | Type | Usage |
---|---|---|
flags | word flags | Controls whether the transform can be triggered using HaloScript only. |
transform name | string | The name to reference the transform by when triggering it using HaloScript. |
easy selection chance | real | The probability that the transform will be chosen on easy difficulty. |
normal selection chance | real | The probability that the transform will be chosen on normal difficulty. |
hard selection chance | real | The probability that the transform will be chosen on hard difficulty. |
imposs. selection chance | real | The probability that the transform will be chosen on legendary difficulty. |
transform out | tag reference | Points to the transform out tag, which defines the criteria for the actor to transform at. |
transform in | tag reference | Points to the transform in tag, which defines what the actor will transform into. |
The selection chances are controlling whether the transform will be considered or not, irrespective of whether any other transforms available.
NOTE: If the transform out tag does not have the "transform on damage" flag set, the transform criteria will be tested on every game tick so your selection chances will need to account for that.
The transform out tag defines the criteria that must be met for an actor to transform. It also defines the animation to play when transforming and the attachments to apply.
Field | Type | Usage |
---|---|---|
flags | word flags | Controls whether the actor should be invincible whilst transforming out. |
criteria flags | word flags | These flags control what types of criteria to use when determining whether an actor should transform. |
actor action | word flags | When transforming on actor action is enabled these flags set which actions to transform on. |
actor state | word flags | When transforming on actor state is enabled these flags set which states to transform on. |
shield range | real fraction bounds | When transforming on shield range is enabled these flags set the value bounds that the actors shield must be in. |
health range | real fraction bounds | When transforming on health range is enabled these flags set the value bounds that the actors health must be in. |
transform out anim | string | The name of the animation to play when the actor is transforming. |
The transform_out tag can specify a list of unit types that can cause the transform as part of it's transform criteria. For example, if transforming into a flood should only occur when attacked by an infection form you would add the infection form biped to the instigators list. This only applies if the "transform on damage" flag is set.
Field | Type | Usage |
---|---|---|
unit | tag reference | The type of instigator. |
damage type | enum | Controls whether damage type must be melee, projectile or both. |
The transform out animation is played once the transform criteria are met. You can set keyframe actions that allow you to trigger certain events during the transform out animation.
Field | Type | Usage |
---|---|---|
keyframe | enum | The keyframe to occur on. Primary and secondary keyframes are set in the animation tag, final will occur at the end of the animation. |
rider handling | enum | When used, can be set to kill seated units or eject them. |
target | enum | When an effect or damage effect are set, this defines whether it should be targeted at the transforming actor, or at any seated units. |
damage effect | tag reference | The damage effect to apply. |
effect | tag reference | The effect to spawn. |
effect marker | string | The marker to spawn the effect at. |
Attachments listed here are added to the actor during it's transform out animation.
When the destination marker count is greater than 1, the system will append an index to the end of the destination marker name when looking for a marker to attach to. I.e. marker0, marker1 and so on. If a marker does not exist on the target unit, the object will not be attached.
Field | Type | Usage |
---|---|---|
flags | word flags | Controls whether the attachments added to the actor should be destroyed if it dies before the transformation is completed. |
Attachment block:
Field | Type | Usage |
---|---|---|
object | tag reference | The object type to attach. |
object marker | string | The marker on the object to attach from. |
destination marker | string | The name of the marker to attach to on the target unit. |
destination marker count | short | The number of markers to attach to. |
team handling | enum | Controls whether the new object's team should be inherited from the old actor, inherited from |
team override | enum | When the new actor's team is overridden, controls the team to use. |
attachment scale | real bounds | Controls the size of the attached object, randomly choosing a value between the upper and lower bounds. |
The transform in tag defines the possible actors to transform into.
The target block sets up the actor variant to create, the state of the created actor and the animation to play.
Field | Type | Usage |
---|---|---|
target name | string | The name used to reference the target type in HaloScript. |
flags | word flags | See below. |
easy selection chance | real | The probability that the transform will be chosen on easy difficulty. |
normal selection chance | real | The probability that the transform will be chosen on normal difficulty. |
hard selection chance | real | The probability that the transform will be chosen on hard difficulty. |
imposs. selection chance | real | The probability that the transform will be chosen on legendary difficulty. |
actor variant | tag reference | The actor variant to transform into. |
encounter/squad handling | enum | Controls whether the new actor should inherit the old actor's encounter, the attacking units encounter, or be be created as a free actor. |
team handling | enum | Controls whether the new actor's team should be inherited from the old actor, inherited from the attacking actor or overridden by the designer. |
team override | enum | When the new actor's team is overridden, controls the team to use. |
initial state handling | enum | Controls whether the new actor's initial state should be inherited from the old actor, or overridden by the designer. |
initial state override | enum | When the new actor's initial state is overridden, controls the state to use. |
return state handling | enum | Controls whether the new actor's return state should be inherited from the old actor, or overridden by the designer. |
return state override | enum | When the new actor's return state is overridden, controls the state to use. |
transform in anim | string | The name of the animation to play on the new actor. |
vitality inheritance | enum | Controls whether the new actor should inherit the old actor's health/shield amount. |
vitality override | enum | Controls whether the new actor's health/shield should be overridden. |
shield override | real | When the new actors shield should be overridden, this sets the amount. |
health override | real | When the new actors health should be overidden, this sets the amount. |
The selection chance for targets controls which target is selected from the available targets, so a target will always be chosen.
Target flags:
Flag | Usage |
---|---|
try to use existing unit | When set, the transform will try to re-use the unit attached to the old actor. If the unit type in the new actor variant type does not match, the system will delete the old unit and create a new one. |
drop weapon | When set, the old actor will drop it's weapon on the ground when transforming. |
inherit seated units | When set, the system will try to transfer any seated units to the newly created unit. The transfer will use the same seat indices. |
delete attached actors | When set, any actors that are attached to the unit will be deleted when the transform in stage begins. Otherwise they are detached. |
The transform in animation is played as soon as the transform out animation ends. You can set keyframe actions that allow you to trigger certain events during the transform in animation.
Field | Type | Usage |
---|---|---|
keyframe | enum | The keyframe to occur on. Primary and secondary keyframes are set in the animation tag, final will occur at the end of the animation. |
rider handling | enum | When used, can be set to kill seated units or eject them. |
target | enum | When an effect or damage effect are set, this defines whether it should be targeted at the transforming actor, or at any seated units. |
damage effect | tag reference | The damage effect to apply. |
effect | tag reference | The effect to spawn. |
effect marker | string | The marker to spawn the effect at. |
-
Wiki Home
- Halo 1
- FAQ
- Getting Started
- Related Forum Threads (Legacy)
- Post-Mortem
- Gamers
- Modders
- Server Hosts
- HTTP Server
- Map Download
- Programmers