KineFXを使用してリターゲットができたので、これをPDGと組み合わせていきたいと思います。
難しい処理は行わず、フォルダにあるアニメーションをキャラクタにリターゲティングして出力します。
マッピングの変更は行わないため、アニメーション元のFBXに含まれるジョイント名は同じ名前である必要があります。
まずは、キャラクタごとFBXとして出力するためにROP FBX Character Outputを作成します。
ROP FBX Character Outputは下記のように接続します。
左の入力にスキニングジオメトリ、中央がジョイント、右側にリターゲットしたアニメーションデータを接続します。
この状態で、ROP FBX Character OutputのOutput FBX Fileの出力ファイル名を設定し、Save to Diskをクリックします。
FBXがフレーム分出力ができていたら、次に進みます。
Top Networkを作成します。
Top Network内に入ったら、File Patternを作成します。
File PatternのプロパティエディタでPatterにアニメーションFBXが保存されたディレクトリまで指定し、そのあとに*fbxとすることでディレクトリ内にあるすべてのfbxをロードすることができます。
パスを指定したら、File Pattern上で右クリックし、Generate Nodeを選択します。
すると、そのディレクトリに保存されたfbx分のワークアイテムが生成されます。
File Patternの右下部分をクリックすると出、Trask Graph Tableを開くことができます。
このTOPsで読み込んできたワークアイテムからファイル名を引っ張り出すために、filenameアトリビュートを使用します。
次にRop Fetchを追加します。
Rop Fetchは、Ropノードを実行することができます。ここで、ROP FBX Character Outputを使ってFBXを出力していく処理を行います。
ROP PathでROP FBX Character Outputを指定します。
次にリターゲティング元になるアニメーションをロードするFBX Animation Importで、TOPsでロードしたfilenameを使用します。
直接fbxファイルを指定していた場所の最後のファイル名を`@filename`と置き換えます。
Copy Parameterを行い
もう一つのFBX Animation Import(Rest Transfom用)に、Paste Relative Referenceを行います。
ここはそのままfilenameアトリビュートの結果(.fbxこみ)に設定します。
Top Networkの中に戻りOutputフラグをRop Fetchに設定します。
設定が完了したらCook Output Nodeを選択します。
リターゲティングとFBXの保存が40アニメーション分行われます。
タスク完了!
フォルダをみるとFBXが40個できています!
ビューアーでみると、ちゃんとキャラクタに割り当てられています。
1回作っておけば、後は100モーションでも夜中に実行しておけばいいのでとっても便利ですよ。