Unityにモーション付きの形状を渡す手順
Unityにモーション付きの形状を渡すには、Unityに静止形状を渡す手順と流れは同じになりますが、いくつか注意する点があります。
「fbx形式でエクスポートする時に注意する点」も参照するようにしてください。
形状でのモーション情報
ボールジョイントまたはボーンに対してキーフレームを割り当てることでモーションを割り当てます。
ボールジョイントとボーン名がユニークであること
ボールジョイントやボーン名は、同じ名前がないようにします。
ボーン使用時の変換行列
ボーンは「自動で軸合わせ」をオフにして使用します。
ボーンの変換行列で、せん断と回転が0となっていること、スケールが1になっていることを確認します。
変換行列でせん断や回転が入っている場合、スケールで1.0以外が入っている場合は、
正しくモーションを渡せません。
「シーケンス」オフ時の姿勢
モーションウィンドウの「シーケンス」がオフの場合の姿勢は、
ボールジョイントやボーンの回転やオフセットが0の姿勢を入れるようにします。
このときの姿勢が、動きをつける際の基準の姿勢となります。
キーフレームの指定
Untiyでループ再生できるようにするため、開始キーフレーム、終了キーフレームを与えるようにして、
開始と終了時は同じ姿勢となるようにしておきます。
FBXエクスポート
メインメニューの「ファイル」-「エクスポート」-「fbx」を選択し、fbxファイルを保存します。
この際に、FBXエクスポートダイアログボックスで「アニメーション」タブを選択。
「出力」で「キーフレームのみ」を選択することで、キーフレーム情報がfbxに出力されます。
「出力」で「ステップ指定」を選択すると、「ステップ」で指定したフレーム間隔でキーフレームを追加した状態でfbx出力されます。
Unityでモーション情報付きの形状を読み込み
Unityを起動し、形状のfbxファイルとモーション情報をインポートします。
以降はUnityでの作業になります。ここではUnity 5.6.1を使用しました。
fbxファイルのインポート
ProjectウィンドウにShade3Dで出力したfbxをドラッグしてインポートします。
また、Inspectorウィンドウの「Material Naming」で「From Model’s Material」を指定し、「Apply」ボタンを押します。
ここで読み込んだfbxにモーション情報はすでに入っていますが、
この段階の形状をシーンに配置しただけでは、まだ動きは反映されません。
Animationsタブでループ再生するように指定
Inspectorウィンドウで「Animations」タブを選択。
下にスクロールし「Loop Time」チェックボックスをオンにし、Applyボタンを押します。
これは、終了フレームまでアニメーションした後、開始フレームに戻ってループ再生する指定となります。
Animator Controllerを作成
Unity上で形状をアニメーションさせるには「Animator Controller」というものを追加する必要があります。
Projectウィンドウで右クリックし、ポップアップメニューの「Create」-「Animator Controller」を選択します。
Animator Controllerで、
複数のモーション(アニメーションクリップと呼びます)を組み合わせて再生することができます。
アニメーションクリップは、アニメーションの最小の単位となります。
メインメニューから「Window」-「Animator」を選択すると、「Animator」ウィンドウが表示されます。
「Animator」ウィンドウはよく使うことになるため、「Scene」「Game」などと同じようにタブ化しておくと扱いやすいです。
Projectウィンドウで作成した「Animator Controller」をクリックすると、
選択したアニメーション情報がAnimatorウィンドウに表示されます。
作成した直後のAnimator Controllerでは、「Any State」と「Entry」のみ配置されます。
Animator Controllerにアニメーションクリップを追加
Projectウィンドウで、インポートしたfbxのアイコンの右の三角をクリックすると、中身が表示されます。
アニメーションクリップをAnimatorウィンドウにドラッグします。
これで、Animator Controllerに指定のモーションクリップが割り当てられました。
シーンに形状を配置
Projectウィンドウで形状をドラッグして、シーンに配置します。
この段階では、まだ形状に対してアニメーションがない状態です。
形状にAnimator Controllerを割り当て
シーンの形状(GameObject)を選択します。
Inspectorウィンドウの「Animator」コンポーネントの「Controller」に、
Projectウィンドウ内のAnimator Controllerをドラッグして入れます。
これで、形状に対してアニメーション情報が割り当てられました。
「Play」ボタンを押すと、アニメーションが再生されます。