Jump to content

Muscles, and how to get them...


ForeverMovement

Recommended Posts

Hello all, 

   I've been searching around for a while and I can't seem to find much on muscle simulation that doesn't already have a rig that was made in Houdini. The animation I have is from Maya, so I can bring in the cached and cleaned geo no problem. But I do need the rig to be able to attach muscles to the model to be able to move with it. It seems counter intuitive to bring in cached geo just to make a rig ontop of it, with the added problem of attaching it to the already moving skin. I might also not be looking at it properly, so it comes down to this; Does somebody have a good workflow for getting muscles to move with the cached geo in Houdini, or how to export an animated skeleton from Maya to Houdini?  

 

I'm properly confused, even documentation help would be good at this point, maybe a secret blog post somewhere

Link to comment
Share on other sites

8 minutes ago, kleer001 said:

Yes, I've watched both masterclasses on the subject but my rig comes from maya, and I can't find a lot of helpful stuff of how to get those rigs out with the animation and imported into Houdini. The amount of stuff that exists out there doesn't seem to be much, but I know theres a blog post buried somewhere with the information haha. 

Link to comment
Share on other sites

How are you bringing in your mesh animation? Is the topogy changing? Are you creating Locators for each bone's ends?

That'll get you muscle anchors which you can offset from them for more defined muscle attachment.

 

Here's a dead simple example attached. (just follow the muscle displace shelf instructions)

 

muscleTest.hip

Link to comment
Share on other sites

I guess a better version of my question would be then how would I get locators onto my rig in maya to export? Just constraining them to the joints and saving them out as an fbx? I can get the mesh out just fine, nice and clean in either an allembic cache that can get unpacked or fbx if I wanted to bake the animation instead of cache. But I can't figure out a way attach the muscle over moving geometry if I only have the geo. 

Link to comment
Share on other sites

Iirc exporting locators from Maya was a bit iffy (I don't have Maya in front of me but I vaguely recall there being issues). Off the top of my head there are two ways to get info out from Maya:

1. Constraint some geo to the rig and export it as an alembic. Then in Houdini you can simply load that geo (or alternately load in its transforms) and parent muscle handles to that. 

2. Export an FBX and load it in using the agent node. You can then unpack the agent rig using the agent unpack to get the skeleton transforms as points.

Kinda leaning towards 2 myself; you get points with an orient and a bone names which are all pretty handy.

Link to comment
Share on other sites

10 hours ago, jujoje said:

Iirc exporting locators from Maya was a bit iffy (I don't have Maya in front of me but I vaguely recall there being issues). Off the top of my head there are two ways to get info out from Maya:

1. Constraint some geo to the rig and export it as an alembic. Then in Houdini you can simply load that geo (or alternately load in its transforms) and parent muscle handles to that. 

2. Export an FBX and load it in using the agent node. You can then unpack the agent rig using the agent unpack to get the skeleton transforms as points.

Kinda leaning towards 2 myself; you get points with an orient and a bone names which are all pretty handy.

Perfect, an agent node, so I was going in the right direction but I seem to hit a problem with it's import. Through a file node it will load only the mesh in it's rest pose. Through an agent node it will load the rig(almost success!) but then it will collapse the skin to the hip joint of the skeleton as seen on the first photo. Should I be baking the animation to the skin or the joints before taking it out through .fbx? I figured if it's bringing in animation through the rig it would be fine. 

dinohalp2.PNG

dinohalp1.PNG

Link to comment
Share on other sites

10 hours ago, jujoje said:

mm.. I think the safest option would, as you say, be to bake out the skin deformation before exporting the fbx (been a while since I looked at exporting fbx's). Should fix most weirdness hopefully :)

Thanks for the advice, I have tried to both cache and bake the animation before exporting remembering to make the values keyable. Even with just exporting the skin or trying to it doesn't want to work. So I'm pretty lost. I think it may be because of how the rig is developed, with a weird use of joints. In any case, I have the Maya scene here with just the rig if it helps anybody. I'm just stuck on it, I need to find a way to do muscles with just the moving geo, if that's at all possible. 

tresxwalkcycle.mb

Link to comment
Share on other sites

Glad to atleast have an update. I managed to rip the rig out of Maya but when cleaning it only has the points, which is fine but I am again stuck. I'm happy they're both in there but now I don't know where to really go. Do I merge them together and pray? So then to pin the muscles to those points is there a way that I could connect the end muscles to points so it will actually move with the geo? I've used and abused the shelf tools and I still can't figure it outttt. 

dinohalp1.PNG

dinohalp2.PNG

Link to comment
Share on other sites

It might be worth exporting just the skin as an alembic.

Wrt to connecting the muscles, the general idea is that you attatch it to the points. I've attached a quick example which uses the agent node to load the skeleton transforms as points and uses the rivet node to attach the muscle to those points. Basically we prep the points by:

1) Load the joints from the fbx using the agent node
2) Rename the joints to something more reasonable and get rid of points we don't need. The joint name is in the @agenttransformname attribute.
3) Create a @N and @up attribute from the quaternion provided by the agent node.
4) Create a group from each @agenttransformname attribute using the partition node.

Then we have our points with groups and orientation. We can then simply use the rivet SOP to fetch the correct point and use it to attach the muscle. 

There are probably better ways of doing this (CHOPs and/or Python), but this was seems pretty straightforward and direct. Hope that helps :)

 

dino.zip

Link to comment
Share on other sites

  • 2 years later...

It would certainely make sense for Sidefx to join Kinefx with a premium muscle building and a deforming fat/bones/muscle system like Ziva Dynamics...

 

________________________________________________________________

Vincent Thomas   (VFX and Art since 1998)
Senior Env and Lighting  artist & Houdini generalist & Creative Concepts

 http://fr.linkedin.com/in/vincentthomas

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...