Site hosted by Build your free website today!

 Skip Intro's LW[6] website

  The "100 Proof" Method

WeightMaps Made Easy : Part 2

If you haven't done so by now, save your model and close the Modeler. Now Open LightWave 3D (Layout). You're already in the Actions tab memu, so Add your object to the scene. (Actions > Add > Add Object > Load Object). Notice that at the bottom left of the screen, the Current Item is already set to Layer2 of your object. Lightwave imported your layered object as two separate objects. If we had cut & pasted our skelegons from layer2 into layer1, this would not have happened. But since I like my skelegons in their own layer in Modeler , I'll choose to fix it in my scene Layout. Before I get to that, lets convert our Skelegons into usable Bones.



 First, At the top of the viewport window, next to the window type, there is a pull down menu where we can set the viewport's Render Level. Let's set it to Front Face Wireframe so that when we create these bones, we can get a good look at them through the wireframe mesh.  
 Now, In the Settings tab menu, select Cvt Skelegons (Settings > Bones > Cvt Skelegons). Lightwave will tell you how many bones were created, in my case, it made 28.
  Remembering that my leg bones had to be made perfectly vertical, I want to fix them so that the knees and ankles are in the right place. Working from a hip, I'll apply a slight Heading (red) adjustment until the knee joint lines up properly with the mesh. At Frame 0, I'll make a keyframe for the bone by hitting the Enter Key twice. I'll now record the bones new rest position with Rec Rest Pos (Settings > Bones > Rec Rest Pos). Continue down the leg and trace your exact steps for the other leg.
At this point the bones are not even attached to the mesh. I need to tell Lightwave to use these bones in Layer2 on the object in Layer1. To do this, I simply set my Current Item to my object:Layer1 and switch edit modes from Object to Bones by selecting the Bones(B) button that is right under the "Current Item" text. Now while you're in Bone edit mode, hit the P key on the keyboard to open Item Properties for this object. At the the very top where it says "Use Bones From Object" select your Layer2 object because that's were all the bones are that we've previously converted. You can hit the P key again to close the window.
We don't want the Root bone to influence the actual mesh other than being the Parent bone, so select the Root bone with your middle mouse button and deactivate it.(Settings > Bones > Bone Active).
Since I've branched off the Pelvis bone in an angle other than 90°, I'll want to fix my pivot Rotation reference axis. The Heading (Red) should be aligned with the bone's length direction, instead it has inherited an unuseful initial state from its parent, the Root bone. Left alone, it would react almost like Bank (Blue). To fix the situation, on keyframe 0, we'll click on Rec Pivot Rot (Actions > Tools > Rec Pivot Rot) and then immediately create a keyframe for its new zeroed out rotation by hitting the Enter Key twice. Next, you should re-record the bones rest position Rec Rest Pos (Settings > Bones > Rec Rest Pos). Use this procedure on all the other bones that you feel could benefit from it, even in a less extreme sense.
Next we'll want to use some Joint Compensation at the elbows and possibly the knees. These are problem areas whether you use WeightMaps or not. Select a LowerArm bone with the middle mouse button, and hit the P key on the keyboard to open its Item Properties. Notice that LightWave auto-assigned the correct Bone Weight Map to this bone. This is because we named them the same. At the bottom, turn on Joint Compensation for this bone and its Parent bone. You can use values over 100% to achieve a greater affect. This is common for lowpoly models. I set them to 200% for this model. I also turned on Muscle Flexing for Parent and set to 100%. This greatly reduces the common rubber hose pinching effect when rotating Pitch (Green).

At this point, I'd say play around and start posing your model. Make a bunch of keyframed poses and leave enough frames between to watch your model go from one into another. Study how the mesh is reacting to the WeightMaps and Bones, especially at her shoulders and hips.

A Little Fine Tweaking...

The "100 Proof" method got us this far, a nice start, but now I want to go in and adjust some weights just a little. So launch Modeler with the F12 key on your keyboard or by using the Modeler button on the top right of the screen. Notice our model is there waiting for us. This is the same model that is currently loaded in Layout. Anything we do to her will be updated in Layout. While both programs are open, DO NOT save any changes you make here in Modeler, rather do all your saving within Layout (Actions > Save > Save All Objects).

I'm not satisfied with how the mesh reacts at the hips and buttocks areas when I rotate the Thigh bones. To fix it, I select the R_Thigh bone's WeightMap. Then I select the vertices that overlap with the Hip's WeightMap. Finally, I use Set Value (VMap > Weights > Set Value) and at the prompt place a new value of 50% to try.

Visually, as the gradient from a hot orange-red (100%) to a pale green-grey (0%) expands, you can see the change by how the weight tappers off more gradually across the hip and buttocks. We can flip over to Layout and play through our keyframes to check out the results. Wow, It appears that did the trick!

Next, experiment with the shoulders, and then move on to any other questionable areas. Remember, you can always work on one side of the body and when you're set, re-use Yoichiro's Mirror VMap tool. On a lowpoly mesh like this one, if you're going to tweak values; first try values like 50%, 25%, & 12.5% - they generally do the trick. (Note to self...make a hotkey for Set Value) And Remember, SAVE your work in Layout. (Actions > Save > Save All Objects).

Well, there you have it!

I hope my modeler config and this weightmap method helps to speed you along developing cool 3D characters. Cheers!


-last updated on 08.20.00-

Questions, Comments; e-mail Skip Intro