Fur Stretch Limiter

   4057   9   1
User Avatar
Member
11 posts
Joined: 10月 2014
Offline
Hi everyone,
My name is Corbin Mayne and I'm the Character FX lead at Sunrise Productions in South Africa…

—-I HAVE A FUR STRETCH-LIMITER TOOL FOR YOU—-

In the past we've had loads of issues with fur stretching during simulations (especially after extremely exaggerated movements or collisions)… And although there are plenty of settings relating to stiffness I found that I was having to crank these SO high to prevent stretching that all softness and fluidity of the fur was lost…

So I ended up building a little tool - its really more of a cheat than anything else - but it does help with simple simulations because it allows you to keep your nice soft simulation settings while restricting the fur to its original length…

We thought it would be a good idea to post it here for anyone having similar issues…

***********************
A few notes on the tool:

- to use, dive inside the “fur” node and into the “guides” node… if you have used the “Add Dynamics” shelf tool there will already be a Dop Import and an attribute node…
- insert the “Stretchlimiter_PRESIM” node directly before the Dop Import
- drop the “Stretchlimiter_POSTSIM” node after all the other nodes and plug the out of the “Stretchlimiter_PRESIM” into the first input and the attribute node into the second input
- now you're ready to rock…

- All controls are on the POSTSIM node…
- you can bypass simulation completely and disable the stretchlimiter with the toggles
- the stiffness controls here are extremely robust - so at 1 the guides will completely ignore simulation…
- the stiffness ramp modulates stiffness from root to tip…
- a few temporary attributes are cleanup up at the end but you have the option of keeping them and using them for further calculations (furdist is normally useful)

HOPE THIS HELPS!!! it made our lives a million times easier once we found settings that we liked…

P.S. I know this method is by no means the best way of achieving this result because it is a post-sim fix instead of a correct DOP fix… but for simple fur movements it cuts out a LOT of that pointless mucking about with settings to try keep the simulation contained…

Enjoy!
Corbin Mayne
Character FX Lead at Sunrise Productions

Attachments:
stretchlimiter_presim_v01.01.otl (6.0 KB)
stretchlimiter_postsim_v01.01.otl (12.0 KB)

User Avatar
スタッフ
3456 posts
Joined: 7月 2005
Offline
thanks!
I'll have a look

this has been an RFE for about 10 years now…
it's applications for fur/hair are obvious but Houdini really needs a SOP to maintain the length of a curve (poly and nurbs).

hmmm…
just had a little play - it's nice for fur, but it doesn't retain the details in the curve shape.
I'll keep playing

thanks !
Michael Goldfarb | www.odforce.net
Training Lead
SideFX
www.sidefx.com
User Avatar
Member
11 posts
Joined: 10月 2014
Offline
Yeah its mostly for just cutting back the curve to the set length… especially with 0 stiffness it will essentially just build a curve along the simulated one but at a set length…
it doesn't scale the details or readjust for collisions…
as I said, its a useful “cheat”…

If you have any suggestions on how to improve it that would be amazing!!

Thanks a million arctor!
User Avatar
Member
11 posts
Joined: 10月 2014
Offline
Hi Nick!

I'm busy using this setup on a bear character that we have and its also all one fur system but I've seperated the guides into several different sections… then just simulating the relevent areas…This approach might help your situation??

Another trick that I've been using is to use very few guides (about 14 000) - then simulate these and use the stretch limiter - then using another fur node i generate a slightly denser fur system (with randomise length and other attributes to get more natural looking fur) and then THIS system acts as the guides for the whole fur system…

It makes simulations a little faster because you are only simulating a few strands… The drawback is that your sims are not as detailed or realistic but it totally depends on the look you want to achieve… in our case we are aiming for simple stylized cartoony 3D so it works…

Hope you come right!!
Corbin
User Avatar
Member
11 posts
Joined: 10月 2014
Offline
Hey Nick!

Not a problem, its quite easy:

1) In the “skin” node add an attribute - call it whatever you want (I called it split)
2) Drop a paint node under that and paint the attribute in the areas where you want to split the fur into a seperate system
3) in the “Guides” node go to the fur node called “create_sparse_guides” and under the attributes tab and the skin tab add “split” to the transfer attributes parameter - now the strands it creates will contain that attribute you initially created…
4) now just use a delete node with an expression like “$SPLIT > 0.5” and copy that node but invert the delete
5) now you can simulate the one section and then just merge together the non-simulated sections after the DOP

ps. after the deletes just double check that your strands still contain the gluetoanimation and guideorigin attributes… without these you get weird results such as strands falling off of the skin or the root following the skin but the other points staying behind…

I hope that helps!
Corbin
User Avatar
Member
11 posts
Joined: 10月 2014
Offline
Anytime man!

I have also found the fur stuff to be very under-explained…
I don't like the fact that the fur is simulated with a wire-solver - SideFX needs to make a fur solver that restricts stretching properly…

ps. I'm also an ex-softimage artist… Long live Soft!!! haha

Anyway cheers!
  • Quick Links