Tool for working with the system avatar

Creating avatar shapes, hair, skin, eyes, etc.
User avatar
Ada Radius
Posts: 435
Joined: Sun Dec 23, 2012 6:20 pm
Has thanked: 659 times
Been thanked: 545 times

Tool for working with the system avatar

Post by Ada Radius »

For anyone who is working on mesh attachments for the system avatar, I just uploaded the work I've been doing on the viewer/Character folder, where avatar definitions live. There's a Blender file there that's a replica of the mesh, warts and all, along with the spreadsheets and such I used to get from there to here. It's a draft - still some sliders left to replicate in it.
https://github.com/New-Media-Arts-New-V ... /tree/main
These users thanked the author Ada Radius for the post (total 8):
Ilan TochnerGraham MillsDot MatrixGusher CastaignedeChris NamasteTess JuelKimm StarrChristine Nyn
User avatar
Ada Radius
Posts: 435
Joined: Sun Dec 23, 2012 6:20 pm
Has thanked: 659 times
Been thanked: 545 times

Re: Tool for working with the system avatar

Post by Ada Radius »

I've added some files to the New Media Arts Github - a replica of the mesh attachment armature in Blender, a replica of the system avatar armature in Blender, revised the worksheet. To do: take another look at the way the male avatar is calculated, I had it wrong, and there isn't any useful documentation. This stuff is meant to be a library of documentation and replicas in Blender - template tools, I hope. https://github.com/New-Media-Arts-New-V ... -Character
These users thanked the author Ada Radius for the post (total 3):
Graham MillsTess JuelChristine Nyn
User avatar
Tess Juel
Posts: 267
Joined: Sun Sep 11, 2016 4:24 pm
Has thanked: 249 times
Been thanked: 438 times

Re: Tool for working with the system avatar

Post by Tess Juel »

Seems great but I'm sure I'm not the only one who are a little bit confused about the scope of the project so can you explain a little bit in simple layman terms?

A few questions off the top of my head:
  • Is this intended to be a replacement for the sadly outdated existing system avatar?
  • What kind of changes are within the scope of the project? A better and more detailed mesh? A more advanced rigging? Changes to the skeleton? More shape modifiers? More basic shapes beyond the existing male and female ones?
  • How do we persuade the software developers to implement the new avatar? Viewer developers in particular are likely to be very reluctant to add functionalities not suppoerted by Second Life.
  • I don't know if Kronos has established a standard for virtual reality avatars yet but if they haven't, they certainly will. How will this relate to that?
These users thanked the author Tess Juel for the post (total 2):
Ada RadiusChristine Nyn
User avatar
Ada Radius
Posts: 435
Joined: Sun Dec 23, 2012 6:20 pm
Has thanked: 659 times
Been thanked: 545 times

Re: Tool for working with the system avatar

Post by Ada Radius »

Tess Juel wrote:
Thu Jun 01, 2023 10:52 am

Seems great but I'm sure I'm not the only one who are a little bit confused about the scope of the project so can you explain a little bit in simple layman terms?


A few questions off the top of my head:
  • Is this intended to be a replacement for the sadly outdated existing system avatar?
    Eventually yes. First we need replicas in Blender and far more documentation on what is in the viewer Character folder and how that data relates to the code. The original model was developed in versions of Poser and Maya that no longer exist. Documentation has been thin and some of what is available is wrong.

  • How do we persuade the software developers to implement the new avatar? Viewer developers in particular are likely to be very reluctant to add functionalities not suppoerted by Second Life.
    We don't. Everyone has to use the same version of the viewer Character folder to see everyone else the same way. BUT groups of people might want to use shared viewer data for their purposes, and the tools I'm working on (with much help from Kayaker Magic and Owl Eyes) could be used to do so. For example: 1) educators who need modesty standards built into the viewer avatar without attachments 2)SciFi and fantasy role play, e.g. changing mesh morphs to make an Appearance slider that makes horns on the head.

  • What kind of changes are within the scope of the project? A better and more detailed mesh? A more advanced rigging? Changes to the skeleton? More shape modifiers? More basic shapes beyond the existing male and female ones?

    The xml data and code will support changes to the avatar mesh, once we have an ap that will convert Blender data, dae, or another 3D model format back to the llm format. So yes, changes to the shape modifiers are possible, but not yet. Kayaker Magic demo'd that very thing at OSS - making horns on an avatar head by changing a few numbers in the llm data. He also converted the llm data to dae, which I used to make mesh morph sliders in Blender. He also converted the llm data to a readable format that I used, in a spreadsheet, to figure out the system avatar vertex weighting. But we don't have an ap that will do all that in reverse. Kayaker or Owl Eyes have been working on it, off and on.

    The current code and xml data will support some improvements to the rigging - I demo'd that at the last OSCC by making everyone's neck a meter long in my viewer. But it won't support the kinds of changes needed to make a game industry standard rig. Part of the challenges are the SL Appearance sliders. Unlike other game engines.

  • I don't know if Kronos has established a standard for virtual reality avatars yet but if they haven't, they certainly will. How will this relate to that?
    I don't know - I'd have to see it.
These users thanked the author Ada Radius for the post (total 2):
Tess JuelGraham Mills
User avatar
Ada Radius
Posts: 435
Joined: Sun Dec 23, 2012 6:20 pm
Has thanked: 659 times
Been thanked: 545 times

Re: Tool for working with the system avatar

Post by Ada Radius »

I need to add that, although I've been successful in replicating the mesh morphs (viewer/Character/*.llm) to Blender, I am close to nowhere on the xml attribute param_skeleton, which lives in viewer/Character/avatar_lad.xml.
I was able to replicate the female-to-male toggle with a convoluted set of procedures in Blender, but I can't toggle back and forth. I haven't even started on the other morphs param_skeleton does. It's a short list for the system avatar, and a very long list for mesh attachments. You can see it by going into your viewer software, the Character folder, and opening avatar_lad.xml. Readable, yes. Then it's straight down the rabbit hole.
Last edited by Ada Radius on Sat Jun 03, 2023 5:12 pm, edited 1 time in total.
These users thanked the author Ada Radius for the post (total 2):
Christine NynIlan Tochner
User avatar
Christine Nyn
Posts: 71
Joined: Sat Mar 07, 2020 10:20 pm
Has thanked: 218 times
Been thanked: 126 times

Re: Tool for working with the system avatar

Post by Christine Nyn »

Please forgive if I'm asking something you have already gone over as my knowledge of Blender is practically zero.

The file you refer to, avatar_lad.xml, is as you say readable, if somewhat opaque, but it refers you directly to avatar_skeleton.xml in the same folder.
av_skel_xml.png
av_skel_xml.png (97.28 KiB) Viewed 18739 times
In that file you get what appear to be the acceptable ranges of adjustment for all parts that can be set via the sliders.

Do the figures given in that file bear any relationship to the figures that you have found to work in Blender in your "convoluted set of procedures" ?
These users thanked the author Christine Nyn for the post (total 2):
Tess JuelAda Radius
User avatar
Tess Juel
Posts: 267
Joined: Sun Sep 11, 2016 4:24 pm
Has thanked: 249 times
Been thanked: 438 times

Re: Tool for working with the system avatar

Post by Tess Juel »

Christine Nyn wrote:
Sat Jun 03, 2023 2:07 pm
Please forgive if I'm asking something you have already gone over as my knowledge of Blender is practically zero.

The file you refer to, avatar_lad.xml, is as you say readable, if somewhat opaque, but it refers you directly to avatar_skeleton.xml in the same folder.

In that file you get what appear to be the acceptable ranges of adjustment for all parts that can be set via the sliders.

Do the figures given in that file bear any relationship to the figures that you have found to work in Blender in your "convoluted set of procedures" ?
I can give you some answers here but probably not as good ones as Ada can.

The XML file includes all the parameters that can be set by the avatar shape sliders but also the parameters for various other avatar parts that were worn when the file was saved: skin, eyes, (system) hair, (system) shoes and possibly others. That makes it a little bit complicated but not much.

A second complication is that the values for the parameters are represented with three different scales. What the software actually operates with are 8 bit integers so each parameter (including gender btw) can have 256 different values. The XML file stores the data (still inclulding gender) as 32 (I think) bit floats with a scale from 0.000 to 1.000 and afaik this is also the format used to transfer data between server and client. The viewer, however, only gives us the values in percentage from 0 to 100 except for the gender value which can only be set to female or male (actual values 0 and 255).
Don't ask me why it's done in such a convoluted way. It's a bad habit the early LL developers had, possibly some misguided attempt to make it easier for the user (even though the result was of course exactly the opposite).

Despite those unneccessary complications, it's still managable, you just need to waste some time doing some math - and waste some bandwidth downloading data that is never used. But there's a third complication too and that's the clincher: The modifiable parameters don't correspond directly to the different skeleton bones.
Amazingly, LL has actually documented which bones are affected by each parameter. You can find the list at https://wiki.secondlife.com/wiki/Projec ... fect_Bones but I have to warn you, it's not for the faint hearted and the list still doesn't say how much each parameter affects each bone.

And then, if you scroll down below the list, there's another one for the collision volumes. And yes, it's that too. The avatar doesn't only have the mBones we usually think of, there are also the cBones and if I remember correctly, a third set too.
These users thanked the author Tess Juel for the post (total 4):
Ilan TochnerAda RadiusGraham MillsChristine Nyn
User avatar
Ada Radius
Posts: 435
Joined: Sun Dec 23, 2012 6:20 pm
Has thanked: 659 times
Been thanked: 545 times

Re: Tool for working with the system avatar

Post by Ada Radius »

Yes. You can see my work in the spreadsheet, how I took the xml data and converted it to Blender values.

I used the llm data - the mesh morphs - to make shape keys in Blender, and to calculate vertex weights.

The values in avatar_skeleton.xml to make system avatar armature, and the mesh attachments armature. I'm rebuilding that one in Blender so the bone hierarchy is in the same order as the xml hierarchy. I had the hierarchy OK, but LL has left before right for some bones and right before left for others. I don't know if it matters, but I do know that things I used to think didn't matter, sometimes do.


avatar_lad.xml has a whole lot of data. I used the param ranges in Blender with the mesh morphs shape keys to set the value ranges - the sliders for those in Blender work the same way as they do inworld.

I'm kind of stuck on param_skeleton values - I can get them to work in Blender, but not as sliders. Owl Eyes says we can do it with python drivers.

I haven't started on the tga image files yet - I know it's possible to make sliders in Blender materials. I'm hoping to find someone better at that than I am to help with that.

I am delighted to explain it, best I can. I know from working on similar projects that someone, no matter the experience, could very well come up with the lightbulb idea that gets us to the next step. :)

Christine Nyn wrote:
Sat Jun 03, 2023 2:07 pm
Please forgive if I'm asking something you have already gone over as my knowledge of Blender is practically zero.

The file you refer to, avatar_lad.xml, is as you say readable, if somewhat opaque, but it refers you directly to avatar_skeleton.xml in the same folder.

av_skel_xml.png

In that file you get what appear to be the acceptable ranges of adjustment for all parts that can be set via the sliders.

Do the figures given in that file bear any relationship to the figures that you have found to work in Blender in your "convoluted set of procedures" ?
These users thanked the author Ada Radius for the post (total 3):
Tess JuelChristine NynChris Namaste
User avatar
Ada Radius
Posts: 435
Joined: Sun Dec 23, 2012 6:20 pm
Has thanked: 659 times
Been thanked: 545 times

Re: Tool for working with the system avatar

Post by Ada Radius »

I thought I'd do a few updates and be done with this. But it turns out that I really have learned more since I was working on RuthandRoth a few years ago, and I need to continue rewriting the documentation and adding tools, without cluttering up the forums. If you want notifications when I update, the best way is to make a GitHub login, and manage your notifications: https://docs.github.com/en/account-and- ... scriptions.
Thank you!! to those who are reading, asking questions, making suggestions and finding errors. I deeply appreciate it. Love, Ada
Each One Teach One
These users thanked the author Ada Radius for the post (total 5):
Christine NynIlan TochnerGraham MillsTess JuelChris Namaste
User avatar
Tess Juel
Posts: 267
Joined: Sun Sep 11, 2016 4:24 pm
Has thanked: 249 times
Been thanked: 438 times

Re: Tool for working with the system avatar

Post by Tess Juel »

I'm going through bookmarks I imported from my old computer and came across this: https://avalab.org/avastar/292/knowledg ... -skeleton/

I'm not sure if it's of any help to you, Ada but I post it here just in case.
These users thanked the author Tess Juel for the post:
Chris Namaste
Post Reply