アニメーションのエクスポート

それでは、Atoms Crowdで使用できるようにアニメーションをエクスポートする方法を見てみましょう。
アニメーションスケルトンジョイントには、アニメーションを正しくエクスポートするために、Agent Typeファイルをエクスポートした時に設定した、すべてのタグが必要です。ジョイントにも「Bind pose attributes」を正しく設定する必要があります。


このため、Agent Typeファイルをエクスポートする時に保存したシーンを開いて、この作業を開始します。 AtomsRobot.maシーンは、すべてのアトリビュートがすでに正しく設定されているので開くことができます。
ファイルをロードしたら、データフォルダーからatomsRobot_walk.fbxファイルをインポートします。

確認してください。

  • タイムスライダの最初のフレームは0です。
  • シーンのFPSは、FBXがエクスポートされた時のFPSの使用と一致します。この場合、30 FPSです。整数フレームに、すべてのジョイントキーフレームがあるわけではないので、容易に見つけることができます。

スケール補正は、サポートされていません(Mayaのように)。ジョイントをスケールすると、そのすべての子もスケールされます。




Animation Exporter Tool

シェルフボタン、またはメニューを使用して、スケルトンとアニメーションのエクスポートツールを開くことができます。 Atomsメニューから開くこともできます:

Atoms > Export > Skeleton / Animation Exporter

Skeleton ExporterのGUIがポップアップします。 GUI上部の「Animation」タブを必ず選択してください。
ここでのワークフローは、スケルトンとメッシュの定義をエクスポートすることと、よく似ています。ユーザーの "Root Joint"、 "Hip Joint"を選択する必要があります。


次に、アニメーションのファイルタイプを選択します。Atomsは現在、fbxとatomsclipをサポートしています。 FBXは、より移植性がありますが、atomsclipはAtomsと連動するように最適化されています。

ファイルパスを選択します。Ground Methodを「User Value」のままにします。


現在の「Ground Height」。クリップのフットが地面に接触していることを、Atomsは把握する必要があります。「Ground Height」フィールドは、クリップが歩行している仮想平面の高さをエクスポータに伝えます。
クリップのXZ平面の真上を移動するフットがあり、地面の高さとして0の値が許容される場合です。
今回の場合は、残念ながらその通りではありません。ロボットのフットは、常にXZ平面の下を移動しています。
RightToeBaseジョイントの正しい地面の高さを見つけます。最初に、フットが下がっているフレームを見つける必要があります。22から34までのどのフレームでも大丈夫です。(シーンは30fpsに設定する必要があります)


次に、ロケーターまたは平面を作成し、それを正面のカメラから右足の足先であるRightToeBaseジョイントに、ほぼ一致するまで移動します。ユーザーが探している値は、ユーザーのロケータ/平面のY軸移動です。この場合、-76という値で問題ありません。
「Foot Threshold」は、地面の高さに対する誤差の近似値です。この場合、0.5の値で問題ありません。

このページの後半の「Data from scene」に戻ります。
最後に、「Images」セクションです。クリップと一緒に、サムネイルプレビューをエクスポートできます。これは、後でアニメーションクリップを設定する場合に、とても便利です。サムネイルプレビューをエクスポートしない場合は、「Export images」のチェックを外してください。
アニメーション全体を記録できるように「Souce camera」を配置してください。ユーザーは、それを「Hip Joint」にコンストレイントするように命じることができます。
プレビュー画像を含むtarファイルに「Export images」がある場合は、クリップファイルと同じフォルダに表示されます。

キャラクターを地面でアニメートした場合でも、アニメーションをエクスポートできます。Ground Methodを "Mesh"に変更して、フットのしきい値を指定します。

エクスポーターは、タイムスライダの開始フレーム、終了フレームをフレーム範囲として使用します。この例では、0から55に設定する必要があります。

ルートぺルビスジョイントに「atomsClipDirection」というベクトルタイプのアトリビュートを追加することで、エクスポートする前にクリップの方向を設定できます。
方向は、Animation Clipファイル(つまりfbx)に保存され、Atoms UIでアニメーションクリップの方向タイプを「Clip」に設定することで、後に使用できるようになります。


Clipを確認する

それでは、シーンからエクスポートしたばかりのfbxをインポートし、RightToeBaseジョイントを選択してグラフエディタを開きましょう。
「Atoms Foot On Ground」アトリビュートを選択すると、最初の図のようになります。
このアトリビュートは、フットの「Footdown」状態を表すデータを保持します。このアニメーションカーブとロボットアニメーションを確認しながら、タイムスライダをスクラブすると、カーブのキーフレームがフット下の状態をよく反映していることがわかります。


2番目の図のような場合は、フレーム60と80の間にスパイクがあることが確認できます。この場合は、手動でそのキーフレームの値を設定してから、Skeleton Animation Exporterを開き、「Data from Scene」をチェックします。チェックボックスのGUIでエクスポートした後、もう一度クリップをチェックすると、Foot on ground アトリビュートは問題ないことが確認できます。

Footdown Curvesを編集した後に、FBXを手動でエクスポートしないでください。他のいくつかの値(エクスポート時にキャッシュ)は、エクスポートする度に再評価されます。 FBXを手動でエクスポートすると、予期しない結果が生じる可能性があります。

現在、mayclにatomsclipファイルを直接インポートすることはできません。 Atomsclipファイルは、Atomsでのみ使用されるべきです。


カスタムデータの追加

ジョイントにカスタムデータを追加したい場合は、カスタムメタデータの追加セクションをチェックしてください。

Copyright © 2017, Toolchefs LTD.