Fallout New Vegas
0 of 0

File information

Last updated

Original upload

Created by

Kormakur

Uploaded by

korri123

Virus scan

Safe to use

About this mod

xNVSE plugin that enables having custom animations for weapons and actors. Fixes the engine-bound anim group limit problem.

Requirements
Permissions and credits
Changelogs
Donations
Enables support in the engine for custom weapon animations, custom walking animations and a lot more. Now you can finally have weapons with new animations without overwriting animations for other weapons. You will most likely be installing this plugin as a requirement for other mods that e.g. add new weapons, features and animations to the game.

Installation
  • MO2/Vortex: either use the Vortex button or load the 7z file in the mod manager as with any other mod
  • Manual: Extract into Fallout New Vegas\Data\


Mods utilizing kNVSE
See the Requirements section to see a list of mods utilizing kNVSE.

Background

Did you know that there are only a limited amount of animation slots for weapons in this game? When Bethesda coded this engine, they designed it so that all the weapons choose from a limited number of slots named anim groups, where each anim group slot holds an animation that weapons are allowed to use for shooting, aiming, reloading etc. This was probably fine during development of the games; if someone wanted to add support for rocket launcher weapons, they could just ask one of the programmers to add a new anim group slot specifically for all rocket launcher weapons. The only issue is that there is no way for modders to create new anim groups. They are completely hardcoded inside the engine.

This effectively means that adding new weapon types into the game is impossible. Want to mod in crossbows? Sure, but they'll need to use the same reload animations and sounds as the Plasma Pistol, making them not a very realistic crossbow. Want to create a shotgun that's a tad smaller than a normal? You might now notice that the player character is holding it really strangely, leaving space between the grip and the weapon. In fact, several vanilla weapons suffer from bad hand grips due to the one-size-fits all anim group system.

If only there was a way to override these anim groups, so that you could have custom animations per weapon. Custom hand grips. Custom anything. Or even custom anim groups for actors as they share the same anim group system in regards to walking, running and jumping etc.

Introducing...

kNVSE Animation Plugin
  • Override anim group animations on a per-weapon and per-actor basis
  • Can be used with scripting, plain form id named folders or JSON
  • Solves all your animation engine limitation problems

Guide on usage for animators or mod creators

Folder usage guide
First, inside the Fallout New Vegas\Data\Meshes folder, make a folder named AnimGroupOverride. Or do it inside a MO2/Vortex mod folder (Meshes\AnimGroupOverride), your choice, really.

Overriding animations for a single weapon or actor reference
  • Inside the AnimGroupOverride folder create a folder named the same as the .esp or .esm that contains the form you are overwriting, e.g. TestMod.esp.
  • Then inside that folder create a folder with the form ID in hexadecimal without the mod index, e.g. 80ADE.
  • Inside that folder drop in your _male and _1stperson folders which contain the .KF animation files that you want to override with.

Tip: You can also use the form ID of a form list which may contain multiple weapon or actor forms to be overridden.  
Tip 2: You can have multiple animation variants which get picked randomly, just add an underscore after the variant and some letters to differentiate the file names. If you want variants to play in order, have the file names end with  _order_[NUMBER].kf
Tip 3: kNVSE folder named with form ids can be used for weapons, actors, races, form lists and creatures.

Examples
  • Data\Meshes\AnimGroupOverride\FalloutNV.esm\8ED0B\_1stperson\ <- Animations in here override anims for the FNV Hunting Shotgun in first person view
  • Data\Meshes\AnimGroupOverride\MyWeaponMod.esp\_1stperson\ <- Animations in here override all first person weapon and actor anim groups which are contained in MyWeaponMod.esp except those that have their own form id folders. This means you can have base animations that are only applied for that mod and then on top of that custom animations for selected weapons of your choice.
  • Data\Meshes\AnimGroupOverride\FalloutNV.esm\14\_male\ <- Animations in here override for the player in third person view.

Overriding animations for multiple weapon or actor references with JSON
If you have animations you want to apply for multiple weapons, but don't want to wastefully copy folders full of animations just so that they can have different form ID names there is a second option that utilizes JSON.

Inside AnimGroupOverride, make a JSON file with a unique name and a folder with a unique name containing the animations. Create a JSON array, and in the array you place objects with three string fields: mod (name of the esm/esp filename), form (hex form id without mod index) and folder (name of the folder you just created). Form field can be a JSON string or a JSON array containing multiple strings (folders). If mod and form fields are discarded, the animations will apply globally to all forms.

Example
  • Create folder Data\Meshes\AnimGroupOverride\MyExampleAnimations\... which contains the _1stperson and/or _male folders
  • Create file Data\Meshes\AnimGroupOverride\TestAnimations.json

  • Inside the JSON file, we are going to make both the hunting shotgun and Dinner Bell use animations from MyExampleAnimations folder:
[
{
"mod": "FalloutNV.esm",
"form": ["8ED0B", "F0B12"],
"folder": "MyExampleAnimations"
}
]


JSON Conditions
An optional field in JSON is "condition" (script line that evaluates to boolean which determines if animation plays or not).


[
{
"mod": "FalloutNV.esm",
"form": ["8ED0B", "F0B12"],
"folder": "MyExampleAnimations",
"condition": "GetActorValue Strength > 5"
}
]

By default the condition is evaluated before an animation is overridden. If you need the condition to be evaluated constantly, then the "pollCondition" JSON field will do that for you:


[
{
"mod": "FalloutNV.esm",
"form": "14",
"folder": "SprintAnimations",
"condition": "IsKeyPressed 42 && GetAV ActionPoints > 0 && (SetAV ActionPoints ((GetAV ActionPoints) - 4))",
"pollCondition": true
}
]


In this example, the sprint animation will stop as soon as the shift key is no longer pressed or AP goes down to 0 as the condition is evaluated each frame.

Context specific animations
You can have animations only override in contexts or conditions.
  • Weapon mods: inside a weapon animation folder described above, place the animations inside a folder either named Mod1, Mod2 or Mod3. The weapon mod animations will only override if the mod slots are used.
  • Gender specific: inside an actor folder, place the animations into either a folder name Male or Female.
  • Crippled legs: inside an actor folder, place the animations into a folder named Hurt
  • Human: Only human actors will use the animations in a folder named Human

Examples
  • Data\Meshes\AnimGroupOverride\FalloutNV.esm\8ED0B\_1stperson\Mod1 can contain animations that'll only override if the weapon has the mod 1 slot enabled.

Scripting


kNVSE also comes with scripting commands that allow you to replace animations on the fly with scripts. 


Examples

SetWeaponAnimationPath WeapNV9mmPistol 1 1 "characters\weapons\1hpAttackRight.kf"

Replaces the first person shooting animation for the 9mm pistol.

player.SetActorAnimationPath 0 1 "characters\_male\idleanims\sprint\mtfastforward.kf" 1

Replaces the player's third person running animation when not holding any weapons.

Overrides from scripts stack, so if you set an override animation and another mod already had done so too before on the same anim group and ref, when you remove your animation it'll go back to the previous overridden animation.


KF Animation Text Keys
kNVSE adds support for new text keys which can be placed on KF files in NifSkope which alter the animations behavior:
  • interruptLoop: AttackLoop will behave more like AttackLoopIS where the animation gets interrupted at the end. Makes for superior automatic weapon animations.
  • burstFire: Allows multiple "hit" and optionally "eject" keys to activate within a single animation.
  • respectEndKey: First person animation's text key won't be tied to the third person animation text keys.
  • noBlend: Disables blending into this animation. It is recommended to use this for first person animations but not third person animations.
  • Script: MyUDFScript: A user defined function script will be called once the time value is reached. In this example the script has the editor ID MyUDFScript
  • blendToReloadLoop: 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: path\toMySound: Plays sound (.wav file relative to Data\Sound folder) at time specified in value
  • scriptLine: print "This will print": Runs script line at time specified in value. %r may be used to specify newline for multiline scripts.

Bug Fixes
  • Looping reload: kNVSE includes an engine fix for the infamous looping reload bug.
  • Diagonal idle movement: You can now move diagonally while an idle animation is playing.
  • Duplicated 1st person animations on high speed mults: kNVSE includes a fix for 1st person animations playing twice if the speed multiplier is high enough (High agility can cause this)

Videos




Beginner tutorial on how to make kNVSE sets by Xolerys (thanks!)


Tutorial on how to create animations in Blender for kNVSE by Xolerys

Source code

Is available here

Thanks

  • lStewieAl for doing much of the decoding work in IDA so this could happen.
  • Hitman47101, Fallout2AMAsurah, Johnson99, Ha_Ru and Rockbiter68 for testing
  • youngyone01 for the mod page icon