The animated skeleton joints will need to have all the tags we set up when we exported our Agent Type files to export your animation correctly. The joints need also to have the "bind pose attributes" set correctly.
For this reason, we are going to start this task by opening the scene you saved when exporting the Agent Type files. You can also open the AtomsRobot.hip scene as it has all the attributes already set correctly.
Once you've loaded the file, we are going to import the atomsRobot_walk.fbx file from the data folder.
注意 |
---|
Please make sure:
|
注意 |
---|
Child compensation is not supported. If you scale a joint all its children will be scaled. |
To import the atomsRobot_walk.fbx or any other fbx file on top the rig you must use the atoms fbx importer, since the Houdini importer creates a new rig instead of importing the animation on the existing rig in the scene. You can open the atoms fbx importer from the Atoms menu: Atoms → Import→Import FBX or via the Atoms shelf.
The Animation Exporter Tool
You can open the skeleton and animation exporter tool using the shelf button or the menu. You can also open it via the Atoms menu: Atoms それでは、Atoms Crowdで使用できるようにアニメーションをエクスポートする方法を見てみましょう。
Animation Skeletonジョイントには、アニメーションを正しくエクスポートするためにAgent Typeファイルをエクスポートしたときに設定したすべてのタグが必要です。ジョイントにもBindpose アトリビュートを正しく設定する必要があります。
そのため、Agent Typeファイルをエクスポートするときに保存したシーンを開いて、この作業を開始します。 AtomsRobot.hipシーンには、すべてのアトリビュートがすでに正しく設定されているので開くこともできます。
ファイルをロードしたら、データフォルダーからatomsRobot_walk.fbxファイルをインポートします。
注意 |
---|
確認してください。
|
注意 |
---|
チルドはサポートされていません。ジョイントをスケールすると、そのすべての子もスケールされます。 |
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
The Skeleton Exporter GUI will pop up. Make sure to select the "Animation" tab at the top of the GUI.
The workflow here is pretty similar to exporting skeleton and mesh definitions.
You'll have to select your "Root Joint", the "Hips" node.
Then select the file type for your animation. Currently Atoms supports fbx and atomsclip. While FBX are more portable, atomsclip is more optimized to work with Atoms.
Then select a file path.
Leave the ground method to "User Value".
Now the "ground height". Atoms needs to know when the feet of your clip are touching the ground. The "ground height" field tells the exporter what is the height of the virtual plane your clip is walking on.
If your clip has the feet travelling just above the XZ plane and a value of 0 for the ground height is acceptable.
In our case unfortunately it is not. The robot feet are constantly moving below the XZ plane.
We are going to find the right ground height for the RightToeBase joint. First we need to find a frame where the foot is down, any frame between 22 and 34 will be fine (scene should be set to 30fps).
Then you can create a null node or a grid and move it from the front camera until it approximately matches the foot tip of your right leg, the RightToeBase node. The value you're looking for is the Y axis translation of your null/grid. In this case a value of -76 will be fine.
The "foot threshold" is the error approximation value for your ground height. In this case a value of 1.0 will be fine.
We will come back to the "Data from scene" later in this page.
Finally the "Images" section. You can export a thumbnail preview with you clip. This is extremely useful later on when setting up your animation clips. If you decide not to export a thumbnail preview just uncheck "Export images".
Please place the "source camera" in a way it can record the entire animation. You could even point constrain it to the "Hips" node.
When "Export images" is on a tar file containing the the preview images will appear in the same folder of your clip file.
注意 |
---|
In case you have animated your character on a ground, you can still export your animation. Change the ground method to "Mesh" and provide a foot threshold. |
注意 |
---|
The exporter will use your time slider start and end frame as frame range. For this example you should set it to 0-55. |
注意 |
---|
By adding a float vector3 parm called "atomsClipDirection" on your root pelvis joint you can set a clip direction before exporting. The direction will stored in your animation clip file (i.e. fbx) and you will be able to use it later by setting your animation clip direction type to "Clip" in the Atoms UI. |
Checking your clip
Now let's import the fbx we just exported on our scene, select our RightToeBase node and open the animation editor.
By adding the "Atoms Foot On Ground" parameter to the editor scope parameters, you should see something like in the first picture.
This attribute holds the data that represents our "foot down" state for this foot. If you scrub the time slider while checking this animation curve and the robot animation, you'll see the curve key frames reflect pretty well the down state for the foot.
In cases like in the second picture, you can see that there is a spike between frame 37 and 38. In this case you can set the value for that key frame manually, then reopen the Skeleton Animation Exporter and tick the "data from scene" checkbox. After exporting with the GUI, if you check your clip again, the foot on ground attribute should be fine.
注意 |
---|
Please don't export manually the FBX after editing the foot down curves. Some other values (cached at export time) are re-evaluated every time you export. Exporting the FBX manually could lead to unpredictable results. |
注意 |
---|
It is not currently possible to import an atomsclip file directly in houdini. Atomsclip files should only be used with Atoms. |
Add custom data
If you want add some custom data to some joints please check the カスタムメタデータの追加 sectionSkeleton 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パラメータを追加することで、エクスポートする前にクリップの方向を設定できます。 |
ユーザーの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を手動でエクスポートしないでください。 |
注意 |
---|
現在、AtomsclipファイルをHoudiniに直接インポートすることはできません。 Atomsclipファイルは、Atomsでのみ使用されます。 |