Monday, October 24, 2011

7) Gesture (Pei)

Series Dancing

it's basically a link of all the dancing poses and some other gestures.

10/24/'11

the files used are: dance1 - dance 8, Roundhouse kick and Floating yoga

Modified animation code:

a list of all the gesture animations with wait of 2 seconds between each of them, and a 0.5 second wait between the Roundhouse kick and Floating yoga.

4) Interactive object (Pei)

Location:

X: 239.491
Y:209.380
Z:24.285

I turned the second assignment into an interactive object. The plane that displays the picture can be touched by an avatar, and once it is touched, it release the hover text which shows the basic information about the picture. (The location it is shot, the date and the clothing credits)



(object before being touched)



(text display above the object)

3) and 6) Object with LSL code (Pei)

Photobucket
(an animated gif that briefly shows the movement of the lantern)


Shifting Lantern (for (3)and(6))

X: 236.575/236.519
Y:205.058/204.916
Z:25.836/25.848

10/24/'11

I modified this colorful lantern I had made previously. I'd learned that in SL there is this limitation that you can never create the physical movement of a hanged object, so what I did instead is to try to make the object rotate and shift from left to right a little bit. I did it in Script Me with the option of rotating an object on a repeating timer, and I applied it to the lantern itself but not the rope it is hanging from. The lantern itself also contains the code of releasing particles. It might be due to the internet or the viewer problems that sometimes the particles are not visible.

Modified source code:

// Particle Script 0.5
// Created by Ama Omega
// 3-26-2004

// Mask Flags - set to TRUE to enable
integer glow = TRUE; // Make the particles glow
integer bounce = FALSE; // Make particles bounce on Z plane of object
integer interpColor = TRUE; // Go from start to end color
integer interpSize = TRUE; // Go from start to end size
integer wind = TRUE; // Particles affected by wind
integer followSource = TRUE; // Particles follow the source
integer followVel = TRUE; // Particles turn to velocity direction

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
integer pattern = PSYS_SRC_PATTERN_EXPLODE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner
// and "self" will target this object
// or put the key of an object for particles to go to
key target = "self";

// Particle paramaters
float age = 1; // Life of each particle
float maxSpeed = 5; // Max speed each particle is spit out at
float minSpeed = 1; // Min speed each particle is spit out at
string texture = ""; // Texture used for particles, default used if blank
float startAlpha = 1; // Start alpha (transparency) value
float endAlpha = 0.1; // End alpha (transparency) value
vector startColor = <0,1,0>; // Start color of particles
vector endColor = <1,0,0>; // End color of particles (if interpColor == TRUE)
vector startSize = <1,1,1>; // Start size of particles
vector endSize = <1,0,1>; // End size of particles (if interpSize == TRUE)
vector push = <0,0,0>; // Force pushed on particles

// System paramaters
float rate = 1.0; // How fast (rate) to emit particles
float radius = 2; // Radius to emit particles for BURST pattern
integer count = 3; // How many particles to emit per BURST
float outerAngle = 1.54; // Outer angle for all ANGLE patterns
float innerAngle = 1.55; // Inner angle for all ANGLE patterns
vector omega = <0,0,0>; // Rotation of ANGLE patterns around the source
float life = 0; // Life in seconds for the system to make particles

// Script variables
integer pre = 2; //Adjust the precision of the generated list.

integer flags;
list sys;
integer type;
vector tempVector;
rotation tempRot;
string tempString;
integer i;

string float2String(float in)
{
return llGetSubString((string)in,0,pre - 7);
}

updateParticles()
{
flags = 0;
if (target == "owner") target = llGetOwner();
if (target == "self") target = llGetKey();
if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
if (wind) flags = flags | PSYS_PART_WIND_MASK;
if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
sys = [ PSYS_PART_MAX_AGE,age,
PSYS_PART_FLAGS,flags,
PSYS_PART_START_COLOR, startColor,
PSYS_PART_END_COLOR, endColor,
PSYS_PART_START_SCALE,startSize,
PSYS_PART_END_SCALE,endSize,
PSYS_SRC_PATTERN, pattern,
PSYS_SRC_BURST_RATE,rate,
PSYS_SRC_ACCEL, push,
PSYS_SRC_BURST_PART_COUNT,count,
PSYS_SRC_BURST_RADIUS,radius,
PSYS_SRC_BURST_SPEED_MIN,minSpeed,
PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
PSYS_SRC_TARGET_KEY,target,
PSYS_SRC_ANGLE_BEGIN,innerAngle,
PSYS_SRC_ANGLE_END,outerAngle,
PSYS_SRC_OMEGA, omega,
PSYS_SRC_MAX_AGE, life,
PSYS_SRC_TEXTURE, texture,
PSYS_PART_START_ALPHA, startAlpha,
PSYS_PART_END_ALPHA, endAlpha
];

llParticleSystem(sys);
}

default
{
state_entry()
{
updateParticles();
}

touch_start(integer num)
{
llWhisper(0,"...Generating List...");
for (i=1;i<42;i+=2) { type = llGetListEntryType(sys,i); if(type == TYPE_FLOAT) { tempString = float2String(llList2Float(sys,i)); sys = llDeleteSubList(sys,i,i); sys = llListInsertList(sys,[tempString],i); } else if (type == TYPE_VECTOR) { tempVector = llList2Vector(sys,i); tempString = "<" + float2String(tempVector.x) + "," + float2String(tempVector.y) + "," + float2String(tempVector.z) + ">";
sys = llDeleteSubList(sys,i,i);
sys = llListInsertList(sys,[tempString],i);
}
else if (type == TYPE_ROTATION)
{
tempRot = llList2Rot(sys,i);
tempString = "<" + float2String(tempRot.x) + "," + float2String(tempRot.y) + "," + float2String(tempRot.z) + "," + float2String(tempRot.s) + ">";
sys = llDeleteSubList(sys,i,i);
sys = llListInsertList(sys,[tempString],i);
}
else if (type == TYPE_STRING || type == TYPE_KEY)
{
tempString = "\"" + llList2String(sys,i) + "\"";
sys = llDeleteSubList(sys,i,i);
sys = llListInsertList(sys,[tempString],i);
}
}
sys = llListSort(sys,2,TRUE);
if (target == "") sys = llDeleteSubList(sys,38,39);
else if (target == llGetKey() )
sys = llListInsertList(llDeleteSubList(sys,39,39),["llGetKey()"],39);
else if (target == llGetOwner() )
sys = llListInsertList(llDeleteSubList(sys,39,39),["llGetOwner()"],39);
if (texture == "") sys = llDeleteSubList(sys,24,25);
if (!interpSize) sys = llDeleteSubList(sys,12,13);
if (!interpColor) sys = llDeleteSubList(sys,6,7);

llWhisper(0,"[" + llList2CSV(llList2List(sys,0,21)) + ",");
llWhisper(0,llList2CSV(llList2List(sys,22,-1)) + "]");
}
}


-------- rotating--------



// This script was auto-generated by Ann Enigma's script autogenerator
// available at http://www.3greeneggs.com/autoscript/
//Note: To make your object rotate around one edge, try editing it and using these settings on the object tab:
// Size (adjust as necessary): X=.2, Y=3, Z=2.5, and Path Cut Begin = 0.38, Path Cut End = 0.87

integer open = FALSE;


default
{

state_entry() {
llSetTimerEvent(0.8);
}
timer() {

if (open == FALSE) {
open = TRUE;
llSetRot(llEuler2Rot(<0, 0, PI_BY_TWO>) * llGetRot());
} else {
open = FALSE;
llSetRot(llEuler2Rot(<0, 0, -PI_BY_TWO>) * llGetRot());
}

}

}



Fear to Shrug Gesture

So I made a gesture that quickly goes from horror to a shrug. Yeah, sarcasm.

The Color Toggle Post




Touch it and it turns a color. After a few seconds it returns to the original color. 2 scripts.

Torch Flame and Smoke



Pei-Hsuan and Jason figured out how to make a Mega Torch. We boosted the flame and smoke output.

// Jopsy's Particle System Template v4 - Jan 18 2004
// -- inspired/derived from Ama Omega's 3-6-2004
//
// DEFAULT settings are commented at the end of each line, eg:
// varibletype SETTINGNAME = Sample-Setting; // default-setting
//
// For more on particles, visit the Particle Labratory in Teal!

mySetParticles() {
// Part-1 - APPEARANCE - Settings for how each particle LOOKS
vector START_SCALE = < 1.2, 1.2, 1.2 >; // < 1.0, 1.0, 0.0 >
vector END_SCALE = < 0.1, 0.1, 0.1 >; // < 1.0, 1.0, 0.0 >
vector START_COLOR = < 1.0, 1.0, 0.0 >; // < 1.0, 1.0, 1.0 >
vector END_COLOR = < 1, 0.2, 0.0 >; // < 1.0, 1.0, 1.0 >
float START_ALPHA = 0.7; // 1.00
float END_ALPHA = 0.0; // 1.00
integer INTERP_COLOR = TRUE; // FALSE
integer INTERP_SCALE = TRUE; // FALSE
integer EMISSIVE = TRUE; // FALSE
string TEXTURE = ""; // ""
// START/END: refers to the lifespan of each particle.
// SCALE: particle height/width, from 0.04 to 10.0. (no depth)
// ALPHA: sets transparency, from invis = 0.0 to opaque = 1.0
// START_ALPHA is ignored if it is less than END_ALPHA
// COLOR: vectors , each 0.00 to 1.00
// INTERP_COLOR: enables/disables END_COLOR and END_ALPHA
// INTERP_SCALE: enables/disables END_SCALE
// EMISSIVE: enables/diables particle 'glow'
// TEXTURE: name of a texture in the emitter-prim's inventory
// or the asset id key of any texture

// Part-2 - FLOW - These settings affect how Many, how Quickly,
// and for how Long particles are present
float AGE = 0.6; // 10.00
float RATE = 0.0; // 0.10
integer COUNT = 5; // 1
float LIFE = 0.0; // 0.0
// AGE: How many seconds each particle lives, 0.1 to 60
// RATE: Seconds between particle bursts, 0.0 to 60
// COUNT: Number of particles per burst, 1 to 4096
// LIFE Number of seconds to wait before shutting off 0.1 to 60
// 0.0 never stops

// Part-3 - 3 PLACEMENT -- Where are new particles created, and what
// direction are they facing?
integer PATTERN = PSYS_SRC_PATTERN_ANGLE; // PSYS_SRC_PATTERN_DROP
float RADIUS = 0.00; // 0.00
float ANGLE_BEGIN = 0.10; // 0.00
float ANGLE_END = 0.10; // 0.00
vector OMEGA = < 0.00, 0.01, 1.00 >; // < 0.00, 0.00, 0.00 >
//float INNERANGLE = 0.00; // 0.00
//float OUTERANGLE = 0.00; // 0.00
// PATTERN: must be set to one of the following:
// PSYS_SRC_PATTERN_EXPLODE sends particles in all directions
// PSYS_SRC_PATTERN_DROP ignores minSpeed and maxSpeed.
// PSYS_SRC_PATTERN_ANGLE_CONE use ANGLE settings to make rings/cones
// PSYS_SRC_PATTERN_ANGLE use innerangle/outerangle to make flat
// wedges
// RADIUS: distance between emitter and each new particle, 0.0 to 64?
// ANGLE_BEGIN: for both ANGLE patterns, 0 to PI(3.14159)
// ANGLE_END: for both for ANGLE patterns, 0 to PI.
// OMEGA: How much to rotate the emitter around the axises
// after each burst. Set OMEGA to all 0's to reset/disable it.
// INNER/OUTER ANGLE: Depreciated. Old versions of ANGLE_BEGIN/_END.
// Can still be used to make lop-sided angle displays though.

// Part-4 - MOVEMENT - How do the particles move once they're created?
integer FOLLOW_SRC = FALSE; // FALSE
integer FOLLOW_VELOCITY = TRUE; // FALSE
integer WIND = TRUE; // FALSE
integer BOUNCE = TRUE; // FALSE
float SPEED_MIN = 0.3; // 1.00
float SPEED_MAX = 0.9; // 1.00
vector ACCEL = < 0.00, 0.00, 0.00 >; // < 0.00, 0.00, 0.00 >
integer TARGET_POS = FALSE; // FALSE
key TARGET = llGetKey(); // llGetKey();
// FOLLOW_SRC: moves particles when emitter moves. It will disable RADIUS!
// FOLLOW_VELOCITY: Particles rotate towards their heading
// WIND: Sim's Wind will push particles
// BOUNCE: Make particles bounce above the Z altitude of emitter
// SPEED_MIN: 0.01 to ?, slowest speed of new particles, 1.0(*)
// SPEED_MAX: 0.01 to ?, fastest speed of new particle, 1.0(*)
// SPEED_ is ignored for the DROP pattern.
// ACCEL: a continuous force pushed on particles,
// use SMALL settings for long lived particles
// TARGET_POS: If FALSE(*), TARGET value is ignored.
// TARGET: Select a target for particles to arrive at when they die
// key TARGET = llGetKey(); // particles return to the emitter
// key TARGET = llGetOwner(); // particles home in on owner
// You can have another object llSay(999,llGetKey);
// and grab the key with this object by using the listen()
// event handler.

list particle_parameters = [
PSYS_PART_FLAGS,(
( EMISSIVE * PSYS_PART_EMISSIVE_MASK ) |
( BOUNCE * PSYS_PART_BOUNCE_MASK ) |
( INTERP_COLOR * PSYS_PART_INTERP_COLOR_MASK ) |
( INTERP_SCALE * PSYS_PART_INTERP_SCALE_MASK ) |
( WIND * PSYS_PART_WIND_MASK ) |
( FOLLOW_SRC * PSYS_PART_FOLLOW_SRC_MASK ) |
( FOLLOW_VELOCITY * PSYS_PART_FOLLOW_VELOCITY_MASK ) |
( TARGET_POS * PSYS_PART_TARGET_POS_MASK ) ),
PSYS_PART_START_COLOR, START_COLOR,
PSYS_PART_END_COLOR, END_COLOR,
PSYS_PART_START_ALPHA, START_ALPHA,
PSYS_PART_END_ALPHA, END_ALPHA,
PSYS_PART_START_SCALE, START_SCALE,
PSYS_PART_END_SCALE, END_SCALE,
PSYS_SRC_PATTERN, PATTERN,
PSYS_SRC_BURST_PART_COUNT, COUNT,
PSYS_SRC_BURST_RATE, RATE,
PSYS_PART_MAX_AGE, AGE,
PSYS_SRC_ACCEL, ACCEL,
PSYS_SRC_BURST_RADIUS, RADIUS,
PSYS_SRC_BURST_SPEED_MIN, SPEED_MIN,
PSYS_SRC_BURST_SPEED_MAX, SPEED_MAX,
PSYS_SRC_TARGET_KEY, TARGET,
PSYS_SRC_ANGLE_BEGIN, ANGLE_BEGIN,
PSYS_SRC_ANGLE_END, ANGLE_END,
PSYS_SRC_OMEGA, OMEGA,
PSYS_SRC_MAX_AGE, LIFE,
PSYS_SRC_TEXTURE, TEXTURE
];

llParticleSystem( particle_parameters ); // Turns on the particle hose!


}

default
{
state_entry() {
mySetParticles();
// llSetTimerEvent(60); // uncomment to set auto-off for 60 seconds
}



touch(integer i) {
mySetParticles(); // touch to reset/turn on the particles
// llSetTimerEvent(60); // reset the alarm clock
}
}

The Color Changing Particle System






Essentially it's a box that when you get close to it, the particle system changes colors and textures.

10/24

I asked the programming wizard for guidance and he helped me to edit this code so that the colors would change, that led to the entire system changing.

so without further ado, here is the code:
// Particle System 1.0

StartSteam()
{ // MASK FLAGS: set to "TRUE" to enable
integer glow = TRUE; // Makes the particles glow
integer bounce = FALSE; // Make particles bounce on Z plane of objects
integer interpColor = TRUE; // Color - from start value to end value
integer interpSize = TRUE; // Size - from start value to end value
integer wind = FALSE; // Particles effected by wind
integer followSource = FALSE; // Particles follow the source
integer followVel = TRUE; // Particles turn to velocity direction

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
// PSYS_SRC_PATTERN_EXPLODE;
integer pattern = PSYS_SRC_PATTERN_ANGLE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner
// and "self" will target this object
// or put the key of an object for particles to go to
key target = "";

// PARTICLE PARAMETERS
float age = 4.4; // Life of each particle
float maxSpeed = 0.5; // Max speed each particle is spit out at
float minSpeed = 0.2; // Min speed each particle is spit out at
string texture = "Water Particle 4"; // Texture used for particles, default used if blank
float startAlpha = 0.8; // Start alpha (transparency) value
float endAlpha = 0; // End alpha (transparency) value
vector startColor = <1,0,0>; // Start color of particles
vector endColor = <1,1,1>; // End color of particles (if interpColor == TRUE)
vector startSize = <1.0,1.0,1.0>;// Start size of particles
vector endSize = <2,10,2>; // End size of particles (if interpSize == TRUE)
vector push = <0.5,0.0,0.0>; // Force pushed on particles

// SYSTEM PARAMETERS
float rate = 0.1; // How fast (rate) to emit particles
float radius = 0.75; // Radius to emit particles for BURST pattern
integer count = 20; // How many particles to emit per BURST
float outerAngle = 3*PI; // Outer angle for all ANGLE patterns PI/4
float innerAngle = 0.5; // Inner angle for all ANGLE patterns
vector omega = <.5,1,0>; // Rotation of ANGLE patterns around the source
float life = 0; // Life in seconds for the system to make particles

// SCRIPT VARIABLES
integer flags = 0;
if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
if (wind) flags = flags | PSYS_PART_WIND_MASK;
if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;

llParticleSystem([ PSYS_PART_MAX_AGE,age,
PSYS_PART_FLAGS,flags,
PSYS_PART_START_COLOR, startColor,
PSYS_PART_END_COLOR, endColor,
PSYS_PART_START_SCALE,startSize,
PSYS_PART_END_SCALE,endSize,
PSYS_SRC_PATTERN, pattern,
PSYS_SRC_BURST_RATE,rate,
PSYS_SRC_ACCEL, push,
PSYS_SRC_BURST_PART_COUNT,count,
PSYS_SRC_BURST_RADIUS,radius,
PSYS_SRC_BURST_SPEED_MIN,minSpeed,
PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
PSYS_SRC_TARGET_KEY,target,
PSYS_SRC_INNERANGLE,innerAngle,
PSYS_SRC_OUTERANGLE,outerAngle,
PSYS_SRC_OMEGA, omega,
PSYS_SRC_MAX_AGE, life,
PSYS_SRC_TEXTURE, texture,
PSYS_PART_START_ALPHA, startAlpha,
PSYS_PART_END_ALPHA, endAlpha
]);
}

StopSteam()
{
llParticleSystem([]);
}

changeColor()
{ // MASK FLAGS: set to "TRUE" to enable
integer glow = TRUE; // Makes the particles glow
integer bounce = FALSE; // Make particles bounce on Z plane of objects
integer interpColor = TRUE; // Color - from start value to end value
integer interpSize = TRUE; // Size - from start value to end value
integer wind = FALSE; // Particles effected by wind
integer followSource = FALSE; // Particles follow the source
integer followVel = TRUE; // Particles turn to velocity direction

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
// PSYS_SRC_PATTERN_EXPLODE;
integer pattern = PSYS_SRC_PATTERN_ANGLE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner
// and "self" will target this object
// or put the key of an object for particles to go to
key target = "";

// PARTICLE PARAMETERS
float age = 4.4; // Life of each particle
float maxSpeed = 0.5; // Max speed each particle is spit out at
float minSpeed = 0; // Min speed each particle is spit out at
string texture = "Water Particle 2"; // Texture used for particles, default used if blank
float startAlpha = 1; // Start alpha (transparency) value
float endAlpha = 0; // End alpha (transparency) value
vector startColor = <0.1,0.9,1>; // Start color of particles
vector endColor = <1,1,1>; // End color of particles (if interpColor == TRUE)
vector startSize = <0.25,0.25,0.25>;// Start size of particles
vector endSize = <2,2,2>; // End size of particles (if interpSize == TRUE)
vector push = <0.5,0.0,0.0>; // Force pushed on particles

// SYSTEM PARAMETERS
float rate = .01; // How fast (rate) to emit particles
float radius = 1.0; // Radius to emit particles for BURST pattern
integer count = 10; // How many particles to emit per BURST
float outerAngle = 3*PI; // Outer angle for all ANGLE patterns PI/4
float innerAngle = 0.5; // Inner angle for all ANGLE patterns
vector omega = <1,1,0>; // Rotation of ANGLE patterns around the source
float life = 0; // Life in seconds for the system to make particles

// SCRIPT VARIABLES
integer flags = 0;
if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
if (wind) flags = flags | PSYS_PART_WIND_MASK;
if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;

llParticleSystem([ PSYS_PART_MAX_AGE,age,
PSYS_PART_FLAGS,flags,
PSYS_PART_START_COLOR, startColor,
PSYS_PART_END_COLOR, endColor,
PSYS_PART_START_SCALE,startSize,
PSYS_PART_END_SCALE,endSize,
PSYS_SRC_PATTERN, pattern,
PSYS_SRC_BURST_RATE,rate,
PSYS_SRC_ACCEL, push,
PSYS_SRC_BURST_PART_COUNT,count,
PSYS_SRC_BURST_RADIUS,radius,
PSYS_SRC_BURST_SPEED_MIN,minSpeed,
PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
PSYS_SRC_TARGET_KEY,target,
PSYS_SRC_INNERANGLE,innerAngle,
PSYS_SRC_OUTERANGLE,outerAngle,
PSYS_SRC_OMEGA, omega,
PSYS_SRC_MAX_AGE, life,
PSYS_SRC_TEXTURE, texture,
PSYS_PART_START_ALPHA, startAlpha,
PSYS_PART_END_ALPHA, endAlpha
]);
}

default
{
state_entry()
{
StartSteam();
llListen(0, "", llGetOwner(), "");
llSensorRepeat("", NULL_KEY, AGENT, 2, PI, 0.5); // meters, direction (PI = all), ?
}

listen(integer channel, string name, key id, string message)
{

if (0 == llSubStringIndex(message, "spray on"))
{
StartSteam();

}
else if (0 == llSubStringIndex(message, "spray off"))
{
//state color;
StopSteam();
}
}



sensor(integer total_number) {
// llOwnerSay("Saw agent");
changeColor();
//llParticleSystem([ PSYS_PART_START_COLOR, <1., 0., 0.>]);
//state default;
}

no_sensor()
{
StartSteam();
// llOwnerSay("No one here");
}

}

1) Photo 1 of avatar (Pei)


Progeny: Vampire Castle and Grounds Grave Designs (171,65,24)

Pants by diablo exhall, boots by Renee Harvy, Hoodie by Patrick Bloch

10/24/'11

It had nothing to do with the fact that this place is called "Vampire Castle"; I just like the atmosphere of this place that it gives me a feeling that it's about to rain. My avatar would like to sit beside the bed for a while and feel the quietness and stillness of the moment.

The Evil Giant Zombie Worm Massacre


Title: The Evil Giant Zombie Worm Massacre
Location: Escapades
Clothing Credits: Kenny Rogers doesn't wear clothes
Date: 10/24/11

For this Halloween season be sure to visit Escapades and play 'The Evil Giant Zombie Worm Massacre'. For just 200L you'll get a cool game HUD, instructions, and a rusty old chainsaw! Find the 5 musical keys on the island and slay the Evil Giant Zombie Worms protecting each key. After you murder all the Evil Giant Zombie Worms and their families you can free the puppy who, even as you read this, hangs over a roiling lava-filled volcano.
Icy Wonder.
Eutheria Commons, Eutheria (32, 60, 29)

After exploring the island of Metatheria, Twinkle takes a moment to ponder the sorrows of life. Wearing her Mermaid Betta Wings, and a thoughtful siting pose of wonder, what's an avatar to do? 

The Burning Monk Interactive object




R3DMA Land, Katia Isle(199.109,220.724,24.035)

10/24

I managed to create a place to not only display my photo of the Burning monk, but I also made it actually spit a note card at you when you touch the block so my description is embedded in the object itself.

The Storm
Realtime 3d land, Katia Isle (220,191,1515)
Wearing Lalu Bonetto's Bow Top and Pants, Kuranosuke Kamachi's "anne" black Trench Coat, and Enktan Gully's Cigarette on mouth
Taken in my skybox I created something to engulf my avatar, her calm as the storm surrounds her, making all else indistinguishable as surroundings.

In repsonse to the tyrrany of size

I always thought that "the one best way", would immediately be accepted if it was the one best way... Which obviously mesh is not. I guess reconciling the fact that many people may not see what is there probably is hard, because it's suddenly some elitist thing where you're the one of few who can use these things now, and everyone else is left to semi-outdated technology, until they join those of us with a computer strong enough to handle meshes.
Well hell, I'm not going to stop using keynote because your computer only has power point, nor will I cease to use iMessage on the iPad just because I can't text everyone I want. Nay! I will keep using the tools available to me because they have their advantages to the alternative, maybe even in conjunction with the alternative. If making art on Second Life must be realized fully in screen captures of what I do, then I guess so be it, because it doesn't make sense to limit oneself to something just because not everyone can view it, they can see it later.
What I'm saying is that Mesh now has a place in second life, sure people believe that it will hurt their business because what they're selling is still prim based but well... people stopped buying lead paint because it wasn't seen as good anymore... but I'm sure it's used somewhere.

On the note of things being non customizable in mesh, that's a lie, here's a challenge: Download your free version of google sketch up and learn how to make it yourself.

-Please Stand By

response to homework article

I'm also a pro mesh if I have to make a decision. Although there are already a lot of things that can be done with prim; mesh indeed is a more convenient tool in the aspect of modeling and making.
However, as what is mentioned in the articles, mesh causes a number of problems and there is this debate about whether to or not to use mesh.
In my opinion, it should be taken into consideration that technology is something constantly developing. This means that we had already been searching for solutions continually. We shouldn't be limited to what is currently working and refuse to try something new but problematic. Everything has the potential to become better.

I agree a lot about the fact that one of the most exciting thing about SL is that everything could be customized. In today's world, we can see that customization plays a big part in every market. Under such situation, something that can't be altered and modified is very frustrating and unappealing.

To give a clearer definition to what I'm trying to say, I think meshes create an new possibility in SL; and although it is not perfect at this point, it could be the base of some new invention that would solve the current problems.
Updates needs times but are always exciting. Nothing stays the same, so does Second Life.

Saturday, October 22, 2011

Here Comes Mesh

In September 2011 Avril Korman reported on the recent progress of Mesh integration into Second Life. The article appeared in the website Search Engine Watch and is called Mesh & the Tyranny of Size: How Mesh Might Change Second Life Culture.

Mesh technology is a big update for Second Life. It means a much better graphics quality, graphics speeds, and far more graphics options for Mesh developers. Mesh is a 3D graphics technology that uses point to point connections, faces, and edges to form objects. In the past you could only use a certain amount of Prims to create an object and you could only create from a few basic shapes. This sometimes meant that in order to make a rather simple object many details would be needed and thus greater load times. With Mesh those objects can be made more easily without having to resort to a series of programmer tricks and those objects can process more easily on the user end.

Since Mesh is new to the SL world, there are many major incompatibilities and bugs that will need to be sorted out. The major concern for SL enthusiasts in particular is user-friendly object creation and customization. Until now SL users have been used to great measures of editing possibilities in SL with nonMesh objects and the interface for those adjustments have been rather simple to use. In many ways customizing is a kind of thesis in Second Life, what allows users the levels of creativity that makes this 3D world unique. Mesh will require SL users to develop on complex tools like Maya or 3DSM. Another issue is copyright issues. The amount of Mesh objects online is huge and SL developers are concerned with copyright issues from importing objects freely from the web. It will take years before SL can be fully updated and the rules for user friendly object creation sorted out.

Monday, October 17, 2011

For 10/24/11 homework

Since we've had a bit more luck with structured activities, let's all write a response to the following article by Avril Korman for next week 10/24/11: Mesh and the Tyranny of Size  Writing your blog post will get you ready to discuss this culture and technology article in class.

Howard Rheingold @ National Extension Virtual Conference

We watched/listened to noted author Howard Rheingold give a live presentation on social media and learning inworld. The conference continues Tuesday and Wednesday.

 Here are some of the pix and a link.

http://about.extension.org/2011/10/05/nevc2011-outstanding-professional-development-free-avoid-travel-hassles/

some halloween experiences

It’s close to Halloween so I went to some Halloween towns just to see what people have there, and it’s quite interesting. I found this place that there are a bunch of transparent ghosts rising from fog and disappear into the sky. I thought it was 3D but they were actually flat images. That made me a little disappointed but it is still a great scene to watch. I got closer to it and I saw the sign saying that the maker had given people the chance to copy and put down these ghosts as many as wanted. I then found that this whole place is like a Halloween museum full of interactive stuffs.

There is a well that would show the image of a longhair female ghost dressing in white when an avatar gets close. The ghost image stays exactly the same when I rotate my view, but I couldn’t see it rotating, so I guess there was some special scripting working with it.

I thought it was funny that I later ran into a theater in this place that was playing a Japanese horror movie. I noticed it because suddenly I heard people speaking Japanese. It was weird to hear that in such a Western-style place as a castle. I followed the sound and I found there was a movie playing. This was the first time that I watch a movie in Second Life and the experience was very interesting. When I am using Second Life I, in fact, never found it as “immersive” as it seems to be. However, the virtual world (movie) inside another virtual world creates this illusion that I am really in some places watching this movie.

Sunday, October 9, 2011

The Latest

Let's see, what have we been up to on Second Life? We checked out work by Bryn Oh, a 3D artist and poet/writer. Ms. Oh put together a very fun video called Anna's Many Murders. It actually is a 3D 'book' because it has a story and 3D pictures. The story is about a little girl who likes to kill in amusing ways. The 3D actually looks like it was done in Maya rather than Second Life but it was a good example of setting up a complete static scene.
We talked about creating an animation of some kind in Second Life and viewed a film about jules etienne marey without sound in order to get a quick look into how things are animated.
We briefly checked out Scott Killdall who likes to make Second Life versions of popular fine art pieces.
We watched Jon Rafman's 'KoolAid Man in SecondLife' video. This is a good summary of what is possible in Second Life. The author expends thoughts on what is all means to him. The format of the video is a succession of scenes that demonstrate the various areas of Second Life with narration.
The class has spent some time checking out scripts and understanding how basic ones are created. We also checked out some virtual art galleries in preparation of making some animated scripts or art in Second Life.

Monday, October 3, 2011

Second Life and some thoughts

I'd spent time exploring some random places. Since it is a virtual world, there is no doubt that people would create places like wonderland. There were also those places that mimics the existing places in the real world, and what I found interesting about them was the descriptions.

For example I found this place call "Better Earth", and the creators' intention was to "improve human relationship with nature". The environment make references to "the lands along the Bay of Biscay on the northern coast of the Iberian peninusla", as the description says; and all the animals and plants in the virtual world refer to the real animals and plants living in the place.

To be honest, when I came to the introduction of the place I immediately consider it ridiculous. Why do people prefer staying in front of the computer and watch this fake replica of the nature world over walking into the real nature? How do you "improve" human-nature relationship with this world that only exists in the computer?

However, after I thought about it a little bit longer, I started seeing it in a different way. As mentioned in class, there are a lot of users use Second Life as a way of escape. Maybe this is just a way to get in touch with these people, just like other environmental groups get in touch with different kinds of people in other ways.

After having this thought I kind of came back to my first impression that, even if people are getting the reminder, would they do anything about it? This then leads to the cliche debate about human and nature, and I stop thinking about it.

I also found this places that replicated the Chinese Qing and Ming style imperial palace. The description of the places emphasizes that everything is built accurately according to the period.
When people have the freedom to build anything they want, there are always some of them who choose to bring something they are familiar with into the free world. This can also be seen in the last example about the plants and animals. I found this pretty interesting.

Besides these, there are truly a lot of amazing things to look at.

Sunday, October 2, 2011

Boundaries




Most boundaries are mostly customary or suggestions. Lines of property only enforced by fences, if even that. In Second Life the walls take a greater multitude of forms. People protect their lots and islands with warning systems, invisible walls, teleporters or abrasive house music. There are abandoned structures in a sea of islands, a few with a handful of people straggling behind and most with nothing on them at all, but some had castles of users who likely hadn't logged on in months, even years. Where once these buildings were the houses and stores second souls, protected and respected, largely untouched by curious sightseers, now they lie unprotected in their watery expanse. Walking through these personal digital vaults is a strange experience, as many people wear their personalities far prouder on anonymous sleeves. There is nothing quite like exploring someones personally tailored sex pad, furnished with hunting trophies.