スケルトン付きキャラクタとして読み込んだFBXにアニメーションデータとして読み込んだFBXをHoudini内で適用して、アニメーションができるようにします。
最初にFile > Import> Filmbox FBXを使用してキャラクタアセットのFBXファイルをロードします。
このデータにはアニメーションを持たせていません。
シーンにFBXのサブネットとして作成されます。
サブネットの中にはいると、ジョイント階層、ジオメトリ、マテリアルがあります。
読み込んだFBXをDigital Assetにします。
デジタルアセット内部に入り、ジョイントの上にNullを追加します。
NullのUniform Scaleで0.01に設定し、アセットの大きさを100分の1にします。
Mayaは基本単位がcmですが、Houdiniはmです。そのため、スケールをNullで調整しました。
次に読み込みたいアニメーションのFBXを選択し、Mergeでシーンに読み込みます。
スライダをドラッグして読み込んだアニメーションが再生できることを確認します。
このアニメーションデータは表示する必要がないのでVisibilityは無効にします。
次にキャラクタデジタルアセット内でCHOP Networkを作成します。
CHOPはシーン全体を通してアニメーションを確認することを可能にし、多くの方法でアニメーションを処理します。
そして、CHOP Networkの中にFetch CHOP ノードを作成します。
Fetch CHOPは他のOPからチャンネルをインポートします。つまりここに先ほどのアニメーションFBXのデータをゲットして、指定した場所にそのデータをExportしていきます。
ただ、アニメーションのFBXはデジタルアセット内で選択するのではなく、その外でコントロールできるようにしたいと思います。
Houdiniのデジタルアセットは必要なパラメーターをデジタルアセットパラメーターとして公開することができます。
既にデジタルアセットにしたキャラクタを右クリックからType Properties。
Parametersタブ開き、Existing ParametersのTransformとSubnetを選択し、Invisibleをオンにして、一旦デジタルアセット上のパラメーターを非表示にします。
次に、Create Parametersのobj>”デジタルアセット名”>chopnet1>fetch1>SourceをExisting Parametersにドラッグし追加します。
これでAcceptを押すとキャラクタデジタルアセットでSourceパラメーターが表示されます。
ここでアニメーションのFBXサブネットワークを選択し、以下のように設定します。
そして、そこにNodeには「/*」、Channelsには「t* r*」を追加します。
これでサブネットワーク内の全てのデータからtから始まるパラメーターとrから始まるパラメーターを取得します。
String Patternに関しては下記をご参照ください。
https://www.sidefx.com/docs/houdini/network/patterns
次にFetchのCommonタブでExport Prefixを設定します。ここでどこにデータをエクスポートするのか決めます。下記のように入力してください。
パスに関しては下記をご参照ください。
https://www.sidefx.com/docs/houdini/network/paths
これでFetchノードのExportを有効にします。
ジョイントにアニメーションが出力されます。
キャラクタのデジタルアセットでSourceを新しく読み込んだアニメーションに書き換えればすぐに反映することもできます。