2012年8月18日土曜日

【技術情報】パスファインディング〜SIMの処理性能への影響を調べる


さて、またまたパスファインディングの話題です。
僕が管理者になっていて、音楽イベントを主催しているYMB SIMでは、
さっさとSIMのパスファインディングの機能を
オフにしてしまいましたが、これに対しては、
ファイアーストームのブログが煽りすぎだ、
折角の新しい機能を経験する機会を
わざわざつぶしてしまうことはないのでは、という批判もあります。
実際、僕もそうだと思います。
そうなるとSIMオーナーとしては誰でも知りたいと思うのが、
一体、今の自分のSIMに対して、パスファインディングがどれだけの
影響を与えているか、ということになるでしょう。
あまり影響がないのであれば、敢えてオフにすることもなく、
寧ろパスファインディングを使ったいろんな実験を
やってみる、というのも手ですよね。

そこで、簡単に自分のSIMの処理性能にどれだけの影響があるか、
その調べ方を書いておくことにします。

調べるに当たって、ビューワはやはりリンデンのベータ3.4.0、
これを使います。
Ctrl (cmd) + Shift + 1 で統計バーが表示されますが、
このベータには新しい項目が追加されています。
真ん中あたりに Pathfinding という項目があって、

・AI Step Time
・Skipped Silhouette Steps
・Characters Updated

という3つの数値が並んでいます。

このうちまず、AI Step Time ですが、
これは、パスファインディングのための計算に要する時間、
と考えて頂ければよいかと思います。
言い換えると、この時間をフレーム時間の合計で割ったものが、
現状でパスファインディングがSIMの処理性能に与えている影響、
ということになります。
リンデンの説明では、最適化されていないSIMの場合、
AI Step Time が最悪、フルスペックのSIMで4ms、
ホームステッドで1ms と想定しています。
つまり、通常SIMの場合、18%、ホムステで4.5%ということです。

次に、Skipped Silhouette Steps、
これは、Movable Obstacle に設定されたオブジェクトが
物理処理に与えている影響を計算した結果、
スキップすることとなったステップの数、と説明されています。
つまり、ナビメッシュの設定によっては、
あまりに計算処理に時間がかかる場合があり、
そのようなステップはスキップされて(飛ばされて)、
後続のステップを実行するようになっているのだそうです。
なので、この数が大きいと、
無駄に Movable Obstacles が設定されている可能性があり、
そのようなオブジェクトを探して、
Walkable か Static Obstacle に設定変更する必要がある、
ということです。
この時気をつけたいのは、現状では、Static Obstacle に設定すると、
その中にあるスクリが正常に動作しない可能性があるということ。
なので、スクリ入りのオブジェクトを Static に変更するかどうか
慎重に考えて行いたいものですね。

最後の Characters Updated は、各フレームごとに
キャラクターが更新されたパーセンテージを表しています。
当然この値は100%が期待されているわけで、
この値が低いということは、
そのフレームでの計算に時間がかかっていて、
結果上に書いたスキップが発生している、ということになります。
従って、この値が低い場合も、先ほどの Movable Obstacle について
最適化の作業を行う必要がある、ということです。

さて、それでは、実際どのくらい影響があるのか、
自分が管理している2つのSIMで調べてみました。

120818b.jpg


まずは、先日パスファインディング機能をオフにしたYMB002。
オフの状態での統計を見ると、

・AI Step Time:  0.001ms
・Skipped Silhouette Steps:  0/sec
・Characters Updated:  0.0 %
・フレーム時間総計:22.197ms
・物理的作用時間:0.295ms
・余暇:20.367ms

オフってありますので、当然ですが AI Step Time はほぼ0。
その他のパスファインディング還啓の値も0です。

次に、このSIMのパスファインディング機能をオンにしてみました。
すると。。。

120818a.jpg


・AI Step Time:  0.367ms
・Skipped Silhouette Steps:  3/sec
・Characters Updated:  0.0 %
・フレーム時間総計:22.209ms
・物理的作用時間:0.715ms
・余暇:20.016ms

さすがに AI Step Time、Skipped Silhouette Steps 共に
数字が増えてきましたね。
キャラクターはいないので、ここの0.0%は意味がないです。
AI Step Time は1.6%。
このSIMは実はホムステなので、4.5%で最悪の値となります。
余暇の時間にも殆ど変化がないので、
このSIMはオンにして、最適化しなくても、
それほど影響はない、ということになるでしょうか。
一方、オンにしたことで、物理的作用時間が2倍以上に増え、
そのうち半分以上をパスファインディングが使用している計算です。

さて、もう一つ別のSIM、同じく僕が管理人となっている
SilkRoad でも調べていました。
ここはいろいろな趣味を持つ、またクリエイターさんも多いとこで、
まだパスファインディングの機能をオフにしておらず、
また、最適化の作業もおこなっていません。
何れ、オーナーのアリスさんと打ち合わせた上で、
住人やテナントのみなさんとどのように対応していくか
話さないといけないのですが。。。。

120818c.jpg


SilkRoad は YMB002 とは異なり、フルスペックのSIMですが、
調べてみると、

・AI Step Time:  2.650ms
・Skipped Silhouette Steps:  23/sec
・Characters Updated:  0.0 %
・フレーム時間総計:22.223ms
・物理的作用時間:2.972ms
・余暇:4.426ms

AI Step Time の値が大きい! この値は11.9%に該当しますね。
しかも、物理的作用時間2.972msの90%近くを占めてます。
また、Skipped Silhouette Steps が23/秒とは!
余暇も4.426msしかないので、このSIMは機能をオフにするか、
最適化の作業をした方がいい、ということになりますね。

YMB002とSilkRoadという僕が管理人になっているSIMを例に、
新しい統計バーを使ってSIMへの影響を調べてみました。
他のSIMオーナーさんのご参考になればと思います。

No response to “【技術情報】パスファインディング〜SIMの処理性能への影響を調べる”

Leave a Reply