Working with SL Shapes

About this Document...

Content:

  • Export a Shape from Second Life.
  • Import a Shape to Blender.
  • Export the Mesh to Collada.
  • Import the Mesh to Second Life.

The Video content:

  • Export Shape from Second Life.
  • Import the Shape to Blender.
  • Modify the Mesh.
  • Export the modified Mesh to Second Life.

What does Avastar provide?

Avastar basically supports the creation of animatable Models (Avatars&attachments) and the creation of animations. Therefore the tool adds various functions and user interface elements to Blender.

The full functionality of Avastar can be a bit overwhelming on first sight. You should be prepared to spend some time and patience to get it all working nicely for your projects.

What does this Document provide?

You learn how to get a visual exact copy of your Avatar’s Shape into Blender and modify the Shape by using the Appearance Sliders. Finally we move the modified Mesh back to Second Life.

This document only shows you how you transfer your Avatar between Second Life and Blender. What you actually do with your Avatar inside of Blender is only limited by your own creativity.

We expect that you have basic knowledge about Blender.

Export your Shape from SL or OpenSim

The procedure to export the Character shape may vary depending on which viewer you actually use. We use the default SL Viewer.

How to export your Shape from SL

Enable the Develop Menu

Ensure that you have the Develop Menu in your menu bar. If you can not see this entry, you can enable it by pressing CTRL+ALT+Q (on Windows)

Call Appearance to XML

Open the Develop menu and proceed to the Avatar entry
From Avatar proceed to Character tests
And from Character tests proceed to Appearance to XML

By now your current Shape data has been copied to a local file on your computer. You find this file in your application folder. For me (on Windows 7) it is in:

C:\Users\gaia\AppData\Roaming\SecondLife\logs\Gaia_Clary_nnn.xml

(where nnn is a number)

Note: the file path contains your Windows user name (mine is gaia) and your SL user name.

Import the Shape to Blender

How to Load your Shape into Blender

The Second Life Shape Importer

Suppose you start a fresh Project with an empty scene. You already have downloaded your personal Shape from SecondLife as a local Shape file (in XML Format). All that you want is to create a new Avastar character with exactly this shape.For this purpose we offer the XML Shape importer within the regular Blender Import menu:

File -> Import -> Shape as Avastar

The tool first opens a file selector where you select the XML shape. Then the tool creates a new Avastar character, and finally applies the imported shape.

 reference-005

Replacing an Avastar Shape

Suppose you already have your Avatar in the scene. You only want to apply the local Shape file to your existing character. Avastar is capable to do that. We can import and export shapes from OpenSim or any compatible online world. You find the Shape import/export functions in the Object properties of the Avastar Armature:

  • Go to object mode.
  • Select the Rig (RMB on the yellow circles around the mesh).
  • Open the Properties window.
  • Navigate to the “Object” properties.

There you find a panel Avatar Shape IO. This panel displays a Preset selector and a subpanel with 4 main functions:

appearance_io_01

The Avatar Shape IO Options

Load Shape (Import a shape)

This function allows you to upload a Shape that you have previously exported from your online world: In most viewers there is a shape export option hidden in the advanced menu (“Advanced” -> “Character” -> “Charater Tests” -> “Appearance to XML”). This will silently create a file called:

[application_folder]\Roaming\SecondLife\logs

This file contains your current shape and can be loaded into Avastar, where [application_folder] is the viewer’s application data folder. For Windows this folder is located at:

C:\Users\<username>\AppData

Save Shape to

By default this function creates a new Shape file with your current shape settings. This file can later be used for Load Shape (see above). Right besides the function you find a selector for the save destination.
As mentioned above the default option is to save to File. But you can also save to a Blender textblock. In that case the slider values can be found in the Blender text editor panel. The values correspond to the shape settings in the SL viewer.

Note: Some viewers support the upload of shape file to SL (e.g. Firestorm, Singularity). To see the file, switch to the Blender Text editor and locate Shape for: Avatar (Avatar stands for the name of the Armature). Useful when you need to update the shape in SL with the values from blender.

Refresh Shape:

This resets the Avastar meshes to the current Shape values. Useful together with the new custom shape key function. Also if you messed up the Avastar meshes (by editing them) you can return the mesh back to the current shape slider values.
Warning: if you added or removed vertices from the Avastar meshes, this function will fail!

Delete Avastar Shapes

Remove all Shapes from the Avastar character. You will want this when you use the rig for non human characters where keeping the Avastar human meshes make no sense.

Load Appearance Sliders

When you load a blend file which contains an Avastar Character, then the Shape panel sometimes only displays the “Load Appearance sliders” Button. This happens when you just have started Blender.

Activating the button loads the appearance setting controls. We added this for optimization purposes as it takes a few seconds to initialize the Avastar shape system.

 

By now the Avastar default Mesh character has been reshaped to precisely match your own mesh character. Note, that your imported character is rigged and weighted already. There is no need for any additional step. However you can still change the Avatar shape by using the shape sliders.
You find the Shape Sliders in the object properties section, right below the Load Shape button. We provide the exact same shape sections in Avastar as you can find in the SL Shape editor. The sliders are supposed to behave exactly in the same way.

Hint: The sliders are a bit slow sometimes. Currently there is not much that we can do about that.

Export to Collada

Export your Character as Collada

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 Tool shelf. The Collada Panel has quiet a few options. we explain all of them now.

Hint: You usually can keep the default settings and just click on the “Collada(Avastar)(.dae)” button. 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”)

reference-039

The Collada export Options

The Export option Subpanels

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 have 2 sets of options, one option set is for rendering, the other option set is for the Viewport. We provide 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 View settings will be applied by default. 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.

Armature Modifiers define a relation between your mesh and your Skeleton (Armature). You find the Armature modifier in the Modifer Stack (see image). Armature modifiers are always defined for the mesh. 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 the images will be stored as extrafiles and a reference is added 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 provide an immediate setting in the Exporter. By default the image type will be applied ONLY to generated images.
  • Use ‘Image format’ for all images: If this option is set, then Blender will use the selected image format for all exported images. If the option is disabled, then only the generated images will be affected.
  • Use RGBA: Blender can export the Alpha channel for images. Normally this is controlled in the render settings where you can specify to use either RGB or RGBA for image exports. If the currently 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 (for example 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:

reference-059

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 (details need to be documented). But the Object Scale must be applied when you export the mesh.
Otherwise your scaling will not be recognized in your target online world and the giant shrinks back (or the tiny grows back) to normal size. The Applay 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 exact same vertex locations.
This option 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.

Unsupported Options

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

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

reference-060

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

 reference-046

Limit Weight Count: In SL the number of weights per vertex is strictly limited to 4. We believe this number is sufficient for all weighting tasks. In cases where this limit seems to be 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 this option is enabled, then an additional xml file is created that can be used as reference shape if the Importer supports this feature (currently used with OpenSim)

With 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 import of meshes with attachment point weighting will be rejected in the near future (by end of 2015).

Import your Character to SL

Once you have exported your Mesh character, you only need to import it to your target System (like SL or a compatible online world). Although this is easy in principle, there are a few pitfalls in your way. So let us take a deeper look into the Mesh Importer.

The Video explains:

  1. How to import a rigged Mesh to SL, OpenSim or similar online worlds.
  2. How to use an Alpha mask for hiding the default character
  3. How to use image textures to texturise your character.
  4. Potential problems with your meshes (visible seams, wrong shape, missing face animations)
This video has been made in SL. But it applies also OpenSim or any other OpenSim based world as well. Also the video does not depend on Blender, but it is a general purpose tutorial for the SL Importer. Below you find the import procedure explained in pictures.
Hint: Did you know that Linden Lab provides another world very similar to Second Life, where you can upload your meshes for free? The Beta Grid is a perfect way to test your mesh creations before you finally upload them to Second Life.

The Upload Panels in detail

Upload the model (import the Collada file to SL)

You can start an upload directly from the main menu bar as shown in the image above.You also can start an upload from within the repository view.

The LOD Panel (The entry page)

The model uploader starts in the LOD panel. Here you can define all your levels of detail or let them calculate automatically. We currently have no LOD files, so we keep this panel as it is.
Note: You always can get detailed help from the help button in the upper right corner. For now you can proceed by switching to the Upload options tab.

The Options Panel (Here you enable rigged mesh)

Normally the uploader will only upload the mesh, but no animation data. If you want to also import the rig data (the mesh weights), then you have to include “skin weights”. Please keep the button “Include joint positions” unchecked unless you know exactly what you do. we will get to this advanced feature later.
Also note that you can checkmark the “skin weights” below the Preview window to see if your mesh is properly weighted. But checking the skin weights here has no influence on the upload! This is so common mistake! If you ever are “sure that your mesh is weighted” but remains stiff when worn, then there is a good chance that you forgot to enable “Include skin weights” on the left side!

Step 4: (Optional) Import your Shape back to SL

Sometimes you might have modified your Shape In Avastar. And maybe you want to get your modified Shape back into Second Life. While the default SL Viewer does not provide a Shape Importer, most other third party viewers offer such an option nowadays.

Exporting a Shape from Avastar

You can export your current shape from Avastar to File as follows:

  • Ensure Blender is in Object Mode
  • Select the Avastar Armature
  • in the Object Properties locate the Avatar Shape panel
  • There you find a Save Shape To option
shape_exporter

Importing a Shape to Second Life (using Firestorm)

You can import your shape back to Second Life with the Firestorm viewer as follows:

  • Enter the Appearance Editor in your Firestorm Viewer
  • Down in the right lower corner of the editor you find an Import option
shape_importer

The Firestorm Viewer provides an Import Option right within the Appearance Editor.

Now we are done with our first Mesh creation. You can simply wear the mesh and see how it moves with the default animations…