セカンドライフプラネット

セカンドライフのスクリプト言語(LSL)をプラネットします。3DCG で物体をプラネットしたりもします。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

浮遊ライトのスクリプト説明

前回制作した浮遊ライトのスクリプトについて説明します。豊島区(toshimaku)で、この浮遊ライトをお配りしています。


場所の検索で「toshimaku」として「テレポート」すると、中央付近にブースがあります。「buy」(0$L)の後、「take」してください。

(1)グローバル変数
4 つのグローバル変数を使用します。これらの変数は、ライトの色や強さに関するもので、llSetPrimitiveParam 関数で使用します。前回のスクリプトでは変数の設定にミスがあり、ライトがあまり明るくありませんでした。今回の値はライトの強さが最大で、太陽調整を正午にしても明るくなります。


セカンドライフ スクリプト Light


各変数は「建造ウィンドウのライト設定(Light が軽いと訳されてますが・・・)の各パラメータに対応しています。

vector Color = <1, 1, 1>;  // 色
float Intensity = 1.0; // 強さ
float Radius = 20.0; // 半径
float Falloff = 0.0; // 弱まる

「建造ウィンドウ」のパラメータを手動で調整することで、ライトの明るさの設定を「静的に」変更可能ですが、スクリプトを使用することで「動的に」変更可能になります。

(2) 関数
5 この関数を使用します。

llSetText 関数
 物体の上に文字を表示する関数
 :物体の上に白文字「ABCDEFG」を表示
  llSetText("ABCDEFG", <1,1,1>, 1.0);

llSetPrimitiveParam 関数
 「建造ウィンドウ」で調整する各種パラメータを設定する関数
  :物体のライトの強さを最大にする関数。TRUE をFALSE にするとライトが消える
   llSetPrimitiveParams([PRIM_POINT_LIGHT, TRUE,
      Color, Intensity, Radius, Falloff]);
      

llSetStatus 関数
 物体の設定を「物理」や「幻」などにする
 :物体を物理設定にする。物理設定にした物体は力(重力、浮力、衝撃力、など)を感知し、反応し、相互作用します。FAUSE は解除。
  llSetStatus(STATUS_PHYSICS, TRUE);

llSetBuoyancy 関数
 物体に及ぼす浮力を設定する
 例1:浮力(1.1)の設定。浮かびます。
   llSetBuoyancy(1.1);
 例2:浮力(0.0)の設定。全く浮かびません。重力で落下します。
   llSetBuoyancy(0.0);

llSetTimerEvent 関数
 Timer イベントが発生するまでの時間を設定する
 :3 秒後にTimer イベントを発生させる
    llSetTimerEvent(3);

(3) イベント
3このイベントがあります。

state_entry イベント
物体がレズした際の状態(default)の最初に発生するイベント

touch_start イベント
物体を左クリックした際に発生するイベント

timer イベント
llSetTimerEvent で設定した時間に発生するイベント



セカンドライフ スクリプト 状態遷移 timer


(4) 状態
4 つの状態があります。オブジェクトをクリックする度に、各状態を遷移します。

default 状態
 ・物理設定がオフ、ライトがオフ
 ・クリックすると、Buoyancy 状態に遷移

Buoyancy(浮力)状態
 ・物理設定がオン、ライトがオン
 ・タイマーを3秒に設定し、Floatage 状態に遷移
 ・3 秒間、浮き上がる

Floatage(浮遊)状態
 ・3 秒後に、物理設定がオフ、ライトがオン
 ・浮遊している
 ・クリックすると、Gravity 状態に遷移

Gravity(重力)状態
 ・物理設定がオン、ライトがオフ
 ・物体が落下する
 ・クリックすると、Buoyancy 状態に遷移

スポンサーサイト

テーマ:セカンドライフ - ジャンル:オンラインゲーム

  1. 2007/06/18(月) 15:56:02|
  2. キャンプタイマー
  3. | トラックバック:0
  4. | コメント:0

浮遊ライト配ってます

前回作成方法を説明した、浮遊ライト(Floating Light)を、豊島区でお配りしています。


セカンドライフ スクリプト Float Light


テレポート先は以下のとおりです。
Toshimaku(134.159.22) テレポート
注)セカンドライフを立ち上げておいてください。その後、上のテレポートをクリックしてください。

浮遊ライトを右クリックして、パイメニューから「Buy」を選んでください。
無料(0L$)なのでご心配なく。

 浮いたり沈んだりする仕組み(スクリプト)は、前回の「浮遊ライトをつくりました」で公開しています。

テーマ:セカンドライフ - ジャンル:オンラインゲーム

  1. 2007/06/16(土) 23:08:49|
  2. キャンプタイマー
  3. | トラックバック:0
  4. | コメント:0

浮遊ライトをつくりました

前回制作した「空中工房」にライトがほしいと思い、「浮遊ライト」を制作しました。

浮遊ライト
1.クリック(左マウスボタン)すると、明るくなり上昇する。
2.一定時間後に上昇が止まる。
3.もう一度、クリックすると明かりが消えて落ちてくる。

浮遊ライトの制作
以下の手順で「浮遊ライト」を制作してください。
1.適当なオブジェクト(プリム)を制作する
2.「建造ウィンドウ」からスクリプトを入力する
具体的な方法は本ブログの以前の記事を参照してください。


セカンドライフ スクリプト Float Light



3.スクリプトを記述するところに、以下のソースをコピーする

// ---------------------- スクリプト スタート --------------------------------
vector Color = <1, 1, 1>;
float Falloff = 2.0;
float Intensity = 20.0;
float Radius = 2.0;

default   // 物理オフ状態
{
    state_entry()
    {
        llSetText("Light:OFF, Physics:OFF", <1,1,1>, 1.0);
        llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE, Color, Intensity, Radius, Falloff]);   
        llSetStatus(STATUS_PHYSICS, FALSE);
        state buoyancy;
    }
}

state buoyancy  // 物理オン状態(浮力)
{
    touch_start(integer t_num)
    {
        llSetText("Light:ON, Physics:ON(Buoyancy)", <1,1,1>, 1.0);
        llSetPrimitiveParams([PRIM_POINT_LIGHT, TRUE, Color, Intensity, Radius, Falloff]);
        llSetBuoyancy(1.1);
        llSetStatus(STATUS_PHYSICS, TRUE);
        llSetTimerEvent(3);
        state  floatage;       
    }
}

state floatage  // 物理オフ状態(空中停止)
{
    timer()
    {
        llSetText("Light:ON, Physics:OFF(Floatage)", <1,1,1>, 1.0);
        llSetStatus(STATUS_PHYSICS, FALSE);   
        state gravity;
    }
}

state gravity  // 物理オン状態(重力)
{
    touch_start(integer t_num)
    {
        llSetText("Light:OFF, Physics:ON(Gravity)", <1,1,1>, 1.0);
        llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE, Color, Intensity, Radius, Falloff]);   
        llSetStatus(STATUS_PHYSICS, TRUE);
        llSetBuoyancy(0.0);
        state buoyancy;
    }
}
// ---------------------- スクリプト エンド --------------------------------


セカンドライフ スクリプト Float Light


実験
実験風景です。上昇が止まらなく飛んでいってしまうことがあったので、空中工房を上下2つ使用しています。

各種パラメータには、力(浮力、重力)の大きさ、浮遊時間、ライトのオン・オフ、文字表示する・しない、等がありますが、適宜修正してください。

「浮遊ライト」をうまく動作させるにはコツがいります。少し長めにクリックしてください。

今回の「浮遊ライト」はプロトタイプなのでエラー処理が入っていません。典型的な例として、何かの拍子に飛んでいってしまうことがあります。その辺のエラー処理(リミット処理)は今後の課題です。飛んでいってしまっても怒らないでください(笑)。

このスクリプトの説明は次回にしたいと思います。

テーマ:セカンドライフ - ジャンル:オンラインゲーム

  1. 2007/06/14(木) 12:33:41|
  2. キャンプタイマー
  3. | トラックバック:0
  4. | コメント:0

プロフィール

Aa

Author:Aa
SLプラネットへようこそ!
Koenjiで物づくりしてます。
皆さん、遊びにきてください。

ショップのSLURL

ショップ(白屋)のSLURLです。メタバーズの高円寺にあります。商品を展示販売しています。

メタバーズ、高円寺、白屋

最近の記事

月別アーカイブ

カテゴリー

ブログ内検索

おすすめ商品!


パソコンの横において、疑問点をサッと調べられます!...



オブジェクト制作を基礎から解説!販売方法も詳しく記述!...



すぐに使えるサンプルプログラムを多数収録!...



関数の詳しい記述あり!辞書のように便利!...

ゲームPC

ゲーム用パソコンならドスパラへ!Galleriaシリーズが大人気!

リンク

このブログをリンクに追加する

スポンサードリンク

スポンサードリンク

最近のコメント

最近のトラックバック

RSSフィード

FC2カウンター

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。