アニメーションのエクスポート - Houdini
それでは、Atoms Crowdで使用できるようにアニメーションをエクスポートする方法を見てみましょう。
Animation Skeletonジョイントには、アニメーションを正しくエクスポートするためにAgent Typeファイルをエクスポートしたときに設定したすべてのタグが必要です。ジョイントにもBindpose アトリビュートを正しく設定する必要があります。
そのため、Agent Typeファイルをエクスポートするときに保存したシーンを開いて、この作業を開始します。 AtomsRobot.hipシーンには、すべてのアトリビュートがすでに正しく設定されているので開くこともできます。
ファイルをロードしたら、データフォルダーからatomsRobot_walk.fbxファイルをインポートします。
確認してください。
- タイムスライダの最初のフレームは0です。
- シーンのFPSは、FBXがエクスポートされたときに使用されたFPSと一致します。この場合、30 FPSです。整数フレームにすべてのジョイントキーフレームがあるわけではないので、容易に見つけることができます。
チルドはサポートされていません。ジョイントをスケールすると、そのすべての子もスケールされます。
atomsRobot_walk.fbxやその他のfbxファイルをリグの上にインポートする場合は、Houdini Importerがシーン内の既存のリグに対して、アニメーションをインポートする代わりに新しいリグを作成するので、Atoms fbx Importerを使用する必要があります。AtomsメニューからAtoms ImportImport FBXまたはAtomsシェルフを介してAtoms fbx Importerを開くことができます。
Animation Exporter Tool
シェルフボタンまたはメニューを使用して、スケルトンとアニメーションのエクスポータツールを開くことができます。 Atomsメニューから開くこともできます:Atoms > Export > Skeleton / Animation Exporter
Skeleton ExporterのGUIがポップアップします。
GUI上部の「Animation」タブを必ず選択してください。
ここでのワークフローは、スケルトンとメッシュの定義をエクスポートすることと、よく似ています。「Root Joint」、「Hips」ノードを選択する必要があります。
次に、アニメーションのファイルタイプを選択します。
現在、AtomsはfbxとAtomsClipをサポートしています。 FBXはより移植性がありますが、AtomsClipはAtomsと連動するように最適化されています。
次に、ファイルパスを選択します。
Ground Methodを「User Value」のままにします。
現在の「Ground Height」。クリップのフットがグラウンドに接触していることをAtomsは、把握する必要があります。「Ground Height」フィールドは、クリップが歩行している仮想平面の高さをエクスポータに伝えます。
クリップのXZ平面の真上を移動するフットがあり、グラウンドの高さとして0の値が許容されます。今回の場合は、残念ながらそうではありません。ロボットのフットは、常にXZ平面の下を移動しています。
RightToeBaseジョイントの正しいグラウンドの高さを見つけます。
最初にフットが下がっているフレームを見つける必要があります。22から34フレームのどのフレームでも可能です(シーンは、30fpsに設定されるべきです)。
次に、nullノードまたはグリッドを作成し、それをフロントカメラから右足の足の先端である、RightToeBaseノードに対して、ほぼ一致するまで移動します。
ユーザーが探している値は、ユーザーのnull / gridのY軸移動です。この場合、-76という値で問題ありません。
「Foot Threshold」は、グラウンドの高さに対する誤差の近似値です。この場合、1.0の値で問題ありません。
このページの後半にある「Data from Scene」に戻ります。
最後に、「Images」セクションです。クリップと一緒にサムネイルプレビューをエクスポートできます。これは、後でアニメーションクリップを設定する際に、非常に便利です。サムネイルプレビューをエクスポートしない場合は。「Export images」のチェックを外してください。
アニメーション全体を記録できるように「Souce Camera」を配置してください。ユーザーは、それを「Hips」ノードに対してポイントコンストレイントを行うことができます。
プレビュー画像を含むtarファイルに "Export images"がある場合は、クリップファイルと同じフォルダに表示されます。
キャラクターをグラウンドでアニメートした場合でも、アニメーションをエクスポートできます。Ground Methodを "Mesh"に変更して、フットのしきい値を指定します。
エクスポータは、タイムスライダーの開始フレームと終了フレームをフレーム範囲として使用します。この例では、0、55に設定する必要があります。
ルートのぺルビスジョイントに「atomsClipDirection」という、float vector3パラメータを追加することで、エクスポートする前にクリップの方向を設定できます。
方向は、Animation Clipファイル(つまりfbx)に保存され、Atoms UIでアニメーションクリップのDirectionタイプを "Clip"に設定することで、後で使用することができます。
ユーザーのClipのチェック
それでは、シーンにエクスポートしたばかりのfbxをインポートし、RightToeBaseノードを選択して、Animation Editorを開きましょう。
「Atoms Foot On Ground」パラメータをエディタのScopeパラメータに追加すると、下の最初の図のようになります。
このアトリビュートは、該当するフットの「Foot Down」ステートを表すデータを保持します。このアニメーションカーブとロボットアニメーションを確認しながら、タイムスライダをスクラブすると、カーブのキーフレームがフットの下のステートを反映していることがわかります。
2番目の図のような場合は、フレーム37と38の間にスパイクがあることが確認できます。
この場合は、手動でそのキーフレームの値を設定した後、Skeleton Animation Exporterを開き、「Data from Scene」チェックボックスをオンにします。GUIでエクスポートした後、再度、Clipをチェックすると、Foot on Groundアトリビュートは問題がないことが確認できます。
Footdown Curveを編集した後に、FBXを手動でエクスポートしないでください。
他のいくつかの値(エクスポート時にキャッシュ)は、エクスポートするたびに再評価されます。 FBXを手動でエクスポートすると、予期しない結果が生じる可能性があります。
現在、AtomsclipファイルをHoudiniに直接インポートすることはできません。 Atomsclipファイルは、Atomsでのみ使用されます。
Copyright © 2017, Toolchefs LTD.