Avastar versus Workbench
This article will hopefully answer your questions about what Avastar has that Blender does not already provide. Therefore we will compare Avastar only to pure Blender using the Avatar Workbench as reference blend file.
Avastar’s primary goals
When we started with Avastar our main goal was to provide an excellent support for creating animations for SL/OpenSim and similar worlds with Blender. But we realized over time that we can not provide this without also providing support for the creation of characters. And we had to understand every little detail about the used skeleton (Avatar) in order to provide accurate tools for Blender.
Avastar’s tools in a nutshell
- Shape Import from SL/OpenSim and similar
- Shape Sliders similar as provided by SL/OpenSim
- Weight Tools
- Retarget support
- Mesh cost calculator
- Optimized Collada exporter
- …
At the end we have created an exact replica of the rigging and animation system from the supported online worlds. So we can be sure that animations made with Avastar will be running in world exactly “as designed” in Blender.
In the following chapters we make a direct comparison between Avastar and pure Blender with the Workbench.blend we focus on the major differences only. Actually Avastar has more features than listed below. For the exact details please check out our reference guides (See the Avastar docs sidebar on the right side of this page)
Avastar: Import/Export Shapes
You can export shapes directly from SL/OpenSim to your desktop. The Shape information (shape slider values) is stored in an XML format.
Avastar provides a Shape importer and an exporter for this format. Hence you can transfer your shapes directly from SL/OpenSim to your Avastar character.
Note: The Firestorm Viewer allows to import Shapes back into SL.
Blender: Import from .obj
Blender does not provide support for importing Shapes. However there is a partial workaround:
Some Viewers provide the ability to export shapes as Objects in Wavefront format. However the exported data is just a “rendered” mesh object, so it contains faces and vertices, but it does no longer contain the original shape parameters.
The exported objects can only be used together with the “simple” Avatar rig as provided by the Avatar Workbench for example. However it is not clear what exact shape the objects will get. That seems to depend from which viewer you make the export.
Avastar: Shape Sliders
Avastar supports all Shape sliders as they are defined in the viewer’s Shape editor. Actually Avastar aims to recreate exactly the same shape in Blender as it is used in world. Provided you use the exact same set of shape sliders values in both systems, the shapes will be accurately the same.
Avastar has implemented all sliders as shape keys and it uses shape drivers internally to create the more complex sliders behavior (some sliders drive multiple shape keys)
Workbench: Shape Keys
The Avatar Workbench contains a set of Shape keys which can be used similar to the Avastar shape sliders. But there is no clear definition of what these sliders actually do. They also work only on the female Avatar.
Note: Of course you can fix the shape keys by yourself and add gender support (male/female). Avastar offers all of this out of the box.
The Avastar Skeleton
The skeleton is the heart of Avastar. Actually the skeleton is separated into 4 sub skeletons:
Pose/Collision Bones
Attachment Bones
Control Bones
The Workbench Skeleton
The Workbench Skeleton only provides the Pose Bones. Also note that the Workbench Skeleton is oriented along the y axis (the character looks towards positive x) In order to make it work with x-mirroring, you will need to rotate the skeleton by 90 degrees and apply rotation. And when you are done, rotate the skeleton back and apply rotation again.
Furthermore the Avatar workbench provides exactly one special skeleton for everything. This skeleton is fixed in size and scale and it does not change with the sliders.
Note: The skeleton orientation is by default “just right for Blender” (Blender prefers the usage of x-aligned characters (facing towards negative y) thus Blender’s mirroring tools all work on Avastar characters out of the box.
Note: Of course you can add Collision Volume bones and attachment bones to the Workbench skeleton. it should work if done right. Avastar provides these features out of the box.
Avastar Bone length sliders
The Avastar skeleton uses the same Appearance Slider system as you can find in SL. Because of this the default Avastar appears exactly like the SL viewer’s default Shape looks.
Workbench: The neutral Rig
The Workbench Skeleton is related to the SL “Default shape”. However the skeleton is actually a bit distorted when it is exposed in Blender (or any other 3D tool):
The scaling of the bone lengths is exactly the same as what you see in world. However the SL Importer does not expect to get ready shaped skeletons. because of this …
The scaling of the bone lengths differs from what you see in world. Actually this is done on purpose and the reason is…
The Collada Export
Some of the Shape sliders also change the skeleton itself. These bone length changing sliders actually change the Avastar rig. Because of this Avastar does not provide a fixed skeleton, but it provides a slider dependent variety of differently scaled skeletons (again similar to how it is provided in the viewer).
Actually the support of slider dependent skeletons is much more complicated than it looks on first sight. The problem is that the bone length changing sliders are applied twice:
- Within Blender the sliders modify the skeleton’s bone lengths. That’s why Avastar provides an exact undistorted representation of the in world Avatar shape.
- When worn in world all bone length changes of the currently worn Shape are applied again. So, if we just export the Mesh then we get wrong results in world.
So Avastar has to cancel out the bone length scaling upon exporting the mesh to Collada. And that is the true reason why we have our own Collada exporter! This recalculation can simply not been done when the default Collada exporter is used.
Rest Pose vs Default Pose
Whenever you import a mesh to your world and wear it, then all bone length changing sliders of the current Shape are applied to the mesh and thus they modify the scaling of the worn mesh as well. This also happens when you use the “default shape”. There is simply no “neutral shape” available which keeps the “original” skeleton scaling intact.
In order to be able to upload matching attachments the skeleton scaling that is used in Blender has been distorted (weirdly rescaled) on purpose, such that all distortions cancel out when you wear your mesh with the default shape in world. And therefore the Workbench skeleton can only be used unchanged and you have to model your mesh creations to fit this skeleton. It works reasonably well, but you have no “What you see is what you get” like with Avastar.
Avastar: Mesh Cost calculator
Avastar provides a panel full of mesh Information. We display all relevant data like number of triangles (after triangulation), Number of used materials, number of UV vertices.Furthermore we have added a rough mesh cost calculator based on a few general assumptions. The mesh cost calculator gives you a rough estimate of the final download costs of your meshes.
Note: Please be aware that the estimator can only calculate very rough values. It makes some very special assumptions about the LOD meshes which could be very wrong. So the reported value can deviate from what the viewer’s mesh Importer will actually display! Please take the calculated costs just as an indicator.
Blender …
There is no immediate support for the mesh cost calculator in Blender.
Avastar: Auto FK, FK, IK
The simplest way to animate a character is by defining the movements of each bone separately. but this is a very tedious and time consuming task. This is where Auto FK comes into play. Auto FK allows to move the limbs and all parent bones will move along in a somewhat reliable and natural way. Avastar’s default setting provides Auto FK
IK is used whenever you need a limb to be “glued” to a specific spot. For example when you want a foot to rest on ground during an animation, then you will use IK. Avastar provides IK and it provides a slider for continuous blending between auto FK and IK.
Workbench: FK
The workbench only supports FK animations out of the box. That is, you only can pose your mesh with rotating the pose bones one by one.
Note: Of course you can add Auto FK and IK by yourself. Avastar offers this feature out of the box.
Avastar: Mesh Check tools
Meshes made for SL/OpenSim and similar worlds have to obey a few rules. For example the total number of texture faces is limited to 8, The number of deform bones per vertex is limited to 4, the total number of animated bones is limited to 32, the number of tris per texture face is limited to 21844, …The Avastar Collada exporter does a few checks on your exported meshes and it rejects an export when one of the checked rules is broken. So this check tool avoids effectively that you export meshes which would not be importable to SL/OpenSim and similar worlds.
Note: Currently the checker does not check all known rules yet. But it is continuously improved over time. The checks and auto corrections currently provided by Avastar is listed on the right side.
Blender Checktools
There is no check tool that is made for testing a mesh for fitness to use in SL/OpenSim and similar worlds when you use pure blender. If you want to mimic what Avastar checks and auto corrects, then do:
- Ensure that the minimal set of needed bones has vertex groups, create empty groups if necessary.
- Ensure that all exported meshes have scale and rotation applied.
- Ensure that all verts of all exported rigged meshes are assigned at least to one weight group and at most to 4 weight groups.
- Ensure that your meshes have no more than 8 materials.
- Remove all non mesh objects from your selection.
- Ensure that you export with the preset “SL/OpenSim rigged”.
- For Animation exports: Ensure that no more than 32 bones are animated.
Avastar: Animation Export
The Avastar animation exporter supports BVH and .anim format BVH is a standard format while .anim is the internal animation format that is used by SL/OpenSim and similar worlds. The anim format gives you more control over your animations. In particular exporting to .anim allows you to also animate the Avatar eyes and it provides more priority levels.
Note: When you lookup the “anim” format on the web, then you will find another specification for it, for example in wikipedia. But this is completely different from what SL/OpenSim uses and it serves another purpose.
Blender Animation export
Pure Blender supports export to BVH format. But the exported BVH files can not be directly imported to SL/OpenSim and similar worlds and need to be further modified.
There is no direct support for the export to .anim format from Blender.
Avastar’s retarget tool
Avastar provides a retarget function which allows to import BVH files and “copy” the animation to an Avastar skeleton. This ‘retargeting’ is normally a tedious process where you have to manually assign corresponding bones, create a reference frame and finally fix the retargeted animation.
Avastar’s retarget function tries to make your life easy. For example we recognize imported BVH animations when they have originally been made for SL/OpenSim or similar worlds, or when they come from the Carnegie Mellon animation database. In these cases the bone association can be ‘guessed’.
Blender’s retarget tool
Blender provides its own tool for retargeting. However we tried to make use of this tool but for some reason we where not able to create reliable animations for the Avastar Rig with this tool.
Maybe someone more skilled can find out how the tool has to be applied either to the Avastar rig or to the Workbench rig. We would be happy to learn how it can be done (if its possible)
Avastar’s Collada exporter
Avastar’s Collada exporter is made for static meshes and for Avastar rigs. It can not reliably export meshes rigged to another skeleton. However as long as you use the Avastar rig for your rigged meshes, it will serve its purpose well. The exporter does a few tasks in the background for you:
- It checks if your exported meshes apply to a few basic rules
- It ensures that all necessary Bone weight groups are available and auto generates missing groups
- It ensures that only the active UV Layout is exported
- It recalculates the exported skeleton such that your attachment will later fit precisely when worn with the same shape as was used in Blender to create the attachment.
Blender’s Collada exporter
Blender’s Collada exporter is an all purpose tool and it comes with a long list of parameters. Actually there are 2 presets available to export “SL/OpenSim rigged” meshes and “SL/OpenSim static” meshes.
However the Blender collada exporter can only reliably export rigged meshes which have been made with the Workbench skeleton. Please do never use the Blender Collada exporter when you attempt to export an Avastar rig. that will never work well !
Note: You can export static meshes either with the default exporter or with Avastar’s exporter. Both work well and as designed. However the check tools are only implemented for the Avastar exporter of course.
Avastar: Welded Boundaries
Avastar automatically welds objects normals when they have common boundary seams (an option of Avastar’s Collada exporter) . Like it is the case for the 3 body parts of the Avastar mesh (head, upper body, lower body)The benefit of this is: the object parts do no longer show apparent seams along their matching boundaries.
Blender welding
Since Blender 2.76 we have got some advanced Normals tools within a Data Transfer Modifier. You can use this modifier to auto weld your meshes. In fact Avastar will replace its own welding feature by the Blender modifier as soon as the feature is stable enough to be used. (Probably Blender 2.77)
In older Blender Releases you can get welded normals with a trick. Create (or find) a script that manipulates the normals as needed, then immediately export with the default Collada exporter.
Note: Your mesh must not contain any modifiers, otherwise this trick won’t work. However you could make a copy of your mesh, apply modifiers, run the script, export to Collada and delete the copy at the end. That should work reliably.
Avastar: Mesh Deformer support
Avastar allows you to export your attachment together with the exact Shape specification (as XML file). The shape specification can later be uploaded to the Mesh deformer Importer. So for example you can create your meshes for the standard sizes and later import these meshes with mesh Deformer enabled and use the exported shape specification file. (For more information please lookup the coresponding documentation of the mesh deformer)Note: You will need a deformer mesh enabled Viewer.
Blender and Mesh Deformer
There is no immediate support for the mesh deformer in Blender. You have to create your mesh around the default skeleton.