- The good news is that you don't need to know how to export animations from some fancy 3D modeling application to animate most of the things you want (stuff which isn't rigged to a skeleton). So doors, rotating fans, drifting buoys, etc.
- The bad news is that the NiControllerManager which manages animation is an intimidating beast. It is opaque, its hierarchy is sprawling, and the block-names can be foreign to even the most experienced Nifskope user.
It will help if you have something you wish to animate. I have attached a .nif which is set up the same way as the door used in the tutorial. (Note that the nodes are named differently.)
- To begin, grab Nifskope if you don't already have it (available here) and load something you want to animate.
- Here is my door. I have my root node, 'Scene Root' and three NiNodes attached to it as children; the door frame, 'unstndoor01frame;' left door and right door, 'unstndoor01right' and 'unstndoor01left' respectively.
- I want to collect my NiNodes into a new NiNode and name it '<whatever your root node is named> NonAccum.' In this example, my root node is called 'scene root' so I'm calling my new NiNode 'SceneRoot NonAccum.'
- Attach your new NiNode to your root node as the only child.
- Now we will insert a new NiControllerManager, proper.
- Don't worry about attaching it to anything just yet. There's a lot to pay attention to, and it's easiest to understand this tutorial if you follow through all of the steps before jumping ahead. You will find that things can become quite cluttered and hard to follow as there are many branches to keep track of.
- Now we will enter some numbers into these different fields shown for the NiControllerManager:
Start Time: <Float_Max>*
Stop Time: <Float_Min>
- Reference your root node (should be index = 0) in the 'Target' field. You can also define the number of sequences you wish to manage (for this example, two), though it's not essential at this point.
- You may think that you want to define the real start and stop times for your animation, but it's not necessary. 'Float_Max' and " min mean that t-values that we define later on will be carried on through to the manager and we don't have to worry about actually defining them at this point. It's useful. *Select these values by right-clicking in the data field.
- Now, on to the next step. Every NiControllerManager must be supplied with an Object Palette.
- Insert a new NiDefaultAVObjectPalette. Now we have to make it functional.
Continued in part II.
Edited by TrickyVein, 06 May 2013 - 01:33 PM.