mapbase-model-src/modelsrc/GenericAnimationMacros.qci

296 lines
8.7 KiB
Plaintext

// ================================================================
//
// Generic Animation Macros
//
// ================================================================
$definemacro GenericIdle IdleName IdleSeq IdleAct \\
$sequence $IdleName$ { $IdleSeq$ activity $IdleAct$ 1 loop \\
cmdlist lockfeetandlefthand \\
}
$definemacro GenericIdleWeight IdleName IdleSeq IdleAct ActWeight \\
$sequence $IdleName$ { $IdleSeq$ activity $IdleAct$ $ActWeight$ loop \\
cmdlist lockfeetandlefthand \\
}
$definemacro GenericIdleHands IdleName IdleSeq IdleAct HandsLayer \\
$sequence $IdleName$ { $IdleSeq$ activity $IdleAct$ 1 loop \\
cmdlist lockfeet \\
blendlayer $HandsLayer$ 0 0 0 0 local \\
}
$definemacro GenericCombatIdle IdleName IdleSeq IdleAct AimLayer \\
$sequence $IdleName$ { \\
$IdleSeq$ \\
activity $IdleAct$ 1 \\
addlayer $AimLayer$ \\
loop \\
cmdlist lockfeetandlefthand \\
}
$definemacro GenericCombatIdle_NoHandIK IdleName IdleSeq IdleAct AimLayer \\
$sequence $IdleName$ { \\
$IdleSeq$ \\
activity $IdleAct$ 1 \\
addlayer $AimLayer$ \\
loop \\
cmdlist lockfeet \\
}
$definemacro GenericShoot SeqName FileName ActName AimLayer \\
$sequence $SeqName$ { \\
$FileName$ \\
{ event 3014 0 "" } \\ // { event 3014 1 "" }?
addlayer $AimLayer$ \\
activity $ActName$ 1 \\
cmdlist lockfeetandlefthand \\
}
$definemacro GenericReload SeqName FileName ActName AimLayer AimFadeOut AimFadeIn NumFrames EventFrame \\
$sequence $SeqName$ { \\
$FileName$ \\
{ event 3017 0 "" } \\
{ event 3018 $EventFrame$ "" } \\
blendlayer $AimLayer$ 0 0 0 $AimFadeOut$ spline \\
blendlayer $AimLayer$ $AimFadeIn$ $NumFrames$ $NumFrames$ $NumFrames$ spline \\
activity $ActName$ 1 \\
cmdlist lockfeet \\
ikrule "rhand" release \\
ikrule "lhand" release \\
}
$definemacro GenericReloadNoAim SeqName FileName ActName EventFrame \\
$sequence $SeqName$ { \\
$FileName$ \\
{ event 3017 0 "" } \\
{ event 3018 $EventFrame$ "" } \\
activity $ActName$ 1 \\
cmdlist lockfeet \\
ikrule "rhand" release \\
ikrule "lhand" release \\
}
$definemacro GenericAimMoveLayer SeqName FileName HandsLayer AimLayer \\
$sequence $SeqName$ { $FileName$ hidden addlayer $AimLayer$ loop \\
ikrule "rhand" release \\
ikrule "lhand" release \\
blendlayer $HandsLayer$ 0 0 0 0 local \\
weightlist "weights_layer_walk_ar2" \\
}
$definemacro GenericMoveLayer LayerName FileName WeightList \\
$sequence $LayerName$ { \\
$FileName$ \\
hidden \\
worldspace \\
ikrule "lhand" touch "ValveBiped.Bip01_R_Hand" \\
ikrule "rhand" release \\
weightlist $WeightList$ \\
}
// ----------------------------------------------------------------
$definemacro GenericWalkLayered SeqName ActivityName LayerName InteriorAct \\
$sequence $SeqName$ { \\
$a_WalkBlends \\
activity $ActivityName$ 1 \\
keyvalues \\
{ \\
interior $InteriorAct$ \\
} \\
addlayer $LayerName$ \\ // "blendlayer $LayerName$ 0 0 0 0 local" apparently doesn't keep IK
}
$definemacro GenericRunLayered SeqName ActivityName LayerName InteriorAct \\
$sequence $SeqName$ { \\
$a_RunBlends \\
activity $ActivityName$ 1 \\
keyvalues \\
{ \\
interior $InteriorAct$ \\
} \\
addlayer $LayerName$ \\ // "blendlayer $LayerName$ 0 0 0 0 local" apparently doesn't keep IK
}
// ----------------------------------------------------------------
$definemacro GenericShootFromIdle SeqName FileName ActName AimLayer GestureLayer NumFrames \\
$sequence $SeqName$ { \\
$FileName$ \\
numframes $NumFrames$ \\
{ event 3014 1 "" } \\
blendlayer $GestureLayer$ 0 0 0 0 local \\
addlayer $AimLayer$ \\
activity $ActName$ 1 \\
cmdlist lockfeetandlefthand \\
}
$definemacro GenericShootFromIdle_NoHandIK SeqName FileName ActName AimLayer GestureLayer NumFrames \\
$sequence $SeqName$ { \\
$FileName$ \\
numframes $NumFrames$ \\
{ event 3014 1 "" } \\
blendlayer $GestureLayer$ 0 0 0 0 local \\
addlayer $AimLayer$ \\
activity $ActName$ 1 \\
cmdlist lockfeet \\
}
$definemacro GenericReloadFromIdle SeqName FileName ActName AimLayer GestureLayer AimFadeOut AimFadeIn NumFrames EventFrame \\
$sequence $SeqName$legs $FileName$ weightlist "LegsAndPelvis" hidden \\
$sequence $SeqName$ { \\
$FileName$ \\
numframes $NumFrames$ \\
{ event 3015 $EventFrame$ "" } \\
blendlayer $GestureLayer$ 0 0 0 0 local \\
blendlayer $AimLayer$ 0 0 0 $AimFadeOut$ spline \\
blendlayer $AimLayer$ $AimFadeIn$ $NumFrames$ $NumFrames$ $NumFrames$ spline \\
activity $ActName$ 1 \\
cmdlist lockfeet \\
ikrule "rhand" release \\
ikrule "lhand" release \\
}
$definemacro GenericReloadFromIdle_NoAim SeqName FileName ActName GestureLayer NumFrames EventFrame \\
$sequence $SeqName$legs $FileName$ weightlist "LegsAndPelvis" hidden \\
$sequence $SeqName$ { \\
$FileName$ \\
numframes $NumFrames$ \\
{ event 3015 $EventFrame$ "" } \\
blendlayer $GestureLayer$ 0 0 0 0 local \\
activity $ActName$ 1 \\
cmdlist lockfeet \\
ikrule "rhand" release \\
ikrule "lhand" release \\
}
// =============================================================================================
//
// Generic macros for overlaying animations.
//
// =============================================================================================
//
// Creates a sequence using special blending techniques to make an animation fit in with the NPC's actual idle
//
// =============================================================================================
$definemacro MakeAdjustedAnimation SeqName TargetAnim IdleAnim InFrame OutFrame FrameNum \\
$sequence $SeqName$_layer $TargetAnim$ hidden \\
$sequence $SeqName$ $IdleAnim$ { \\
blendlayer $SeqName$_layer 0 $InFrame$ $OutFrame$ $FrameNum$ spline \\
numframes $FrameNum$ \\
fps 30 \\
fadein 0.25 \\
fadeout 0.25 \\
cmdlist lockfeet \\
} \\
$continue $SeqName$
// =============================================================================================
//
// Creates a new sequence from an idle out of a subtracted delta from an existing sequence.
// Useful for porting simple animations to other NPCs.
//
// =============================================================================================
$definemacro MakeAdjustedDelta SeqName FileName IdleAnim NumFrames FPS \\
$sequence $SeqName$_layer $FileName$ fps $FPS$ subtract $SeqName$_layer 0 delta hidden \\
$sequence $SeqName$ $IdleAnim$ { \\
numframes $NumFrames$ fps $FPS$ \\
addlayer $SeqName$_layer \\
cmdlist lockfeet \\
} \\
// Grenade throw animation.
// MakeGrenadeAnimation (aim anim) "combine_soldier_anims_anims/grenThrow" 45
// MakeGrenadeAnimation (aim anim) "police_animations_anims/grenadethrow" ?
$definemacro SoldierGrenadeAnimation IdleAnim \\
$MakeAdjustedDelta "grenThrow" "combine_soldier_anims_anims\grenThrow.smd" $IdleAnim$ 50 45 \\
$append grenThrow { \\
activity ACT_COMBINE_THROW_GRENADE 1 \\
{ event 7 30 "" } \\
} \\
// Grenade underthrow animation.
$definemacro SoldierGrenadeDropAnimation IdleAnim \\
$MakeAdjustedDelta "grenDrop" "combine_soldier_anims_anims\grenDrop.smd" $IdleAnim$ 43 35 \\
$append grenDrop { \\
activity ACT_SPECIAL_ATTACK1 1 \\
{ event 7 26 "" } \\
} \\
// Grenade place animation.
$definemacro SoldierGrenadePlaceAnimation IdleAnim \\
$MakeAdjustedDelta "grenPlace" "combine_soldier_anims_anims\grenPlace.smd" $IdleAnim$ 45 35 \\
$append grenPlace { \\
activity ACT_SPECIAL_ATTACK2 1 \\
{ event 9 25 "" } \\
} \\
// AR2 alt-fire animation.
//
// MakeAltFireAnimation (aim anim) "combine_soldier_anims_anims/shootAR2alt" 36
// $append shootAR2alt
// {
// { event COMBINE_AE_BEGIN_ALTFIRE 0 "" }
// { event COMBINE_AE_ALTFIRE 16 "" }
// }
//
$definemacro MakeAltFireAnimation Name IdleAnim ActualAnim \\
$animation a_$Name$ $IdleAnim$ frame 0 0 \\
$sequence $Name$ $ActualAnim$ { \\
match a_$Name$ \\
ikrule rhand touch "ValveBiped.Bip01_R_Hand" usesource \\
} \\
$continue $Name
//
// Manhack deploy animation.
//
$definemacro MakeManhackDeployLayer FileName FPS \\
$sequence deploy_layer $FileName$ fps $FPS$ subtract deploy_layer 0 delta hidden \\
$definemacro MakeManhackDeployAnimation IdleAnim NumFrames FPS \\
$sequence deploy $IdleAnim$ { \\
numframes $NumFrames$ fps $FPS$ \\
activity "ACT_METROPOLICE_DEPLOY_MANHACK" 1 \\
{ event AE_METROPOLICE_START_DEPLOY 10 "" } \\
{ event AE_METROPOLICE_DEPLOY_MANHACK 33 "" } \\
addlayer deploy_layer \\
cmdlist lockfeet \\
} \\
$definemacro MakeManhackDeployGesture IdleAnim \\
$sequence deploy_gesture { \\
$IdleAnim$ \\
numframes 50 \\
subtract "deploy_gesture" 0 \\
delta \\
blendlayer "deploy_layer" 0 5 38 50 \\
activity "ACT_GESTURE_DEPLOY_MANHACK" 1 \\
{ event AE_METROPOLICE_START_DEPLOY 10 "" } \\
{ event AE_METROPOLICE_DEPLOY_MANHACK 33 "" } \\
keyvalues \\
{ \\
faceposer \\
{ \\
"type" "gesture" \\
"tags" \\
{ \\
"start_deploy" "10" \\
"apex" "26" \\
"end_deploy" "33" \\
"end" "40" \\
} \\
"start_deploy" "apex" \\
"thumbnail_frame" "39" \\
} \\
} \\
} \\