===================================================================================================
Calm That Camera!
AUTHOR: Lord Zapharos (www.lordzapharos.com)
DATE: 7 October 2025
VERSION: 1.1
===================================================================================================


LICENSE AND CREDITS:
===================================================================================================
Creative Commons Attribution 4.0 International (https://creativecommons.org/licenses/by/4.0/)

You are free to share and transform this work (commercially or otherwise) provided you give proper
credit to Lord Zapharos, provide a link to this license, and indicate if changes were made.


DESCRIPTION:
===================================================================================================

Removes shaking, FOV changes, and head bobbing from almost every first- and third-person animation.
If you experience motion sensitivity, or if you just find yourself irritated by Skyrim's ridiculous
camera effects - this is the mod for you!

Features include:

 - Over 600 animations are corrected by this mod; all have been hand-tested to ensure accuracy.

 - Includes camera fixes for first-person, third-person, horseback, werewolves, and vampire lords.
   No other mod is this comprehensive!

 - All first-person animations now use a consistent camera height (many people don't notice it, but
   there was a very slight jitter in vanilla when shifting between these animations).

 - Fully-modular - if you want a vanilla effect back, just delete the desired animation file(s).

Unlike other attempts to provide a calmer camera, this mod does it right: every included animation
was decompiled via hkxcmd, edited in Nifskope, and recompiled with proper annotations. No clumsy or
inconsistent hex edits! Footsteps work normally! Further, all animations were tested in controlled
conditions to ensure a smooth visual experience and proper transitions.

This mod conflicts with other mods that edit the same animations, but you can choose which changes
to keep on a per-animation basis (you can also patch incompatibilities yourself; see below). FNIS
is fully supported and does NOT need to be re-run after installing or uninstalling this mod.

This mod can be safely installed or uninstalled at any time.


REQUIREMENTS:
===================================================================================================

Skyrim Legendary Edition


CHANGE LOG:
===================================================================================================

1.1     Fix for sprinting with ritual spells in first-person

1.0     Initial release


INSTALLATION:
===================================================================================================

1. Copy the "Data" folder from this directory to your main Skyrim directory (this is usually found
   in "C:\Program Files (x86)\Steam\steamapps\Skyrim").

2. IF YOU ARE PROMPTED TO OVERWRITE ANY FILES, BACK THEM UP FIRST and then see the section below on
   patching mod incompatibilities.

To uninstall, just remove all added files and restore any previously-created backups.


SKYRIM SPECIAL EDITION USERS:
===================================================================================================

This mod was designed in Skyrim Legendary Edition and WILL NOT WORK with Skyrim Special Edition. If
you decide to convert this mod to work in Skyrim Special Edition, I would be happy to bundle your
converted version with this mod and give you due credit -- just send me your conversion.


INCLUDED ANIMATIONS:
===================================================================================================

The following types of animations are fixed by this mod:

    +--------+------------------------------------------------------------------------------------+
    | Camera | Changes                                                                            |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | All animations using a camera height not exactly equal to 120.5 (skeleton default) |
    |        | were corrected and included. This should reduce a difficult-to-see jitter. If you  |
    |        | are not sensitive to this effect and any of these files conflict with another mod, |
    |        | it may be preferable to replace them, rather than patching the incompatibility.    |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | All sprinting animations were replaced to remove head bob, sway, and FOV changes.  |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | All attack animations were replaced to remove camera movement.                     |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | All equip/unequip camera animations were removed.                                  |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | The FOV change (zoom effect) for blocking with shields, torches, and weapons was   |
    |        | removed. Power bashes are also fixed.                                              |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | Camera effects for shouting were removed.                                          |
    +--------+------------------------------------------------------------------------------------+
    | 1p     | Sneaking animations for all weapon types were standardized to height 86.0.         |
    +--------+------------------------------------------------------------------------------------+
    | 3p     | All sprinting animations were replaced to remove head bob, sway, and FOV changes.  |
    +--------+------------------------------------------------------------------------------------+
    | 3p     | Stagger camera effects were removed; players are still visibly staggered, but the  |
    |        | camera no longer jumps around (identical to a ward break).                         |
    +--------+------------------------------------------------------------------------------------+
    | hb     | The sprinting animation on horseback no longer causes a FOV change (zoom effect).  |
    +--------+------------------------------------------------------------------------------------+
    | vl     | "Sprinting" (flying) as a vampire lord no longer causes a FOV change.              |
    +--------+------------------------------------------------------------------------------------+
    | ww     | FOV changes no longer occur when moving around with the werewolf. The camera "dip" |
    |        | was removed from sprinting, as were the FOV changes and head bobbing.              |
    +--------+------------------------------------------------------------------------------------+

The following animations are NOT included:

    +---------+-----------------+-----------------------------------------------------------------+
    | Camera  | Type            | Reason                                                          |
    +---------+-----------------+-----------------------------------------------------------------+
    | any     | unneeded        | Some animations do not use camera effects or otherwise did not  |
    |         | animations      | require adjustment. This mod only includes files that needed to |
    |         |                 | be changed.                                                     |
    +---------+-----------------+-----------------------------------------------------------------+
    | any     | kill moves      | Other mods already exist for removing kill moves or the special |
    |         |                 | camera effects for these - no need to reinvent the wheel!       |
    +---------+-----------------+-----------------------------------------------------------------+
    | 1p      | all staggers    | In first person, your hands and weapon disappear when a stagger |
    |         |                 | begins. If the camera shake were removed, you would have no way |
    |         |                 | of knowing that a stagger occurred at all!                      |
    +---------+-----------------+-----------------------------------------------------------------+
    | 1p      | bow release;    | Version 1.5 of hkxcmd cannot export these files; the animation  |
    |         | both sneak and  | for the arrow leaving the bow is broken. Version 1.4 can export |
    |         | regular         | these files, but also causes frame loss. There is no way to fix |
    |         |                 | this except by creating a new version of hkxcmd (difficult, as  |
    |         |                 | the author of 1.5 never released his source code).              |
    +---------+-----------------+-----------------------------------------------------------------+
    | ww      | transformation  | Other mods already exist for werewolf transformation effects.   |
    +---------+-----------------+-----------------------------------------------------------------+

You can easily customize which animations are included - just remove the animation files you don't
want and the game will use vanilla ones instead. Animations use a mostly consistent naming scheme.
Some common naming conventions include:

    +-----------+---------------------------------------------------------------------------------+
    | Text      | Meaning                                                                         |
    +-----------+---------------------------------------------------------------------------------+
    | 1hm       | In general, this means "one-handed sword"; but for the animations included with |
    |           | this mod, 1hm refers to ALL one-handed weapons. Some weapons in the left hand   |
    |           | have different animations, and are usually named accordingly.                   |
    +-----------+---------------------------------------------------------------------------------+
    | 1hw       | Refers to one-handed maces and axes in the Creation Kit; but is NOT used by any |
    |           | animations in this mod.                                                         |
    +-----------+---------------------------------------------------------------------------------+
    | 2hc       | "Two-handed common", applying to two-handed weapons of any type.                |
    +-----------+---------------------------------------------------------------------------------+
    | 2hm       | Indicates a two-handed sword i.e. greatswords.                                  |
    +-----------+---------------------------------------------------------------------------------+
    | 2hw       | Used for battleaxes and warhammers (both weapons use the same animations except |
    |           | for kill moves).                                                                |
    +-----------+---------------------------------------------------------------------------------+
    | bow       | All bows; both light and heavy.                                                 |
    +-----------+---------------------------------------------------------------------------------+
    | crossbow  | All crossbows.                                                                  |
    +-----------+---------------------------------------------------------------------------------+
    | dag       | Refers to daggers; but this text is rare (most animations are shared with 1hm). |
    +-----------+---------------------------------------------------------------------------------+
    | dw        | "Dual wield"; some of these animations are also used if the player has a weapon |
    |           | in the left hand, but no weapon in the right.                                   |
    +-----------+---------------------------------------------------------------------------------+
    | h2h       | "Hand-to-hand", referring to fists.                                             |
    +-----------+---------------------------------------------------------------------------------+
    | mag       | Refers to magic. For left and right hands, may be "mlh" or "mrh" respectively.  |
    |           | Naming conventions for magic are less consistent than for other animations.     |
    +-----------+---------------------------------------------------------------------------------+
    | mt        | This text usually refers to animations that are performed when no weapons or    |
    |           | magic are out i.e. when all weapons are sheathed. For example, mt_sprintforward |
    |           | is used for all sprinting animations unless a weapon or magic is out.           |
    +-----------+---------------------------------------------------------------------------------+
    | shd       | All shields; both light and heavy.                                              |
    +-----------+---------------------------------------------------------------------------------+
    | sneak     | All "while-sneaking" animations. Some animation types use this as a suffix.     |
    |           | Others use it as a prefix.                                                      |
    +-----------+---------------------------------------------------------------------------------+
    | staff     | All staves.                                                                     |
    +-----------+---------------------------------------------------------------------------------+
    | stf       | Common abbreviation for "staff".                                                |
    +-----------+---------------------------------------------------------------------------------+
    | tor       | Torches, which can only be wielded in the left hand.                            |
    +-----------+---------------------------------------------------------------------------------+
    | run/walk  | Skyrim has three movement speeds: walking (i.e. when over-encumbered), running  |
    |           | (normal movement), and sprinting (when the sprint button is pressed). For the   |
    |           | purposes of this mod, these animations rarely need to be changed. First-person  |
    |           | animations of this type were modified only due to inconsistent camera height.   |
    |           | Werewolf animations were changed because there is a FOV (zoom) effect on every  |
    |           | such movement. If you encounter mod conflicts with FIRST-PERSON running/walking |
    |           | animations, it may be preferable to remove this mod's files, as not everyone is |
    |           | able to perceive the very small difference in camera height.                    |
    +-----------+---------------------------------------------------------------------------------+

Names may be combined. For example, the prefix "dw1hm1hm" means dual-wielding weapons of type 1hm,
while "mlh_1hm" means magic in the left hand with a 1hm weapon in the right.

In third-person, all head bobbing effects and FOV/zoom changes are included in sprint animations.
First-person follows this convention in general, but also has standalone "camera bob" files for
non-weapon-specific animations.

If you are having trouble identifying a particular animation, you can preview it in Nifskope by
first opening the associated skeleton.nif and then choosing Spells -> Animation -> Attach .KF from
the toolbar. You may get errors when attaching the animation; these are usually safe to ignore.
Click on the root node so you see the skeleton nodes in the viewport, then click the play button to
begin animation playback.


FIXING MOD INCOMPATIBILITIES:
===================================================================================================

Unlike other items in the Skyrim modding scene, animations are "all-or-nothing" - you cannot change
parts of one animation while preserving the effects added by another mod. As such, when a conflict
occurs, you must decide which animation to keep. You have three options in this regard:

 - Keep this mod's file(s), preserving any camera changes made by this mod, but losing any changes
   made by the conflicting mod.

 - Keep the other mod's file(s), losing the camera changes from this mod.

 - Patch the camera changes from this mod into the conflicting file.

You can make this decision on a per-animation basis.

Patching camera changes into a conflicting file is a tedious but usually straightforward process.
The biggest issue you will encounter is that the tool for this - hkxcmd - is unfinished and buggy.
You should expect to do quite a bit of testing before you are finished!

The basic process for patching camera changes into another mod is as follows:

 1. Export the mod's animation from HKX to KF using hkxcmd.
 2. Edit the KF in Nifskope to "zero out" any camera changes.
 3. Convert the KF back to HKX using hkxcmd.
 4. Convert both the original mod's HKX file AND the new HKX file into XML using hkxcmd.
 5. Copy the XML annotations from the original mod into the new XML file.
 6. Convert the new XML file back to HKX.
 7. Place the new HKX into the appropriate location of your Skyrim meshes directory.

To get started, make sure you have a copy of Nifskope and hkxcmd on your computer. I recommend
versions NifSkope 2.0 Dev 7 and hkxcmd 1.6 (the latter is from my website; this includes multiple
hkxcmd versions and handy batch scripts for converting files). Please familiarize yourself with the
basics of using Nifskope BEFORE proceeding with this guide. For ease of use, I strongly recommend
using View -> Block List -> Show Blocks in Tree when working with KF files.

You should also have the relevant skeleton.hkx file for the animations you are trying to convert.
My release includes skeletons for all the vanilla player characters; if your conflicting mod has a
custom skeleton, you must use that instead. DO NOT USE THE XPMSE SKELETON FOR VANILLA ANIMATIONS!
Vanilla animations MUST use the vanilla skeletons, which are obtained from Skyrim - Animations.bsa
using BSA Extractor or another similar utility.

Mounted horse animations CANNOT be extracted without a custom skeleton (everything gets deformed).
My release of hkxcmd provides such a skeleton for your convenience.

When you have all of this ready, do the following:

 1. Export the mod's animation from HKX to KF using hkxcmd:

    This is accomplished by opening the Command Prompt and entering the following command:

        hkxcmd exportkf path\to\skeleton.hkx modAnimationIn.hkx modAnimationOut.kf

    My version of hkxcmd makes this easier by providing a droplet batch file - just drag your mod's
    animation onto it and the conversion will take place automatically, producing a KF file as its
    result. SOME ANIMATIONS CANNOT BE EXPORTED TO KF reliably; different versions of hkxcmd may be
    more or less useful (my release makes switching out hkxcmd versions for this purpose easier).

 2. Edit the KF in Nifskope to "zero out" any camera changes:

    This is where the tedium sets in! But don't worry - once you have done this a few times, the
    process becomes a LOT easier (and faster).

    Let's start with some background knowledge on editing KF files in Nifskope:

    Every animation stores camera changes a bit differently. However, ALL character animations have
    a root NiControllerSequence node. When you click on this in Nifskope, the Block Details section
    will display (among other things) a Controlled Blocks section. Expand this to see the defined
    animation bones and their names e.g. "NPC Root". Expanding any of these individual blocks will
    display an Interpolator. Clicking on the arrow next to the Interpolator will "jump" you to the
    associated section for that animation bone in Nifskope.

    What we need to do is find/expand the associated animation bone, select its NiTransformData,
    and then modify the Quaternions (rotations) and Translations (x/y/z adjustments).

    To clear out quaternions, you should set Num Rotation Keys to 0, then click on the "refresh"
    icon; this will remove all rotation effects from that bone.

    Clearing out translations is similar; however, I recommend keeping one (0, 0, 0) translation as
    some animations can be finicky if you remove the translations entirely. Expand Translations and
    set Num Keys to 1, then click on the "refresh" icon next to the Keys section. Expand Keys until
    you see the Time and Value rows. Set the Value to (0, 0, 0) and you are done.

    Finally, keep in mind that HKX files are a compressed format. This means that unused animation
    bones are stripped from the output. However, when you edit animations and convert them to HKX,
    a missing bone implies a default value. For camera bones in particular, this will place the
    camera directly at your feet - not good!

        a. To fix this, open a second instance of Nifskope and open any KF containing the bone you
           want to include (female/mt_sprintforward is excellent for the Camera3rd [Cam3] bone).

        b. Right-click on the NiTransformInterpolator for the bone and choose Block -> Copy Branch.

        c. In the other NifSkope instance, right-click on the root NiControllerSequence and choose
           Block -> Paste Branch.

        d. Note the ID of the pasted block (it will be at the bottom of the list).

        e. Select the NiControllerSequence node and increase the Num Controlled Blocks field by 1.
           For example, if it was 84, set it to 85.

        f. Right-click on Controlled Blocks in this node and choose Array -> Update.

        g. Expand Controlled Blocks and find the added/empty item at the bottom of that list.

        h. Expand the new item and set the Interpolator to the ID of the block you noted in step d.

        i. Double-click on the "txt" icon of Node Name and provide the name of the bone. Be careful
           here! If your bone name has a typo, the animation will not compile! Make sure you click
           on the "txt" icon and NOT on the name itself; otherwise, the edit window won't appear.

        j. Set the Controller Type to the same value as in other Controlled Blocks (usually ID 2).

    Now that we have all the background knowledge covered, let's discuss what you actually need to
    change to remove camera sway and FOV effects:

    For THIRD-PERSON AND FIRST-PERSON, all FOV/zoom changes are handled by the Z translation of the
    bone named "Camera Control". A value of Z=0.0 will remove any FOV change. In the vanilla sprint
    animations, this will usually be set to around -9.0 or so.

    For THIRD-PERSON, the camera height is handled by "Camera3rd [Cam3]" (note the space!). Make
    sure this bone exists! If it does not, your animation will be placed at the player's feet. The
    Z value of this bone must be set to the default skeleton height (121.0 in vanilla) if you want
    to eliminate any camera height changes. In vanilla, only the female sprinting animation uses a
    different height (130.0; probably an error on Bethesda's part).

    For THIRD-PERSON, all camera sway and shake effects are handled by "AnimObjectA". To eliminate
    these camera effects, simply remove all rotation keys and zero out the translation keys.

    For FIRST-PERSON, the camera height is handled by "Camera1st [Cam1]" (again, note the space!).
    Make sure this bone exists! If it does not, your animation will be placed at the player's feet.

    FIRST-PERSON camera sway and shake effects are a bit more complicated. In many cases, these are
    handled by "Camera1st [Cam1]" i.e. they are shared with camera height. However, some animations
    may have effects handled by "NPC LookNode", "NPC Translate", "NPC Rotate", or "NPC COM". The
    best way to approach things is start with Camera1st, test in game, and then proceed to other
    bones only if needed.

    VAMPIRE LORD and WEREWOLF animations use very similar conventions to third-person, but the bone
    order and naming is just a bit different. You may need to experiment a bit here, as these are
    not 100% consistent. Thankfully, there aren't too many of these.

    The hard part is over! Save your KF file when you have finished making changes; then proceed to
    the next step.

 3. Convert the KF back to HKX using hkxcmd:

    Just like in the first step, open a Command Prompt and enter the following command (or use the
    droplets provided by my release):

        hkxcmd convertkf path\to\skeleton.hkx modKFIn.kf modKFOut.hkx

    If you cannot convert to HKX using hkxcmd 1.5, STOP HERE. Although you may be able to use 1.4
    or lower, the earlier versions of hkxcmd DROP FRAMES upon converting, making an ugly animation.
    There is no way to create a flawless animation until someone comes up with a better hkxcmd. You
    may be able to proceed if you have a version of 3ds Max with the correct Havok Tools installed;
    otherwise, there is nothing that can be done.

 4. Convert both the original mod's HKX file AND the new HKX file into XML using hkxcmd:

    Just like in the first step, open a Command Prompt and enter the following command (or use the
    droplets provided by my release):

        hkxcmd convert modHKXIn.hkx modHKXOut.xml

    Do this both for the original mod's HKX and also your new HKX file.

 5. Copy the XML annotations from the original mod into the new XML file:

    Open the created XML files in a text editor; Notepad++ is good for this. In the original mod's
    XML file, search for the section <hkparam name="annotationTracks". There are two cases:

        In the first case, annotationTracks will contain NOTHING but empty elements looking like:

            <hkobject>
                <hkparam name="trackName"></hkparam>
                <hkparam name="annotations" numelements="0"></hkparam>
            </hkobject>

        If the annotationTracks sections contains NOTHING except section(s) like the above, you do
        NOT need to worry about annotations. The HKX file you created in step 3 is ready to use in
        Skyrim. Proceed to Step 7. Otherwise, proceed to Step 6.

 6. Convert the new XML file back to HKX:

    If annotationTracks DOES contain values, such as FootSprintLeft, copy the ENTIRE SECTION from
    the original XML file into the new XML file, replacing the new file's section entirely. Save
    the new file and then use the following command to convert your XML file back to HKX:

        hkxcmd convert modXMLIn.xml modXMLOut.hkx

    As before, you can use my droplet if you don't want to use the Command Prompt. In rare cases,
    you may need to use a different version of hkxcmd for the conversion.

 7. Place the new HKX into the appropriate location of your Skyrim meshes directory:

    This is easy - just copy and paste (but back up your original file if present!).

After following these steps, you are ready to test your animation in game. If anything looks wrong,
go back to Step 2, editing the KF file you already created. For complex animations, or if it is
your first time doing this, you may need to iterate these steps a few times before you get things
looking right. Don't worry - it becomes mcuh easier with practice!

For advanced users, please note that there exists a plugin to import KF files into Blender. You can
use these steps to modify almost any vanilla Skyrim animations - not just the ones from this mod.
