You really got me excited about mesh, so I spent a day and figured out how to create and animate a quad mesh avatar. Here is what I did ============== Uploading a mesh ===================== I played around with the toolchain for uploading the simplebot mesh available at http://wiki.secondlife.com/wiki/Mesh/Uploading_and_wearing_a_rigged_mesh First of all, be sure to use blender 2.49b. If you use blender 2.57b, this happens: http://projects.blender.org/tracker/?func=detail&aid=27598&group_id=9&atid=498 http://projects.blender.org/tracker/download.php/9/498/27598/16647/simplebot-incorrect.png To export the mesh from blender the same way he did: 1. Select the bot mesh and skeleton both in object mode (shift-right click to select several objects) 2. do file > export > collada 1.4 3. make sure "export only selection" and "Triangles" is selected 4. do export Triangles seems to be optional, but is how he exported it, if I compare the files Export only selected is rather important. Without it, it exports stuff other than the mesh, which doesn't seem like a problem, but when you wear the mesh in secondlife, you float. To not float, you need to select the mesh before exporting, and make sure that "export only selected" is on If you selected the mesh but not the skeleton, you won't be able to import joint offsets from the .dae file To import the mesh: 1. Open the inventory tab 2. from the + button at the bottom, do Upload > model 3. select the .dae file you created 4. Under the Modifiers tab, check both "Skin Weight" and "Joint Position" 5. (optional) to preview the mesh motion without uploading, press the gear menu above the proview, and check "Show skin weight" 6. (optional) You can try previewing the model with joint offsets, but this currently does not seem to work, even though the model uploads with the joint correctly set (I tested by stretching the avatar) 6. (optional) give the model a name (it's easier to do here than in inventory, since mesh upload creates 2 or more assets 7. Press the upload button To wear the mesh, simply double-click the object that was created in the object folder. I don't yet know if there is anything you can do with the mesh asset created in the Mesh folder Something I still havn't figured out: when I attach and detatch the mesh avatars I uploaded, my eyeballs disappear. This doesn't happen with the ones he made ======================== Demo Quad Mesh ============================= Once I figured out basic uploading, I decided to try converting the mesh to a quad, and making an animation for it. So, I rearranged the skeleton of the simplebot mesh, and merged the simplebot and bvh blend files. Eventually, I got both mesh upload and animation upload working from the same blend file. Things I learned in the process, which you won't find immediately useful: - both the skeleton and mesh must be oriented so that, in their local coordinate system, x faces forward, y faces left, z faces up. This violates the blender convention of y facing backward, x facing right, and z facing up, but oh well. The mesh and skeleton can be rotated in object mode to any orientation, as long as they are oriented as such in their local coordinate system - Skeletons must have an object scale of 1.0 in every dimension; they don't export correctly otherwise - Undeformers undeform an avatar deformed by a mesh with joint offsets, at least temporarily. havn't tested this extensively I'm emailing you the blend file I used to make the avatar and animation, and sending you a box on aditi with my demo quad mesh avatar to both Tyrian Slade and Guardian Faith. ------ Contents of the file ----- Layer 1: The animation skeleton, named "Armature". Pose this to animate the avatar Layer 2: The avatar mesh, named "Avatar" Layer 17: The collada skeleton, named "DAE Skeleton". It is constrained to always follow the animation skeleton on layer 1, so you don't need to touch it when animating. This deforms the mesh on layer 2. Layer 19: A set of empties, parented to the skeleton on Layer 1, used by the bvh exporter. won't need to touch these most of the time Layer 20: another set of empties used by the bvh exporter. You don't ever need to touch these You'll mostly work on layers 1 and 2. To export the mesh, you need to select the mesh "Avatar" on layer 2 and skeleton "DAE Skeleton" on layer 17, then do export. You can do this in the outliner without having to show layer 17; just shift-right-click both objects in the outliner until they have a pink circle around their icon ----- Rigging the mesh (editing the skeleton) ----- You can edit the mesh in the blend file and make animations pretty simply. However, changing the skeleton is a little tricky, so I'll walk you thru that. Uploading is easy to. you can shift-right click the The skeletons on layers 2 and 17 need to be identically shaped in edit mode. additionally, the empties on layer 19 should be positioned at the joints of the skeletons (this may not be necessary, but is probably a good idea). So, once you are happy with the shape of the mesh and are ready to start posing it, do this: 1. Save a copy of the blend file, in case you mess up 2. Show layers 2 and 17 so that you can see the mesh and the DAE skeleton 3. Select the DAE skeleton and go into edit mode 4. Position the joints of the skeleton where they belong inside the mesh Here begins the tedious part 5. Once that is positioned, open up another 3d window showing layer 1 (the animation mesh "Armature"). Also, in one of the 3d windows, open layer 19 with the empties 6. For each joint in the avatar, copy the position from the DAE Skeleton to the Armature. Here's the only way I know how to do that: - Select the joint - Press Shift-S - Press Cursor -> Selection. This places the 3d cursor on the joint - press tab to stop editing the DAE Skeleton - move the mouse over to the window with the Armature - select the armature, if it isn't already - press tab to edit it - select the joint cooresponding to the one you'd selected in the DAE mesh - Press Shift-S - Choose Selection -> Cursor. This moves the joint into the same place it is on the DAE mesh - stop editing the Armature (tab). - Select the empty cooresponding to the selected joint, and position it (Shift-S, Selection -> Cursor) - edit the DAE mesh again (tab), and repeat this process for another joint Note: DO NOT ROTATE the empties on layer 19, or the animations will not export correctly Sounds like that process may be a good first blender script for me to write. Until then, that's how to edit the skeleton ------ Bugs ------ The height of the mesh and animations above the ground doesn't coorespond with how they look in blender. I'll look into this later to see if it is fixable I think the empties on layer 19 are rotated a little off for the back legs; animations are slightly twisted for them When I detatch the mesh avatars exported by blender, my eyes (and any eyeball attachments) vanish until I relog ------ Zafara Notes ------ Stuff I learned uploading the zafara: Having problems? Check the log (ctrl-shift-4): Import errors start with the text "INFO: LLViewerTexture" Every vertex must belong to some vertex group. If not, the upload window will say "Dae parse error - see log for details", and the log will say something like: INFO: LLViewerTexture::verifyCount: Error: (expected/got)4382/0verts - The mesh must contain all 21 vertex groups, even if some vert groups are empty. If it does not, when you check the "skin weights" check box, the upload button will be greyed out and the log will say something like: 2011-06-14T04:33:41Z INFO: LLViewerTexture::isRigSuitableForJointPositionUpload: Asset did not contain the joint (if you're u/l a fully rigged asset w/joint positions - it is required).mFootLeft 2011-06-14T04:33:41Z INFO: LLViewerTexture::isRigLegacy: Asset did not contain the joint (if you're u/l a fully rigged asset w/joint positions - it is required).mFootLeft For more info about this see https://jira.secondlife.com/browse/CTS-608 - Alpha bug still exists on meshes; don't use skins with alpha