Unityで素体スケール変更後にキャラクターが歪む問題の原因と対処法

プログラミング

Unityで3Dキャラクターを扱う際、素体のスケールを個別に変更すると、動作中に顔や体が伸びたり歪んだりする現象が起きることがあります。特にしゃがみや上下方向を向く動作で顔が縦に伸びる場合は、ボーン構造やスケール設定に起因することが多いです。この記事では、この問題の原因と具体的な対処法について解説します。

問題の原因

Unityでは、ボーンに対して個別にスケールを変更すると、スキニングされたメッシュが意図しない変形をすることがあります。特に足や手のボーンだけを拡大・縮小すると、IK(Inverse Kinematics)やアニメーションで連動する上半身や顔が歪むことがあります。

また、FBXやVRMなどのアップロード形式でのスケール変更は、インポート時にボーン情報やBind Pose(バインドポーズ)が正しく反映されない場合もあります。

対処法1:ルートオブジェクトのスケールを変更する

ボーン個別ではなく、キャラクター全体のルートオブジェクトのスケールを変更することで、ボーン構造を保持したままサイズを調整できます。

例:HierarchyでキャラクターのRootを選択 → InspectorでScaleを統一して変更

対処法2:FBX/VRMのリインポート時にスケール調整

アップロード前にBlenderやMayaなどで素体スケールを変更し、ボーンを正しく調整してからUnityに再インポートすると、アニメーション時の歪みを防げます。

対処法3:アバターのAvatar設定を確認する

Humanoidアバターの場合、UnityのAvatar設定でボーンが正しくマッピングされているか確認しましょう。スケール変更でマッピングがずれると、アニメーション再生時に顔や体が伸びることがあります。

対処法4:アニメーションとIKの確認

アニメーションClipやIK設定が特定ボーンのスケール変更に依存している場合、アニメーションのリターゲットやIKの調整が必要です。必要に応じて、アニメーションをBakeして再設定すると安定します。

まとめ

Unityで素体スケールを個別に変更すると顔や体が縦に伸びる問題は、主にボーン構造とスキンメッシュの関係によるものです。ルートオブジェクトでスケールを統一すること、FBX/VRMのリインポート時にボーンを正しく調整すること、Humanoidアバターの設定を確認することが重要です。また、アニメーションやIKの設定も確認し、必要に応じて修正することで、自然な動作を保ちながらスケール変更が可能になります。

コメント

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