Has anyone tried to make a soft ik solution?

   6517   24   2
User Avatar
Member
517 posts
Joined: 12月 2013
Offline
Hi there,

Just wondering if anyone has tried to make a soft IK setup like this? I used this ages ago in Soft and loved it. I basically lengthens the bones a little to remove that pop you get when an ik chain stretches right out.
I'm just getting into rigging in Houdini so I don't like my chances but I might have a crack at it…

http://www.andynicholas.com/?p=88 [andynicholas.com]



Thanks,
Pete
User Avatar
Member
1755 posts
Joined: 3月 2014
Offline
+1 I used this as well at some point.

It doesn't change the length of the bones at all actually; it's a very nice feature to have in Houdini as well.
You should submit a RFE
User Avatar
Member
517 posts
Joined: 12月 2013
Offline
McNistor
It doesn't change the length of the bones at all actually
Oh yeah, looks like it slows the effector from reaching the goal maybe.
User Avatar
Member
1265 posts
Joined: 3月 2014
Offline
Really nice to avoid elbow and knee snapping. This together with stretchy bones should be built in by default.

Please submit a RFE
Edited by - 2015年10月29日 05:28:08
Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Member
517 posts
Joined: 12月 2013
Offline
Yeah nothing seems to have stretchy built in! It would be really nice.
User Avatar
Member
8569 posts
Joined: 7月 2007
Offline
peteski

Just wondering if anyone has tried to make a soft IK setup like this?…

it has been implemented for a while
InverseKin CHOP/IK Dampening parm
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
1192 posts
Joined: 7月 2005
Offline
Werner Ziemerink
Really nice to avoid elbow and knee snapping. This together with stretchy bones should be built in by default.

Please submit a RFE
It *is* built in.
As for stretchy bones, they're built in as well (sort of). It's not a one checkbox solution, but easily done with an expression (or CHOPs). The length of the bones can be modified on the fly.
Dragos Stefan
producer + director @ www.dsg.ro
www.dragosstefan.ro
User Avatar
スタッフ
3455 posts
Joined: 7月 2005
Offline
dammit Tomas!

you and your fast fingers….

the IK dampening parameter is pretty finicky - you'll likely only need very small values and you may want to use a fit function to blend it's effect on only as the goal is reaching it's full extension…

Attachments:
ik_dampening.gif (340.1 KB)

Michael Goldfarb | www.odforce.net
Training Lead
SideFX
www.sidefx.com
User Avatar
Member
1265 posts
Joined: 3月 2014
Offline
ops: I missed the dampening slider. Awesome!

Still think stretchy bones should be pre built slider as well. I know the math is not hard, but would be great to skip that when building a rig.
I'm lazy that way.
Werner Ziemerink
Head of 3D
www.luma.co.za
User Avatar
Member
1755 posts
Joined: 3月 2014
Offline
Ah great, we have it!
If only we could have that translation to work like it should, like the basic feature that it is, so we can fully enjoy these fancier ones. :wink:
User Avatar
Member
8569 posts
Joined: 7月 2007
Offline
stretchy bones are little tricky, as it's not only about bone length, but the deform region itself, so more than one expression per bone, unless of course you don't capture any geo with those bones, then it's straightforward
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
1755 posts
Joined: 3月 2014
Offline
Oh? In Softimage I can lengthen a bone to which there's a mesh “skinned” without problems (not that any Softimage rigger worth his salt will use actual bones for skinning), no need for expressions (other than those for the stretch). What should one exactly do in Houdini regarding the capture to a stretchy bone?
User Avatar
スタッフ
3455 posts
Joined: 7月 2005
Offline
there a few ways to do a stretchy bone
if you drop down either the simplefemale or simplemale assets on the Character Tab you can see how we've do it for these simple example characters…

for the bone length parameter we do this:

{

vector wristPos = vtorigin(“../ctrl_clavicle_left”, “../ctrl_IK_wrist_left”);
float distance = vlength(wristPos);
float stretch = distance/0.405077;
float length = 0.215;
if (stretch >1 && ch(“../enableSnS”)!=0){
length *= stretch;
}
return length;
}

basically…
check to see if stretch is enabled for the character
if it is, multiply the bone length by the stretch amount - which is found by comparing the current distance between the shoulder and the IK goal and the default amount…

you don't have to do anything with the region if you just want stretch - if you want squash you'll need to play with the deform regions (3rd tab on the bone object)
Michael Goldfarb | www.odforce.net
Training Lead
SideFX
www.sidefx.com
User Avatar
Member
1755 posts
Joined: 3月 2014
Offline
Thanks arctor.
A “stretchy” checkbox would still be nice though. :wink:
User Avatar
Member
8569 posts
Joined: 7月 2007
Offline
arctor

you don't have to do anything with the region if you just want stretch…
sadly you do,
to get correct deformation you have to scale both deformtopcapz and deformbotcapz by the same stretch ratio as you scale the bone length (compared to rest or captposelen )
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
スタッフ
3455 posts
Joined: 7月 2005
Offline
tamte
arctor

you don't have to do anything with the region if you just want stretch…
sadly you do,
to get correct deformation you have to scale both deformtopcapz and deformbotcapz by the same stretch ratio as you scale the bone length (compared to rest or captposelen )

sure…
I don't automatically assume that stretch includes volume preservation

Michael Goldfarb | www.odforce.net
Training Lead
SideFX
www.sidefx.com
User Avatar
Member
8569 posts
Joined: 7月 2007
Offline
those changes are necessary to make it properly scale in length in cap regions so bare necessity for it to even deform properly

to make it volume preserving you would need to do additional expressions in Deform Region Scales X and Y
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
1192 posts
Joined: 7月 2005
Offline
tamte
arctor

you don't have to do anything with the region if you just want stretch…
sadly you do,
to get correct deformation you have to scale both deformtopcapz and deformbotcapz by the same stretch ratio as you scale the bone length (compared to rest or captposelen )
We get quite good results with just scaling the bone lengths when it comes to stretchy toon rigs.
Dragos Stefan
producer + director @ www.dsg.ro
www.dragosstefan.ro
User Avatar
Member
8569 posts
Joined: 7月 2007
Offline
digitallysane
We get quite good results with just scaling the bone lengths when it comes to stretchy toon rigs.

would like to see that, maybe I'm missing something
here is file with default results I'm getting with changing the lengths of the bone and after compensating deformation caps as mentioned, which I found to be necessary for good results

Attachments:
stretchy_bones_deform_compensation.hip (204.9 KB)

Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
1192 posts
Joined: 7月 2005
Offline
I see that on a 2 bone skel made from scratch. Strange, pretty sure it wasn't there before.
Dragos Stefan
producer + director @ www.dsg.ro
www.dragosstefan.ro
  • Quick Links