Skip to content

Doc_Halo1_ActorVariantTransforms

Noah Sherwin edited this page Feb 9, 2023 · 6 revisions

Actor Variant Transforms

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

Actor Variant Transform Collection

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.

Actor Variant Transform

The actor variant transform block defines the transforms that can be used on a particular actor variant type.

Transforms Block

Field Type Usage
actor variant tag reference The actor variant that can be transformed.

Transforms

The transform block links together the other transform tags.

Transform Block

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.

Actor Variant Transform Out

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.

Transform Out

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.

Instigators

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.

Instigators

Field Type Usage
unit tag reference The type of instigator.
damage type enum Controls whether damage type must be melee, projectile or both.

Animation

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.

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

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.

Attachments Block

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.

Actor Variant Transform In

The transform in tag defines the possible actors to transform into.

Targets

The target block sets up the actor variant to create, the state of the created actor and the animation to play.

Targets Block

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.

Animation

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.
Clone this wiki locally