default
{
state_entry()
{
// Set the hover text to "Hello World!" in white with no transparency
llSetText("A Happy Poopy for you!", <1.0, 1.0, 1.0>, 1.0);
}
}
(color)
https://wiki.secondlife.com/wiki/Category:LSL_Color
default
{
state_entry()
{
// Set the hover text to "Hello World!" in white with no transparency
llSetText("A Happy Poopy for you!", <1.0, 1.0, 1.0>, 1.0);
}
}
(color)
https://wiki.secondlife.com/wiki/Category:LSL_Color
// :CATEGORY:Door
// :NAME:OpenDoor
// :AUTHOR:Encog Dod
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:38:59
// :ID:593
// :NUM:814
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// OpenDoor
// :CODE:
// From the book:
//
// Scripting Recipes for Second Life
// by Jeff Heaton (Encog Dod in SL)
// ISBN: 160439000X
// Copyright 2007 by Heaton Research, Inc.
//
// This script may be freely copied and modified so long as this header
// remains unmodified.
//
// For more information about this book visit the following web site:
//
// http://www.heatonresearch.com/articles/series/22/
float TIMER_CLOSE = 5.0;
integer DIRECTION = -1; // direction door opens in. Either 1 (outwards) or -1 (inwards);
integer DOOR_OPEN = 1;
integer DOOR_CLOSE = 2;
vector originalPos;
door(integer what)
{
rotation rot;
rotation delta;
vector eul;
llSetTimerEvent(0);
if ( what == DOOR_OPEN )
{
llTriggerSound("doorOpen", 1);
eul = <0, 0, 90*DIRECTION>; //90 degrees around the z-axis, in Euler form
} else if ( what == DOOR_CLOSE)
{
llTriggerSound("doorClose", 1);
eul = <0, 0, 90*-DIRECTION>; //90 degrees around the z-axis, in Euler form
}
eul *= DEG_TO_RAD; //convert to radians rotation
rot = llGetRot();
delta = llEuler2Rot(eul);
rot = delta * rot;
llSetRot(rot);
}
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
originalPos = llGetPos();
}
touch_start(integer total_number)
{
door(DOOR_OPEN);
state open_state;
}
moving_end()
{
originalPos = llGetPos();
}
}
state open_state
{
state_entry()
{
llSetTimerEvent(TIMER_CLOSE);
}
touch_start(integer num)
{
door(DOOR_CLOSE);
llSetPos(originalPos);
state default;
}
timer()
{
door(DOOR_CLOSE);
llSetPos(originalPos);
state default;
}
moving_start()
{
door(DOOR_CLOSE);
state default;
}
}
WindowsからLinuxへ移行してからviewerを試してみた。
(Firestorm viewer)
使えるがopensimulator serverとの接続がよく切れる。
起動時アバターが よくスモーク状態なる。少し待つと読み込む。
(Singularity viewer)
安定して使える。
起動時アバターの読み込みが出来ずAppearanceを出さねばならない。出してOKを押すだけで読み込む。
(結論)
XMLファイルのダウンロードも出来るので Singularity viewerを使うことにする。
// :CATEGORY:Fire
// :NAME:L97campfire
// :AUTHOR:Dana Moore
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:38:56
// :ID:448
// :NUM:604
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// L9.07-campfire.lsl
// :CODE:
// Copyright (c) 2008, Scripting Your World
// All rights reserved.
//
// Scripting Your World
// By Dana Moore, Michael Thome, and Dr. Karen Zita Haigh
// http://syw.fabulo.us
// http://www.amazon.com/Scripting-Your-World-Official-Second/dp/0470339837/
//
// You are permitted to use, share, and adapt this code under the
// terms of the Creative Commons Public License described in full
// at http://creativecommons.org/licenses/by/3.0/legalcode.
// That means you must keep the credits, do nothing to damage our
// reputation, and do not suggest that we endorse you or your work.
// Listing 9.7 Animating a Campfire
key fireTexture = "c424d916-be08-422a-bbc1-13036e60dad8";
default {
state_entry() {
llSetAlpha(0,ALL_SIDES);
llSetAlpha(1,1);
llSetAlpha(1,3);
llSetTexture(fireTexture, ALL_SIDES);
llSetTextureAnim(ANIM_ON | LOOP, // mode
ALL_SIDES, // side
4, 4, // x_frames, y_frames
0, 0, // start, length frame
4); // frame rate
}
on_rez( integer _n ) {
llResetScript();
}
}
// END //
blenderのscrew modifierで作ったobjectがerrorが出てuploadできなかったので調べてみた。次の動画が参考になった。結果upload出来た。
// :CATEGORY:Particles
// :NAME:Smoke
// :AUTHOR:Encog Dod
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:39:04
// :ID:803
// :NUM:1113
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// Smoke
// :CODE:
// From the book:
//
// Scripting Recipes for Second Life
// by Jeff Heaton (Encog Dod in SL)
// ISBN: 160439000X
// Copyright 2007 by Heaton Research, Inc.
//
// This script may be freely copied and modified so long as this header
// remains unmodified.
//
// For more information about this book visit the following web site:
//
// http://www.heatonresearch.com/articles/series/22/
generalParticleEmitterOn()
{
llParticleSystem([
PSYS_PART_FLAGS , 0
//| PSYS_PART_BOUNCE_MASK //Bounce on object's z-axis
| PSYS_PART_WIND_MASK //Particles are moved by wind
| PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end
| PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end
| PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter
| PSYS_PART_FOLLOW_VELOCITY_MASK//Particles are created at the velocity of the emitter
//| PSYS_PART_TARGET_POS_MASK //Particles follow the target
| PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow)
//| PSYS_PART_TARGET_LINEAR_MASK//Undocumented--Sends particles in straight line?
,
//PSYS_SRC_TARGET_KEY , NULL_KEY,//The particles will head towards the specified key
//Select one of the following for a pattern:
//PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity
//PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter
//PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle
//PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone
//PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE
,PSYS_SRC_TEXTURE, "smoke" //UUID of the desired particle texture, or inventory name
,PSYS_SRC_MAX_AGE, 0.0 //Time, in seconds, for particles to be emitted. 0 = forever
,PSYS_PART_MAX_AGE, 3.0 //Lifetime, in seconds, that a particle lasts
,PSYS_SRC_BURST_RATE, 0.5 //How long, in seconds, between each emission
,PSYS_SRC_BURST_PART_COUNT, 3 //Number of particles per emission
,PSYS_SRC_BURST_RADIUS, 10.0 //Radius of emission
,PSYS_SRC_BURST_SPEED_MIN, .4 //Minimum speed of an emitted particle
,PSYS_SRC_BURST_SPEED_MAX, .5 //Maximum speed of an emitted particle
,PSYS_SRC_ACCEL, <0.0,0,.05> //Acceleration of particles each second
,PSYS_PART_START_COLOR, <1.0,1.0,1.0> //Starting RGB color
,PSYS_PART_END_COLOR, <1.0,1.0,1.0> //Ending RGB color, if INTERP_COLOR_MASK is on
,PSYS_PART_START_ALPHA, 0.9 //Starting transparency, 1 is opaque, 0 is transparent.
,PSYS_PART_END_ALPHA, 0.0 //Ending transparency
,PSYS_PART_START_SCALE, <.25,.25,.25> //Starting particle size
,PSYS_PART_END_SCALE, <.75,.75,.75> //Ending particle size, if INTERP_SCALE_MASK is on
,PSYS_SRC_ANGLE_BEGIN, 0 * DEG_TO_RAD //Inner angle for ANGLE patterns
,PSYS_SRC_ANGLE_END, 45 * DEG_TO_RAD//Outer angle for ANGLE patterns
,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega()
]);
}
generalParticleEmitterOff()
{
llParticleSystem([]);
}
default
{
state_entry()
{
generalParticleEmitterOn();
}
touch_start( integer num )
{
// Uncomment the following line to allow this to be turned off
//state off;
}
}
state off
{
state_entry()
{
generalParticleEmitterOff();
}
touch_start( integer num )
{
state default;
}
}
-----------------------------------------------------------------------------------------
自作の画像を使いたい場合は
"smoke"のところを画像のUUIDと置き換える。
// :CATEGORY:Rotation
// :NAME:Slow_Rotation_Script
// :AUTHOR:Anonymous
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:39:04
// :ID:799
// :NUM:1109
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// Slow Rotation Script.lsl
// :CODE:
default
{
state_entry()
{
llTargetOmega(<0,0,1>,0.3,PI);
}
}
// END //
----------------------------------------------------------------------------------------------------------
" llTargetOmega(<0,0,1>,0.3,PI);"の3番目の1を-1に変えると逆回転する。
回転速度を変えるには、1を0.1のように数値を変える。
blender で作った3D modelをOpensimへuploadする場合、作ったmodelをそのままupすると正確に表示されない場合がある。私はmodifierのsolidifyを少しかけてupすることにより、その問題を回避している。今回久しぶりにuploadしたのだがそれを忘れていて、思い出すのに時間がかかった。
私流のやり方なので正しいかどうかわからないが表示はされるようになる。
default { state_entry() { // Set the hover text to "Hello World!" in white with no transparency llSetText...