2008年09月30日

キャラスタのお勉強 その3 3ds max 2008

キャラクタースタジオのBipedを構成する各パーツには何故だか判らないけどアニメーションメニューからコントローラーを追加したり出来ない。パーツを選択してアニメーションメニューのコンストレイントやコントローラ系の追加メニューを出すと、ことごとくグレー表示で選択できなくなっている(補足:コントローラを追加する場合はコントローラを割り当てロールアウトから行う事が出来るんだけど、ルックアットなんかは今の時点で扱い方が不明)。その代わり、必要とされる機能はキャラクタースタジオの方が提供してくれるわけだけど、ブラックボックス化されているから、いじってみると隔靴掻痒な感もあるな。

今回はそんな中からBipedの頭をターゲットに向けさせる機能についていじって見た報告だ。

まずは基本操作。Bipedを1体用意して、適当な場所にポイントを1つ作成する。

fig01

次にBipedの頭部を選択してモーションパネルのキー情報ロールアウトを開いて、「+頭」をクリックして展開する。すると小さい白い矢印が見えるから、それをクリックしてからPoint01をクリックする。

fig02

こうするとターゲットとしてPoint01が矢印の左側に表示される。

これでPoint01を頭が追いかける事が出来るわけだけど、頭にはそれとは別に回転角度のキーが打てる。その設定された角度とPoint01の方向に頭を向ける角度とをブレンドするのがターゲットブレンド値で、0なら設定角度、1ならターゲット方向を向き、その間の値なら角度はその数値で合成される。

だから頭をPoint01に向けるにはターゲットブレンド値を1にする必要があるけど、それには値を設定するためのキーを作成する必要がある。

Bipedの頭が選択されている事を確認してタイムスライダーをフレーム0に移動してからキー情報ロールアウトの赤い丸のボタンをクリックしてフレーム0にキーを作成する。これでターゲットブレンドに値がセット出来るようになるので、ターゲットブレンド値を1にする。

これでBipedの頭がPoint01を向く。ポイントを移動するとBipedの頭がPoint01を追って回転する。

fig03

ここまではふーんって感じだ。アニメーションメニューにもルックアットコンストレイントって言うのが入っていて同じ事が出来るよね(Bipedには設定出来ないけど)。

ところが・・・・だ。こうしてポイントを頭が追っかけられるようにキーを打ってしまうと、足跡モードが使えなくなっちゃうわけだ。足跡モードはBipedにキーが打たれていない時しか有効にならないからね。なんじゃこの仕様!

どう考えてもなんか使い方を勘違いしているとしか思えないんだけど、今のところ自分は足跡とルックアットを同時に活かす最適な方法と言うのを見出せないでいる。

それでもキーを打っちゃったものでも足跡を無理やり使う方法については以前に書いた通り、スケマティックビューでも出してやればBipedにFootstepsというノードが見つかるからそれを選択すれば足跡モードに強制的に入れる。そうすれば頭にキーを打った後でも足跡で歩行アニメーションを付けられるんだけど、結果的に歩行アニメーションを付けたらターゲットブレンド値は0に戻ってしまった。しかもご丁寧に頭のキー全部にターゲットブレンド値0が設定されてしまっている。これは先に足跡で歩行アニメーションを付けても同じことだ。頭に打たれたキーのターゲットブレンド値は全て0だ。だからターゲットを設定していてもこの値を1にしないとBipedはそっちを向く事は無い。しかし0から1に直すキーが足跡から生成した歩行アニメのためにいっぱい出来ちゃってるんだよね。これをいっぺんに直す方法は無いんだろうか?

普通にキーを全部選択してからターゲットブレンド値を1にしてもダメだった。だから頭を選択してキー情報ロールアウトで矢印をクリックしてキーを次々切り替えながらターゲットブレンド値を1にして行くというとても面倒くさい作業をしなくちゃならない事になるわけだ。そしてこの値はキー間で曲線的にアニメーションするけど、そのエンベロープを表示する方法がわからない(Bipedのワークベンチにも現れない)。

まあとりあえずスクリプトで処理してみるかと思って書いてみたのが下のコードだ。Bipedの頭を選択してからこれを実行すれば、頭のキー全てのターゲットブレンド値を1に設定してくれる。

head=$
h_cnt=head.transform.controller
n=h_cnt.keys.count
for i=1 to n do (
    hk=biped.getkey h_cnt i
    hk.headblend=1
)

でも、よーく考えたら、頭に付いてるキーってターゲットに頭を向けている時には何の働きもして無いんだよね。だからこんなスクリプトを使わなくても、フレーム0のところで頭のターゲットブレンドを1に設定したら、それ以降の頭のキーを全部選んで削除しちゃえばいいだけだな。

やってみた結果がこのアニメだ。歩きながら緑のポイントを頭がずっと追いかけてるでしょ。

fig04

ちなみに複数ターゲットを切り替えたい場合は今回のようにターゲットをレンダリングされないポイントとかで作っておいて、そのポイントを本当のターゲットにコンストレイントすればOK。こっちはBipedと違ってmax本来のコンストレイントだから安心して使えるよ。

それではまた次回。

maxまとめページ



take_z_ultima at 11:30│Comments(0)TrackBack(0)3ds Max | CG

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives