xxMyAnims - Animation Tutorial

  • Contents

1. Introduction

Have you ever wanted to change a pose. Or if you used a pose as an IdleAnimation your character couldn't move anymore or moved in a strange way. Therefore I introduce here a possibility to adjust nearly any existing pose.

This plugin contains already three poses as IdleAnimations that will be played by your character on a chance of each 10 percent. You could also jump directly to Get your/a pose into Oblivion for adding additional poses to the plugin. But due to my own experience the most poses are not compatible for IdleAnimations. That means that when a pose is triggered your character can't move or moves in a very strange way. Therefore i wrote this tutorial to make good existing poses compatible for gameplay.

2. Requirements

3. Conflicts

4. Installation

Plugin: Copy the content of this plugin (under xxMyAnims/plugin/Data) into your Oblivion/Data directory. Overwriting is ok. Don't forget to check the plugin in the Oblivion-Launcher before playing. The plugin is already working without any Blender work. But to extend it to more than three IdleAnimations (poses) that are randomly triggered you will have to follow this guide. Give it a try - it is not so difficult!

Tools: Assuming you haven't installed anything - first install the TES ConstructionSet. Then install Blender with all necessary components - there is a very good readme.

Extras: Included in the Blender directory you'll find two example .blend-files (BlenderWork-Files). One is a finished Pose and the other one a finished Animation (backflip). It is always convenient to have proper examples to compare. I've included a "Ready-to-work" .blend-file. With that you could start to create your own pose or animation. But if you want to import an existing pose or animation into Blender you need the file "BaseMesh00.nif". For more information go to the next chapter.

5. Blender Import

Posing- and Animation-files (.kf-files) can be found on various Oblivion-Plugin-Websites; eg: Tesnexus - Files / Browse Categories - Animation

Comment: Such *.kf files cannot be imported in Blender on their own - only attached to the right body-nif file which you can find in this plugin. It is named "BaseMesh00.nif". With Nifscope I merged all human bodyparts into a single nif-file; therefore I also had to copy the single NiNodes; otherwise Nifskope complains that certain NiNodes are missing. Afterwards I imported the fullbody-mesh into Blender, joined all bodyparts and removed the armature. Finally I imported the skeleton.nif and exported the work as BaseMesh00.nif. All the necessary files I used I took from the Oblivion.bsa file which can be uncompressed with the BSACommander.

Now open Blender and choose File - Import - Netimmerse/Gamebryo - find and select "BaseMesh00.nif". Click Import.

Then find and select your animation-/posing-file (.kf) that you wish to alter under Keyframe File.

For all other settings look at the image next to.


6. Modifying an existing Animation in Blender

I heavily recommend additionaly to take a closer look at this good tutorial!


After Import delete the cube at the character's feet. Mark it via rightclick and delete it.

Hit STRG + LeftKey for a certain view in Blender. Now you got five windows. Change the upperleft one to ScriptsWindow at the bottom bar; the upperright one to TextEditor; the bottom window should be the ButtonEditor window; above the ButtonEditor you got the TimelineWindow - leave that; above the Timeline in the center you have the 3DView.

In the 3DView hit Key Z for a solid view (your mouse-cursor must be in this window). Then rightclick the armature (the lines around the character); change the Mode from ObjectMode to PoseMode at the bottom bar. Hit Key A to select all bones of the armature. In the bottom bar of the TextEditor window click Text - New and change the name from "Text.001" to "Anim".

Hint: You can save this view if you want to do this job extensively. Select File - Set Default Settings. Whenever you open blender this setting will be loaded. If you temporarily don't want it then select File - Load Factory Settings. If you want to remove this setting completely delete the ".B.blend" file in your Blender application directory in the ".blender" folder.


Case 1 : The pose is ok but my character can't move or moves in a strange way

After right-clicking your armature in the 3DView plus hitting Key A for selecting all bones (all bones should get a new Bone Priority) - you must only change the Bone Priority: Script Window - Scripts (bottom bar) - Object - Set Bone priority - to 26 - ok. But don't do this with more complex animations like UMPA dances. Otherwise the animations get corrupted and won't show up as they should anymore.

Now Export ..


Case 2 : You want to change a Pose

First: the difference between a pose and an animation is that a pose is only one body posture whereas an animation is a sequence of more different postures. In this paragraph we want to change an existing pose. Therefore we only need two frames (two identical postures in a looping sequence). You can find the amount of frames of the current imported pose either in the Timeline window or in the TextEditor window. If there are more than two frames first change it in the Editor window. Look at the image next to (1/start and 2/end). Then in the Timeline window. Enter "2" in the box next to the box showing the end frame at the right side and hit enter or click the left/right arrows until it shows the second frame. Now again in the Timeline window at the bottom bar click "Frame" and choose the option "Set as end".


Now it's time to switch to frame "1". Here you can edit the pose as you like in the 3DView. For a more convenient working switch to fullscreen view: navigate your cursor over the 3DView and hit CAPS LOCK + SPACE (and again to redo). To change the position of a bodypart select the according bone via rightclick. Then hit once STRG + Space and choose "Combo" (that allows all possible operations: translation, scaling and rotation - normally you only need rotation). After the selection of a bone you can drag the colored half-circles for rotating a certain bodypart. Save your pose as often as possible because a Undo (STRG + Z) will reset the pose completely. For saving press I and choose LocRot (for translations and rotations) or LocRotScale (if scaling is also applied). This will make the current frame to a keyframe. You can identify keyframes in the timeline as greenish vertical lines which you can delete by pressing ALT + I and choosing the corresponding option (if you don't know choose available).
Hint: if you notice that an operation is not right while dragging and holding the mousekey - rightclick and release the left mousekey; in that way (only) the current operation will be cancelled.


Finally .. if you think your pose is ready then again press I and choose LocRot (or LocRotScale). Now copy this pose to frame 2. In the 3DView window in the bottombar click Pose - Copy current pose; switch to frame 2 and click Pose - Paste pose. Make a keyframe again by pressing I - LocRot (LocRotScale). Change the Bone priority as described in Case 1 to 26. Save your .blend file.

Now Export ..

Case 3 : You want to make an Animation

For a fluent animation you need a bit of practice. Basically implementing an animation is the same as making a pose as described in Case 2. The difference is that you don't have only two identical frames because an animation is a sequence of many different postures. Broadly speaking a pose is a picture while an animation is a movie. Regarding an animation the amount of frames (different postures) is up to you. The more frames the more fluently the animation will be shown ingames. But you don't need to set every frame to a keyframe (pressing key I) what means that you don't need to hand-craft your model at every single frame. Eg: You make a posture at frame 1 and set a keyframe and a posture at frame 10 again as keyframe. Blender will then interpolate the transformation between these two keyframes.

Now Export ..

7. Blender Export

Under File - Export - NetImmerse/Gamebryo choose the export-name and destination.

Hint: If the export-menu pops up in a small window (eg. the ScriptsWindow) and you can see hardly anything go with your cursor over this window and hit CapsLock + Space to get a fullscreen view of this window and do the same for undoing this.

For export options see the image next to.

Now Nifskope afterwork ..


8. Nifskope afterwork

Open your new .kf file with Nifskope. Select View - Block Details. Now you got a third window at the bottom. It is essential that you change the NiControllerSequence name to "Specialidle"! Plus change the Cycle type to Loop! Save and exit.

If your character's height position (height on the z-axis) is not ok take a look at this tutorial!

If your character's angle in Oblivion is not as you wish you can change that by opening the .kf file with Nifskope. Click the first entry "NiControllerSequence" so that in the Block detail list something appears. Now expand "ControlledBlocks" (click the plus) and search the entry "Bip01 NonAccum" in the column "Value". When found expand it and click the blue round arrow in the row "Interpolator". You will get linked to the "NiTransformInterpolator" of the NonAccum Bone. Now expand the marked row again and click "NiTransformData". Expand "QuaternionKeys". Depending on how much KeyFrames the pose has there are consequently many further "QuaternionKeys". You have to expand all of them and make everywhere the same changes. Double click the Value in the Value row. Change the "button Axis" to Euler and write into the "R-field" the number 90 if your character is looking to the right side. Otherwise play with the value by testing.

Now get your/a pose into Oblivion ..


9. Get your/a pose into Oblivion

Copy the .kf file into Oblivion\Data\meshes\characters\_male\Idleanims\xxMyAnims.

Open TESConstructionSet and click "Data" in the menubar. Click "xxMyAnims" and "Set as Active File" - then "Ok". After loading click "Gameplay". Assuming you want to add an additional pose to the plugin for the first time goto Idle Animations - xxMyAnims - MyGroup01. Rightclick the last entry ("pose13") and say Insert Sibling. Now give the new entry a name (ID) (eg. pose14 would be best). Set the link to the .kf file (which you should have named "4.kf" for purposes of ease, overview and structure). Now it's up to you to when, where and how often the new animation should be played. For that you have to define the conditions.


There are some general important issues regarding IdleAnimations in the ConstructionsSet:
Oblivion goes through this list about every 15 seconds (or when triggered eg. by a script). It goes from the first entry down to the last but stops immediately if a entry matches all conditions of the current situation in gameplay.
Example: Oblivion checks the first entry xxMyAnims (matches because your characters ID is player and your char is at the moment not swimming, riding, sneaking or in a combat) then goes into MyGroup01 (because there are no conditions); then it checks pose11 (let's say that entry matches not because the random number is greater than 10 for example); so Oblivion checks the next entry that is pose12; let's say this matches because the random number that the game engine computed is now 8. Consequently your characters will now play pose2. Pose3 and all further poses after won't be computed for that round anymore.
That fact you should keep always in mind when declaring conditions for IdleAnimations.


Useful conditions would be:

In the picture next to you see an example-condition:

This IdleAnimation will be triggered if your character has drawn it's weapon and the weapon is a bow.


Additional Tips

  • Avoid empty links in the ConstructionSet under IdleAnims! Better duplicate poses than empty links. That means every entry should point to a .kf-file. Otherwise your plugin could be responsible for a strange behaviour ingame.

Please ..

  • .. don't send questions about bouncing bodyparts!

Credits and Legals


  • Bethesda for a very modular and moddable game including the TESConstructionSet
  • Developer(s) of Nifscripts - for Blender imports/exports
  • Developer(s) of Nifskope - a powerful Nif-Editor
  • Blender
  • Gimp
  • Tutorial-authors like:
  • .. and of course all the talented posing- and animation-creators that share their creativity with all!
  • .. and all motivated Website-developers that make it possible for modders to share their work.