DNACalib ライブラリにより、そのツールおよびコマンド セットを使用して、DNA ファイルに含まれるデータを変更できます。 このライブラリは C++ でコーディングされ、Python バインディングを備えています。 このバインディングは SWIG ライブラリを使用して生成されています。
これらのツールが便利なのは、プロシージャルに個別の DNA ファイル データを変更し、アーティストが使いやすいインタラクティブ ワークフローのパイプライン内で簡単に拡張または変更できるところです (たとえば、シーンと対応 DNA データを変更する DCC アプリケーションの名前変更/削除コマンドを生成できます)。
DNACalib ツールは、次の方法で使用できます。
C++ プロジェクトで、ソースまたはバイナリにリンクする
互換性のある Python 環境 (コマンド ラインを含む) で Python バインディングを利用する
Maya で、Python バインディングにより、用意されたリファレンス実装を利用する
DNACalib には DNA データに直接影響を及ぼすコマンドが含まれていることにご注意ください。 Maya 内部 (MayaPy と GUI のスクリプト機能) からリファレンス実装を実行できますが、Maya シーンの変更には一致したり対応したりしません。 このシーンと DNA データに同時に影響を及ぼすことができるラッパーは、必要とするユーザーが作成する必要があります。
DNACalib のコマンド
ジョイント、メッシュ、ブレンドシェイプ、アニメートされたマップの名前変更
これらすべてのコンポーネントは、MetaHuman の頭部リグが正しく機能するために必要なものです。 DNACalib のリリース前は、これらの名前を変更すると、多くの場合、オペレータとシーン/アセット オブジェクトとパラメータ間はリンク切れになっていました。
DNACalib のコマンドでは、これらの要素のいずれも、選択した (正式) 名に変更できます。その結果、パイプラインやツールを名前に基づいて実行している場合、MetaHuman の頭部リグがそれと連携するように変更できます。
ジョイント、メッシュ、ブレンド シェイプ、ジョイント アニメーションの除去
実行できるのは除去だけで、追加はできません。また、ユーザー側で、ベースの構造に影響を及ぼさずに除去する必要があります。
コンポーネント パーツを除去するのは、一般に、LOD のコンテンツ内でリグのウェイトを下げるのに役に立ちます。 ジョイントをこの方法で除去すると、作成するウェイト マップは、ジョイントに影響が現れることなく、ジオメトリ間で正しくパラメータ化されます。
全体リグの変換
ルート ノードの平行移動、回転、スケーリングは、階層全体に継承され、このコマンドで実行可能になりました。 これらのパラメータをどのように組み合わせても変換できます。
このコマンドで一様ではないスケーリングを実行できますが、これは推奨されません。
このツールでは、MetaHuman の頭部をスケーリングし、オリジナルと異なるサイズのカスタム ボディとともに使用でき、通常のスケールと異なる設定でクリーチャーを生み出せます。
LOD の除去
DNA には多様な LOD を構築するために必要なあらゆるものがそろっています。 ただし、必要なのはそれらのサブセットだけである場合も稀ではなく、使用しない LOD の除去は、MetaHuman の頭部リグを含むアセットが更新されるたびに繰り返す面倒な処理になります。
このコマンドは、DNA ファイルのコンテンツから LOD を除去します。結果として、ビルド時間が短縮され、アセットが小さくなります。
ニュートラル トランスフォームとメッシュの変更
これらのコマンドを使用すると、ジョイントのニュートラル トランスフォーム (平行移動、回転およびスケール) およびニュートラル ポーズ メッシュのトランスフォームを設定します。
これは実質的に、DNA でのバインド ポーズ設定とスキニング前の頂点位置の新しい設定と同等の処理を実行します。
用意した基本 MetaHuman メッシュにおいて、ジオメトリの頂点の間隔が大きいと、特に両目や口角といった重要な部位のリグで問題が発生する可能性が高くなります。 影響がごくわずかで、非常に動きが少なく、シンプルな部位 (両耳、あご先、あごのラインなど) への変更はあまり問題ありません。