Scaling an object based on distance from another?

Discussions about SOFTIMAGEs© Interactive Creative Environment©
User avatar
I3D
Posts: 122
Joined: 12 Aug 2009, 16:15
Skype: ironic3d

Scaling an object based on distance from another?

Post by I3D » 13 Mar 2010, 10:45

Hi Guys

I'm trying to link the scale of one object based on it's distance from another, so the closer it gets, a specified scaling value will take place, and the furthest it is from it, the scale will go back to normal.

Basically the effects im trying to achieve is like MAC OSX dock, where the mouse points the icons gets larger in scale, but instead of a dock, i have frames in a circular position (curve constrained), and every time i rotate the curve i want the center frame closest to the camera to scale in size, like a magnifying effect.

Any ideas how to achieve this in ice?

Thanks in advance

Regards

User avatar
Hirazi Blue
Administrator
Posts: 5113
Joined: 04 Jun 2009, 10:15

Re: Scaling an object based on distance from another?

Post by Hirazi Blue » 13 Mar 2010, 10:59

If you need to do this in ICE, you'd have to resort to the as of yet unsupported ICE Kinematics (or wait until SI2011 comes out for the supported (and hopefully much more stable) ones).

But you don't have to do it in ICE (as far as I can tell), you should be able to write an expression to achieve your goal...
Set an expression on the scaling (I'm not sure if you'd have to take the global or the local one) based on the ctr_dist function of the influenced objects multiplied by your scaling factor..

Or something like that :-

edit: sorry, I'm still sleeping i-)
Stay safe, sane & healthy!

User avatar
I3D
Posts: 122
Joined: 12 Aug 2009, 16:15
Skype: ironic3d

Re: Scaling an object based on distance from another?

Post by I3D » 13 Mar 2010, 11:05

Hi Hirazi

Thanks for the reply and the info, i did something like that previews to posting here, problem im having is how to control the range of scaling, meaning it doesn't go below 1, and it doesn't go more than 2? and maybe i just answered my self here :) ok need to check the if statement :)

User avatar
origin
Posts: 619
Joined: 09 Jun 2009, 09:59
Location: warsaw

Re: Scaling an object based on distance from another?

Post by origin » 13 Mar 2010, 12:41

Rescale node - I think I have used it in every tree I've build. It's very useful node.

In this example I get distance between current object and some null and plug it into rescale node. Source start and end will be min/max distance when scaling takes place and target start/end - max/min scaling of object.

It's done on point level of course - you will need to wait for 2011 to do it on object level.
ICEScaleObjectWithDistance.zip
You do not have the required permissions to view the files attached to this post.

User avatar
I3D
Posts: 122
Joined: 12 Aug 2009, 16:15
Skype: ironic3d

Re: Scaling an object based on distance from another?

Post by I3D » 13 Mar 2010, 15:32

Hi origin

Thanks allot, that did the trick alright, thanks again :)


Cheers