Bird rig

   4737   4   2
User Avatar
Member
15 posts
Joined: Jan. 2015
Offline
I'm just starting experimenting and since my experience with rigging is pretty low, I would like to make this project as public as possible. So anyone who likes to participate, welcome on board.

I guess the most difficult part is probably the wing, apart from achieving a rig which is convenient to animate.

Right now I stumble across two things mainly.

a) My current dummy feathers use curve points as origins. The curve is “attached” to the bones in a rather clumsy way. As soon as a bone changes its geometry there'll be errors since I import the bones by an OBJECT_MERGE and delete all points except the one I would like to constrain the curve to.

Is there an easier way to do this? In SI I would have thrown all the bones into a group and the get all position values and bone length values in the group to calculate the root and tip positions. Is there a way to do this in H? Or how would you constrain a curve to bones? If the curve consists just out of a few points it can be done manually, but if the curve got loads of points my method is definitely not convenient.


B) I checked a video in which somebody demonstrates a bird wing. It seems that the elbow joint doesn't work like in my rigging example (rotating in just one plane), but the the ulna/radius rotate around their length at around 90° if the elbow is rotated by 180°. Imagine a door fully opened (180° till it's closed) with just one joint in the middle. If you close the door it starts to rotate also around the joint in such a fashion that the door is in the same plane as the ground when it's totally closed.

Do I need to add another bone on top of the ulna/radius which rotates around this axis or can I rotate the bone by itself? Since it's an IK chain the manually entered rotation values don't have an effect (How can I display the rotation values of the bones? In their node panel there doesn't seem to be a settings which displays it).


Next steps would be to come up with a tendon which connects the wrist and shoulder, find the correct way to apply the feathers (does one need bones?) and shape the primary and secondary feather according to the wing shape.

So any help and participation is welcome.


Cheers
Tom

P.S.: Boneangle() works great to get the angle between two bones. Isn't there a Boneposition(), Bonerotation() and Bonelength() syntax???

Attachments:
wing_01_a_078.hiplc (1.7 MB)
ScreenShot025.png (673.5 KB)

User Avatar
Member
23 posts
Joined: Oct. 2015
Offline
Have you tried using paths? You can create two paths, the CV's would be at the position of the bones and the second would be the guide curve. Then you can import both of the path CV objects, resample them to have the same number of points and then by an id attribute find the lookat point. Then do the copy. You'll also get some extra goodies with using paths such as distributed twisting on bones.

Note:

When parenting the first path make sure to reset the pre-transform and set the transformation to 0 of the CV's. For the second path make sure Keep Position When Parenting is checked.

Hope this helps,
Edited by trzanko - June 1, 2017 09:44:17
Tighe Rzankowski

trzankofx@gmail.com
User Avatar
Member
23 posts
Joined: Oct. 2015
Offline
Here's a demo, lot's more to do but it's a start.

-Tighe

Attachments:
birdRig_Demo_v2.hip (358.2 KB)
2017-06-01 10-49-59.mp4 (3.5 MB)

Tighe Rzankowski

trzankofx@gmail.com
User Avatar
Member
402 posts
Joined: June 2014
Offline
Ha! Took me a while to see this, really nice @trzanko
Henry Dean
User Avatar
Member
59 posts
Joined: Feb. 2008
Offline
Hi Tighe! Very excited about this!

Just helping (or trying to) with feedback…. the lead flight feather flips when folding, see video. Sure you're aware of it, but just in case. Also… I feel the flight feathers need their own spread controls. Otherwise, extending pulls the arm feathers unnaturally outward. Will you also be adding bend controls for the feathers themselves? I tried to do a flight cycle with the current handles but it seems they're only really for the arm bones themselves. I get mangled feathers pretty quickly when I try beyond that.

General questions…
how do you tell a joint / handle to default a certain transform channel? And also lock off unintended channels?
ie. the controls that are only meant to be rotated in xy for example, to only have those exposed in the widget and only those be animatable. Also … to have the active channel of a handle default to one of the unlocked channels / the last used channel for that handle. Anyone?

Attachments:
birdRig_v2_feedback.mp4 (176.5 KB)

  • Quick Links