2012年8月12日日曜日

パスファインディング〜やるべきことの簡単なまとめ・その3


さて、いよいよオブジェクトの設定編です。
リンクセット、つまりキャラクター以外のオブジェクトを
右クリックすると、「Show in linksets」というメニューが出ます。
これを選択すると「Pathfinding linksets」というウィンドウが開きます。
このウィンドウは「Me」メニュー>「Pathfinding」>「Linksets...」
と辿って開くこともできます。

このウィンドウが開いたら、リンクセットを一つ一つ
選択して設定していくことになります。
そうそう、言い忘れましたが、自分の変更権限のあるリンクセットが
全て一覧で表示されますので、作業を始める前に
名前が「Object」となっているものは
きちんと名前を付け直しておく必要があります。

Pathfinding Linksets のウィンドウで設定するのは、
「Linkset use」欄に表示されている属性(attribute)を
ウィンドウ左下のプルダウンメニューで、
また、その右側にある「Walkability」つまり「歩きやすさ」
の数字になります。

まず用途属性から説明します。

・Walkable(=歩けるもの):その上をキャラクターが歩いて
 移動できるリンクセットを言います。
 例えば床や道路、橋の走行面などが想定されています。

・Static Obstacle(=静止した障害物):ぶつかるとそこを
 通り抜けることができない障害物で動かないものを言います。
 例えば、建物の壁やフェンス、また部屋に置かれた家具など。

・Movable Obstacle(=可動障害物):ぶつかるとそこを
 通り抜けることができない障害物で動くものを言います。
 その代表例はドアです。
 ドア自体は通り抜けることができません。
 しかしドアは動いて開いたり閉じたりすることで
 その場所を通過することをコントロールするわけですね。

・Material Volume(=物質的塊):何だか無理矢理な訳ですが、
 これはそれがある場所をキャラクターが通過する場合に、
 Walkability、つまり歩きやすさ係数で設定した値で
 歩きにくくしてキャラクターの走行速度を落とす場合に使われます。
 公式のガイドにあげられている例は、
 床に絨毯の絵が描いてあって、その絨毯の上を通る時に
 ややスピードが落ちるように、絨毯のテクスの上に
 Material Volumeを配置するような場合です。

・Exclusion Volume(=走行除外塊):これも日本語にしにくい。
 このリンクセットが置いてあるところには
 キャラクターは入れません。
 自動で動いているキャラクターが入り込むと
 その対処がややこしくなるような場所に置く想定で、
 例えば、橋や桟橋の両脇に透明にしたExclusion Volumeを置いて
 キャラクターが橋から落ちないようにするなどです。
 この場合、アバターはExclusion Volumeを通過できるのです。
 つまりアバターは橋から落ちる可能性もあるというわけ。w
 アバターは落ちても自分で上がって来れますもんね。

・Movable Phantom(=可動ファントム):動くもので、
 でもパスファインディングには関係なく通り抜けられるもの。

次に「歩きやすさ係数」についてですが、
これは100で最も歩きやすく、数字が小さくなるほど
歩きにくくなる、つまりキャラクターの走行スピードが落ちる
ということになります。

この「歩きやすさ係数」は、キャラクターのタイプによって
変えられるよういなっています。
つまり、タイプAはヒト型のキャラクター
タイプBは生き物型、
タイプCは機械型、
タイプDはその他となっています。

タイプCの機械型ってロボットとかなのか、
それともロボットはヒト型に入るのか、
だとすると例えばアンマリさんの自動走行乗り物のようなものが
想定されているのか、
はたまたタイプDのその他ってどんなものを想定してるのか
(ああ、ふわふわとした雲のようなものも作れるのかな。。。)、
この辺りはまだよくわかってません。
このあと調べてみますね。

最後に、選択したリンクセットに
こうした使用目的の属性と歩きやすさ係数を設定したら、
ウィンドウ右下の「Apply changes(変更を適用)」ボタンを押して
変更した内容を確定させます。
そして勿論、全てのオブジェクトについて設定が終わったら、
前回お話しした「Rebake region(ナビメッシュの再構築)」を
行う、というわけです。

ところで、これらキャラクターの動きに影響を与える
SIM内のオブジェクトをリンクセットと呼んできましたが、
あまりなじみのないこの言葉が何故使われてるか、
それは、これらの属性の設定がリンクされている単位で適用される
という理由によります。
つまり、例えば家を買ったとして、この家は大抵床も壁も
リンクされていたりしますが、
キャラクターを床と屋上だけ歩けるようにしたい、という場合は、
床や屋上をリンクから切り離して
壁などとは別に属性を設定する必要があるのです。
これは面倒ですね。
その家にスクリが仕込まれている場合などは
更にやっかいになりますね。
SIMの処理性能を最適化するための
リンクセットの属性変更には、実はこういう事前作業が必要なのです。

それから、もう一つやっかいなのがスカルプの扱い。
スカルプは球体に複雑なテクスチャを貼ることで
ある形を実現しているわけですが、
そこでどのような物理が働くかは予測不可能です。
そこで、リンデンのガイドでは、
例えばそこにスカルプでできたベンチがあるとして、
スカルプのベンチそのものは制作ツールで物理属性を「なし」にして、
そこにシンプルな透明のブロックを置いて
そのブロックに例えばWalkableの属性を設定する
といった手法を紹介しています。
でもこれってプリムをやたらと消費するよねぇ。
スカルプのオブジェクト結構多いと思うのに。。。
もしかしたらこのことが乗り物などでバグが多発していることと
関係しているのかもですね。

これでパスファインディングへの対策については
大体お話しできたと思います。
この他のテーマ、例えばキャラクターに対する設定などは
またいろいろとわかってきたら書くことにしますね。
それでは、また。

No response to “パスファインディング〜やるべきことの簡単なまとめ・その3”

Leave a Reply