2014年10月12日日曜日

連続した超多関節駆動用スクリプト(負荷テスト用)

//連続した超多関節の駆動用スクリプト(負荷テスト用)
//スクリプトタイム平均が0.1前後なのを確認 十二分に重いので常設禁止
//17プリムのデフォルト球体をリンクしてやりゃ動く

//負荷テスト用でオン・オフとか入れてないからこれそのまま流用とか考えないようにw

integer count=0;
integer j;
vector base_pos;
rotation base_rot;
integer i;
list params;

integer dir;
default
{
    state_entry()
    {
        llSetTimerEvent(10.0);
    }
    timer(){
        j=20;
        do{
            base_pos=ZERO_VECTOR;
            base_rot=ZERO_ROTATION;
            params=[];
            if(dir){
                ++count;
                if(count>3)dir=0;
            }else{
                --count;
                if(count<-3)dir=1;
            }
            for(i=2;i<18;++i){
                base_rot=llEuler2Rot(<0,count*PI/200,count*PI/200>)*base_rot;
                base_pos+=<0.25,0,0>*base_rot;
                params+=[PRIM_LINK_TARGET,i,PRIM_POSITION,base_pos,PRIM_ROT_LOCAL,base_rot];
            }
            llSetLinkPrimitiveParamsFast(0,params);
            --j;
            llSleep(0.01);
        }while(j>0);
    }
}

0 件のコメント:

コメントを投稿