NiTextKeyExtraData
From GECK
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.