BlenderからUnityに移行したアバターで腰から上が前後逆になる問題の解決法|正しい軸設定と修正手順

画像処理、制作

Blenderで作成したアバターをUnityに持ち込んだ際に「腰より上が前後逆になる」というトラブルは、モデルの軸設定やボーンの方向性が原因で発生することがあります。服やアクセサリーなどのパーツを含んだ状態で調整しなければならず、単純に回転させるだけではうまくいかないケースが多いです。本記事では、このような状況を解決する具体的な手順を紹介します。

なぜ腰から上が逆転するのか

主な原因は、BlenderとUnityの座標軸の違いや、リグのボーン回転が適切に適用されていないことです。特にBlenderではZ軸が上方向、UnityではY軸が上方向という違いがあるため、エクスポート時に補正が必要です。

また、腰より上のボーンが局所的に反転している場合、スケルトンの回転が正規化されていない可能性もあります。

Blender側での修正方法

1)オブジェクトの回転・スケールを適用
Blenderでモデルを選択し、Ctrl + A →「回転とスケール」を適用します。これにより変換がリセットされ、Unityで正しい姿勢が反映されやすくなります。

2)ボーンの方向を確認
Poseモードで腰より上のボーンを選択し、回転値が意図せずマイナスになっていないかを確認します。もしおかしければ、「ボーンのロール」を調整し、再度ウェイトを確認します。

3)FBX出力時の設定
エクスポート時に「Forward: -Z Forward」「Up: Y Up」を選択すると、Unityとの軸合わせがスムーズに行えます。

Unity側での修正方法

1)Humanoidリグの調整
インポートしたモデルのRig設定をHumanoidにすると、Unity側で自動的にボーン方向を補正することがあります。ただし、正しくマッピングされていない場合は「Configure」で腰と上半身のボーン向きを確認しましょう。

2)Prefabを壊さずに修正
シーン上で修正してもPrefabに反映されない場合があるため、修正後は必ず「Apply」でPrefabに適用してください。これにより衣装やアクセサリーも正しく追従します。

3)Animatorやポーズで確認
Unity内でアニメーションを流してみて、腰から上が自然に動いているかをチェックします。

服やパーツがずれる場合の対処

軸修正や回転適用を行うと、服や髪などの別オブジェクトがズレることがあります。その場合は以下の方法を試してください。

  • Blenderで親子関係を再確認(服やパーツをArmatureに正しく関連付ける)
  • ウェイト転送(Data Transferモディファイア)で服のウェイトを体に再割り当て
  • UnityでSkinned Mesh Rendererを確認し、参照ボーンが正しいか確認

特に衣装が複数ある場合は、Blenderで一度親子付けを統一し直してからUnityに持ち込むと安定します。

実例:上半身が反転するケースの修正フロー

例として、アバターをUnityにインポートしたところ、腰から上が後ろを向いてしまった場合を想定します。まずBlenderでCtrl + A → 回転/スケール適用を実行。次にボーンのロールを修正し、再度FBXを書き出します。Unityにインポート後、RigをHumanoidに設定し、腰と上半身のボーン向きを確認。正しい方向に修正されたら、服や髪のパーツを再度Prefabに適用し直します。

これにより、腰から上の前後逆転現象は解消され、衣装も自然に追従するようになります。

まとめ:前後軸問題は正しい手順で解決できる

アバターの腰から上が逆転してしまう問題は、ほとんどが「回転適用忘れ」や「ボーン方向の不整合」によるものです。Blender側で回転・スケールを適用し、ボーンロールを調整、さらにUnityのRig設定を適切に行えば、多くの場合は修正可能です。服やアクセサリーがずれる場合も、親子付けやウェイト転送で対応できます。これらの手順を踏めば、再度ウェイトを全面的に塗り直す必要はなく、効率的に修正できるでしょう。

コメント

タイトルとURLをコピーしました