Make Animated Mesh model for Secondlife and Opensim with Blender -A VERY SLOW Blender Tutorial

Опубликовано: 10 Июль 2026
на канале: Som (Method in Madness)
19,572
222

I just need some 6 minutes of your whole life for this tutorial on how to animate your mesh :))
Here in this tutorial for my friends, respected senior citizens and my dear subscribers and viewers, I've shown the easiest way to make animated mesh for Secondlife and Opensim with Blender 2.67.
I've covered almost everything here in this tutorial--- from making your model to upload and animating your model to give you a comprehensive idea of the total process.

I've written the very small LSL script here in real time and explained in detail what I've done step by step, so that you can follow easily in case you are a total newcomer in the world of scripting or a not-so-advanced scripter.
.
The script, that I wrote here, is the best and optimized way to animate your meshes in Opensim or in Secondlife ( instead of using multi-line laggy llSleep() function and a big script).
And more you can smartly change your animation speed just by altering the value of the timer only in one place i.e. llSetTimerEvent() in the state_entry();
Use pause or rewind when you need it.
Here is the full and functional script if you are still lost. Youtube removed the formatting.
But still a copy and paste of the following should work impeccably.

////---------Script starts here ---- copy from here

float animation_speed = 0.5;
integer total_prims;
integer link_counter;

default
{ state_entry() { total_prims = llGetNumberOfPrims(); llSetTimerEvent(animation_speed ); } timer() { link_counter++; llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES); llSetLinkAlpha( link_counter,1.0, ALL_SIDES); if( link_counter == total_prims) { link_counter = 0; } }
}

//// ------- end of script -- copy up to here.

Should I start a series on LSL scripting here ? :)


Animate your mesh. Unleash your creativity.
I'm sure that you are a very good artist with great imagination :)
I will be really very happy to see your creations. Post your video response here if you can. :)
One thing for sure. That will inspire me to make more advanced tutorials on blender for you all :))
Thanks for watching. :))
*****************************************************************************************************
Update:
As per the request of Pikangie, I've just written the quick script for randomized mesh animation . I'm yet to test in SL. But it's working in Opensim. Kindly check this out and let me know. :)
Warm regards. :)

Script starts below this line -----------------------------------------------------

float randomized_time = 7.0; // experiment with this time
float animation_speed = 0.5;
integer total_prims;
integer link_counter;

action()
{
llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
llSetLinkAlpha( link_counter,1.0, ALL_SIDES);
}

default
{
state_entry()
{
total_prims = llGetNumberOfPrims();
state warmup;
}
}

state warmup
{
state_entry()
{
state trigger;
}

changed( integer c)
{
if ( c & CHANGED_LINK)
{
llResetScript();
}
}
}

state trigger
{
state_entry()
{
llSetTimerEvent(animation_speed);
}

timer()
{
link_counter++;
action();
if( link_counter == total_prims)
{
link_counter = 0;
state wait;
}
}
}

state wait
{
state_entry()
{
llSetTimerEvent(llFrand(randomized_time));
}

changed( integer c)
{
if ( c & CHANGED_LINK)
{
llResetScript();
}
}

timer()
{
state warmup;
}
}

Script ends above this line------------------------------------------------------



*****************************************************************************

Here is another script if you don't want to animate the root Prim in the link Set.

link_counter counts the prim in a linkset one by one.
Root Prim number is 1 in a linkset. And 2 is the number of the first child prim if we link the prims sequentially . Hence I set the initial value of the link_counter to 2. so that it will ignore number 1 ( which is the root prim) ;

/// Script starts here

float animation_speed = 0.25; // change as per your need
integer link_counter = 2; // 2 is the first childprim number in a linkset
integer total_prims;
set_alpha()
{
llSetLinkAlpha(LINK_SET, 0.0,-1);
llSetLinkAlpha( LINK_ROOT,1.0,-1);
llSetLinkAlpha( link_counter,1.0, -1);
}
default
{
state_entry()
{
total_prims = llGetNumberOfPrims();
llSetLinkAlpha(LINK_SET, 1.0,-1);
llSetTimerEvent(animation_speed );
state forward;
}
}
state forward
{
timer()
{
link_counter++;
set_alpha();
if( link_counter == total_prims)
{
state reverse;
}
}
}
state reverse
{
timer()
{
link_counter--;
set_alpha();
if( link_counter == 2)
{
state forward;
}
}
}

/// script ends here