wing rigging fun

105 views
Skip to first unread message

Paul Griswold

unread,
Sep 5, 2011, 3:05:49 PM9/5/11
to soft...@listproc.autodesk.com
Hi guys -

I'm in the process of working out a wing rig & had a couple of questions.  In this particular shot the wing just needs to quickly unfold and spread out, but not flap, etc.

So I basically ran bones to follow the real bones in the "arm".  Then from each joint I ran a single long bone out - these joint bones were parented to a joint null.  The joint nulls have their rotation linked to the rotation of the nearest arm bone and I've set relative values to get the spreading effect.

Then in between these joint bones I ran a bunch of 3 bone chains - one for each real (not procedural) feather.  The roots of each one of these feather bones has 2 direction constraints on them that add up to 1.  The closer they get to a joint bone, the higher the constraint favors that direction.  This gives a nice smooth fanning effect.

However, the problem I have is, my effectors occasionally go crazy on the feather bones and end up all over the place.

I went back and watched Todd Akita's presentation on the Psyop crow to get some ideas, but I'm not a rigger and haven't done a wing in probably 5 years (and really haven't done any rigging at all in a very long time), so I'd love some input. 


Thanks,

Paul



Adam Sale

unread,
Sep 5, 2011, 3:45:35 PM9/5/11
to soft...@listproc.autodesk.com
Hey Paul.. .it sounds like your bone chains could use a chain up vector to stabilize them to prevent flipping.
First bone in each chain gets the chain up vector. Bones Local Y aims at the up vector null object..
Then its just a matter of parenting your up vector objects so the orientation of the bones is correct and remains so through the extension of your wing.

Paul Griswold

unread,
Sep 5, 2011, 4:23:49 PM9/5/11
to soft...@listproc.autodesk.com
Thanks!  I didn't think about adding an up vector.  But couldn't I just activate the Up Vector in the direction constraint on the root rather than use a chain up vector on every bone?  (Honestly I'm not sure what the difference between and up vector and a chain up vector is.)

The strange thing I've just noticed (and maybe this means nothing at all) was even though all the bones were created in the top view, when I hit CTRL-J to adjust them, some of the joints seem to be rotated by 90 degrees. 

Thanks guys.  I've been doing motion graphics & ICE stuff for so long it's been fun to switch gears!

Paul

Eric Thivierge

unread,
Sep 5, 2011, 4:45:47 PM9/5/11
to soft...@listproc.autodesk.com
Chain up vectors determine the direction the bend happens when the chain is manipulated by the end effector. If you don't have one set there is no 100% guarantee the chain will bend the same direction each time. Use a chain up vector to stabilize the bend direction if you're manipulating the effector. If you're not, and are just rotating each bone in the chain, then you may not need it. 

Also, some setups with bone chains or more complex setups need a key frame on one of the transforms (say RotX) to have it calculate that then, an upvector to make sure it starts in the correct place then calculates a rotation driven by an upvector (non-chain upvector, more from a direction constraint). Also your direction constraints should have the Tangent active as well. Are they? Just trying to help nail down anything that would cause it not to work.

--------------------------------------------
Eric Thivierge
Technical Director
http://www.ethivierge.com

Paul Griswold

unread,
Sep 5, 2011, 5:09:58 PM9/5/11
to soft...@listproc.autodesk.com
Ah got it.

I'm not animating any effectors - this is totally going to be FK.  The arm bones are driving the rotation of a null at each joint, which have a single bone parented to it.  The feather bones have their roots direction constrained to 2 effectors - one is always one of the joint bones and the other is usually a nearby feather.

I think where I've got trouble is, I was copying and pasting bones between feathers.  A couple of the trouble causing roots seem to be slightly twisted.  I've already deleted one and just drew an entirely new bone and that looked like it fixed things.

Things are looking fairly decent on it.  I'm certainly not going to be apply for any rigging jobs anytime soon, but I think eventually this rig will do the trick.

Thanks!

Paul

Adam Sale

unread,
Sep 5, 2011, 6:03:58 PM9/5/11
to soft...@listproc.autodesk.com
the view you draw the chains in is important. The Local Z of each bone will aim out of the view you draw in, local z is the axis each bone pivots around when invoking IK. This is why you're getting funkiness in the top view when you use edit the bones.

Another little hint when drawing your chains is to turn on the . Skeleton > Align root to first bone when drawing to zero out the first bone in the chain.

Also remember ye olde Ctrl +D in softimage which duplicates with offset.. Ctrl + Alt + D when duplicating chains and placing them to avoid minor twisting will be more predictable..

Alan Fregtman

unread,
Sep 6, 2011, 9:52:43 AM9/6/11
to soft...@listproc.autodesk.com
Hi Paul,

Just to add my $0.02, I rigged a cartoony vulture-like bird for a feature still in production, and the approach I ultimately went for was having two curves plus an up-vector curve.

I had nulls/bones stuck (Path-constrained) to the first curve which ran along the main part of the arm (whereabouts the real bird wing bones would be), then I duplicate it and shift it back. For every bone/null on the first curve I have another on the duplicate, and a Direction constraint aims to it. To stabilize them I duplicate the first curve once more and shift it way up and I set an upvector null for every feather for good measure.

To get the curves to follow the wing bones you can just envelope them, or use clusters with centers; just make sure you got enough points to begin with.

You can always get more fancy than this, of course. For example if you make have another hierarchy level for each feather you could have a noise expression to add some random "wind flutter/jitter."

Again, you don't *have* to do it this way; just sharing how I approached it. "There's many ways to skin envelope a cat," as they say... :p

Looking forward to see your finished bird, man! :)
Cheers,

   -- Alan

Paul Griswold

unread,
Sep 6, 2011, 10:26:39 AM9/6/11
to soft...@listproc.autodesk.com
That's really interesting! 

I thought about using curves, but I didn't think of using them that way.  I had thought about creating a curve just beyond the tips of the feathers and then pointing the effectors at the curve, but I couldn't work out how things like folding the wings would happen.

As I'm looking at this, I think I may simplify it even more.  There's no reason to have more than 1 bone per feather since I don't need any bending of the feathers to happen.  Maybe if the tips need a little bend, I could create one long bone and a very small one on the tip.  But folding and unfolding is really what I'm working for.

I can see how people can really get into rigging... I could zone out for hours doing this stuff.

Thanks!

Paul

Sandy Sutherland

unread,
Sep 6, 2011, 10:53:25 AM9/6/11
to soft...@listproc.autodesk.com
For Zambezia we also had to do wings - but our brief was for them to be able to fold, flap, gesture AND hold things all in one movement - so it was a little tricky!!  Initially we had lots of problems with feathers spinning when folding the wings.

I eventually did a 3 stage setup - the first stage was folded, and I found that linear curves at this stage worked best as they do not bend in funny ways when you pull the points close together, flapping had normal splines and gesture also - just at gesture I had the 5 primaries that formed the hand shape move out into the correct hand like shape!!  Also in the fold 'mode' the primaries and secondaries became disconnected, as when folded a birds secondary feathers sort of sit on top of the primaries like a shield!!

Cheers

S.

Eric Thivierge

unread,
Sep 6, 2011, 11:23:11 AM9/6/11
to soft...@listproc.autodesk.com
"I can see how people can really get into rigging... I could zone out for hours doing this stuff."

Yeah... the past 3 years of my life have gone by so quickly. I'd get to work, drink coffee, start rigging and its already time for lunch. It's a good thing and a curse at the same time. Time goes so quickly and you have deadlines to meet so you have to keep checking into reality every once in a while to make sure you're on track. :)

Christopher Crouzet

unread,
Sep 6, 2011, 5:53:35 PM9/6/11
to soft...@listproc.autodesk.com
If you want to achieve a nice folded pose within your rig, you'll probably struggle if you have only 1 bone per feather.
Rigging an unfolded/flapping wing is quite straightfoward, but having a wing that can fold is the tricky part and you might need more control on the feathers otherwise you might end up not having the feathers following the curve of the body as you wish they would. Also the more your bird has long feathers, the more they are being twisted when the wings are folded. Primary feather for example will have a vertical world alignment at their root where they're being attached to the wing but will be horizontal at their tip so they can sit on top of the tail feathers and on the tips of the primaries feathers from the other side.

If it's just a one-time thing though, it might be a good idea for you to just create a corrective shape to get that folded pose working.


Cheers,
Christopher.

Adrian Lopez

unread,
Sep 6, 2011, 6:39:48 PM9/6/11
to soft...@listproc.autodesk.com
Folks,

Thought I'd mention that Digital Tutors has just released a tutorial on rigging wings using a relatively complex rig in Softimage.  Seems to include folding and feather control.  I dont know if its below, at, or above the rigging being discussed here, but might be worth a look for some of us.  Decent tutes on rigging in Softimage are few and far between


Peace
--
Adrian Lopez
CEO.Producer.Director
Liquid Light Digital

Christopher Crouzet

unread,
Sep 6, 2011, 7:29:02 PM9/6/11
to soft...@listproc.autodesk.com
I don't want to be mean and I'm sure this is a very good tutorial to learn a ton of things but the introduction video is a bit freaky... it seems to be demonstrating the final result but when he folds the wing, the feathers are being squashed and loose their original shape. This is definitely not something that you want to have for a realistic bird (and probably not for a cartoonish bird neither).

Raffaele Fragapane

unread,
Sep 7, 2011, 1:17:39 AM9/7/11
to soft...@listproc.autodesk.com
Yeah, we have a full sub to DT and I had a look at those when they popped on the front page.
It's not exactly how I would rig a wing to be honest (or any sane person I met insofar who has :P).

Feather by feather with manually set-up and linked parameters for each feather to fold it (euler too, gonna flip the hell out on a banking)... not gonna fly very far with animators, no pun intended :p
No secondaries whatsoever, or membrane, scapulars or proper lock-in of the folded pose either.

The rig isn't really complex as much as messy.

@Paul: If you're after a decent folding separate the first and second section along the wing, and manage the boundary/interpolation between the two separately. Use membranes/isosurfaces to manage feathers coherently across a section, and offer a first layer of control over those.
Controlling feathers individually as a base system is extremely painful to animate, tedious to rig, and near impossible to fold somewhat adaptively.
Base surface setups for the primaries with managed derivate surfaces for the secondaries, and additional layers of controls riding on those, will be a lot easier to iterate into submission.
What Alan suggest is also valid and is an alternative to get to the same base results.

If and when using curves for the base of the feather though watch separation and knots. Changing the length of a curve and what the points do can lead very soon to dramatic crawling as the U becomes mismatched from the wing meat's binding pose. Using them just for at vectoring is usually fine, for upvectoring it can result in a bit of unwanted roll but you still get away with it just fine, for bases though it can get trickier.

Have a look at some references for the folding, you'll need to break the membranes apart and change them drastically for a decent folding.
Edy Susanto (sawamura.com?) has a sparrow up that shows some interesting stuff he did too. DIfferent approach from what we did on guardians, but with some very efficient tricks.
--
Our users will know fear and cower before our software! Ship it! Ship it and let them flee like the dogs they are!

Edy Susanto

unread,
Sep 7, 2011, 2:41:31 AM9/7/11
to soft...@listproc.autodesk.com
Hi Paul,
As Raff mentioned, I also semi-seperate the primary feathers from the secondary flight feathers. I simply draw two 3 curve for the base setup (primary, secondary, and merged) and use the length of the primary and secondary to tell ratio between the two section and use that as a control value for the feather to the merged curve.
A chain is created for each feather with each bone set to pseudo root and the first bone got chain upVector contraint This way I can still bend the feather >90 degrees in IK without having to worry about rotation flipping.
The upvector can be a bit tricky. If I remember correctly the curve that I use for upvector goes all the way to the scapula to give me a good blending between the wing covert feathers (also rigged) and the body feathers.

@Raff : it's sawamura.neorack.com ;)

Cheers,

edy
--
Edy Susanto
TD
http://sawamura.neorack.com

Sam J. Bowling

unread,
Sep 8, 2011, 2:01:51 AM9/8/11
to soft...@listproc.autodesk.com
Their last rigging tutorial I saw was complete garbage resulting in a useless rig and probably did more harm to people trying to learn to rig than help. I have zero confidence that this will be any better.

Paul Griswold

unread,
Sep 8, 2011, 5:53:18 AM9/8/11
to soft...@listproc.autodesk.com
That's basically what I've heard over and over again about their rigging tutorials.  

I took a look at their wing setup and wasn't terribly impressed.  It seemed overly complex for the results you got.

Paul

Helge Mathee

unread,
Sep 8, 2011, 6:10:36 AM9/8/11
to soft...@listproc.autodesk.com
This is fun.

http://vimeo.com/28759393

Contact me if you are interested in binary distributions,
it is still very early, but I would like to collaborate on this,
since my time is limited to continue development on it.

Cheers!

Sebastian Kowalski

unread,
Sep 8, 2011, 6:23:45 AM9/8/11
to soft...@listproc.autodesk.com
very nice, looks solid.

Pete Edmunds

unread,
Sep 8, 2011, 6:38:07 AM9/8/11
to li...@sekow.com, soft...@listproc.autodesk.com
Does this allow materials not just uv's  to be transfered between say soft and maya?

Helge Mathee

unread,
Sep 8, 2011, 6:41:27 AM9/8/11
to soft...@listproc.autodesk.com
nope.

how would that work? shader trees are different.

I will implement this using XML and certain meta data for
the pipeline's I do consulting for.

Did I mention you can hire me as a consultant? :-)

Marc-Andre Carbonneau

unread,
Sep 8, 2011, 9:18:24 AM9/8/11
to soft...@listproc.autodesk.com

Geez. Thank you for spending your free time on this. Very interesting.

 

We currently pointcache all our geo and then reapply the cache on a model that is without a rig, already textured and ready to render. How is Alembic used in such a pipeline? I mean, Alembic saves a “baked scene” but without materials. That makes one file which is smaller but then you don’t have the materials. Am I missing the point here?

thanks

MAC

Matt Morris

unread,
Sep 8, 2011, 10:01:23 AM9/8/11
to soft...@listproc.autodesk.com
Alembic is basically a very efficient point cacher, from what I can gather. Plus some other scene information.

Alan Fregtman

unread,
Sep 8, 2011, 10:04:35 AM9/8/11
to soft...@listproc.autodesk.com
So... you load the cache on the existing geo with proper materials,
hair/fur and so on. Alembic is for pointcaching; it wasn't made for
carrying materials (though the spec as I understand it allows for
extending the format with extra embedded data, so it may be possible.)

It wasn't apparent in the video but I'm sure Helge will have / has an
"apply cache on selected geo" feature in his implementation.


On Thu, Sep 8, 2011 at 9:18 AM, Marc-Andre Carbonneau
<marc-andre...@ubisoft.com> wrote:
> Geez. Thank you for spending your free time on this. Very interesting.
>
>
>
> We currently pointcache all our geo and then reapply the cache on a model
> that is without a rig, already textured and ready to render. How is Alembic

> used in such a pipeline? I mean, Alembic saves a �baked scene� but without
> materials. That makes one file which is smaller but then you don�t have the


> materials. Am I missing the point here?
>
> thanks
>
> MAC
>
>
>
>
>
> From: softimag...@listproc.autodesk.com
> [mailto:softimag...@listproc.autodesk.com] On Behalf Of Helge Mathee
> Sent: 8 septembre 2011 06:41
> To: soft...@listproc.autodesk.com
> Subject: Re: Alembic for Softimage 1.0
>
>
>
> nope.
>
> how would that work? shader trees are different.
>
> I will implement this using XML and certain meta data for
> the pipeline's I do consulting for.
>
> Did I mention you can hire me as a consultant? :-)
>
> On 09/08/2011 12:38 PM, Pete Edmunds wrote:
>

> Does this allow materials not just uv's� to be transfered between say soft

Tim Crowson

unread,
Sep 8, 2011, 10:26:08 AM9/8/11
to soft...@listproc.autodesk.com
Helge, thank you for diving right into Alembic like this. This is fantastic! I can email you off-list if you like, but I definitely want to try a binary version of this.

In your video, you touched briefly on how .abc files can be updated and they act "like referenced" models. Does this mean you can also change the vert order and make geo changes, or does it just mean changes to the animation?

We also pointcache our scenes here and use referenced models a lot. So streamlining the application of materials would be a big deal for implementing Alembic. But I suspect that's easily scripted.

-Tim Crowson
Magnetic Dreams
--

 



 

Tim Crowson

unread,
Sep 8, 2011, 10:33:22 AM9/8/11
to soft...@listproc.autodesk.com
And I almost forgot... is this compatible with 2011 or is 2012 required?

-Tim


On 9/8/2011 5:10 AM, Helge Mathee wrote:
--

 

Helge Mathee

unread,
Sep 8, 2011, 11:01:35 AM9/8/11
to soft...@listproc.autodesk.com
It should be possible with 2010 SP1, 2011 SAP and 2012.

There's a bunch of things that could be changed here. Sub Frame sampling and
timewarping of alembic streams is one thing. Scripting materials on top of it is
another. To be honest there's a lot I can see, but I don't have the time to do it
right now.

That's why I said, if anybody wants to hire me to do it, I can justify the time easier.
I am not trying to push for money, just being realistic. I needed a basic alembic
exporter, which I have now, so for me the task is finished, but it is in no way production
ready.

Steven Caron

unread,
Sep 8, 2011, 1:18:05 PM9/8/11
to soft...@listproc.autodesk.com
they discussed this a bit on the alembic list/group http://groups.google.com/group/alembic-discussion

specifically the 'storing lights thread', http://groups.google.com/group/alembic-discussion/browse_frm/thread/2f3fe35c01f134ef?tvc=1

the general consensus from the developers is that materials vary greatly across applications. confidently and generically describing it would be near impossible, so its left as an exercise to the studio/user. alembic is very extensible so it could certainly be added in the future.

steven

Eric Thivierge

unread,
Sep 8, 2011, 1:24:33 PM9/8/11
to soft...@listproc.autodesk.com

Awesome Helge! Thanks for starting this project.

Votch

unread,
Sep 8, 2011, 2:04:57 PM9/8/11
to soft...@listproc.autodesk.com
Helge, Thanks for bringing alembic to Softimage. I'm going to compile this today and check it out.

BTW, the last frame of your Fabric Engine / Alembic demo shows your email inbox and contact list.

Votch Levi

Votch

unread,
Sep 8, 2011, 2:11:17 PM9/8/11
to soft...@listproc.autodesk.com
Damn, That was meant just for Helge.

you will all forget you ever read the last message.



mib.jpg

Gene Crucean

unread,
Sep 8, 2011, 2:19:56 PM9/8/11
to soft...@listproc.autodesk.com
LOL

Thanks Helge. Even if it's only a nice start... it's much appreciated!!



On Thu, Sep 8, 2011 at 11:11 AM, Votch <mega...@gmail.com> wrote:
Damn, That was meant just for Helge.

you will all forget you ever read the last message.






--
Gene Crucean - VFX & CG Supervisor / Generalist / iOS-OSX Developer
I am Arnold, ICE, Lagoa, emFluid, Houdini, Fume and Nuke focused.
** Freelance for hire **
www.genecrucean.com

~~ Please use my website's contact form on www.genecrucean.com for any personal emails. Thanks. I may not get them at this address. ~~

Olivier Jeannel

unread,
Sep 8, 2011, 4:09:45 PM9/8/11
to soft...@listproc.autodesk.com
Hi guys,

I'm banguing my head here on something that IMHO should be simple, or
simply implemented ...in fact I don't know ^^


I have a bunch of particles moving toward a goal. (the goal type is
"Input Position Values", so I can't align particle to normal)

I'm simply trying to "linear interpolate" from one oriention, let's say
a spin Particle, to another orientation (fixed one).
For the moment, all I get is weird rotations that are suddenly popping
from one axis to another.
Can someone point me on the good method ?

Help a poor at math...


David Barosin

unread,
Sep 8, 2011, 4:16:40 PM9/8/11
to soft...@listproc.autodesk.com
quaternion interpolate node - takes two rotations and does a blend

Olivier Jeannel

unread,
Sep 8, 2011, 4:25:29 PM9/8/11
to soft...@listproc.autodesk.com
You saved a life today... Works super !
Thank's a lot David :)
Reply all
Reply to author
Forward
0 new messages