LlGetPrimitiveParams/ja - Second Life Wiki

LlGetPrimitiveParams/ja

From Second Life Wiki

Jump to: navigation, search

関数: list llGetPrimitiveParams( list params );

パラメータリストから指定したプリミティブのパラメータのlist値を返します。

• list params PRIM_* フラグ


もしfaceの値がALL_SIDESなら、flagは全側面に作用します。

パラメータ 付加パラメータ 説明
PRIM_TYPE ] 9 [ integer flag ] プリムの形状を取得します。
flag定数 フラグパラメータ
PRIM_TYPE_BOX 0 [ integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ]
PRIM_TYPE_CYLINDER 1 [ integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ]
PRIM_TYPE_PRISM 2 [ integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ]
PRIM_TYPE_SPHERE 3 [ integer hole_shape, vector cut, float hollow, vector twist, vector dimple]
PRIM_TYPE_TORUS 4 [ integer hole_shape, vector cut, float hollow, vector twist, vector hole_size, vector top_shear, vector advanced_cut, vector taper, float revolutions, float radius_offset, float skew ]
PRIM_TYPE_TUBE 5 [ integer hole_shape, vector cut, float hollow, vector twist, vector hole_size, vector top_shear, vector advanced_cut, vector taper, float revolutions, float radius_offset, float skew ]
PRIM_TYPE_RING 6 [ integer hole_shape, vector cut, float hollow, vector twist, vector hole_size, vector top_shear, vector advanced_cut, vector taper, float revolutions, float radius_offset, float skew ]
PRIM_TYPE_SCULPT 7 [ string mapinteger type ] Sculpted_Prims:_FAQ
  hole_shape Flags 形状 hole_shape Flags 形状
PRIM_HOLE_DEFAULT 0x00 標準 PRIM_HOLE_SQUARE 0x20 四角
PRIM_HOLE_CIRCLE 0x10 PRIM_HOLE_TRIANGLE 0x30 三角
typeのフラグ 形状 説明
PRIM_SCULPT_TYPE_SPHERE 1 上と下が交わっていて、左から右に閉じています
PRIM_SCULPT_TYPE_TORUS 2 トーラス 上と下に閉じていて、, 左側から右側に閉じています
PRIM_SCULPT_TYPE_PLANE 3 平面 交わりも、閉じてもいません
PRIM_SCULPT_TYPE_CYLINDER 4 シリンダー 左側から右側に閉じています
PRIM_MATERIAL ] 2 [ integer flag] プリムの材質を取得します。材質は標準の衝突音スプライトを決定します。
flag定数 フラグの説明
PRIM_MATERIAL_STONE 0
PRIM_MATERIAL_METAL 1 鉱石
PRIM_MATERIAL_GLASS 2 ガラス
PRIM_MATERIAL_WOOD 3
PRIM_MATERIAL_FLESH 4
PRIM_MATERIAL_PLASTIC 5 プラスチック
PRIM_MATERIAL_RUBBER 6 ゴム
PRIM_MATERIAL_LIGHT 7 廃止が明らかな事項: [ PRIM_FULLBRIGHT, ALL_SIDES, TRUE ]を同等のものとみなします。
PRIM_PHYSICS ] 3 [ integer boolean ] 物理状態 、llGetStatus
PRIM_TEMP_ON_REZ ] 4 [ integer boolean ] 一時的なrez状態、llGetStatus
PRIM_PHANTOM ] 5 [ integer boolean ] ファントム状態 、llGetStatus
PRIM_POSITION ] 6 [ vector position ] 位置、 llGetPos
PRIM_ROTATION ] 8 [ rotation rot ] 回転、 llGetRot
PRIM_SIZE ] 7 [ vector size ] 大きさ、 llGetScale
PRIM_TEXTURE, integer face ] 17 [ string texture, vector repeats, vector offsets, float rotation_in_radians ]
Texture: llGetTexture
Repeats: llGetTextureScale
Offset: llGetTextureOffse
Rotation: llGetTextureRot
PRIM_COLOR, integer face ] 18 [ vector color, float alpha ]
Alpha: llGetAlpha
Color: llGetAlpha
PRIM_BUMP_SHINY, integer face ] 19 [ integer shiny, integer bump ]
shinybumpの定数 説明
PRIM_SHINY_NONE 0 なし
PRIM_SHINY_LOW 1 少し光る
PRIM_SHINY_MEDIUM 2 中くらいに光る
PRIM_SHINY_HIGH 3 最高に光る
PRIM_BUMP_NONE 0 なし: no bump map
PRIM_BUMP_BRIGHT 1 brightness: generate from highlights
PRIM_BUMP_DARK 2 darkness: generate from lowlights
PRIM_BUMP_WOOD 3 woodgrain
PRIM_BUMP_BARK 4 bark
PRIM_BUMP_BRICKS 5 bricks
PRIM_BUMP_CHECKER 6 checker
PRIM_BUMP_CONCRETE 7 concrete
PRIM_BUMP_TILE 8 crustytile
PRIM_BUMP_STONE 9 cutstone: blocks
PRIM_BUMP_DISKS 10 discs: packed circles
PRIM_BUMP_GRAVEL 11 gravel
PRIM_BUMP_BLOBS 12 petridish: blobby amoeba like shapes
PRIM_BUMP_SIDING 13 siding
PRIM_BUMP_LARGETILE 14 stonetile
PRIM_BUMP_STUCCO 15 stucco
PRIM_BUMP_SUCTION 16 suction: rings
PRIM_BUMP_WEAVE 17 weave
PRIM_FULLBRIGHT, integer face ] 20 [ integer boolean ]
PRIM_FLEXIBLE ] 21 [ integer boolean, integer softness, float gravity, float friction, float wind, float tension, vector force ]
PRIM_CAST_SHADOWS ] 24 [ integer boolean ] プリミティブに影を割り付ける
PRIM_TEXGEN, integer face ] 22 [ integer type ]
type定数 説明
PRIM_TEXGEN_DEFAULT 0
PRIM_TEXGEN_PLANAR 1
PRIM_POINT_LIGHT ] 23 [ integer boolean, vector color, float intensity, float radius, float falloff ]

警告

  • この関数は0.2秒間、スクリプトを停止します。
  • faceの示す面が存在しない場合、...
flag 面が無効な場合返します
[ PRIM_TEXTURE ] [ "", ZERO_VECTOR, ZERO_VECTOR, 0.0 ]
[ PRIM_COLOR ] [ ZERO_VECTOR, 0.0 ]
[ PRIM_BUMP_SHINY ] [ PRIM_SHINY_NONE, PRIM_BUMP_NONE ]
[ PRIM_FULLBRIGH ] [ FALSE ]
[ PRIM_TEXGE ] [ PRIM_TEXGEN_DEFAULT ]
を返します。

オブジェクトが部分の光源であるかテストして、もしそうであればパラメータを取得します。

 
string msg = "Object is ";
integer isLight;
vector colour;
float intensity;
float radius;
float falloff;
list params = llGetPrimitiveParams([PRIM_POINT_LIGHT]);
isLight = llList2Integer(params, 0);
if (isLight == FALSE)
    msg += "not a light source.";
else
{
    colour = llList2Vector(params, 1);
    intensity = llList2Float(params, 2);
    radius = llList2Float(params, 3);
    falloff = llList2Float(params, 4);
    msg += "a point light source.\nColour = "+(string)colour;
    msg += "\nIntensity = "+(string)intensity;
    msg += "\nRadius = "+(string)radius;
    msg += "\nFalloff = "+(string)falloff;
}
llSay(0, msg);
 

部分的な利用

list GetPrimitiveParams(list input)
{//Returns a list that can be fed to llSetPrimitiveParams
    list output;
    integer c = ~(input != []);
    while(0x80000000 & (c = - ~c))
    {
        list flag = (list)llList2Integer(input, c);
        if(~llListFindList([PRIM_BUMP_SHINY, PRIM_COLOR, PRIM_TEXTURE, PRIM_FULLBRIGHT, PRIM_TEXGEN], flag ))
        {
            integer side = llList2Integer(input, (c = - ~c));
            if(~side)//pop the stack
                output += flag + side + llGetPrimitiveParams( flag + side );
            else
            {
                side = llGetNumberOfSides();
                do //we return the sides in reverse order, easier to code; runs faster.
                    output += flag + side + llGetPrimitiveParams( flag + (side = ~ -side) );
                while(side);
            }
        }
        else
            output += flag + llGetPrimitiveParams( flag );
    }
    return output;
}
//Contributed by Strife Onizuka

Anylyn Hax作のSetPrimitiveParams-Example はプリミティブのパラメータを読みやすくします。

関連項目

関数

•  llSetPrimitiveParams 複数のプリミティブのパラメータを設定します
•  llSetLinkPrimitiveParams

項目

•  Color in LSL
•  Translucent Color