NiTextKeyExtraData

From GECK
Jump to: navigation, search
This article is incomplete. You can help by filling in any blank descriptions.
Further information might be found in a section of the discussion page. Please remove this message when no longer necessary.

NiTextKeyExtraData is a NiExtraData block used to call functions in an animation sequence at specified timestamps. They are required in NiControllerSequences in order to provide the start and end timestamps.

Vanilla Keys

Known fields and what they do are:

Key Description
Start Used to mark the start of an animation. Should almost always be set to 0, some uses may require it to be set at a negative time value.
End Used to mark the end of an animation. Should always be set at a value after Start.
Sound Plays a Sound Form at the specified timestamp. Accepts a second entry after the Sound Form as a Node in the NIF to emit the sound from. Uses in skeletons are a bit different, TBD.
Enum Calls additional functions. Listed in a separate table below.
Attach Attaches objects to Nodes. Used in equip animations. Requires Prn to specify the Node.
Detach Detaches objects from Nodes. Used in unequip animations. Requires Prn to specify the return Node.
Prn Parents objects to Nodes in other NIFs, usually skeletons.
A Specifies the attack animation group letter to play next. The time value of this determines when the animation can be interrupted to play the next animation. If a:R is defined, the next attack anim will be AttackRight. If a:7, it will be Attack7 etc. If left blank (a:), a random attack will be chosen.
M Sets which foot is the first stepped in an animation. Recognized values are Left/Right/L1/L2/R1/R2.
Hit Specifies when a ranged weapon fires or is thrown, or when a melee weapon deals damage when contacting a damageable entity. Also used to determine when looping reloads end.
Blend Blends a specified value (value is divided by 30 which becomes the ease time in seconds) into a following or out of a preceding animation.
Blendin Blends a specified value into the next animation.
Blendout Blends a specified value with the preceding animation.
Eject Ejects a shell casing from Nodes named ShellCasingNode.
Decal Sets a value on a weapon's BSDecalPlacementVectorExtraData that's either 0, 1, or 2, for an unknown purpose.
Fire Works like Hit, but also acts as a start frame for internal looping in CLAMP sequences.
Loop Jumps back to Fire text keys when in CLAMP sequences.
StartLoop Marks the start of a loop at the specified time. Required for looping idles in Idle Animations.
EndLoop Marks the end of a loop at the specified time, where it jumps back to the timestamp specified in StartLoop. Required for looping idles in Idle Animations.
Hold Used to hold on a frame for thrown weapons if the player holds the key but doesn't release it.
Release Works like Hit, but plays when the player has been holding a thrown weapon and releases it.

Enum Functions

Enum's known functions:

Function Description
StopSounds Removes playing sounds attached to Nodes.
CameraShake Shakes the camera by a 0-1 float range.
Left Specifies the left footstep for footstep Sounds.
Right Specifies the right footstep for footstep Sounds.
BackLeft Specifies the rear left footstep for creature footstep Sounds.
BackRight Specifies the rear right footstep for creature footstep Sounds.
ArmorWalk Indicates the engine should use walking footstep sounds from the appropriate (by armor weight class) Sound form.
ArmorRun Indicates the engine should use running footstep sounds from the appropriate (by armor weight class) Sound form.
ArmorSneak Indicates the engine should use sneaking footstep sounds from the appropriate (by armor weight class) Sound form.
FoleyWalk Indicates the engine should use barefoot walking footstep sounds if the actor doesn't have any armor equipped.
FoleyRun Indicates the engine should use barefoot running footstep sounds if the actor doesn't have any armor equipped.
FoleySneak Indicates the engine should use barefoot sneaking footstep sounds if the actor doesn't have any armor equipped.
Weapon1 Plays an associated Sound for the actor's embedded weapon.
Equip Plays the appropriate equip sound for the animation type. Can be replaced by a Sound/SoundPath key.
Unequip Plays the appropriate unequip sound for the animation type. Can be replaced by a Sound/SoundPath key.
Idle Plays the associated Idle Sound used by the calling actor type.
Auxiliary1 Plays an unknown Sound.
Auxiliary2 Plays an unknown Sound.
Auxiliary3 Plays an unknown Sound.
Auxiliary4 Plays an unknown Sound.
Auxiliary5 Plays an unknown Sound.
Auxiliary6 Plays an unknown Sound.
Auxiliary7 Plays an unknown Sound.
Auxiliary8 Plays an unknown Sound.
Attack Plays the associated Attack Sound used by the calling actor type.
Aware Plays the associated Aware Sound used by the calling actor type.
HitShader Blurs the player's screen as if they were hit by a damaging attack.
Face Animates an actor face's by manipulating phonemes contained within .TRI files.

Mod Keys

An (incomplete) list of text keys added by mods.

Key Added by Description
interruptLoop kNVSE AttackLoop will behave more like AttackLoopIS where the animation gets interrupted at the end. It also allows AttackLoop and AttackLoopIS animations to finish before Aim or AimIS animations are played again.
burstFire kNVSE Allows multiple "hit" and optionally "eject" keys to activate within a single animation.
respectEndKey kNVSE First person animation's text key won't be tied to the third person animation text keys. Causes issues with B42 Inspect animations, use its dedicated key instead.
noBlend kNVSE Disables blending into this animation. It is recommended to use this for first person animations but not third person animations.
Script kNVSE A user defined function script will be called once the time value is reached.
blendToReloadLoop kNVSE Modifies the behavior of Reload(X/Y/Z/W)Start anim group so that it blends directly to ReloadLoop instead of blending first to Aim, then to ReloadLoop which causes a significant pause. Requires both anims to have different priorities.
SoundPath kNVSE Plays sound (.wav file relative to Data\Sound folder) at time specified in value.
scriptLine kNVSE Runs script line at time specified in value. %r may be used to specify newline for multiline scripts. (Usage in bold: print "This will print")
allowAttack kNVSE Specifies when you are allowed to attack again while an animation is already playing.
noFix kNVSE Prevents kNVSE from attempting to fix issues with animations on load.
allowClampInLocomotion kNVSE Allows a clamp animation to be used as a locomotion as the game only accepts looping animations by default.
Sound: B42InspectFrameDetect B42 Inspect Special sound key used to signify inspect animations for the B42 Inspect animation framework. Use this instead of respectEndKey in inspect animations. Place exactly 0.5 before the end frame.

Notes

  • Keys cannot contain multiple events, nor can there be multiple events on the same frame. You must individualize each event at unique times.
  • Certain keys require others to be used before them in order to behave correctly, i.e Attach/Detach requires a Prn the frame before.