Stretchy IK in ICE and my Global_SRT cntrl
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Stretchy IK in ICE and my Global_SRT cntrl
Hey Guys, New to both the forum and Softimage, I had a few questions I was hoping an experienced SI rigger could help me out with.
In Maya, I achieve proper scaling of my stretchy joints when the SRT is scaled by using a second chain in which I measure the distances needed - instead of having constant distances. This works really well, and prevents having to pipe any of the Global SRT's channel into any part of the rig.
I've essentially duplicated this maya node graph into SI ice nodes, but of course, I'm dealing with joint length, opposed to joint scale. and measuring those distances seem to have the desired effect I'm looking for when checking joint lengths, but It seems I'm still getting some double transforms/scaling issues. I've played around with the scaling options on the joints themselves (inherit scaling from parent...?) but I'm not getting the desired effect.
I'm sure it's simple, but could someone point me in the right direction please?
Best!
In Maya, I achieve proper scaling of my stretchy joints when the SRT is scaled by using a second chain in which I measure the distances needed - instead of having constant distances. This works really well, and prevents having to pipe any of the Global SRT's channel into any part of the rig.
I've essentially duplicated this maya node graph into SI ice nodes, but of course, I'm dealing with joint length, opposed to joint scale. and measuring those distances seem to have the desired effect I'm looking for when checking joint lengths, but It seems I'm still getting some double transforms/scaling issues. I've played around with the scaling options on the joints themselves (inherit scaling from parent...?) but I'm not getting the desired effect.
I'm sure it's simple, but could someone point me in the right direction please?
Best!
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
So i've attempted to recreate the ICE tree on my bone's scaleX as opposed to length, But I'm running into issues trying to set data on the bone's scaleX at the end of the tree. This seems strange to me because I'm not getting the data for said bone's scaleX at any point in the tree. Cannot I not set local transforms with ice?
I suppose I could just write the expression on the joint's themselves and bypass Ice all together. Any suggestions for global scale and stretchy joints?
Best!
I suppose I could just write the expression on the joint's themselves and bypass Ice all together. Any suggestions for global scale and stretchy joints?
Best!
-
EricTRocks
- Moderator
- Posts: 754
- Joined: 25 Nov 2009, 00:41
Re: Stretchy IK in ICE and my Global_SRT cntrl
If you're calculating values with the bone length and then scaling that same object you have to take the bone length multiplied by the scale to get an accurate distance. I would not recommend scaling the joints along the length if you can avoid it. I think it also depends where you are calculating the Maths as well. If you have the ICE Tree on the bone object then you're in a world of hurt having to do your calculations and consider that scaling with scale the local space in which the calculations are done. I'd recommend putting the ICE Tree on a node that doesn't receive any transforms that way you have a stable and non-varying space to calculate in.
-
csaez
- Posts: 253
- Joined: 09 Jul 2012, 13:31
- Skype: csaezmargotta
- Location: Sydney, Australia
Re: Stretchy IK in ICE and my Global_SRT cntrl
You can only set global transforms via ICE 
-
EricTRocks
- Moderator
- Posts: 754
- Joined: 25 Nov 2009, 00:41
Re: Stretchy IK in ICE and my Global_SRT cntrl
^ Yeah that too!csaez wrote:You can only set global transforms via ICE
-
mattmos
- Posts: 445
- Joined: 02 Dec 2009, 15:59
Re: Stretchy IK in ICE and my Global_SRT cntrl
I'd say you're a brave man for trying to rig in ICE, as the kinematics section has never been properly documented or exposed, with suitable examples, and leads to issues troubleshooting a non-traditional rig when you go back to it months later.
I'd say go with your second suggestion, set the expressions on the local kinematics using the traditional route, though I usually always include a mult with the global_srt, to ensure the scaling works when scaling the model. If you scale the length of the bone, you can run into issues with unwanted child scaling.
I'd say go with your second suggestion, set the expressions on the local kinematics using the traditional route, though I usually always include a mult with the global_srt, to ensure the scaling works when scaling the model. If you scale the length of the bone, you can run into issues with unwanted child scaling.
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
Hey Guys thanks for the help. Am I right that you also have to set the entire global matrix? instead of just say global scale? that makes things slightly more interesting.
The Ice tree is located on a dummy null right inside the model, outside of the global_SRT cntrl. I'd like to avoid having to pipe the Global_SRT's scale into any part of the Ice tree, But It seems that by using joint length as opposed to scale, it's unavoidable.
I'm not necessarily rigging entirely in Ice, but more just using it for connections/expressions. I think I will probably just end up writing the expression on the joints themselves. If I do it on scale, I can just do it like I do in Maya. With Joint length, I fear I'll have to incorporate the Global_SRT scale directly into the expression, instead of continually measuring the distances involved - and bypassing the SRT scale - How I'd prefer. I'm not skinning directly to the joints, but rather nulls in a bendy setup riding along the FK IK blend nulls.
The Ice tree is located on a dummy null right inside the model, outside of the global_SRT cntrl. I'd like to avoid having to pipe the Global_SRT's scale into any part of the Ice tree, But It seems that by using joint length as opposed to scale, it's unavoidable.
I'm not necessarily rigging entirely in Ice, but more just using it for connections/expressions. I think I will probably just end up writing the expression on the joints themselves. If I do it on scale, I can just do it like I do in Maya. With Joint length, I fear I'll have to incorporate the Global_SRT scale directly into the expression, instead of continually measuring the distances involved - and bypassing the SRT scale - How I'd prefer. I'm not skinning directly to the joints, but rather nulls in a bendy setup riding along the FK IK blend nulls.
-
EricTRocks
- Moderator
- Posts: 754
- Joined: 25 Nov 2009, 00:41
Re: Stretchy IK in ICE and my Global_SRT cntrl
Yes you have to set the entire Matrix.
Can you just measure the distance between the bones using the global point position of bone01 to bone02? This removed the need to use the length param other than setting it.
Can you just measure the distance between the bones using the global point position of bone01 to bone02? This removed the need to use the length param other than setting it.
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
I thought that's was what I was doing, but maybe not. I don't have the scene in front of me, but later I will post a screenshot of my ice tree.
I'm using the distance between node to determine the distances of a separate null chain to use as the new distances for the joint length after scaling the SRT cntrl.
Perhaps I'm not using the distance between node correctly. Just connect the kine.global.pos of the bone01/bone02 right?
I'm using the distance between node to determine the distances of a separate null chain to use as the new distances for the joint length after scaling the SRT cntrl.
Perhaps I'm not using the distance between node correctly. Just connect the kine.global.pos of the bone01/bone02 right?
-
EricTRocks
- Moderator
- Posts: 754
- Joined: 25 Nov 2009, 00:41
Re: Stretchy IK in ICE and my Global_SRT cntrl
Yeah that should work. Are you scaling each bone? This will lead to double scaling because each successive bone inherits its parents scaling.
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
Naa I'm not scaling the joints, But I'm definitely still getting the double transforms. The Joint lengths measured after scaling the SRT cntrl are correct based on the measurement null chain - I double checked, the measurement/joint length's match, but the scale of the SRT still has effect on the joints. It must be something upstream in the hierarchy causing the joints to scale.
-
EricTRocks
- Moderator
- Posts: 754
- Joined: 25 Nov 2009, 00:41
Re: Stretchy IK in ICE and my Global_SRT cntrl
Hmm. May want to link to a scene to see if anyone can take a look. I'm in the midst of moving over the next few days then there are holidays so I won't be able to help much unfortunately.
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
Not to worry, You've been of great help.
I'll post a scene later tonight if anybody wants to pick it up and take a look at it for me. In the meantime, I'll try finding some of the free SI rigs, and dig around them for a bit.
I'll post a scene later tonight if anybody wants to pick it up and take a look at it for me. In the meantime, I'll try finding some of the free SI rigs, and dig around them for a bit.
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
Here's a quick scene file with something that's kinda working. a pose constraint further up the hierarchy seemed to be messing things up. Even with "scaling" turned off in the pose constraint(?), and hierarchical scaling turned off in the local transform scaling options of the joints.
In this scene, I've replaced the pose constraint with a point and orient, and all seems to be working, but had to add a scale constraint to the measure nulls. It seems a bit messy, and I'm really not sure of the best way to do this anymore. It seems every method has it's advantages and disadvantages.
In this scene, I've replaced the pose constraint with a point and orient, and all seems to be working, but had to add a scale constraint to the measure nulls. It seems a bit messy, and I'm really not sure of the best way to do this anymore. It seems every method has it's advantages and disadvantages.
You do not have the required permissions to view the files attached to this post.
-
everyframe
- Posts: 16
- Joined: 30 Nov 2009, 17:38
Re: Stretchy IK in ICE and my Global_SRT cntrl
replace the point and orient constraint with a pose constraint, and remove the scale constraint on the measure nulls. so the chain is being effected by the scale again on the "pelvis" cntrl. Then in ICE tree, instead of having to divide the joint length by the Global_SRT's scale. simply divide the new joint length (measure nulls), by the length of the joint when the global srt was scaled to 1, and divide the joint length by that.
here's your scene with the changes, and a properly scaling/stretching joint without too many changes to the existing ice tree.
here's your scene with the changes, and a properly scaling/stretching joint without too many changes to the existing ice tree.
You do not have the required permissions to view the files attached to this post.
-
missingkey
- Posts: 91
- Joined: 19 Dec 2012, 17:16
Re: Stretchy IK in ICE and my Global_SRT cntrl
Yes, that's exactly what i was looking for. Clever little trick for the scaling. It's so obvious now. Thanks man!
