Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Growing/expanding objects

Kitson Mantel
Registered User
Join date: 22 Jul 2008
Posts: 2
07-22-2008 20:02
I'm looking for a way to make like an innertube or round inflatable pool toy. Would you mind showing me how or linking me to a place that tells me??


Also looking to make a sphere grow in one general direction
Johan Laurasia
Fully Rezzed
Join date: 31 Oct 2006
Posts: 1,394
07-22-2008 20:33
http://wiki.secondlife.com/wiki/LlSetPrimitiveParams

You're going to want to use PRIM_TYPE_TORUS for an inner tube, and you'll want to drop the Y hole down, then, you'll need to start small on the x,y, and z size, and create a loop, and scale up x,y and z using perhaps a timer so it will 'inflate' over time.


http://www.secondscripter.com
_____________________
My tutes
http://www.youtube.com/johanlaurasia
Kitson Mantel
Registered User
Join date: 22 Jul 2008
Posts: 2
07-22-2008 22:35
From: Johan Laurasia
http://wiki.secondlife.com/wiki/LlSetPrimitiveParams

You're going to want to use PRIM_TYPE_TORUS for an inner tube, and you'll want to drop the Y hole down, then, you'll need to start small on the x,y, and z size, and create a loop, and scale up x,y and z using perhaps a timer so it will 'inflate' over time.


http://www.secondscripter.com

what would that look like in script?
I'm a beginner and still trying to learn
Urrong Urnst
Registered User
Join date: 12 Jul 2008
Posts: 49
07-23-2008 03:22
to make sphere grow from one side u first need to apply scale with llSetScale(vector scale) and then move the sphere for half scale on appropriate axis. i.e. lets say the sphere or any other prim has 0 rotation (scale coordiantes are aligned with sim position axes). Sphere is <1,1,1> m big and we want it to be <1,.5,1> and to downscale from left side.

(might be some syntax error because i didnt compile this)
CODE

default
{
touch_start(integer num)
{
llSetScale(<1, .5, 1>); //sets the scale
llSetPos(llGetPos() + <0, .25, 0>); //since scale is from center it will offset the
//prim for 0.25m from both sides thats why we move it for 0.25m to the right.
llSleep(5.0); //waits 5 seconds
llSetScale(<1, 1, 1>); // sets scale back to first dimensions
llSetPos(llGetPos() + <0, -.25, 0>); //moves the prim left for .25
}
}
CODE


if u think that this wont look real u r wrong :D the llSetPos is fast enough to move the prim as it scales so the difference isnt even noticed (i cant say that for sure since i only tested this on beta grid with mono but i think it should work. Eh mono will be onservers today to it should work right away :D).
Django Yifu
Beat Island Gaffer
Join date: 7 May 2007
Posts: 189
08-19-2008 11:22
To make double sure this is smooth combine the scale and position using;

*blah blah blah*

llSetPrimitiveParams([PRIM_POSITION, llGetPos() + <0, .25, 0>, PRIM_SIZE, <1, 0.5, 1>]);

*blah blah blah

llSetPrimitiveParams([PRIM_POSITION, llGetPos() - <0, .25, 0>, PRIM_SIZE, <1, 1, 1>]);

this should give simultaneous results for all elements being changed so even if there is time dilation on a sim you will have clean resizing and positioning.

Separate calls to llSetScale and llSetPos WILL have a delay that is noticeable in most situations.
_____________________
Tread softly upon the Earth for you walk on my face.