Stockmoves Tutorials:
Lightwave[6] - Setting up Stockmove Files -
At the moment Lightwave has several bugs which cause some severe limitations on the adjustability of the motion capture
data inside Lightwave. The setup we describe in this tutorial is the most flexible possible at this time.
The first "bug" is that Lightwave uses a entirely different rotation system then all other major 3d packages.
Because of this we are restricted to use the Stockmoves skeleton, instead of setting up a skeleton of our own. Second bug
is that rotation data is not transferred through multiple layers. Using a extra layer of Nulls, parented to the
Stockmoves-skeleton, we could have adjusted the rotation of our Lightwave bones. This make it easy to adjust movements for
a character with for example long arms (fantasy creatures), or a hand that intersects with a large belly of your character,
while leaving the mocap data intact.
We have contact with Newtek about the situation, and as soon as the bugs are solved, we will post a new tutorial on this
web site.
On several steps in the tutorial you will see a reference to a file: (*filename). This refers to a file in the zip-file
which has completed that step. For your convenience, you can download the file here.
1. Convert and load in your Stockmoves scene
For your convenience we have provided with this tutorial a free Stockmoves sample (* free-sample-blend.umf) for you to use in Lightwave. Using the converter you can output a Lightwave scene file, ready for loading into Layout. Select the option to output a skeleton, and include the calibration frame. (* free-sample-blend.lws) Load your Stockmoves scene into Layout, and make all bones of the skeleton deactivate (shortcut ctrl-r). Load in your Lightwave object (* Monkey.lwo). To prepare our Lightwave object for the Stockmoves skeleton, parent it to the Null Body. As you might noticed by now, the skeleton of the Stockmoves data faces the opposite Z-axis of the normal way to model a character in Lightwave

Object is parented to the Null Body object.
2. Adjust the Lightwave model to fit the Stockmoves-skeleton
Bring the object into Modeler. What we have to do now is scale, rotate and move the character in such a way,
that it matches the Stockmoves-skeleton as much as possible. Start with aligning the hips of the object. Using the Hub
you can switch between the two applications to see the changes you make in Modeler.

Adjusted model
When you are done, save your model (* Monkey-adjusted.lwo), and delete the object from Layout. Now we have to replace
the Null Body with the adjusted Monkey object. To do this use the "replace object" option from the actions menu.

Replacing the Null Body with the Adjusted Monkey object
3. Preparing and adjusting the skeleton.
Now we can fine adjust the Stockmoves-skeleton to your object. To do this, we first have to delete all position key frames
of the bones from frame 1 onwards. Select the chest bone, open the graph-editor. Select the X position, and while pressing
the shift button, select the Z position to select all position curves. Now we can drag a box using the right mouse button
around the key frames in the curve editor. Leave frame 0 out of the box. We can now press the DEL key on your keyboard to
delete the selected key frames.

Delete the position key frames
Do the same for all bones; select the bone, open the graph editor, select the position channels, drag a box around all
key frames except frame 0, and delete them.
Now we can adjust the position and rest-length of the bones. Select the chest bone, and on frame 0, use move and rest-length
to fine-tune it to your object. Once done, go to frame 1 and make a second key frame. It is very important you actually go to
frame 1, and make the key frame there. If you would simply make a key frame from frame 0 to 1, you would also adjust the
rotation data in frame 1, and thus destroy the mocap data.
Once the rest-length and position is adjusted, you can use rotate on frame 0 to further adjust the skeleton. Key frame
the bone after you are happy with the way it looks. Do not make a key frame for rotation on frame 1, for the already explained
problem. It might already be clear to you, that once you have adjusted rotation on frame 0, and key framed it, you can not
adjust position and rest-length anymore. Because key framing position and rest-length to frame 1 after rotation is applied
on frame 0, will also affect the rotation data on frame 1...
We now use this same procedure for the next bone in the chain. Using the down arrow, select the next bone and:
- Use move and rest-length on frame 0. Key frame it.
- Go to frame 1, and key frame again.
- On frame 0, adjust rotation, and key frame.
- Use the down arrow to select the next bone, and follow the same procedure again.
Once all your bones are in the correct place, activate them (shortcut r). Now it might be a good time to save your
scene... (* skeleton-adjusted.lws)

All bones are placed in the correct position
4. The final touch
Almost done! All that is left is to remove the calibration frame, and make the whole scene looping. To get rid of the
calibration frame, open up the scene-editor and select all the bones. On frame 1, delete the key frames for all selected items.
Next delete the key frame for the Monkey object.

Delete the key frames for the selected items
To make the scene looping, select the chest bone, open the graph-editor, select all channels (position, rotation and scaling)
, and select "repeat" as the "post behaviour" in the curves tab. Do the same for all bones, and the Monkey
object. Once done, play the animation (* finalscene.lws).
It is not uncommon that you will see some distortion on your object now. The only way to get rid of it, is to go deactivate
your bones again, and rotate the bones on frame 0, to suit the offset they have in frame 1. Once Newtek has solved the bug of
rotation data not correctly transported trough chains, we can solve this problem with adding an extra layer of Nulls between
the Stockmoves-skeleton and the Lightwave-object skeleton. Using the Nulls we can give a extra offset "on top" of the
Stockmoves mocap data, making it very easy to adjust the mocap skeleton to suit your object. As soon as this problem is solved,
we will make a new tutorial, and put it online on this web site. |