Export your Work

After you have changed your Avastar character’s shape to your likes, you are ready to begin with working on your mesh attachments. However, this is a first step document, so we will take a moment and demonstrate how you can take the Avastar character back into Second Life. And what you see here is the very same procedure that you will later use for exporting your attachments (see “Create an Attachment”):

How to use the Collada Exporter - Read more...

The Collada exporter exports your Mesh character or mesh attachment to a form that is recognizable by the target System (SL, OpenSim or any compatible online world). You find the Mesh Exporter in the Blender Export menu.

The Exporter opens with a file selection window where you can select the file to where you want to export, or you can type in a new filename.

Note: If you prefer to see the Collada exporter in the Tool Shelf, then you can customize the Avastar Add-on Preferences.

Image355

The Export option Panel

Hint: You usually can keep the default settings and just click on the “Collada(Avastar)(.dae)” button in the upper right corner of the Window (see zoom icon in this chapter title).

A File Selector will pop up. Here you can navigate to your export directory and then export your file as a Collada file (using the file extension “.dae”)

The Export option Sub-panels

The Exporter provides a couple of export options for special cases. Please use these options with care.

Modifiers

By default Avastar applies all mesh changing Modifiers except the Armature Modifiers to the exported meshes. However, some modifiers offer 2 sets of options, one option set is for rendering, the other option set is for the Viewport. We offer 3 options here:

modifier_export
  • Apply according to the View Settings (the 3D Preview settings)
  • Apply according to the Render Settings (the settings for Blender’s own Renderer)
  • Don’t apply modifiers and only export the base mesh

The exporter by default applies the View settings. These settings are very closely related to the Blender Render System. In most cases you can actually just use the defaults. We will get back to this when we talk about how to use (or not use) Modifiers.

Side note: The Armature Modifier

Armature Modifiers define the relation between your meshes and your Skeleton (Armature). Avastar never applies the Armature Modifiers when exporting because the mesh would be transformed to static non rigged Meshes. This is almost never what you want.

For the curious: You find the Armature modifier in the Modifier Stack (see image). Remind: Armature modifiers are always defined in the mesh modifier stack. Armatures them self have no Armature modifier.

We will get to armature Modifiers in the “Create an Attachment” tutorial.

modifiers

Hint: You want to display the modifier in edit mode and adjust edit cage to modifier result

Textures export (advanced)

You can export images along with your models. In that case Avastar stores the images as files on your disk and adds a reference to the Collada file. The SL Importer knows how to read and import these images for static meshes.
Note: But for rigged meshes the images are not recognized.
texture_export
  • UV Textures & Material Textures: Blender supports Material based textures and UV textures (which are directly assigned to polygons). Normally you want to export only the UV textures. In rare cases it is more desirable to export the material based textures instead. But beware, Blender does not export the render results, but only the source images!
  • Image Type: The image format is typically predefined in the Blender Render settings. However we found it convenient to offer an immediate setting in the Exporter. By default the exporter applies the image type only to generated images.
  • Use ‘Image format’ for all images: If you set this option, then Blender will use the selected image format for all exported images. If you disable the option, then only the generated images are affected.
  • Use RGBA: Blender can export the Alpha channel for images. Normally you set this in the render settings where you can specify to use either RGB or RGBA for image exports. If the selected export format supports Alpha then enabling RGBA here will export images with Alpha channel even if the render settings are set to RGB and vice versa.

Hint: You may want to NOT use RGBA because of the Alpha glitch. However this is not a general advice. There are many situations where using Alpha images is even recommended (when you want to create an Alpha mask).

Hint: If the format of the exported image(es) does not support an Alpha channel then the “Use RGBA” option is simply ignored.

Advanced options

The Advanced Options are related to some special issues. You should normally keep the options set as they are. This ensures your exports are well suited for SL. However in some situations you will have to get back here and set the options according to the descriptions below:

use bind pose

Apply Armature Scale: If you have scaled your Armature in Object Mode for making a tiny or a giant you should not apply the scale to the armature because then the entire Avastar Animation system may no longer work. But the Object Scale must be applied when you export the mesh.
Otherwise the target online world does not recognize the scaling and the giant shrinks back (or the tiny grows back) to normal size. The apply Armature Scale option ensures that the Object scale is applied in the exported Armature.
Apply Rotation & Scale: If you have Scaled or rotated your Objects in Object Mode then this Scale&Rotation should be applied to all objects of an export to avoid unexpected scaling and rotation issues within the target system. However this is all so often simply forgotten and sometimes even unknown.
Hence we have added an automatic apply Rotation&Scale to the exporter. This setting does not affect the original objects.
Weld Edge Normals: When two separate objects share a boundary line, then you typically see a boundary seam in the object texture. This happens because the vertex normals differ even if the adjacent objects share the same vertex locations.
The exporter recalculates the vertex normals at the adjacent boundaries of the selected objects.
Weld to all visible: Sometimes you want to only export one part but still want the vertex normals be fixed.
This option lets the exporter take all visible objects into account when calculating the vertex normals at object boundaries.

Bone Filters

Export with Joints: When you have edited the Armature to adjust the Rig to your special character (Alien, creature, pet…) then you normally want to keep your edited Armature when you export your Meshes.

Hint: You want this option disabled only when your rig is so complex that Avastar can not calculate the Neutral Rig for your situation. In that case please set the sliders to SL Neutral and never touch the sliders again.

Disabled: Export the Rig visually as it is. Note: You must make sure that the Appearance Sliders are reset to the SL Neutral Shape (White Stickman Icon). Otherwise Avastar rejects the exports.

Enabled: Calculate the neutral skeleton from the current rig settings (temporary set Sliders to Neutral SL Settings) but apply the current Slider settings as bind pose. Pleased refer to the Bind Pose document for further explanations.

Only Weighted Bones: Avastar can export all deform bones of the Rig. However in most cases it is enough to only export the deform Bones which are actually used (weighted to meshes)

Hint: You want to enable this option in most cases.

Disabled: Export all deform Bones unconditionally
Enabled: Export only those bones which are actually used (have weights for meshes)

Only Deform Bones: Avastar has many control bones (mainly for IK-animation, targetless Animation and attachment points) Avastar can export all Bones of the rig, or only the Deform bones

Hint: You want to enable this option in most cases.

Disabled: Export all Bones in the Rig unconditionally
Enabled: Export only deform Bones

Include Parent Hierarchy: Ensures that all parent bones of exported bones are also exported, even if they have no weights defined.

Details: When you enable the above bone filters then it can happen that not all bones of a Bone chain are exported. This becomes a problem when one or more of the not exported bones have Joint edits defined. Those definitions would then get lost during export.

Hint: You want to enable this option in most cases.

Disabled: Do nothing
Enabled: Take care that all parent bones of exported Bones are also exported.

Export Bone Roll: Export Bone Roll using the Blender Collada Scheme.

Hint: This is only useful when you want to later import back the Dae file to Blender.

Disabled: Do nothing
Enabled: Export the Bone roll according to Blender’s Collada Scheme

Export Bone layers: Export Bone Layer Data using the Blender Collada Scheme.

Hint: This is only useful when you want to later import back the Dae file to Blender.

Disabled: Do nothing
Enabled: Export the Bone Layer data according to Blender’s Collada Scheme

Export with Blender Profile: Use Blender Collada scheme for exporting Blender specific Information

Hint: This is only useful when you want to later import back the Dae file to Blender.

Disabled: Do nothing
Enabled: Export Extended Options according to Blender’s Collada Scheme (XXX: to be clarified)

Export with SL Rotation: When you export an Avastar Rig then it must be rotated according to the SL Standards (so that the character looks into the positive X direction).

Hint: You want to enable this option when you export to Second Life or similar worlds.

Disabled: Do nothing
Enabled: Rotate the Rig by 90 degrees to make it compatible to the SL specifications

Accept Attachment Weights: SL does not allow weighting of attachment points. Hence we suppress the export of weights for attachment points by default.

This option should indeed never be used for SL! Handle with Care. It is very likely that the SL importer rejects meshes with attachment point weighting at some time in the future.

 

Sanity Checks: Perform tests on the Mesh (tricount, texture face counts, etc…)

Hint: You want to enable this option in most cases.

 

Unsupported Options

Avastar also provides some advanced export options. However those options are not shown by default as they are only rarely used.

You enable these options in the Avastar Add-on Panel (where you initially enabled the Add-on after you installed it):

reference-060

Tick the advanced export options to get the buttons in the UI

Image357

Advanced Export Panel with unsupported options enabled

Limit Weight Count: In SL the number of weights per vertex is strictly limited to 4. We believe this number is enough for all weighting tasks. In cases where you think this limit is too low, we always found the real problem was due to bad mesh topology and bad rigging.

Setting this number affects the maximum number of weights which are exported by Avastar. We strongly recommend to keep this number set to 4.

Include Deformer Shape: Some virtual worlds support the Mesh deformer which was originally developed for usage in Second Life.
When you enable this option, then the exporter creates an extra xml file. This XML file is later used by the SL Importer as reference shape (the Importer must support Deformer shapes, currently used with OpenSim)

Troubleshooting an export- Read more...

Troubleshoot Collada Export Warnings/Errors

Messages from the Avastar Collada Exporter:

  • M001 : Limited weightcount to 4 for nnn verts in Mesh sss
    Your Mesh has vertices where the number of assigned Bone weightmaps exceeds the number of allowed weightmaps (4) SL supports up to 4 weightmaps per vertex. Avastar has fixed this for you by reducing the number of weights on affected vertices. Caution: This automatic fix may affect the visual shape in SL.
  • M002 : Found nnn zero weighted verts in sss
    Your mesh contains vertices which have weightmaps assigned, but all weights sum up to a value of 0. Caution: This may result in unexpected behavior and distortions when later uploaded to SL.
  • M003 : Bone sss is not defined in SL. nnn weights not exported
    Your mesh contains bones and related bone weightmaps which are not recognized by SL. The bones and weightmaps are ignored.
  • M004 : The Mesh sss uses nnn Bones while SL limit is nnn Bones per Mesh
    Your Mesh has vertices where the number of assigned Bone weightmaps exceeds the number of allowed weightmaps (4) SL supports up to 4 weightmaps per vertex.
  • M005 : High Tricount nnn in material face [sss] of mesh sss
    SL allows up to 21844 triangles per texture face. Your mesh contains texture faces with more triangles. the SL Importer will cut your mesh into pieces so that the maximum triangle count is obtained per texture face.
  • M006 : Image [sss] from material [sss]: not found on disk
    The image is not available at the specified location on disk. This may happen when you got the blend file from someone else but the images have not been loaded into the blend file.
  • M007 : Image copy failed
    The image could not be copied from the source to the destination. Typical issue: Missing write Permission or Disk full.
  • M008 : Armature [sss] not an Avastar Rig (can’t export mesh [sss])
    The Mesh uses an Armature that was not recognized as an Avastar Rig. Avastar can only export rigged mesh that is rigged to Avastar Rigs.

MAV_BLOCK Parsing error

If you create small objects with disconnected sub-meshes, then you often get errors labelled as MAV_BLOCK Error when you try to upload your mesh to Second Life.

The image aside gives a nice example of a single object that is made of many smaller disconnected submeshes. While there is nothing wrong with this mesh, the SL Importer often has trouble to import the mesh.

reference-058

The reason for this issue is hidden somewhere in the Second Life Upload process. We believe the reason for the issue is that the SL Importer deletes Submeshes when they become too small. Then suddenly a part of the Mesh gets removed and this can end in a situation where a complete texture face is no longer available in one of the LOD’s. Then the SL Importer runs into this issue.

A known Workaround

In all cases where small submeshes where involved, we found that adding your own (simple) physics mesh to your Object solves the problems:

  • Create a simple mesh like a cube or a tetrahedron for example. The size of the mesh does not matter.
  • Export this simple mesh as Collada file
  • Import your Mesh as usual.
  • But before uploading visit the physics tab of the SL importer
  • There add Physics mesh from file
  • select your simple object

Now the upload should work.

DAE Parsing Errors

Second Life users frequently report a Dae parsing error. We found a couple of situations where this error appears (see below). However, in general your first step is to look into the Second Life Viewer Logfile…

Find the Viewer Logfile

The logfile is named SecondLife.log (assuming you use the default SL Viewer). Different viewers might use different names.
Typical locations where the logfiles can be found:
Windows XP C:\Documents and Settings\%USERNAME%\Application Data\SecondLife\logs\
Windows 7 C:\Users\%USERNAME%\AppData\Roaming\SecondLife\logs\

Typical causes for this issue

Special characters in Object names

Most dangerous characters are: & < ! > # $ ‘ “

Resolution:

Remove special characters in Object names and then export again

Special characters in File names

Most dangerous characters are: & < ! > # $ ( * ) [ ] { } ‘ “

Resolution:

Remove special characters in file names (renaming the .dae file should be enough)

Extremely dense Meshes

Please check if your mesh contains areas with very small triangles (edge length smaller than about 1 millimeter)

Resolution:

Try to avoid high resolution meshes. You are doing better when you put high density into textures and normal maps (Normal maps are now supported by Second Life)

Orphaned edges and vertices

If your mesh contains edges which do not belong to any face or disconnected vertices.

Resolution:

Remove these edges and vertices.
Hint: in Edit mode Select -> Non Manifold to find candidates. You may want to disable the “boundary” option in the operator panel.

Duplicate Vertices

If your mesh contains duplicate vertices this can cause issues. However sometimes duplicate verts are on purpose (for example when you use the split edge modifier in Blender 2.73 or older) so you need to test if this issue is caused by split edge or by accidental duplicates.

Resolution:

Remove the duplicate vertices.
Hint: in Edit mode ‘W’ -> Remove Doubles to delete the duplicates.

My mesh looks OK in SL but it does not fit.

This can happen when you use Appearance Sliders together with a Mesh that uses Collision Volume Weighting (Fitted mesh). In this case you must export your work in the Secondlife Restpose.

  • Click on the white stickman icon to reset your pose to the SL Restpose (no worries, Avastar preserves your edited joints)
  • Make sure that you export the mesh with the male gender disabled (yes! that is important)

Note: The Avastar Collada exporter automatically applies scale and rotation to your mesh attachments. However it is still a good idea to apply scale and rotation also in blender, because some blender tools are affected by these settings as well!

Important: In some cases you may want to modify (edit) the Avastar character meshes. For example when you want to …

  • Create a tiny or a giant.
  • Add extra shape beyond what you can do with sliders.
  • Modify the Avastar Meshes into something totally different.
  • Join the character parts to have one single mesh body

Well, you actually can do this. But you must convert the Avastar Meshes into regular custom meshes ( see the Freeze option in the Avastar Tool Box).

If you do not prepare (freeze) the Avastar meshes, then you have a good chance to break Avastar and create wild results as shown below:

broken_avastar

Unexpected results after small edits in the Avastar meshes

The technical reason for this behavior

Avastar needs to translate the slider settings into the final shape as you can see in the Blender 3D View. However the shape calculation is based on a hidden reference shape. This reference shape is created once when the sliders are setup for the character. And Avastar relies on the reference shape having the same mesh topology (same number of verts, edges and faces) as the visible mesh.

But as soon as you edit the visible mesh you introduce a difference to the reference shape. Then it becomes likely that Avastar gets everything wrong. And things like in the image above can happen.

You can get over this by freezing the Avastar character. Basically you then remove all shape keys from the character. What this means will be explained later.

All of this can be done easily, but you need to prepare the meshes first as described in the “Editing Avastars” workflow document.
Next — Import