店舗のお客さん検知などで利用できるファントム・センサーを紹介します。ファントムとは幻(まぼろし)という意味です。
センサーという名前ですが、sensorイベントは使用しません。代わりにcollisionイベントを使用します。
ファントム・センサーはsensorイベントを使用しないのでSIMに負荷がかかりません。そのため、ファントム・センサーを何個置いても大丈夫です。
1. ファントム・センサー
ファントム・センサーは、センサーとオブジェクトが衝突することでオブジェクトを検知します。
●プリム
・建造ウィンドウで適当な大きさのプリムを制作します。
例:10m×10m×10m(ボックス)
・プリムの透過度を高くします(例えば、90%)。
「建造ウィンドウ」の「テクスチャー」タブの「透過度」を調整します。 
●スクリプト
プリムに以下のスクリプトを組み込みます。
//
// Phantom Sensor
//
default
{
state_entry()
{
llVolumeDetect(TRUE);
}
collision_start(integer total_number)
{
integer i;
for(i=0; i<total_number; i++)
{
llOwnerSay(llDetectedName(i));
}
}
}
●ファントム・センサーの配布
スクリプト組込済みのオブジェクトを無料配布しています。サイズやテクスチャーなど自由に変更できます。スクリプトも見られるので、いろいろと改良を加えてください。
Game Forum:http://slurl.com/secondlife/Game%20Forum/210/204/22
●ファントム・センサーの使い方
ファントム・センサーを、アバターを検知したい空間に応じてサイズや透明度・テクスチャーを変更してください。
2.スクリプトの解説
●関数
llVolumeDetect(integer detect)
http://rpgstats.com/wiki/index.php?title=LlVolumeDetect
detect をTRUE に設定すると、自動的にスクリプトが添付される全体のリンクセットがファントムになります。
その領域をオブジェクトが進入するとcollision_startイベントが発生します。
(注)複数プリムがリンクしたオブジェクト(例:自動車)の場合、複数回collision_startイベントが発生するので、何らかの対策をプログラムする必要があります。
(注)物理設定したオブジェクトにこの関数を適用すると、そのオブジェクトは地面を突き抜けて消えてしまいます。
Author:Aa
SLプラネットへようこそ!
Game Forumで物づくりしてます。
皆さん、遊びにきてください。
ブログの内容を整理更新して掲載していきます。ラーニングの際には必ずHPでご確認ください。
スターオフィス(日本語版:StarSuite)がGoogleパックにて無料配布開始!
Microsoft Officeと互換性あり!
パソコンの横において、疑問点をサッと調べられます!...
オブジェクト制作を基礎から解説!販売方法も詳しく記述!...
すぐに使えるサンプルプログラムを多数収録!...
関数の詳しい記述あり!辞書のように便利!...
ゲーム用パソコンならドスパラへ!Galleriaシリーズが大人気!