MRが楽しい

MRやVRについて学習したことを書き残す

Blenderで編集したユニティちゃんをUnityに取り込む その1(ボーンの修正)

本日は Blender と Unity とユニティちゃんの調査枠です。
前回記事の続きです。
bluebirdofoz.hatenablog.com

今回からは Blender で読み込んだユニティちゃんを Unity に取り込む手順を記事にします。
これらの手順でユニティちゃんを Blender で編集して Unity に再反映するといったことができます。
f:id:bluebirdofoz:20190427202355j:plain

Unityに取り込むと発生する問題

前回記事までに作成したユニティちゃんをそのまま FBX に出力して Unity に取り込みます。
すると、以下の問題が発生します。

ボーンの位置がズレる

画像だと分かり辛いかもしれませんが、取り込んだ際に胸部やスカートなどの位置が少しズレています。
f:id:bluebirdofoz:20190427202406j:plain

ユニティちゃんのアニメーションが正常に再生できない

Humanoid リグを反映した後、ユニティちゃんのアニメーションを試すと、髪やスカートが荒ぶります。
f:id:bluebirdofoz:20190427202418j:plain

Blenderでの修正作業

Blender側の編集作業でまずはこれらの問題に対処する必要があります。

ボーンの位置がズレる問題の修正

ボーンの位置がズレる問題はアーマチュアオブジェクトの[回転]と[拡大縮小]を適用した際の位置ズレが原因です。
例えば、胸部ボーンを確認すると[位置]情報が僅かにズレていることが分かります。
f:id:bluebirdofoz:20190427202433j:plain

[位置]情報を現在の位置で適用し、現在のポーズをデフォルトのポーズとすることで問題は解消できます。
まずはアーマチュアを選択し、[オブジェクトモード]に切り替えます。
メニューから オブジェクト -> 適用 -> 位置 を実行します。
f:id:bluebirdofoz:20190427202445j:plain

次にポーズオブジェクトを選択し、[ポーズモード]に切り替えます。
メニューから ポーズ -> 適用 -> デフォルトのポーズに適用 を実行します。
f:id:bluebirdofoz:20190427202455j:plain

現在のポーズのまま、ボーンの[位置]情報が[0.0]にリセットされます。
これでデフォルトのポーズで発生するズレを修正できました。
f:id:bluebirdofoz:20190427202516j:plain

アニメーションが正常に再生できない問題の修正

これはユニティちゃんのアニメーションを利用すると、同じボーン名のボーンが干渉することが原因です。
ユニティちゃんのアニメーションを利用する場合、Humanoid リグ以外のボーンは名前を変更する必要があります。
[J_***]という名前のボーンが対象です。
f:id:bluebirdofoz:20190427202526j:plain

これらのボーンについて全て名前の[J_]の部分を削除するなど、ボーン名を変更します。
ネストの下のものも確認して名前を修正します。
f:id:bluebirdofoz:20190427202537j:plain

念のため、[ポーズモード]でボーンを動かして関連付けに問題が発生していないか確認します。
f:id:bluebirdofoz:20190427202549j:plain

モデルをFBX形式でエクスポート

これで Blender での編集作業は完了です。
メニューから ファイル -> エクスポート -> FBX(.fbx) を選択します。
f:id:bluebirdofoz:20190427202559j:plain

出力対象に[アーマチュア]と[メッシュ]を選択して[FBXをエクスポート]を実行します。
f:id:bluebirdofoz:20190427202610j:plain

記事が長くなったので分けます。
次回は Unity の取り込み設定です。
bluebirdofoz.hatenablog.com