スクリプターズカフェ/ログ/llSensorのフラグについて
出典: Second Life in Japan
[編集] 08/09/13
llSensor/llSensorRepeatに指定するフラグについてです。
フラグには以下の4種類があります。
- AGENT
- ACTIVE
- PASSIVE
- SCRIPTED
wiki.secondlife.comの記述(2008/09/19時点)によると、ACTIVEやPASSIVEは「対象オブジェクトが移動しているか、移動していないか」という区別のように読めるのですが、いくつか試してみると実際にはこのような単純な分類ではないようです。
この区別は、rpgstatsのwikiにある説明の方が正しいようです。
→rpgstats llSensor
こちらの説明によると、
- ACTIVE:物理オブジェクトで移動中のもの、およびアクティブなスクリプトを含むもの
- PASSIVE:移動していない物理オブジェクト、およびアクティブではないスクリプトを含むもの、スクリプトのない非物理オブジェクト
となっています。
[編集] アクティブ vs 非アクティブ
「アクティブなスクリプト」「アクティブではないスクリプト」というのが出てきますが、以下のような分類のようです。
- アクティブなスクリプト
- forループやその他スクリプトコードが実行中であるもの
- llListenを実行して待機中のもの
- llSensorRepeatを実行して定期的にスキャンしているもの
- llSetTimerEventを使用してタイマーを待機しているもの
- アクティブではないスクリプト
- デフォルトのスクリプトを追加しただけのような、スクリプトがrunningだが単にイベントを待機しているだけのもの
- llSensorを1回実行しただけのものはこちらになる
- llHTTPRequestを実行しただけのものなど
Listen待機やタイマー待機のように、一見「実行中」ではないように見えるものも「アクティブ」という分類になるようです。
[編集] SCRIPTED の作用
上記のように、スクリプトのあるなしに関わらずACTIVEやPASSIVEで拾われます。
「SCRIPTED」というフラグは、これを「スクリプトがあるもののみに限定」するためのフラグのようです。
※この点、rpgstatsの記述とはやや動作が異なるようでした。
このページのTinyURL:http://tinyurl.com/SC-Sensor-Flag
