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」ボタンを押すと、アニメーションが再生されます。

Translate »