llGetPrimitiveParams
list llGetPrimitiveParams(list params)
primの属性値を返す。
引数paramsには取得したい属性のリストを指定する。
戻り値は引数に指定した属性に応じたリスト型のデータとなる。
引数paramsには取得したい属性のリストを指定する。
戻り値は引数に指定した属性に応じたリスト型のデータとなる。
基本的に、buildツールを使って指定可能なprimの設定値は全てこの関数を使用して取得できる。
また、この関数の戻り値を使ってllSetPrimitiveParams?関数を実行すると、buildツールと同様にprimを編集することが可能である。
これはつまりbuildの自動化が実現できることを意味する。
鏡面コピースクリプトなどは、この関数を使ってコピー元のprimの属性値を取得し、必要なパラメータに鏡面変換をかけた後、llSetPrimitiveParams?関数でコピー後のprimを形成する。
また、この関数の戻り値を使ってllSetPrimitiveParams?関数を実行すると、buildツールと同様にprimを編集することが可能である。
これはつまりbuildの自動化が実現できることを意味する。
鏡面コピースクリプトなどは、この関数を使ってコピー元のprimの属性値を取得し、必要なパラメータに鏡面変換をかけた後、llSetPrimitiveParams?関数でコピー後のprimを形成する。
引数には以下のようなリストを指定する。
引数 | 説明 | 戻り値 |
[PRIM_BUMP_SHINY, integer face] | face面のバンプマップとシャイニングの設定を得る | [integer shiny, integer bump] |
[PRIM_COLOR, integer face] | face面の色と透明度を得る | [vector color, float alpha] |
[PRIM_FLEXIBLE] | フレキシブルの設定値を得る | [integer TRUE/FALSE, integer softness, float gravity, float friction, float wind, float tension, vector force] |
[PRIM_FULLBRIGHT, integer face] | face面のフルブライト設定を得る | [integer TRUE/FALSE] |
[PRIM_MATERIAL] | マテリアル設定を得る | [integer material] |
[PRIM_PHANTOM] | ファントムかどうかを得る | [integer TRUE/FALSE] |
[PRIM_PHYSICS] | 物理オブジェクトかどうかを得る | [integer TRUE/FALSE] |
[PRIM_POINT_LIGHT] | ライトの設定値を得る | [integer TRUE/FALSE, vector color, float intensity, float radius, float falloff] |
[PRIM_POSITION] | 位置を得る | [vector position] |
[PRIM_ROTATION] | 回転を得る | [rotation rot] |
[PRIM_SIZE] | サイズを得る | [vector size] |
[PRIM_TEMP_ON_REZ] | tempオブジェクトかどうかを得る | [integer TRUE/FALSE] |
[PRIM_TYPE] | primの基本設定値を得る | [integer primtype,...prim計上によって戻り値リストの配列は異なる] |
[PRIM_TEXGEN, integer face] | face面のテクスチャマッピングモードを得る | [integer texgen] |
[PRIM_TEXTURE, integer face] | face面のテクスチャ情報を得る | [( string name OR key uuid ), vector repeats, vector offsets, float rotation] |
各属性値の詳しい内容についてはllSetPrimitiveParams?関数の説明を参照。
引数には複数のパラメータの組み合わせを指定することが可能である。
例えば、物理属性とtemp属性、さらにファントム属性をまとめて確認したい場合は、引数リストに
[PRIM_PHYSICS,PRIM_TEMP_ON_REZ,PRIM_PHANTOM]
を指定する。
default { touch_start(integer detected){ list p = llGetPrimitiveParams([PRIM_PHYSICS,PRIM_TEMP_ON_REZ,PRIM_PHANTOM]); string msg; if ([[llList2Integer]](p,0)){ msg = "PHYSICS:ON / "; }else{ msg = "PHYSICS:OFF / "; } if (llList2Integer(p,1)){ msg = "TEMP:ON / "; }else{ msg = "TEMP:OFF / "; } if (llList2Integer(p,2)){ msg = "PHANTOM:ON"; }else{ msg = "PHANTOM:OFF"; } [[llSay]](0, msg); } }