SIMの負荷を調べよう
SIMが非常に重い場合がありますよね。
知識が付いてくるとすぐ見当が付きますが、あまり経験が低いと
何が原因で重いのかを特定するのはなかなか難しいと思います。
と、いう事でラグの原因の目星をつける方法を教えます。
この方法はSIMオーナでなくとも調べることができる方法です。
1.StatisticsBarを使おう!
「Ctrl + Shift + 1」を押すか下図のようにメニューバーのViewからStatisticsBarを表示します。
2.重い直接の原因を調べよう!
StatisticsBarを開くと、右側にステータスの一覧が開きます。
通常は閉じていて、文字をクリックすると詳細が開くという感じです。
まずは「Simulator」をクリックしてさらにその中のTime(ms)をクリックしましょう
Time(ms)の中に実際に処理に掛かっている時間が表示されます。
○Total Frame Time(総合の時間です)
まず、この値が高くないか確認します。
たとえばこの値が500msであったとすると0.5秒のラグが発生しています。
(つまり1秒間のうち0.5秒間は動きが停止するようなガクガクなラグです。)
この値が100〜200msを超えると重いなと体感できると思います。
Net Time:通信関連に掛かる時間
Sim Time(Physics):SIMの物理処理に掛かる時間
Sim Time(Other):SIMその他の処理、プリムの移動等物理以外でのSIM上の処理
Agent Time:人の動作に掛かる時間
Image Time:テクスチャの表示に掛かる時間
Script Time:SIM上のスクリプトの時間
数値が異常に高い場合はこれで大体特定できます。
○Script Perf(スクリプトに掛かっているリソース)
スクリプトの処理が多くなってくるとこの値が上昇してきます。
この値が8万くらいを超えるようになったら警戒しましょう
大体快適な数値を維持するには最低でも6万以下くらいになるようにしたほうがよいです。
この数値が高くなっているとSIMが落ちやすくなります。
基本的には動いているスクリプトが多い場合に高くなるようなので
常時動くようなスクリプトを調査する必要があります。
注意例1)通常会話に反応するListenスクリプト
注意例2)頻繁にタイマーイベントが動く物
最低でもタイマーイベントは0.1秒にするべきですが中には0.01秒とかとんでもなく早い
タイミング指定したりする人もいます。これらがあるとあっというまに10万とか行きます。
注意例3)センサー系の停止
例えばお店のお客さんが近づくと「いらっしゃいませ」と言う物や、自動ドアを
床で衝突イベントを取得して反応するように変えたり
人に追従するペット等を停止したりする事でかなり改善する事ができます。
あとは、近くの人の名前一覧を表示したりするスクリプト等ですね。
使わないときは停止しましょう。
また、最近流行の100人に広告を見せればL$がもらえるアイテムを例に挙げますが
これはセンサーを使い、検知した人を以前検知した人か比較しながら
カウントするという非常に簡単なプログラムですが。
こういうタイプはサーチタイミングが早かったり、検索が100人と
非常にリソースを食うスクリプトなので、人が多いSIMでは迷惑になる
可能性があります。
まぁその他にもあっとおどろく重いスクリプトがあるかもしれません。
最近はリソースを考えない作りの物が多くなってきているので非常に厄介です。
3.通信の頻度を見よう
基本的に通信量が多ければ多いほど処理が重くなるわけです。
Objectの描写が多ければ多いほどObject数値が上がり重くなりますし
Texture描写が多ければ多いほどTexture数値が上がり重くなるという訳です。
まぁSIMブーストを掛けてSIMのプリム数を底上げして他のSIMよりプリムが多い!と
売りにしているようなSIMはこの辺の数値が高くなりやすく、
通信量が通常設定のSIMより高くなっていると思います。
(ちなみに一度読み込みが終われば基本的には通信がなくなるので
通常であれば、描写が落ち着けばここの数値は0等になります。
あまりにも多い場合は常に数値がでてしまうかもしれません)
その分通信が多く重くなる訳です。