Jump to content

Project Bento Feedback Thread


Linden Lab
 Share

You are about to reply to a thread that has been inactive for 2276 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

  • Lindens

This may or may not be relevant for the tools you're working with, but it might be worth mentioning how SL itself handles male vs. female skeletons. The skeleton you see in avatar_skeleton.xml is really the female skeleton when not influenced by any sliders. So how do we get to the male skeleton? It's controlled by a slider in avatar_lad.xml, the slider with id="32", name="Male_Skeleton". It's kind of a pseudo-slider, because you can only set one of two possible values. If the shape editor has female selected, the value of the slider is 0, and no alterations are made to any of the bones it references. If male is selected, then the value of the slider is 1, and the specified scale or offset values are applied to the referenced bones.

Now in the case of the pre-mesh system avatar there are also multiple models, so picking male or female will affect the skeleton by way of slider 32, and will also affect which model is used: the male or female base model. In the case of rigged meshes, it's up to the user to pick a mesh that has any appearance of their choosing, but under the hood, the skeleton is still being driven by the same sliders.

Link to comment
Share on other sites

Yes ~ that is what I described in my post above yours.

 

As for fixing the problem~  recall what I said about moving the bones making the connection nodes in Maya move and what looks like a visual representation of the bone nodes rotating occur, but not actually rotating the bone the way it looks?? 

 

Here's a visual representation of what you're doing (done in 3ds max rather than Maya) :

http://i.imgur.com/n0fMFbj.gif 

Notice how the connective  bars move ( which makes the bone look like it was rotated ) but the bone itself is still sticking out way off in a strange angle.

Hopefully this might help explain where you're going wrong.

 

EDIT FOR CLARITY : I'm reproducing what you're doing wrong, in an attempt to show you what you're doing wrong.

 

Edit::

Ty Whirly and VistaAnimations for posting the hands video.  I didn't think there was anything wrong with the rig as-is ~but I've been listening to people complaining about the bone setup in the hands for awhile now~~  so much so that my confidence in my rig was beginning to get shaken.

It's good to see they're working as intended in an actual product demo~  rather than in my little "make sure it's not broke" tests.

Link to comment
Share on other sites

sorry, LOL! I guess I've misinterpreted some of the things you said. How would I go about correctly repositioning and locking the joints? to my knowledge this is the only method of altering the default joint positions, since the uploader only locks transformations and not rotations. Is this a maya issue, or a more universal one?

Link to comment
Share on other sites

You'll have to come up with your own solution to the problem.  I don't have a magic one for you.  I was merely pointing out why you are having the problem you are having so you can start solving it.

 

I know Cathy Foil sells MayaStar ~ which I would assume (but I don't really know!! ) deals with these issues~ and many others.

Link to comment
Share on other sites

Hi Sea Set,
I have had a number of mesh hand designers, who use Maya or my MayaStar, contact me with similar problem you are having.
I spent all afternoon and evening  working out all the bugs yesterday.  It would take too long for me to type everything out so I made a video.  It is almost an hour and fifty minutes long.  I tend to go into a lot of detail and repeat things that are very important to remember.  I know I could cut the time down quite a bit if I scripted it out but I just tend to wing it.

I hope this helps. :)
Cathy

  • Like 1
Link to comment
Share on other sites

After reading the last few posts i thought it was a good idea to check our own tool as well. This is a hand rig in default rest pose. The Rig is constructed from the definition in avatar_skeleton.xml :

However, the skeleton definition does not specify the rotation of the bone roll (rotation around the long axis of the bone). So we are free to set this rotation to whatever is convenient for us. We have chosen to let the finger local Z axis point upwards (towards world Z in Blender). For the thumbs we have chosen to rotate the local y axis by 45° to make finger animations (grabbing) a bit easier.

And here is a hand with a relaxed hand pose in Blender (the bones are displayed in stick mode):

 



This pose only uses Rotation. I have exported this pose to Second Life by using the .anim format (bvh should work as well) and here is the result in Second Life:



So, it looks like all is ok so far.

There is one way to get issues similar to the ones reported here. That is when your Rig is not exactly identical to the SL Restpose Rig. At least you must ensure that the Joint Hierarchy is exported exactly as defined in the avatar definition files. Otherwise you get unintentional Joint position offsets. And then you get the oddities like bone end point mismatch and possibly unexpected behavior of the appearance sliders and animations.

Here is a small document about Joint positions. Maybe that helps a bit too:

http://avastar.online/fragment/joint-positions/

Link to comment
Share on other sites

I have a somewhat related question, since I'm trying to apply some final tweaks to my model. Since most of my workflow happens in max, but I'd like to use avastar's slider features for a bit, is there a way to get a rigged mesh from 3dsmax bound to the avastar skeleton? I can export per-vertex weights as .env in max, possibly more, so can I then transfer said mesh over, then bind it to the skeleton/armature and load the weights back in somehow? Also does this process work back and forth?

Edit:
After much fussing with how to export, I at least managed to get a collada transfer. So I now have an avastar rig and my own rig in the same file and lined up properly. I wanted to look up retargeting in the blender manual, but while the entry exists, it is empty. Is there anywhere I can read up how to retarget my mesh body to the avastar skeleton, whilst retaining the bone influences?

Nother edit:
After even more fussing, I finally understood how to keep the mesh & vertex groups, remove the previous armature, and use the bind menu to apply the avastar armature. It appears my mesh has now successfully been bound. My issue should be resolved!

  • Like 1
Link to comment
Share on other sites


Psistorm Ikura wrote:

I have a somewhat related question, since I'm trying to apply some final tweaks to my model. Since most of my workflow happens in max, but I'd like to use avastar's slider features for a bit, is there a way to get a rigged mesh from 3dsmax bound to the avastar skeleton? I can export per-vertex weights as .env in max, possibly more, so can I then transfer said mesh over, then bind it to the skeleton/armature and load the weights back in somehow? Also does this process work back and forth?

Edit:

After much fussing with how to export, I at least managed to get a collada transfer. So I now have an avastar rig and my own rig in the same file and lined up properly. I wanted to look up retargeting in the blender manual, but while the entry exists, it is empty. Is there anywhere I can read up how to retarget my mesh body to the avastar skeleton, whilst retaining the bone influences?

Nother edit:

After even more fussing, I finally understood how to keep the mesh & vertex groups, remove the previous armature, and use the bind menu to apply the avastar armature. It appears my mesh has now successfully been bound. My issue should be resolved!

In theory, meaning I didn't test this, you should be able to bring any rig/collada and convert the Avastar rig to it. There are a couple of ways to do this. 1 would be to use the convert tool in Avastar by selecting your rig and then an Avastar rig you just created, and then clicking Convert. The 2nd way would be to Repair the rig using Avastar. Again, I've not tried any of this, so it's all just speculation.

When I get done with all the avatars I want to do initially, I will be converting a number of rigs over. So, I will be testing all this soon, with completely custom rigs.

Link to comment
Share on other sites

Thanks, I did manage eventually after much reading and cussing xD

Now the last thing to figure out is why the wireframe of my avatar mesh - the one imported from collada - appears very much destroyed, aka full of holes. Only wireframe though, shaded view appears fine. I'll probably just attempt a re-import since now I have a decent idea of how to get things done.

Edit:
And i managed it. A re-import got rid of the wireframe strangeness. I probably hit some magic buttons whilst experimenting

Link to comment
Share on other sites

I've tried animating in maya and exporting the animation to .bvh as you described, however I run into the following error: The bone that gets animated is moved/translated to the location of its parent bone, so if I animate mWrist for example, it gets translated to the point of rotation of mElbow:

Before animating mWristRight:



 

 

After animating mWristRight: 



 



 

The rotation works fine, however it seems like the script generates wrong bone offsets or something like that.

I used the standard bento skeleton for animation and the maya BVH exporter script. I followed your steps and froze transform on the skeleton so the bone rotation would be correct (y-up). I also added effector bones.

I'm using Maya 2016, Y-axis is set to up and units are centimeters. The viewer I used to upload the animation was 5.0.0.320160

Here's the animation: https://my.mixtape.moe/dcfmdx.bvh

If someone could point out what went wrong I'd be insanely grateful, because at this point I have no clue whether the issue is with my setup, with the script or with the viewer.

Link to comment
Share on other sites

Hi!
Animating with Maya for SL can be tricky.  I have an hour and fifty minute video on how to animate with Maya or SL.

Couple of quick suggestions.  If you are using translation animations you need to be in Y up and you avatar's XYZ scales all need be 39.331947.  Why 39.331947? Because BVH is in inches and gets converted to centimeters in the upload process.  The avatar in Maya is tiny.  It is 1/100 of the size it is in SL because it was originally created using Maya with the working units in Maya set to centimeters instead of meters which is the working unit for SL.

To easily scale up the avatar create a locator.  Parent the mPelvis bone to the locator then change the XYZ scales of the locator to be all 39.331947.  Rename the mPelvis bone hip.  If you decide you want the whole avatar to move or translate in 3D space to not move that avatar by moving the hip / mPelvis bone.  Move or animate the whole avatar by animating the locator.  The locator's name can be anything. 

Just making the avatar 100 times bigger in Maya doesn't work for translation animations because of the conversion that is done during upload of the BVH file as stated earlier trust me.

Watch the video it should help a lot. :)
Cathy

  • Like 1
Link to comment
Share on other sites

Not sure if the issue has already been reported (I don't have the time to browse and read the whole thread, sorry), but here is a rendering problem I encounter with Bento viewers (both LL's and mine):

http://sldev.free.fr/pictures/Distorted%20DC_NG-WW_%28Medium%29_Body-2_001.png

The snapshot was taken with the Cool VL Viewer v1.26.19 (Bento-enabled, experimental branch), but I get exactly the same result with LL's latest Bento RC binaries.

I made the creator of the affected mesh aware via an IM yesterday, so he may contact you as well about it.

 

Link to comment
Share on other sites

Yep, it's that avatar.

The creator IMed me back saying he and LL were aware of this issue: apparently a problem with how the face bones are animated and how Bento ruins it... He also said a lot more mesh avatars by various creators were affected. However I so far only noticed this issue (several times over the past couple of months) on this specific mesh avatar, and since I saw no related fix in the Bento code repository for it, I started to grow worried it would go unnoticed..

Link to comment
Share on other sites


Whirly Fizzle wrote:

Hmm there isn't a JIRA issue for that, unless it's a case of

That bug is supposed to be fixed though.

That bug seems to affect other bones than just the face bones, which is not the case here... Probably a different bug, entirely.

Oh, and resetting the skeletton doesn't fix the issue either (it's an animation issue, and no, reloading the animations for the affected avatar is not either a work around for it).

Link to comment
Share on other sites

Now I have another question though:

Is it possible to export a bvh from maya that does not take bone translation into account, only rotation?

Reason I am asking is that I use an avatar with custom bone positions, animations that I make in maya with the default skeleton break this avatar, and animations I make with the custom skeleton break the default avatar.

Before bento I used qavimator for some simple animations, and these worked on both avatars with custom join positions and the standard skeleton, they simply rotated the joints without translating them.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2276 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...