2009年01月20日
追跡型チップジャーは重いか
最近仕事を始めたSusukinoの DanceBar CCでは、スタッフの頭上に浮かぶ追跡型チップジャーを使っています。しかし一秒間隔で特定スタッフの位置を判定し、その頭上に移動するというスクリプトなので、これがSIMに負荷をかけるのではないかと心配になりました。実際夜になると結構重いし。
LSL Portalでも
・短く、頻繁にtimerをかける。(5秒以内)
というスクリプトは劣悪なものとされています。
重さに影響するのは短い間隔のタイマーとアバターの位置特定、オブジェクトの移動というあたりと仮定して、簡単なテストをしてみました。
まず、あらかじめ表示→統計情報を出しておきます。
このスクリプトをファントムの箱に入れて、箱をどんどんコピーします。25個くらい作りましたが、全部頭上に重なってるので一個にみえます(笑)。
この前後で統計情報のTime Dilationや Sim FPSを注視してみましたが、ほとんど変化がありませんでした。

木の箱二十数個を引き連れて歩く私ww
もちろん、これだけでOKとはいえませんが、1秒間隔のタイマーを動かしているオブジェクトが20個やそこら同時に動いていたからといって、ただちに高負荷となるわけではなさそうです。
LSL Portalでも
・短く、頻繁にtimerをかける。(5秒以内)
というスクリプトは劣悪なものとされています。
重さに影響するのは短い間隔のタイマーとアバターの位置特定、オブジェクトの移動というあたりと仮定して、簡単なテストをしてみました。
まず、あらかじめ表示→統計情報を出しておきます。
default
{
state_entry()
{
llSetTimerEvent(1);
}
touch_start(integer total_number)
{
llSay(0, "Touched.");
}
timer()
{
list l = llGetObjectDetails(llGetOwner(),[OBJECT_POS]);
vector apos = llList2Vector(l,0);
apos.z = apos.z+1.5;
llSetPos(apos);
}
}
このスクリプトをファントムの箱に入れて、箱をどんどんコピーします。25個くらい作りましたが、全部頭上に重なってるので一個にみえます(笑)。
この前後で統計情報のTime Dilationや Sim FPSを注視してみましたが、ほとんど変化がありませんでした。

木の箱二十数個を引き連れて歩く私ww
もちろん、これだけでOKとはいえませんが、1秒間隔のタイマーを動かしているオブジェクトが20個やそこら同時に動いていたからといって、ただちに高負荷となるわけではなさそうです。