Posing Panel in Pose Mode

Pose Bone Constraints settings

The Pose Mode is typically used for creating poses and animations. This panel provides customization of Bone Constraints. More on this see further down.

Rig Modify Tools in Pose mode

The Pose Mode actually can also be used as tool for editing the Rig. The necessary extra functionality is provided in the Rig Modify Tools section (See the operators As Bindpose and With Joints)

Pose Bone Constraints

Pose Bone Constraints

Pose Bones are tied together by constraints. For example you normally can not tear a limb bone out of its bone chain. Or normally the blue Deform bones (the SL Bones) are fully controlled by the green Animation bones. Or the Volume Bones can not be moved away from their parent bones.

However, sometimes you want to get more freedom over the bones, especially when you work with non human rigs you may want to use individual bones for very different purposes and not necessarily in the way the original Rig has been set up. So we added a tool for controlling the Constraints

Bone Constraints

The Scope of the operation. You actually can limit the scope to one single Bone, a group of selected bones, or even all Bones in the Rig. We allow to control 3 sets of constraints…

SL Bone Rot

The Deform Bone rotations are normally fully controlled by the Animation bones. But this operator lets you Unlock the rotation constraints.

Now you can rotate the deform bones separately from the animation bones.

But beware: You want this only(!) when you are testing the Bone Weights. You never use this for animation purposes!

Unlocking SL Bone rotation actually disables the animation bones from animating the Model

Anim Bone Trans

the Animation bones are normally tied together so that you can not move them separately. Furthermore all animation bones without connected bone parents can normally not be moved around. This is good for keeping the skeleton structure intact while posing. Here you can unlock the parent connection so that animation bones can be placed without affecting the placement of their parents.

However note: the unlocking only works towards bone parents. So if you unlock only one single animation bone then you can move it separately from its parent bone while all its children are still connected and move along with it.

Note: You may want this mode especially when you do Facial animations where separate bone movements are sometimes needed. Or when you want to achieve special animation effects on your model.

Important: When you use Bone translation in your animations then you also must tell the Animation exporter to export with Translations.

Vol Bone Trans (very experimental)

We are not sure if the animation of Volume Bones is officially supported. However we added this option to the set. So when you Unlock Vol Bone Trans, then you can place the Volume bones freely.

Some restrictions apply:

  • Currently Unlocking Vol Bone Trans always uses the All bones scope (this is a known bug)
  • The Bone rotation is still inherited from the bone parents. Also the relative Movement of the parent bones is still propagated to the Volume bones. We need feedback to understand what animators expect to get here.

Rig Modify Tools in Pose mode

SL allows to modify the SL Rig by overriding the joint positions of the rig. Avastar supports the Rig editing as well, basically by switching the Armature to Edit Mode and then edit the bones by moving them around as needed.

Why use Pose mode for Rig editing?

Editing the Rig in Edit mode

Bones often depend logically  on each other. For example Volume bones (Orange) are normally clamped to SL Deform bones (blue). You want to move them together. then we have bone chains where children Joints are connected to their parent bone tails. You do not want to break this unintentionally.

Lets take a look at an example: Creating an A posed arm.

This is actually a lot more complicated than it looks on first glance when you use the Rig Editor. You always have to take care that you move all children of a modified bone as well. In this case rotating the shoulder bone makes it necessary to rotate all children accordingly.

Editing the Arm into A pose may be more complicated as it looks.

Just figure for example what happens when you forget to move the Collision volumes or the attachment points along with the arm bones…

Posing the Rig in Pose mode

When we work in Pose mode, then for example rotating the Shoulder bone will automatically mpve and rotate also all its children into place. Thus creating an A pose in pose mode boils down to rotating the shoulder bones.

Posing just the Shoulder bone is much easier since all children follow automatically

But how can you apply your pose to the Rig?

Blender expert answer: you can use Pose -> Apply -> Apply Pose as Restpose but then you also have to do some manual tweaking (store joint edits) to get Avastar to work with the new rig.

But don’t worry, we have a one click solution for you. read on…

The main feature in the Rig Modify Tools for Posing are the two operators As Bindpose and With Joints which both bake the current pose into the Rig as if it had been edited. And it adds all necessary extra data so that Avastar can work nicely with the modified Rig.

Apply as Bindpose/ Apply with Joints

The two Operators Apply As Bindpose and Apply with Joints both bake the current pose into the Rig. So after applying the operator all posed bones now define the new Restpose.

Note: In previous releases we had only one option (Apply as Restpose) For further explanation see below.

Important:

  • When you call the As Bindpose operator, then the use bind pose option (see further up) will be set automatically.
  • When you call the With Joints operator, then the use Bind Pose option will be unset.
Also note that although your rig looks the same when using As Bindpose or With Joints it behaves very different when you use the Appearance sliders!

 

As Bindpose operator

The Rig is treated as if its Restpose is the Secondlife Default T-Pose with an additional pose (the Bindpose) super imposed to it. To get this to Secondlife you only have to import with Weights. This corresponds to the Use Bind Pose option described further up.

  • When you click on As Bindpose
  • Then your Rig remains in T-pose plus
  • the current pose is superimposed to the Rig.
  • You later import with Weights

Hint: When using bindpose, then the arm length changes along the arm long axis regardless to where the arms point.

With Joints operator

The current pose is treated as the new restpose of the rig. So to get this to Secondlife you must import the Rig with Joint Positions.

  • When you click on With Joints
  • Then your current pose is baked into the Rig
  • And your current Rig becomes the new Restpose.
  • You later import with Weights and with Joint Positions

 

Hint: When using with Joints, then the arm length changes only along the x-axis!

A word of Warning

If you are working with Developer kits then you actually can not freely decide which Restpose (T-Pose, A-Pose, …) you want to use. In fact the pose used by the developerkit must be used by you as well.

If you try to enforce to use a restpose different from a Developer kit, you always will end up with mismatched clothes!

Generate LSL operator

Generate a Restpose Adjustment LSL Script to be used in Secondlife.This script is only useful when you use Bindpose. the script takes care to move the Joints into their rest position. Depending on the actuall Bindpose the rig shows no distortions only when you apply the script.

  • Click Generate LSL (The script is placed into the Text Paste buffer)

  • Go to Secondlife and wear the rigged mesh
  • Open the Mesh inventory
  • Add a new LSL script to your model in SL
  • In the LSL Editor Paste the text buffer (the script is now in your LSL editor)
  • Save and enable the Script
  • Add the generated restpose to Inventory (see below)

Export Restpose operator

When you use Bind Pose then depending on the bindpose you may need to fix your rig in Secondlife by applying a Restpose Reset Script to it (see above). The Restpose can be convceniently generated along with the Export of your mesh (see Avastar Collada Exporter, advanced options) or you can generate the Restpose from here:

  • Click Export Restpose (all Bones is normally what you want)

  • Now the restpose has been generated into the current frame on the timeline
  • Open the Animation exporter
  • Export the single frame animation in .anim format

The further options

  • Convert Meshes: When the Convert Meshes option is enabled, then the new restpose is also applied to the bound meshes. Otherwise the meshes fall back to their previous restpose (typically the T-pose) and no longer match to the new Restpose.
  • Only Visible Meshes: The conversion affects only the visible meshes
  • Also Avastar Meshes: The conversion also affects the Avastar Meshes (they will be converted to custom mesh items using the new restpose)
  • Sync Pole Angles: Take care to adjust the IK Rig for the legs and arms according to the new restpose

Note: Normally you would keep the options with their default values. Deviations form the defaults are only rarely necessary.

The Use Bind Pose option

When you enable the Use Bind Pose option then Avastar treats your Rig as if it has a plain vanilla (SL Default) T-posed SL rig plus an initial starting pose ( the Bind pose ). If your rig has not been edited (it is a default SL T-posed rig) then the Bind pose is the same as the rest pose. In that case enabling this option has no effect at all.

The interesting part comes when your rig is edited. Then we still are left with 2 situations:

Situation 1: Bind pose with Rotation-only

You started with the SL T-posed rig and created a new pose by only using rotations. This is a Simple rotation-only bind pose. Note that actually this rig has a lot of Joint offsets on the arms and on the legs (indicated by blue dotted lines in the image). However since the entire transformation from the T-Pose to the A-Pose can be described with one clear set of rotations, there is good news here:

This sort of Rotation-only rig can be transferred to SL without the need of Joint Offsets. This is important as we will see in a few moments.

Most common examples: A-posed rigs.

The Joint Offsets have been indicated with blue dotted lines

Situation 2: Bind pose with Rotation and Translation

You started with the SL T-posed rig as explained in the previous chapter (Bind pose with Rotation-only). But you then created your new rig by editing the bone locations. This editing adds translation to the joints and therefore now you have created a transloc bind pose.

In this case the differences from the T-Posed rig can be described with combinations of Rotations and translations. However now there are many different ways how this new rig can be described:

You could use translations only (as we did with older versions of Avastar) or you can use combinations of rotations and translations in order to minimze the amount of needed joint offsets (which we do since Avastar-2.6)

Again, we will explain in a moment why it is desirable to have as few Joint offsets in the rig as possible. Please keep patient.

Most common examples: Any sort of non humans (creatures)

The Joint Offsets have been indicated with blue dotted lines

A serious caveat…

Regardless of what kind of bind pose you have in your rig, Avastar will calculate the optimal Rig Data that matches perfectly to your working rig and has as few joint offsets as possible for your particular case. The calculated optimal rig is then exported to Collada and finally propagated into the SL importer.

However, while this sounds great you must know that there is a roadblock. Here we are at the heart of all confusion and why i repeatedly mentioned above that it is so desirable to have as few joint offsets as possible:

As soon as a bone needs a joint offset to get in place, its related appearance sliders change their behavior. Technically the bone no longer follows Translations (shifts in location) as imposed by the sliders. Visually the bone no longer moves. But…

Note: Sliders which only impose bone scaling still work as before. But sliders which impose Bone movement (translation) no longer apply. And this is what makes the behavior of the Appearance sliders so shady and so complicated to understand.

 

Sidenote: You ever wondered why sometimes the Avastar Appearance sliders turn red? The red mark indicates: Bone shifting does no longer work for one or more bones affected by this slider.

Tip: Click on the icon on the left side of the appearance slider to see which bones are affected. Bones with a red cross have joint offsets.

This issue affects mostly face expressions and hand gestures. For example when you added joint offsets to the Eye bones, then the Eye distance slider no longer works. That is why you want to have only as few Joint Offsets as possible!

An example …

Sometimes it is inevitable to edit your Rig beyond simple rotations. This happens for example when you need to adjust the hand rig (see images) and the face rig for your custom character. In this case every edit results in additional Joint offsets for the edited bone itself plus all its children!

For the hand in the example image we introduce 5 joint offsets for the first finger bones. But due to the nature of how Joint Offsets are implemented in SL those 5 translations of the first finger bones make it necessary that all the child bones also get joint offsets. So we end up with 15 joint offsets for each hand!

But we got an idea…

And invented a convenient solution

For Avastar 2.6 we have added an optimization to the Collada exporter which automatically minimizes the number of joint edits. For example the hand above only needs translation on the first finger bones, while all other bones can be handled with relative rotation and no need to add relative offsets. And thanks to the way how Bind poses work we can get away with only 5 joint offsets for the first finger bones.

The good news is: Our optimizer runs silently in the background, so you actually do not need to worry about how this is done. It just works. Here are some possible usage scenarios:

Scenario 1: Use Bind pose as you always did

This scenario applies also to all previous Avastar-2 versions as well:

In this case you enable the Use Bind Pose option and do not care at all about any optimizations. Just export as usual. You then import your Collada to SL only with Weights.

This option works best for slightly modified rigs (A-Pose human rigs for example are good usage candidates) especially when you have used only Pose bone rotations for editing your rig.

Only Rotations used

Note: If all works well for you and you never run into issues then this option is most likely what you want to use now and also in the future.

Scenario 2: Import with optimized Joint offsets

This scenario applies since Avastar-2-6

In this case you enable the Use Bind Pose option as well and export. And again export as usual. You then import your Collada to SL with Weights AND with Joint Offsets. This option works best when you have mostly used rotations for your edited rig but you have also added a few translations.

Hand rig edited with translations)

This option works best when you needed (for example) to move the hands to a position that could not be reached with rotations only.

Note: This option may work for a variety of cases . It even works for tinies and giants which use the Armature scaling in Object mode. However the optimization of the Joint offsets might sometimes not create the results that you anticipated. You need to experiment a bit. There is actually another pitfall waiting for you to step in.

A nasty pitfall

When you Use Bindpose then your meshes might initially show deformations and even distortions when you wear them. This is because SL does not know the initial locations of your bones, so it assumes they are all in regular T Pose. But this may be utterly wrong. For example in the next image you see the head is seriously deformed.

In order to avoid such distortions and deformations it may become necessary to force the SL bones into the correct place after you wear the rigged mesh and before you start your own animations on it. But we got a cure for this…

Use a restpose Animation (optional and additional)

When you enable “use Bind Pose” then it often also makes sense to apply a reset animation which enforces the Bones to be placed at their exact anticipated restpose locations. However this reset animation must run constantly as a low priority animation (priority 0) to make sure the bones always find their way back to their optimal location after any other animation has terminated.

Avastar is capable to create the Reset Animation and provide a ready made LSL script that you can add directly into your SL Rigged mesh:

Generate the Reset Animation and a Reset LSL script

When you export to Collada, open the Advanced section and enable with Reset Animation and with Reset Script:

You will use a restpose Animation when the Bone optimizer could not place the bones correctly. This may happen when you used a custom Shape while creating your edited rig in Avastar. In that case it may be possible that SL places the bones to slightly wrong locations which can be corrected by using the Reset Animation.

Scenario 3: Leave Bind pose completely alone

You always have the option to not use Bind pose at all. You may prefer to do this when you are creating a very complicated rig that reuses the SL Bones in creative ways. Spiders and octopuses come to mind…

 

… Quadrupeds come to mind as well …

In such cases you actually do not want bind pose support at all. You might not even want slider support but just provide the rig as it is and unchangeable. In this case you will disable the Use Bind Pose option and always import with weights and with Joint offsets and do not care about Bind pose optimizations at all.

More detailed informations are available here:

Use Bind Pose