Your characters must be exported into Atoms Crowd format files before you can use them in your simulations. In this section we are going to see how you can do it.
Some guidelines will also be given on how you should layout your scene to be exported correctly.
注意 |
---|
Always export your character definition from the bind pose. |
Preparing your scene
As explained in the Agent type page, your agent types will need a skeleton, some proxy and skinned geos.
You should gather all your proxy meshes under one group and your skinned meshes under another group. How you name these groups does not really matter as long as it makes sense to you.
The only naming convention applies to the proxy geometries. Atoms Crowd will try to match each joint with a mesh under the proxy geometry group, the mesh name must be equal to the joint name followed by "_GEO".
For instance, if you have a joint named "Hips", the proxy GEO associated with that joint should be named "Hips_GEO".
There is no naming convention for your skinned geometry.
注意 |
---|
MAYA: make sure your joint local rotation values are always set to 0 before exporting your rig. |
注意 |
---|
Atoms viewport skinning preview only supports 3 joint weights per vertex maximum. Please make sure to skin each vertex to 3 joints maximum or the Viewport preview won't display correctly. |
Opening the Skeleton Exporter Tool
Once your scene is ready, you can open the skeleton and animation exporter tool using the shelf button. You can also open it via the Atoms menu: Atoms > Export > Skeleton/Animation Exporter
The Skeleton Exporter GUI will pop up.
You'll notice some buttons at the top of the UI. They are used to tag or untag the selected skeleton joints (pelvis and leg) as explained in the Agent type page. You can also use them to select all the joints with the given tag.
Atoms need to know this information in order to place correctly your agent on the ground, apply the IK and the foot lock during the simulation.
Tagging just means adding some maya attributes (or houdini parameters) on those joints. Please check the attribute editor (or property panel) after pressing these buttons to see which attributes are added.
The "Root Joint" field must be set to the root joint of your skeleton.
The "Extra Joints" list is where you'll add your prop joints.
The "set bind pose attributes" button takes care of setting the bind pose attributes on each joint of your hierarchy. You should press this button before exporting and saving your scene.
Whenever you tweak you rig (i.e. move or rotate a joint) you should press this button again in order to set again all the right bind pose data.
The "Geos" field will point to your proxy geos group.
The "Skin" field will point to your skinned geos group.
Please use the "Config path" field to set your destination folder location.
注意 |
---|
|
Exporting your files
For this example we're going to work with the AtomsRobot.ma scene shipped with Atoms. In this scene all the joints and geos are already prepped correctly.
First let's tag our joints:
You should also set a pole vector, go in the Extra Attributes section in Maya Attribute Editor (or at the bottom of Houdini property panel) on these two joints and set the "Atoms Pole Vector" (atomsPoleVector) attribute. This must be a point in world space, by default it use the joint world position, but it should be edited to a more sensible value by you.
Then:
- Select the Hip joint again and click on the "Refresh" button next to the "Root Joint" label.
- Click on the "set bind pose attributes" button
- Select on "RobotGeo" group and click on the "Refresh" button next to the "Geos" label.
- Select on "RobotSkin1" group and click on the "Refresh" button next to the "Skin" label.
- Select a file path where to save your atomsskel file.
At this point the GUI should look like in the picture.
注意 |
---|
The pole vector is used when atoms apply the IK system on the legs when the agent is on a ground. It's better to setup a pole vector in order to have a better simulation. If you don't set a pole vector atoms will try to estimate one from the joint configuration. |
Click on Export and your files will be exported in the right location:
In this example we did not have any extra (prop) joint. In case you do just select them and click on the plus button before clicking the "set bind pose attributes" button.
Add custom data
If you want add some custom data to some joints please check the Adding custom metadata sectionシミュレーションで使用する前に、キャラクターをAtoms Crowdフォーマットファイルにエクスポートする必要があります。このセクションでは、ユーザーがどのように操作することができるかを確認していきます。
シーンが正しくエクスポートされるように、レイアウトの方法に関するガイドラインがいくつかあります。
注意 |
---|
Bindポーズから常にキャラクター定義をエクスポートしてください。 |
ユーザーのシーンの準備
「Agent Type」ページで説明したように、Agent TypeにはSkeleton、Proxy、Skin geoなどが必要です。
すべてのProxyメッシュを1つのグループにまとめ、Skinメッシュを別のグループにまとめます。これらのグループにどのように名前を付与するかは、ユーザーにとって意味がある限り、実際には重要ではありません。
唯一の命名規則がProxyジオメトリに適用されます。
Atoms Crowdは、各ジョイントをProxyジオメトリグループの下のメッシュと一致させようとします。メッシュ名は、ジョイント名とそれに続く名前に等しくなうように設定します。
"_GEO"。
例えば、「Hips」という名前のジョイントがある場合、そのジョイントに関連付けられているProxy GEOは「Hips_GEO」という名前になります。
スキンジオメトリには、命名規則はありません。
注意 |
---|
AtomsHoudiniは、各ジョイントに対してnull boneオブジェクトで作成されたリグのみをサポートします。通常、このタイプのリグはHoudini fbxインポーターによって使用されます。本来のHoudini crowd rig(ボーンのみで作成されています)は、Atomsではサポートしていません。 |
注意 |
---|
リグをエクスポートする前に、Joint Local Rotation値が常に0に設定されていることを確認してください。 |
注意 |
---|
Atomsビューポートスキニングプレビューは、最大のバーテックスあたり3つのジョイントウェイトのみをサポートします。各バーテックスに、最大3つのジョイントを適用すると、ビューポートのプレビューが正しく表示されません。 |
Skeleton Exporter Tool を開く
シーンの準備が完了したら、シェルフボタンを使用してスケルトンとアニメーションのエクスポータツールを開くことができます。
Atomsメニューから開くこともできます:Atoms> Export> Rig / Animation Exporter
Skeleton ExporterのGUIがポップアップします。
「Root Joint」フィールドは、スケルトンのルートジョイントに設定する必要があります。以下のリストは、Agent typeページで説明されているように、スケルトンの特定のジョイント(PelvisとLeg)のタグ付け、タグ解除、およびリストを目的としています。
シミュレーション中に、エージェントを正しくグラウンドに配置して、IKとフットロックを適用するには、Atomsは、この情報を正しく把握する必要があります。
タグ付けは、それらのジョイントに対して、いくつかのHoudiniパラメータを追加することを意味します。これらのボタンを押した後に、プロパティパネルをチェックして、どのアトリビュートが追加されているかを確認してください。
「Extra Joints」リストは、プロップジョイントを追加する場所です。
各ジョイントリストには、リストにジョイントを追加及び削除したりするためのボタン、スケルトンに問題がある場合は、赤く表示されるSanityチェックボタン(クリックするとリグの問題点に関するレポートがあります)およびヘルプボタンがあります。各タグの意味をユーザーに知らせるためのヘルプツールチップが表示されます。
各リストには、ジョイントを選択したり他の操作を実行するためのメニューがあります。
「Set bind pose attributes」ボタンは、階層の各ジョイントにBind Poseアトリビュートを設定します。シーンをエクスポートして、保存する前にこのボタンを押す必要があります。
リグを調整する(ジョイントを移動または回転させる)ときは、このボタンを再度押して、正しいBind Poseデータをすべて設定し直す必要があります。
「Proxy」フィールドは、ユーザーのProxy geosグループを指します。
「Skin」フィールドは、ユーザーのスキン化されたジオグループを指します。
保存先のフォルダ場所を設定する場合は、「Config Path」フィールドを使用してください。
注意 |
---|
|
ユーザーのファイルをエクスポート
この例では、AtomsHoudiniに含まれているAtomsRobot.hipシーンをAtomsHoudini / dataフォルダー内で処理します。このシーンでは、すべてのジョイントとジオがすでに正しく準備されています。
最初に、ジョイントにタグを付けましょう。
- Hip関節を選択し、「Root Joint」のラインから「Pick from selection」ボタンをクリックします。Hip関節を選択した状態で、「Pelvis Joints」リストの下にある「+」ボタンをクリックします。LeftUpLegとRightUpLegのジョイントを選択して、「Foot Root Joints」リストの下の「+」ボタンをクリックしてください。
- ビューポートで作成されたばかりの新しいnullノードを移動することによって、ikチェーンのポールベクトルを設定できます。これはワールドスペース内のポイントである必要があり、デフォルトでは、Atomsはこのフットルートの最初の子ジョイントの位置を使用して適切な値を見つけようとします。各フットルートのポールベクトルを選択するには、リストのエレメントを右クリックしてメニューからポールベクトルを選択します。
- LeftFootとRightFootのジョイントを選択して、「Foot IK Joints」リストの下の「+」ボタンをクリックしてください。LeftToeBaseとRightToeBaseを選択して、「Foot Tip Joints」リストの下にある「+」ボタンをクリックします。
次に:
- 「set bind pose attributes」ボタンをクリックします。「RobotGeo」nullを選択して、「Proxy」ラベルの隣にある「Pick from selection」ボタンをクリックしてください。ポップアップメニューの「Pick selection」をクリックします。
- 「RobotSkin1」 nullノードを選択し、「Skin」ラベルの隣の「Pick from selection」ボタンをクリックします。ポップアップメニューの「Pick selection」をクリックします。
- atomsskelファイルを保存するファイルパスを選択します。
この時点で、GUIは図のようになっていることが確認できます。
注意 |
---|
ポールベクトルは、エージェントが地面に配置され、AtomsがレッグにIKシステムを適用するときに使用されます。より良いシミュレーションを取得するために、ポールベクトルを設定することを推奨します。ポールベクトルを設定しない場合、Atomsはジョイントの配置から評価しようとします。 |
注意 |
---|
「Skip IK」ボタンを使用して、ジョイントにタグを付けることもできます。これにより、Atomsはレッグを再構築するときに、それらのジョイントをIKチェーンの一部として使用することはありません。 |
「Export」をクリックすると、ファイルは正しい場所にエクスポートされます。
この例では、ルートから切り離された余分な(Prop)ジョイントやチェーンはありません。念のため、それらを選択して「Set bind pose attributes」ボタンをクリックする前に「+」ボタンをクリックしてください。
カスタムデータの追加
ジョイントにカスタムデータを追加したい場合は、カスタムメタデータの追加セクションを確認してください。