Full Dump of all Animation Variables.

Post » Wed Jun 20, 2012 3:16 am

The following is a list that can be used with http://www.creationkit.com/SetAnimationVariableBool_-_ObjectReference, http://www.creationkit.com/SetAnimationVariableFloat_-_ObjectReference, http://www.creationkit.com/SetAnimationVariableInt_-_ObjectReference, http://www.creationkit.com/GetAnimationVariableBool_-_ObjectReference, http://www.creationkit.com/GetAnimationVariableFloat_-_ObjectReference, http://www.creationkit.com/GetAnimationVariableInt_-_ObjectReference . Almost every variable that is compatible with these function are un-documented. I will list all of them. I will also make an appropriate Wiki page for these. I've found these while looking at the 0_Master.hkx file.

Variable marked with an asterisk(*) need testing/confirmation.

Bools:

Spoiler

bMotionDriven ; Sets the actor into a motion driven state. Meaning his AI determines his actions.bIsSynced ;? *bVoiceReady ; Sets whether the actor can shout. Could possibly be used to cause insta-cool down for actors.bWantCastLeftbWantCastRightbWantCastVoiceb1HM_MLh_attackb1HMCombatbAnimationDriven ; Sets the actor into an animation driven state, meaning animations like "SprintStart" will actually move him, not moonwalk him.bCastReadybAllowRotation ; Allows the actor to rotate or not.bMagicDraw ; Causes the actor to draw his magic out.*bMLh_Ready ; Equip magic in the left hand.*bMRh_Ready ; Equip Magic in right hand.*bInMoveState ; Sets the actor in a "move state" .*bSprintOK ; Sets whether the actor can sprint.bIdlePlaying ;Plays a random Idle.*bIsDialogueExpressive ;Sets if actors dialogue is expressive. *bAnimObjectLoaded ;Sets whether the anim object is loaded. *bEquipUnequip ;I'm unsure about this. *bAttached ;No Idea. *bEquipOK ; Sets whether equipping is allowed.bIsH2HSolo ;Not sure.bHeadTracking ;Doesn't really set head tracking. It really allows whether an actor can turn to face you. This causes actors talking over their shoulders.bIsRiding ; Sets the actor into riding. *bTalkable ;Whether the actor is able to be talked to.bRitualSpellActive ; Sets a ritual spell active. *bInJumpState ; Sets the actor in a jump state.bHeadTrackSpine ; No Idea. *bLeftHandAttack ; Sets the actor to attack left. *bIsInMT ; Sets whether the actor is in a movement type.bHumanoidFootIKEnable ; Enables foot-to-ground sync.bHumanoidFootIKDisable ; Disables foot-to-ground sync.bStaggerPlayerOverridebNoStagger ;Sets whether the actor can stagger.bIsStaffLeftCastingbPerkShieldCharge ;Gives the actor the ability to shield charge.bPerkQuickShot ;Gives the actor the quick shot perk.

Integers:

Spoiler

iSyncIdleLocomotioniRightHandTypeiWantBlockiAnnotationiSyncTurnStatei1stPersoniLeftHandTypeiStateiState_NPCSprinting ;Sets actor in a sprint state.iState_NPCDefault ;Unknown. *iState_NPCSneaking ;Sets actor in a sneak state.*iState_NPCBowDrawn :Sets actor in a bow drawn state. *iDualMagicState ;Sets actor in a dual magic state.*iState_NPCBlocking ;Sets actor in a block state.*iState_NPCBleedout ;Sets bleedout state.*iBlockState ; Possible copy of "iState_NPCBlocking ". *iSyncSprintState ;Unknown. *iIsInSneak ;Possible copy of "iState_NPCSneaking". *iMagicEquipped ;Equips magic.iEquippedItemStateiMagicStateiIsDialogueExpressiveiSyncIdleStateiState_NPC1HMiState_NPC2HMiState_NPCBowiState_NPCMagiciState_NPCMagicCastingiState_NPCHorseiState_HorseSprintiCharacterSelectoriCombatStanceiSyncTurnDirectioniRegularAttackiRightHandEquipped ;Equips Right hand.iLeftHandEquipped ;Equips left hand.iIsPlayeriGetUpTypeiState_NPCAttackingiState_NPCPowerAttackingiState_NPCAttacking2HiDrunkVariableiState_NPCDrunk ;Sets actor in a drunk state.iTempSwitchiState_NPCBowDrawnQuickShotiState_NPCBlockingShieldCharge

Floats

Spoiler

SpeedDirectionTurnDeltaSpeedWalkSpeedRunfSpeedMinfEquipWeapAdjfIdleTimerfMinSpeedfTwistDirectionTurnDeltaDampedTurnMinPitchPitchLookattackPowerStartTimePitchDefaultPitchOverridestaggerMagnituderecoilMagnitudeSpeedSampledattackComboStartFractionattackIntroLengthTimeDeltaPitchOffsetPitchAccPitchThreshweapChangeStartFractionRotMax1stPRot1stPRotDampedPitchManualOverrideSpeedAcc

Unknown (hard/unable to tell)

Spoiler

IsNPCIsPlayerblockDownblockLeftblockRightblockUpblockDownIsBlockHitIsCastingRightIsCastingLeftIs1HMIsStaggeringIsRecoilingIsAttackingIsInCastStateIsInCastStateDampedIsCastingDualIsEquippingIsUnequippingIsCastingDualbodyMorphWeightIsBashingIsBleedingOutFemaleOffsetAdditiveHeadTranslAdditiveHeadScaleAdditiveHeadRotIsAttackReady_32camerafromxcamerafromycamerafromzVelocityZIsSneakingIsBeastRace


Raw Dump of All Variables
Spoiler

Speed
Direction
TurnDelta
iSyncIdleLocomotion
SpeedWalk
SpeedRun
fSpeedMin
useShield
useMLh
blendMoveStart
blendMoveStop
blendDefault
WalkSpeedMult
TurnDeltaDamped
TurnMin
IsFirstPerson
Pitch
PitchLook
blendAttackPowerFast
blendAttackPowerSlow
blendFast
IsPlayer
attackPowerStartTime
blendMove1stP
IntVariable
IsNPC
blendSlow
PitchDefault
PitchOverride
staggerMagnitude
blockDown
blockLeft
blockRight
blockUp
recoilMagnitude
iRightHandType
IsBlocking
iWantBlock
IsAttackReady
iAnnotation
SpeedSampled
bMotionDriven
blendAttackRelease
attackComboStartFraction
blendAttackCombo
attackIntroLength
IsShouting
weaponSpeedMult
iSyncTurnState
i1stPerson
IsSprinting
bIsSynced
IsBlockHit
TimeDelta
PitchOffset
PitchAcc
PitchThresh
UsePitch
DisablePitch
weapAdj
iLeftHandType
weapChangeStartFraction
1stPRot
1stPRotDamped
RotMax
PitchManualOverride
SpeedAcc
IsCastingRight
IsCastingLeft
CastBlend
bVoiceReady
bWantCastLeft
bWantCastRight
bWantCastVoice
BlendDamped
b1HM_MLh_attack
Is1HM
i1HMState
RawBlend
BlendAcc
b1HMCombat
bAnimationDriven
bCastReady
IsStaggering
IsRecoiling
IsAttacking
IsInCastState
bleedoutTurnMult
IsInCastStateDamped
bAllowRotation
bMagicDraw
CastBlendDamped
bMLh_Ready
bMRh_Ready
iState
iState_NPCSprinting
iState_NPCDefault
fIsFirstPerson
bInMoveState
iState_NPCSneaking
iState_NPCBowDrawn
BoolVariable
DualMagicState
iDualMagicState
InDualMagicState
iState_NPCBlocking
iState_NPCBleedout
iBlockState
bSprintOK
iSyncSprintState
IsEquipping
IsUnequipping
iIsInSneak
currentDefaultState
bowZoom
bowZoomAmt
bIdlePlaying
iMagicEquipped
iEquippedItemState
iMagicState
IsCastingDual
bIsDialogueExpressive
iIsDialogueExpressive
bAnimObjectLoaded
fEquipWeapAdj
bEquipUnequip
bAttached
bodyMorphWeight
IsBashing
bEquipOK
IsBleedingOut
fMagicForceEquipBlendValue
FemaleOffset
blendVerySlow
blendDialogue
iSyncIdleState
fIdleTimer
bIsH2HSolo
AdditiveHeadTransl
AdditiveHeadScale
AdditiveHeadRot
2HMweaponSpeedMult
iState_NPC1HM
iState_NPC2HM
iState_NPCBow
iState_NPCMagic
iState_NPCMagicCasting
iState_NPCHorse
iState_HorseSprint
iCharacterSelector
randomStartTime
bHeadTracking
bIsRiding
fMinSpeed
iCombatStance
turnSpeedMult
iSyncTurnDirection
fTwistDirection
IntDirection
DirectionRange
DirectionRangeDamped
DirectionDamped
IsDismounting
TargetLocation
bTalkable
bNeutralState
CastOK
blendFromAnimDriven
walkBackRate
bRitualSpellActive
SwimDirection
iRegularAttack
IsAttackReady_32
camerafromx
camerafromy
camerafromz
VelocityZ
bInJumpState
LookAtOutOfRange
iRightHandEquipped
iLeftHandEquipped
testInt
iIsPlayer
SpeedDamped
bodyMorphMuscular
bHeadTrackSpine
IsSneaking
iGetUpType
iState_NPCAttacking
iState_NPCPowerAttacking
iState_NPCAttacking2H
LookAtOnGain
LookAtOffGain
LookAtEyeOnGain
LookAtEyeOffGain
iDrunkVariable
iState_NPCDrunk
leftWeaponSpeedMult
bLeftHandAttack
BlendJump
bIsInMT
BoolVariable00
bHumanoidFootIKEnable
testPitchOffset
bBowDrawn
IsBeastRace
bHumanoidFootIKDisable
iTempSwitch
iState_NPCBowDrawnQuickShot
iState_NPCBlockingShieldCharge
bStaggerPlayerOverride
bNoStagger
bIsStaffLeftCasting
Is3rdPKillOnly
bPerkShieldCharge
bPerkQuickShot
m_bEnablePitchTwistModifier
m_worldFromModelFeedbackGain
IsBleedingOutTransition
User avatar
Heather Stewart
 
Posts: 3525
Joined: Thu Aug 10, 2006 11:04 pm

Post » Wed Jun 20, 2012 6:44 am

yup, looks like the start of many things beautiful :D
User avatar
Curveballs On Phoenix
 
Posts: 3365
Joined: Sun Jul 01, 2007 4:43 am

Post » Wed Jun 20, 2012 10:05 am

good work. thank you.
User avatar
Julie Serebrekoff
 
Posts: 3359
Joined: Sun Dec 24, 2006 4:41 am

Post » Wed Jun 20, 2012 8:18 am

WOW! so is there a GET command for theses? If there is this could give us a LOT of IF conditions such as IsBlocking that are NOT in the scripting language.

Also, how do you ZERO an ACTOR Variable:


Actor Target

;do stuff that puts a ref in Target

Target = false <--- this gave a compile error.
Target = 0 <--- this gave a compile error.


The following is a list that can be used with http://www.creationkit.com/SetAnimationVariableBool_-_ObjectReference, http://www.creationkit.com/SetAnimationVariableFloat_-_ObjectReference, http://www.creationkit.com/SetAnimationVariableInt_-_ObjectReference. Almost every variable that is compatible with these function are un-documented. I will list all of them. I will also make an appropriate Wiki page for these. I've found these while looking at the 0_Master.hkx file.

Variable marked with an asterisk(*) need testing/confirmation.

User avatar
joseluis perez
 
Posts: 3507
Joined: Thu Nov 22, 2007 7:51 am

Post » Wed Jun 20, 2012 9:21 am

Nice to have such a list!

Do you guys see the directional block variables? Looks like Bethesda played with the idea of mimicking Mount & Blade's combat. Pretty cool, since that's what I'm going to try to do.
User avatar
Lily Evans
 
Posts: 3401
Joined: Thu Aug 31, 2006 11:10 am

Post » Wed Jun 20, 2012 1:55 am

Excellent stuff. I can see all of this being very useful in the future.


WOW! so is there a GET command for theses? If there is this could give us a LOT of IF conditions such as IsBlocking that are NOT in the scripting language.

Also, how do you ZERO an ACTOR Variable:


Actor Target

;do stuff that puts a ref in Target

Target = false <--- this gave a compile error.
Target = 0 <--- this gave a compile error.

Have you tried None?

Actor Target;do stuff to assign value to TargetTarget = None

None is the string literal that represents a 0 value.

http://www.creationkit.com/Literals_Reference#None_Literal
User avatar
Tom
 
Posts: 3463
Joined: Sun Aug 05, 2007 7:39 pm

Post » Wed Jun 20, 2012 2:49 am

WOW! so is there a GET command for theses? If there is this could give us a LOT of IF conditions such as IsBlocking that are NOT in the scripting language.

Also, how do you ZERO an ACTOR Variable:


Actor Target

;do stuff that puts a ref in Target

Target = false <--- this gave a compile error.
Target = 0 <--- this gave a compile error.

I just edited the post. There are GetAnimationVariables, too. I believe None is the string version of 0/false.
User avatar
katie TWAVA
 
Posts: 3452
Joined: Tue Jul 04, 2006 3:32 am

Post » Wed Jun 20, 2012 2:14 pm

This is great. Thanks so much for these.
User avatar
Dona BlackHeart
 
Posts: 3405
Joined: Fri Dec 22, 2006 4:05 pm

Post » Wed Jun 20, 2012 3:20 am

Yes thank you that worked!

for pet sake...

x == 0		   works for some but not others...x == false	   works for some but not others...x == none	  works for some but not others...!x				  works for some but not others...

Why could they not just pick ONE way to do this. :wacko: (Oblivion it was always just x == 0 )

I guess I can understand the differences between x == 0 and x == false but seriously x == none and x == 0 is just annoying.


Have you tried None?

Target = None

None is the string literal that represents a 0 value.

http://www.creationkit.com/Literals_Reference#None_Literal
User avatar
Izzy Coleman
 
Posts: 3336
Joined: Tue Jun 20, 2006 3:34 am

Post » Wed Jun 20, 2012 3:03 am

Strictly speaking, those are all very different things.
The logic behind this has to do with types and the fact that a string is not a number nor an actor.

You would use (x == 0) when you are doing loops or anything that should approach 0.
Or anytime where x is meant to be a number.

(x == None) is pretty much an object that hasnt been set.

(x == false) however is set. Here x can be true or false, only those values. For example when you check whether someone has been hit, or is standing in water or whatever.

!x should work only on booleans. It should be the same thing as x == false.

This may seem assbackwards in many ways but it is set up this way to differentiate between values that in many ways are very different.
It matters if a value is a boolean or a number.
It matters if a value has never been assigned or if it is set to false. In one case it doesn't exist and existence is important..

Yes thank you that worked!

for pet sake...

x == 0		   works for some but not others...x == false	   works for some but not others...x == none	  works for some but not others...!x				  works for some but not others...

Why could they not just pick ONE way to do this. :wacko: (Oblivion it was always just x == 0 )

I guess I can understand the differences between x == 0 and x == false but seriously x == none and x == 0 is just annoying.
User avatar
Guinevere Wood
 
Posts: 3368
Joined: Mon Dec 04, 2006 3:06 pm

Post » Wed Jun 20, 2012 3:00 pm

the == operator is used to test equality in a if condition

the "none" value is used in case of objects of ObjectReference types and extended from, like actors

it is the default value of an object reference when it has not been affected yet to an

let's say you have a variable Actor called ref1.

Actor ref1 = none ;used to initialise the variable, ref1 doesn't point to any object in the memory
..
; let's imagine you want to deal with the first actor around but not sure there's one.

ref1 = MyFunctionToFindTheNearestActor() ; if not found the funcion would return none

if(ref1 ==none)
debug.Trace("no actor around")
else
debug.Trace("actor found")
endif

Hope this helped you
User avatar
WYatt REed
 
Posts: 3409
Joined: Mon Jun 18, 2007 3:06 pm

Post » Wed Jun 20, 2012 1:34 pm

I just want to drop a few things...

1. Most of the unknown variables are used in conjunction with animations. They're mostly used to know what state the actor is in, pretty much to determine what actions are available in that particular state. They are pretty self-explanatory, aside from some (like female offset)

2. mlh_ready and mrh_ready and a bunch of stuff in "Bools" part is also used for the same thing. For example, bIsRiding determines whether the game should play the "horse moving" or "player moving"

In order to better understand what these variable means, you also need to refer to Gameplay > Idle Animations > meshes/actors/character/behaviors/0_master.hkx. That particular entry lists all possible actions character actors can perform, the conditions (if there is one), and what event is called when calling that action.
User avatar
..xX Vin Xx..
 
Posts: 3531
Joined: Sun Jun 18, 2006 6:33 pm

Post » Wed Jun 20, 2012 5:56 am

I've added this to the Creation Kit Wiki: http://www.creationkit.com/Full_dump_of_all_GetAnimationVariableX_%28%29_by_Moopus_Maximus
User avatar
Nick Pryce
 
Posts: 3386
Joined: Sat Jul 14, 2007 8:36 pm

Post » Wed Jun 20, 2012 1:45 pm

I only messed around with the get/set animation variable functions a little bit, and that was a while ago. I think I remember that the iStateXXX variables worked like this:

Actor Player = Game.GetPlayer()Int iState = Player.GetAnimationVariableInt("iState")if (Player.GetAnimationVariableInt("iState_NPCDefault") == iState)    ;Player is in default stateelseif (Player.GetAnimationVariableInt("iState_NPCSprinting") == iState)    ;Player is sprintingelseif (Player.GetAnimationVariableInt("iState_NPCBlocking") == iState)    ;Player is blocking;etc.

I also think the "iRegularAttack" variable showed whether or not the attack was going right to left, or vice versa.
User avatar
Patrick Gordon
 
Posts: 3366
Joined: Thu May 31, 2007 5:38 am

Post » Wed Jun 20, 2012 5:31 pm

What really svcks is that they didn't document these at all. We don't even know what some of them do! I really wished Bethesda didn't use Havok for their animations system, it has only caused trouble and frustration.
User avatar
phil walsh
 
Posts: 3317
Joined: Wed May 16, 2007 8:46 pm

Post » Wed Jun 20, 2012 1:54 pm

So can someone clarify, what can you do with this? It looks like you can check to see if NPCs are in the middle of certain animations which could be useful, but by setting something like that sneaking boolean, would the actor really be sneaking or just move around like they are sneaking? IE, would it impact the ability of other actors to detect that actor?
User avatar
Alexander Lee
 
Posts: 3481
Joined: Sun Nov 04, 2007 9:30 pm

Post » Wed Jun 20, 2012 3:31 pm

So can someone clarify, what can you do with this? It looks like you can check to see if NPCs are in the middle of certain animations which could be useful, but by setting something like that sneaking boolean, would the actor really be sneaking or just move around like they are sneaking? IE, would it impact the ability of other actors to detect that actor?
Basically it's another set of "conditions" you can use to help craft your mod. Sometimes a condition like "IsSneaking" isn't accurate enough for what you want to do, so using these animation variables helps you tune in your mod to test if an actor is doing a certain thing, then you call your function.

Also if I am not mistaken, you can sort of "drive" the player around with an animation to help simulate a cut scene.
User avatar
Bones47
 
Posts: 3399
Joined: Fri Nov 09, 2007 11:15 pm

Post » Wed Jun 20, 2012 5:43 am

So can someone clarify, what can you do with this? It looks like you can check to see if NPCs are in the middle of certain animations which could be useful, but by setting something like that sneaking boolean, would the actor really be sneaking or just move around like they are sneaking? IE, would it impact the ability of other actors to detect that actor?
For e.g. Game.GetPlayer ().GetAnimationVariableBool ("bIsRiding") is the only way to detect whether the player is sitting on a horse or not.
Also I've used Game.GetPlayer ().GetAnimationVariableBool ("bAnimationDriven") to detect if the player's controls are locked during the crafting/enchanting scenes.
I couldn't use the normal way of detecting whether the camera and controls were locked or not. In those scenes, Game.IsCamSwitchControlsEnabled () is False (as expected) for all crafting/enchanting screens EXCEPT for the tanning hide. And IsActivateControlsEnable (), IsFightingControlsEnabled (), IsJournalControlsEnabled (), IsLookingControlsEnabled (), IsMenuControlsEnabled (), IsMovementControlsEnabled (), IsSneakingControlsEnabled () were mostly TRUE - which is a bug!!!

Basically, GetAnimationVariableX () is, at the moment, the most accurate method in detecting the state of an actor.
User avatar
мistrєss
 
Posts: 3168
Joined: Thu Dec 14, 2006 3:13 am


Return to V - Skyrim