HumanIK API によって提供されている関数を呼び出すことでランタイム コード単独で HumanIK キャラクタライゼーションを正常に作成することもできますが、通常は組織内のアーティスト、アニメータ、またはテクニカル デザイナに視覚的なデザイン ツールでキャラクタライゼーションを作成してもらう方がシンプルです。これによりアーティストはフィードバックをすぐに得られるようになり、IK またはリターゲット アニメーションをキャラクタに適用してキャラクタライゼーションをテストすることができるようになります。また、アーティストがこのテストの結果に応じてキャラクタライゼーションを簡単に調整できるようになります。アーティストがキャラクタライゼーションに満足したら、実行時にゲームにロードするファイルにキャラクタライゼーションを書き出すことができます。
アーティストは次のいずれかの視覚的なツールを使用して HumanIK キャラクタライゼーション ファイルを作成することができます。
MotionBuilder と HumanIK は同じコア テクノロジから開発され、ビルトイン生体力学モデルへのスケルトンのマッピングに対して多くの同じ要件を現在も共有しています。MotionBuilder で作成した、動作する Biped または Quadruped のキャラクタライゼーションは HumanIK API で使用したときも同様に動作するはずです。ただし、HumanIK API を使用してロードできるファイルに MotionBuilder キャラクタライゼーションを書き出すには、まず使用しているバージョンの MotionBuilder 用の HumanIK プラグインをビルドしてインストールする必要があります。
「MotionBuilder HumanIK ソルバ プラグイン」を参照してください。
2012 リリース以降の Maya には、キャラクタ スケルトン用の HumanIK キャラクタライゼーションの作成、HumanIK コントロール リグを使用したキャラクタのアニメート、HumanIK SDK で使用可能なバイナリ ファイルへのキャラクタライゼーションの書き出しに使用することができるツールが含まれています。
組織内でサポートされているバージョンの MotionBuilder または Maya を使用していない場合でも、HumanIK SDK に付属の Characterization Tool を使用して HumanIK キャラクタライゼーションを視覚的に作成することができます。
Characterization Tool は次のような形で提供されています。
これらのバージョンの Characterization Tool は、Windows プラットフォームに対応した HumanIK パッケージの tools フォルダ内のサブフォルダに含まれています。各バージョンにはインストールと使用方法について説明するドキュメントが付属しています。このドキュメントはまた Characterization Tool のインタフェースからも開くことができます。
Quadruped キャラクタには特別な要件があります。Quadruped キャラクタに HumanIK を使用する場合は、「Quadruped に HumanIK を使用する」に示す重要な情報を参照してください。
使用しているツールと、どのリリースのツールをインストールしたかに応じて、この手順の実行方法が若干異なる場合があります。ツールのマニュアルを参照してください。すべてのツールが次のような視覚的なインタフェースを使用しています。
キャラクタのスケルトンのボーンを、この Figure ビューに表示されたさまざまなノードにマップしなければなりません。ボーンに正しくマップされると、各ノードの表示が緑色に変わります。
Characterization Tool が自動的にキャラクタのニュートラル スタンスのジオメトリを検証し、検出したエラーや警告を報告します。
このファイルにはアーティストまたはリガーが各 HumanIK ノードにマップした、キャラクタのスケルトンのボーンの名前を示す XML ファイルが付属する場合があります。FK アニメーション システムと HIKCharacterState の間で、ランタイムにアニメーション データを変更するコードを記述するときに、このファイルの情報を使用できます。「インバース キネマティックス ソルバ」および「リターゲットのソルビング」を参照してください。
ゲーム内で実行時に HumanIK キャラクタを作成するために、アーティストによって作成されたバイナリ ファイル内のデータを使用するこの手順は、作成したファイルのタイプに応じて若干異なります。
下記のようにキャラクタライゼーションをロードすると、HIKCharacter を使用できるようになります。引き続き「初期化」の手順に従って、キャラクタに必要なその他の HumanIK オブジェクトをセットアップします。
HIKLoadCharacter() 関数を呼び出して、.hik ファイルに含まれているデータから新しい HIKCharacter を作成します。この関数には次の引数が必要です。
HumanIK の評価バージョンを使用している場合は、Autodesk, Inc.によって発行されたライセンス キー。「HumanIK のライセンス キーを設定する」で推奨されるように、ソース コード ファイルに autodeskmwkey.h ファイルをインクルードした場合は、定義済みの値 AutodeskCustomerString を使用できます。HumanIKのフル ライセンス バージョンを使用している場合は、null 値を渡すことができます。
HIKCharacter にメモリを割り当てるために呼び出されるコールバック関数へのポインタ。標準の malloc 関数、または malloc と同じ種類の定義を満たす任意のカスタム メモリ割り当て方法を指定できます。「 HumanIK オブジェクトとメモリ管理」を参照してください。
HIKCharacter * MyChar = HIKLoadCharacter( "C:\data\hero.hik", AutodeskCustomerString, &malloc);
または、次のセクションで概説されている手順を代わりに使用して、キャラクタ データをバイナリ ファイルのコンテンツから読み込むことができます。
HIKCharacterDefinition MyDef;
HIKCharacter にメモリを割り当てるために呼び出されるコールバック関数へのポインタ。標準の malloc 関数、または malloc と同じ種類の定義を満たす任意のカスタム メモリ割り当て方法を指定できます。「 HumanIK オブジェクトとメモリ管理」を参照してください。
メモリを割り当て解除するために呼び出されるコールバック関数へのポインタ。標準の free 関数、または free と同じ種類の定義を満たす任意のカスタム メモリ割り当て解除方法を指定できます。「 HumanIK オブジェクトとメモリ管理」を参照してください。
HumanIK の評価バージョンを使用している場合は、Autodesk, Inc.によって発行されたライセンス キー。「HumanIK のライセンス キーを設定する」で推奨されるように、ソース コード ファイルに autodeskmwkey.h ファイルをインクルードした場合は、定義済みの値 AutodeskCustomerString を使用できます。HumanIKのフル ライセンス バージョンを使用している場合は、null 値を渡すことができます。
HIKCharacter * MyChar = HIKReadFromStream( def, stream, streamSize, &malloc, &free, AutodeskCustomerString, );