13 December 2012
Animating swordfights?
If you make animations, I recommend this article on animating European sword fighting. I've always gone more with asian styles because I found it easier to get source videos/pictures/examples.
31 May 2012
Mirroring animations
One of the things I don't like about QAvimator is that it doesn't let me hit a button to flip or mirror an animation.
The .bvh file format that SL uses for animations isn't particularly complicated. To flip an animation is tedious but not difficult. The bottom half of a .bvh file has a line for each frame of your animation. You flip the negative sign on the Y rotation values for the center-line joints, then for the arms and legs you copy the values of the other side and flip the negative sign on the Y and Z rotation values. Not too frustrating on a pose, but on a moving animation? Ugh.
Fortunately Tali Rosca has made this a lot easier. Mirroring an animation? Try this!
The .bvh file format that SL uses for animations isn't particularly complicated. To flip an animation is tedious but not difficult. The bottom half of a .bvh file has a line for each frame of your animation. You flip the negative sign on the Y rotation values for the center-line joints, then for the arms and legs you copy the values of the other side and flip the negative sign on the Y and Z rotation values. Not too frustrating on a pose, but on a moving animation? Ugh.
Fortunately Tali Rosca has made this a lot easier. Mirroring an animation? Try this!
03 May 2012
24 March 2012
Lowering script time when moving child prims
If you move child prims around in a link set, it used to be very expensive in terms of script time. Think animated prim animals.
Change the Physics Shape Type of all the child prims to None. It dramatically drops the script time.
Change the Physics Shape Type of all the child prims to None. It dramatically drops the script time.
25 February 2012
Third Party Viewer Policy Drama
I'm watching the Third Party Viewer Policy Drama (there's a good round up of it here.)
10 February 2012
Change of scene
I swapped out the garden sky-globe for a cave of dark stone with little areas of sunlit garden. It's peaceful like the garden, but sometimes one needs a change of scene.
I reused a couple elements from the Vernian Deep build (the geodes, the smokers, etc.) The three stone textures are generated with Filter Forge. The glowing balls are my papillon wisp pets.
I reused a couple elements from the Vernian Deep build (the geodes, the smokers, etc.) The three stone textures are generated with Filter Forge. The glowing balls are my papillon wisp pets.
07 February 2012
Restarting a looped animation
I have a vehicle where the avatar does a looping animation that's in sync with some of the prim animations... When I cross sim boundaries they fall out of sync.
I thought that restarting both when the vehicle crosses a sim boundary would put them both in sync. It turns out that stopping and restarting a looping animation is more difficult that it sounds.
I tried llStopAnimation(A) followed by llStartAnimation(A). The animation continued looping like I'd done nothing. I tried adding a short llSleep() between the stop and start. No effect. I tried briefly starting and stopping a different animation between the stop and start. That interestingly did nothing as well.
What finally worked was a combination of the two.
I suspect it's related to a change intended to prevent griefing via bombing someone's viewer with animations.
I thought that restarting both when the vehicle crosses a sim boundary would put them both in sync. It turns out that stopping and restarting a looping animation is more difficult that it sounds.
I tried llStopAnimation(A) followed by llStartAnimation(A). The animation continued looping like I'd done nothing. I tried adding a short llSleep() between the stop and start. No effect. I tried briefly starting and stopping a different animation between the stop and start. That interestingly did nothing as well.
What finally worked was a combination of the two.
llStopAnimation(A);
llStartAnimation(B);
llSleep( 0.1 );
llStopAnimation(B);
llStartAnimation(A);
I suspect it's related to a change intended to prevent griefing via bombing someone's viewer with animations.
14 January 2012
Map hijinks continue
Well, the 40% alpha prim didn't do what I hoped.
It does appear on the map, but as translucent. It tints the sim map square.
It does appear on the map, but as translucent. It tints the sim map square.
12 January 2012
Hiding from the map + shadows = one dark sim
Sometimes when I'm building a sim, the owner wants things kept hidden from the world map until they're ready to reveal. The map pics the highest objects that are under 400M to display. Taking advantage of the ancient SL art of skywriting, we can protect an island sim from prying eyes.
The easiest covering is a 256x256x1 phantom prim with this script in it.
default
{
on_rez( integer p )
{
vector targetposition = < 128, 128, 390 >;
while (llVecDist(llGetPos(), targetposition) > 0.001)
llSetPos(targetposition);
}
}
When the prim is rezzed, it walks its way into position. And after the next mapper pass, curious eyes will only see that big boring prim.
Unfortunately, 400M is low enough to shadow the whole sim at ground level. A prim has to be 40% or more transparent to not cast shadows. After another mapper pass, I should know whether or not skywriting will still work at that transparency.
The easiest covering is a 256x256x1 phantom prim with this script in it.
default
{
on_rez( integer p )
{
vector targetposition = < 128, 128, 390 >;
while (llVecDist(llGetPos(), targetposition) > 0.001)
llSetPos(targetposition);
}
}
When the prim is rezzed, it walks its way into position. And after the next mapper pass, curious eyes will only see that big boring prim.
Unfortunately, 400M is low enough to shadow the whole sim at ground level. A prim has to be 40% or more transparent to not cast shadows. After another mapper pass, I should know whether or not skywriting will still work at that transparency.
Subscribe to:
Posts (Atom)