Improving Region Performance/ja
この項目ではセカンドライフのリージョンパフォーマンスをチェックする方法および、それを向上させるためにはどうすれば良いかを解説しています。この wikiはリージョンのオーナーむけに書かれています。いくつかの項目は島(プライベートシム)向けの内容ですが、一部はメインランドの土地オーナーにも役に立つ内容となっています。
リージョンパフォーマンスをチェックするためには
リージョンパフォーマンスを見るために、まずそのリージョンのフレームレート(FPS)をチェックしましょう。そのためには 統計一覧を使用します。あなたの管理している土地上で View Menu > View Statistics Bar の順に選択してください。この一覧には少し圧倒されるかもしれませんので どのように読めばよいのか解説しましょう。なお、Simというのは Simulator(シミュレーター)の略でリージョン(地区・地域)の別名です。下図中に丸でしめしてある「Sim FPS」というのはそのリージョンのフレームレートを表しています。
リージョンのFPS値がどういう意味かは以下の通りです:
- 45 FPS: 最高の状態です。何もする必要はありません。
- 35 - 44 FPS: 良い状態です。35 FPSを切るようなことがなければ特に調整をする必要はありません。
- 20 - 35 FPS: 遅い状態です、注意する必要があります。リージョンパフォーマンスを改善するために調整が必要です。
- 10 - 20 FPS: 悪い状態です、深刻な状況といえます。
- 0 - 10 FPS: 恐ろしい状態です。サポートチケットを切るべきです。
もっとも混んでいる時間帯でもあなたのリージョンが 35 FPS以上を保っているのであれば何もする必要はありません。うれしいことに大半のリージョンは 35 FPS以上を保っています。2007年の 10月の例をあげればセカンドライフ全体において平均値で 35 FPSを切ってしまうようなリージョンは 2%以下でした。
何がリージョンの動作を遅くしているかを さらに詳しく知るためには統計一覧の最後の行「Time (ms)」をクリックしてください。そうすると下図のようなさらに詳しい情報が表示されます。
「Total Frame Time」は一枚のフレームを表示するのに何ミリ秒(ms)かかっているかを示しています。この値が 22.2 ms以上かかっている場合は すなわちフレームレートが 45 FPS以下になっているということになります。これらの内容のもっと詳しい情報はナレッジベースの統計一覧ページで Timeというセクションを見てください。なお、この時間測定の件については この「リージョンパフォーマンスを向上させる」説明のなかでも触れることにします。
リージョン パフォーマンスを向上させる
リージョンパフォーマンスを向上させるためにはいくつかの手順があります。ここでは影響が大きそうでかつ実施の手間が少なそうなものから順に説明していくことにします、が、リージョンによって事情は異なるので注意してください。
その地域にいるアバターの最大数を減らす
リージョンFPSが下がっている場合、もっとも良くある、そしてたいていの場合もっとも大きな影響を及ぼしている原因は、そのリージョン内にいるアバターの数です。標準の設定よりも最大数を上げているためにリージョンのパフォーマンスが低くなってしまっていることがよくあります。その地域で許可する最大アバター数を減らせばたいていの場合 FPSは上がります。この設定は World Menu > Region / Estate から行うことができます。Region / Estateというウィンドが開きますので、その中の Agent Limit という値を調整することでそのリージョンに同時に入れるアバターの最大数を決めることができます。
リージョンに入れるアバター数の標準値は 40人となっています。地域のオーナーであればこの値を調整することができます。あなたのアバターから見ることができる他のアバターはほぼ 30人といったところです。混んでいる時間帯に統計一覧の Agent Timeを見て、どの程度のパフォーマンスでリージョンが動いているか把握しましょう。混んでいる時間帯で Agent Timeが 9 ms以下になるように保つことをお勧めします。設定方法についてより詳細な情報が必要な場合はナレッジベースの「リージョン内のアバター数」を参照してください。
負荷の高いスクリプトを取り除く
非効率なスクリプトや頻繁に処理を行うスクリプトはリージョンを遅くする原因になります。統計一覧の Script Time行にはリージョン内の各スクリプトがどれくらいの時間(ミリ秒)を消費しているか表示されています。もし 5ミリ秒以上消費しているものがあるのなら それを取り除けるかどうか調査する価値があります。どのスクリプトがもっとも時間を消費しているかは Region / Estateウィンドウの Debugタブで調べることができます。
「Get Top Scripts」をクリックすると下図のような画面が表示されます。
Timeという列のタイトルを二回クリックすればもっとも消費時間の大きいスクリプトから順に一覧が並び替えされます。Refreshボタンを何回か押して、いくつか違ったタイミングで調べることでより正確に調べることができます。どのスクリプトがリージョンの資源を消費しているか分かれば、それを取り除いたり違うものと置き換えたり最適化したりできます。なおリージョン内のスクリプトの総数を減らすことでもパフォーマンスを向上できることに注意してください。
問題のあるスクリプトの例:休止状態になることをせずに継続的に走り続けている - 例えば 2~3秒以下の間隔でセンサーを回している。他の例としては temp-rezzerスクリプトがあります。これは(制限値よりも)少しだけ多くのプリムの使用を可能にするものですが、代わりにリージョンのパフォーマンスを消費します。
負荷の高いコリジョンを取り除く
衝突検知をする必要がある物理オブジェクトは潜在的にリージョンを遅くする可能性を持っています。物理オブジェクトは動き回ることが多い上に、物理計算をすることでリージョンパフォーマンスを大幅に消費しがちです。統計一覧の Physics Time行には各物理オブジェクトがどれくらいの時間(ミリ秒)を消費しているかが表示されています。もし 4ミリ秒以上消費しているものがあるのなら それを取り除けるかどうか調査する価値があります。どのコリジョンがもっとも時間を消費しているかは Region / Estateウィンドウの Debugタブで調べることができます。
「Get Top Colliders」をクリックすると下図のような画面が表示されます。
Timeという列のタイトルを二回クリックすればもっとも負荷の高いコリジョンから順に一覧が並び替えされます。この一覧は瞬間瞬間の状況をもとにして作られていますので、Refreshボタンを何回か押すとより正確な状況を知ることができるでしょう。どのオブジェクトのコリジョンの負荷が高いのかが分かれば、それを取り除いたり違うものと置き換えたり最適化したりできます。なおリージョン内の物理オブジェクトの総数を減らすことでもパフォーマンスを向上できることに注意してください。
大きなテクスチャを取り除く
過度に大きなテクスチャの使用はリージョンを遅くする原因になります。一般的に 512x512より大きなテクスチャを使用することは避けた方がよいです。統計一覧の Images Time行にはリージョン内のテクスチャを処理するのにどれくらいの時間(ミリ秒)がかかっているか表示されています。この値が 2ミリ秒を越えているようであれば それらを減らせるかどうか調査する価値があります。あるリージョンにアバターが入ってきて巨大なテクスチャや沢山の小さなテクスチャを見ると各ビュワーは自動的にそれらのイメージデータをダウンロードしようとします。もし多くのアバターが同時にダウンロードしようとすると リージョンに負荷がかかり、結果として FPSが下がります。もしそれらの大きなテクスチャを取り除くことができないのであればユニークなテクスチャを減らす、テクスチャの大きさを小さくする、解像度を下げるなどの対応でリージョンパフォーマンスを改善することができます。(訳注:同じキーのテクスチャであれば一度のダウンロードですみます。似ているけれどもそれぞれキーが違うなどの場合はキーの数だけダウンロードが発生するのでその分負荷になってしまいます)。
テクスチャが変化するスクリプトを使っているオブジェクトを最適化する
テクスチャを差し替えるスクリプトを使っているオブジェクトはリージョンを遅くする原因になります。新しいテクスチャが表示されるたびに、それを見ているアバターはデータをダウンロードする必要がでてきます。もしそれを取り除くことができないのであればそのオブジェクトで使用しているテクスチャの数を減らすか解像度を下げるかしてみてください。それによってリージョンパフォーマンスを改善することができます。
使用しているプリム数を減らす
リージョン内のプリム数を減らすことでリージョンパフォーマンスを向上することができます。現状では各リージョンの制限数は 15,000プリムです。
来訪者のアタッチメント数を減らす
これを実施するのはとても大変ですが、一部のリージョンでは訪れるアバターに付けているアタッチメント - 特にプリム数が多いものや重いスクリプトが動いているもの - を外してもらうことで速度向上を実現しています。
ビュワーのパフォーマンス向上のためにリージョンを最適化する
下記のようなリージョン構成はビュワー側のパフォーマンスを下げる原因になります。
- 10m x 10mより大きなプリムはビュワー側の FPSに影響します。
- アバターが初めに訪れる場所に大きな、もしくは多数のテクスチャがある。
- 過度のスカルプティ
- パーティクル効果
訪れる人のなかには遅いグラフィックカードやPCを使用している人もいることに留意してください。
速いリージョンに更新する
リージョンにはいくつか異なるパフォーマンスレベルを持った異なるクラスのものが存在します。現行の最新は Ian Lindenのブログ記事で記載されている 2006年の 11月に導入された Class 5です。2006年の11月以降に追加されたリージョンはすべてクラス5です。クラス5リージョン(SIM)はクラス3と比較して大幅に多くのアバター、多くのスクリプト、多くの物理、多くのオブジェクト、そして多くのテクスチャを一度に扱うことができます。クラス3の領域を所有しているオーナーはクラス5にアップグレードすることができます。クラスは納品時に決定されます。
追加情報
Region/Estateウィンドウを使用すると他にも多数の管理を行うことができます。詳細はリンク先のナレッジベースを参照してください。
まとめ
平均値が 35 FPS以下のリージョンはほんの数パーセントしか存在していないのは事実ですが、パフォーマンスが悪くて遅いリージョンが少ないとは言いがたいことは理解できます。そういったリージョンや地域のオーナーに対して、どのように統計一覧を利用すれば - 混んでいる時間帯に統計一覧を利用して アバターやスクリプトやテクスチャ、オブジェクト、物理オブジェクトなどの数を調整することで - パフォーマンス改善を行うことができるかを示しました。この記事があなたのリージョンをクールでかつ早い状態にする適切なバランスを見つける手助けになることを望みます。