ただいまの人気記事はこれ!おすすめ記事いろいろ

【Unity FBX】マテリアルが黒くなる,3Dモデルが暗い,おかしい時の修正方法

unity-fbx-black-thumbnail2Blender
イレイザー
イレイザー

3Dモデルが黒いッ!. ガンナーのイレイザー (@koshishirai)だ!

問題 Unityで3Dモデル(.fbx)をインポートしたら何かおかしい

Unityで3Dモデル(FBX)をSceneにインポートしたら, オブジェクトの色が暗い...
FBX Reviewで3Dモデル(FBX)を表示させると、オブジェクト,マテリアルが黒くなる...

原因

3Dモデル(FBX)自体がおかしい

今回はUnityで3Dモデル(FBX)がマテリアルが黒くなる,オブジェクトの色がおかしい時の対処法を紹介します。

問題 マテリアルが黒くなる,オブジェクトの色がおかしい

Unity. Scene,Game → The color of the object is wrong.FBX Review → Objects and materials turn black
Unity 2017 4.28f1FBX Review
・Unity [Scene],[Game] → オブジェクトの色が暗い.色がおかしい。
・Lightは使っていません。
・FBX Review → オブジェクト,マテリアルが黒くなる
スポンサーリンク

原因 3Dモデル(FBX)自体がおかしい

例えば

・頂点グループが重複している
・頂点グループが割り当てられてない
・メッシュの名前が重複している(連番や似ている名前は注意)
・メッシュ → 面の向きが反転している
・オブジェクトの原点(Pivot Point)の位置がおかしい
・[オブジェクトプロパティ] → トランスフォーム(位置,回転,モード,拡大縮小)がおかしい

など

私の場合, 3Dオブジェクトを複製やミラーした時 → 頂点グループは元のまま
これに気づかなかった。

動作環境

  • Windows 10 Pro 1909
  • Unity 2017.4.28f1 Personal (64bit)
  • Blender 2.83 Maya Config Addon For Blender 2.8
  • Blender 2.90
  • 3Dモデル(3Dオブジェクト).fbx

修正方法1 頂点グループ 割り当てを確認,修正する

オブジェクトの頂点グループの割り当てを確認, 問題があったら修正します。

今回は右腕が黒くなった時の例を示します

  1. [オブジェクトモード] 右腕のオブジェクトを選択します.

  2. [編集モード], [頂点選択]. [オブジェクトデータプロパティ], [頂点グループ] 右腕のグループを選択します。

  3. 頂点グループの割り当てのミスを確認します。今回は右腕を表す頂点グループの名前が腕.Rではなく、腕.Lになっていました。

Edit Mode, Vertex Selection. Object data properties, vertex group. Select the right arm group. Check for a mistake in the vertex group assignment. This time it was arm.L instead of right arm arm.R.

  1. 頂点グループの名前を 腕.L → 腕.Rに変更し, [割り当て]します。

Rename and assign a vertex group to arm.

これでOKです。

3Dモデル(FBX)を完璧にしたいのであれば、全てのオブジェクトの対して行うようにします。

修正方法2 メッシュの面の向きを確認する

「オブジェクトの一部が透明になっていて表示されない。。」
この場合は、メッシュの面の向きが反転している可能性があります。

その時は、【Blender2.8】オブジェクト表面が透明になった.メッシュが透けている時の修正方法.
これを試します。

【Blender2.9】オブジェクト表面が透明になった.メッシュが透けている時の修正方法
Blender 2.9でオブジェクト表面が透明になった,メッシュが透けている時の修正方法を紹介します。オブジェクトの表面が透明になった。メッシュが透けている。原因メッシュの向きが反転している.3Dビューのシューティング,裏面を非表示をオンにしている.対処法1 メッシュ 面の向きを外側にする.対処法2 裏面を非表示をオフにする.
スポンサーリンク

修正方法3 オブジェクトの全トランスフォームを適用する

  • オブジェクトの原点(Pivot Point)の位置がグローバル座標(0,0,0)ではない時。
  • オブジェクトに回転がある時。

3Dモデルとしてのオブジェクトのトランスフォームが定まってないと、おかしくなる可能性があります。

  1. [オブジェクトモード], オブジェクトを選択します.

  2. オブジェクトのトランスフォーム(位置,回転,モード,拡大縮小)の値を確認します。

太字がトランスフォームが定まってない例です。

  • 位置
    • X: -0.52771m → 0°
    • Y: -1.75m → 0°
    • Z: -18.668m → 0°
  • 回転
    • X: 180° → 0°
    • Y: 0
    • Z: 0
  • 拡大縮小
    • X: 0.5 → 1
    • Y: -0.5 → 1
    • Z: 0.5 → 1
  1. [オブジェクトモード], [オブジェクト] → [適用] → [全トランスフォーム]を選択します。

Check the value of the object's transformations.  Object mode. Object.Apply -> Select All Transformations.

  1. 全トランスフォームがリセットされたら、OKです。
    オブジェクトのオレンジの点. つまり原点(Pivot Point)が(0,0,0)に位置しているのが理想です。

Once all transformations are reset, you're good to go. The orange point of the object. Ideally, the origin (Pivot Point) should be at (0,0,0).

これを行うことによって、オブジェクト,マテリアルが黒くなる,暗くなる問題の解消の一つになります。

コメント

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