Jump to content

Bones from Curve Functionality


Recommended Posts

Does anyone know where I might find the code for the Bones from Curve Operations Toolbar? I am currently working on a rig for an arthropod with the goal of creating it in such a way that it is adjustable on the fly, similar to how you can change the number of bones created on a curve using the operations toolbar for Bones from Curve. The functionality from what I can tell currently only works at the time of creation of a chain of bones, once you have created another chain of bones the only way to add or subtract links and auto re-adjust is through the use of a script as far as I'm aware.

Any help would be greatly appreciated, thanks.

Link to comment
Share on other sites

I don't know if this function is available as a script... You can roll your own though.

The Bones from Curve tool does the following steps which you can do yourself in your tool and more:

- Measures length of backbone curve

- Creates the number of bones requested by the user

- Changes the length of the bones based on the backbone curve length divided by the number of bones

- Places an Inverse Kin CHOP setting the first and last bones in the chain along with the curve geometry.

Now to roll your own. You don't have to place a new Inverse Kin CHOP but everything else you have to manage.

To measure the length of a curve, use the hscript command:

arclen (string surface_node, float prim_num, float ustart, float ustop)

Link to comment
Share on other sites

I intended on doing just that. I should elaborate on what it is exactly that I'm trying to accomplish.

The reason I asked about the Bones from Curve Operations Toolbar code was not to understand how it's creating the bones along the curve but rather how it is creating a chain of bone and how it is updating the number of bones dynamically until another chain of bones is created. The intended purpose is to create a new bone SOP that will manage a chain of bones that can be updated dynamically at any time during production. An example: being able to change the rig from that of an ant to that of a butterfly which minor adjustments and toggle switches. Part of this would include the ability to change the length of each individual bone and adjust the bones down stream to the new length of the previous bone.

The hscript code you provided might be of some use though.

Link to comment
Share on other sites

if that is so, you may want to consider that your weighting will either have to be dynamic as well, adding a new bone, add it to the capture as it exists and moving forward.

typically leaving the capture open ( not locked down ) will result in a speed hit to the rig. the capture pose may change that somewhat but still something to consider.

-k

Link to comment
Share on other sites

I'm with WingsofAsgard...

as I was working with CAT in 3dsmax, it's very user friendly and useful to be able to customize your rig with such ease as changing the bone twisting segments, finger count, limb count and everything on the fly

It's very, very fast workflow

There is no need to for automatic reweighting the character after the changes, since that changes are part of rig customization process and if you are happy then you weight. Then you can copy that rig skeleton, alter a few such parameters and weight second character to it. And you have rigged whole set of characters in no time

I think It can be managed with Python callbacks, but as thekenny and michael have indicated, be very careful of your whole setup and not overcomplicate things to avoid later problems

  • Like 1
Link to comment
Share on other sites

Exactly my thinking anim...very, very fast workflow. I'm also in agreement with anim on the whole weighting matter.

I'll look into management with Python callbacks.

Thanks for the feedback. Any further thoughts feel free to post them, I'll be monitoring this topic.

Link to comment
Share on other sites

how it is creating a chain of bone and how it is updating the number of bones dynamically until another chain of bones is created.

Probably by adding/removing bones to match and then recomputing bone lengths and transforms.

The intended purpose is to create a new bone SOP that will manage a chain of bones that can be updated dynamically at any time during production.

If you want to do something like that, then I think you will have to give up on using bone objects, and then need to figure out some way (read: script) which will create the necessary HDA parameters and link them with your SOP. I've attached a file that shows the concept. There's many problems with it still but it gives you the idea.

dynamicCapture.hipnc

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...