BlenderからUnityへのエクスポートの秘密


-座標系の理論(右と左)
-ブレンダーでの3Dモデルの正しい作成の理論
-BlenderからUnity3dへの高速ファイルエクスポート。
-BlenderとUnityでモデルのスケールを正しく比較する方法。
-モデルの正しい向きでエクスポート
-なぜUnityとBlenderで頂点の数が異なって表示されるのですか?

BlenderからUnity3dへの自動エクスポート用スクリプト(darkfreiが提供するリンク)

記事へのビデオ


Blenderレッスン番号1

Blenderレッスン番号2

Blenderレッスン番号3

Unity3dのボーナステクスチャチュートリアル


座標系の理論(左右)


実際、これは最も重要な部分であり、エクスポートが正しくないために3Dモデルの物理学で多くの問題に遭遇しました。 それでは、まず、左右の座標系について理解しましょう。

Blenderは、Z軸が上を向いた右手座標系を使用します。 ほとんどすべてのCADシステムがこの座標系を使用しています。 写真を参照してください:

画像

Unity3dは、他のほとんどのゲームエンジンと同様に、左手座標系を使用します。 Yが上、Xが横、Zが前です。 写真を見ます:

画像

Blenderでの3Dモデルの正しい作成の理論


まず、Blenderで3Dモデルのフォルダーとファイル構造を調べる必要があります。
Refence-補助図面、3Dモデルの作成に役立つ図面を保存できるフォルダー
テクスチャ -テクスチャを保存するフォルダ。
Flags_snow.blend-ブレンダー形式の3Dモデル



ここで、3Dモデルを正しくエクスポートするには、オブジェクトが前方に移動するときにZ +がゲーム内の方向になり、(Z-)がオブジェクトが後方に移動するときの方向になることを理解する必要があります。 (X +-)は側方への回転方向です。ただし、これはUnityで、 左手座標系を使用します 。 そして、 右手座標系 (Blender、3ds max)では、Y +これはオブジェクトが前方を見ているときの方向になり、(X +-)これらは側への方向になります。 これは、オブジェクトが図のようにシーンに立つ必要があることを意味します。



すべての回転パラメーターを0に設定してさらに作業し、メッシュを正しく生成するために、デフォルトでスケールを設定する必要があります。 これを行うために、Blenderで次のことを行います。

1)シーン内のすべてのオブジェクトを選択します(Aキー)
2)[ オブジェクト]> [適用]> [回転とスケール]。

これで、すべての回転パラメーターが受け入れられ、 0に設定されました。 また、 スケーリングパラメーター(Scale)はデフォルト(1)に設定されます。 写真を見ます:

画像

Leopotamユーザーのおかげで、 Blenderではなく、Unity3d自体にテクスチャを割り当てるほうが良いことがわかりました。 プロジェクトウィンドウのオブジェクト。

正しいモデルの向きでエクスポート


これで、右手座標系から左手座標系への「右エクスポート」を実行できます。

1)すべてのオブジェクトを選択(Aキー)
2)シーケンスR> X> -90を押します。
3)[ オブジェクト]> [適用]> [回転]。
4)シーケンスR> X> 90を押します。

この順序でこれを行うようにしてください。 次に、モデルをUnityにエクスポートします。 「ファイル」>「エクスポート」>「FBX」で次の設定を行います



BlenderからUnity3dへのファイルのクイックエクスポート。


モデルをエクスポートした後:
1)このモデルのあるフォルダーに移動し、 Texturesフォルダー(テクスチャーのあるフォルダー)FBXファイルをコピーします



2)プロジェクトのAssetsフォルダーに挿入します。 これにより、UnityはBlenderで設定されたテクスチャを使用してモデルを直接インポートできます。



UnityとBlenderで頂点の数が異なって表示されるのはなぜですか?


図にあるように、Unity3dのオブジェクトの頂点の数は28です。
写真を見ます:


そして、Blenderの頂点の数= 8



これは、Unity3dでは、フィギュア自体の頂点の数とUVスキャンの頂点の数が計算されるという事実によるものです。



継ぎ目を作成する場合、1つの面は2つの面に分割され、数学に従って、1つの面は2つの頂点で構成されます。したがって、2つの面の4つの頂点があります。 たとえば、 スマートUVプロジェクトスキャンを使用して、最大角度制限を設定します。



Blenderを見ると、頂点の数が28から24に減少しています。 誰かがより最適化された方法を持っている場合。 コメントを書いて、議論します。 頂点が4つだけ削減されたと言う人もいれば、そのようなオブジェクトが100か200か、またはより詳細なオブジェクトの頂点の数が100-300削減されたかを想像します。 私の意見では、最適化するのに悪い方法ではありません。



BlenderとUnityでモデルのスケールを正しく比較する方法。


Unityのデフォルトの測定単位UnitsであるBlenderのすべての測定単位1単位= 1メートル 。 したがって、開発者は実際の1メートルに対して1単位のプレイスペースを確保することをお勧めします(少なくとも物理学をいじくり回すためには)。
したがって、Blenderの単位は理解できますが、Blenderの原則では変更できますが、デフォルトではBlender Unitsが使用されます。

写真を見ます:



Dimensionパラメーターが表示されます。 図では、X、Y、Z = 1,1,1の次元を示しています。 したがって、この図は、寸法が1x1x1メートルの立方体です。 Unityにエクスポートして、[インスペクター]タブに移動します



Unityのバージョンが5未満の場合、 Scale Factorパラメーターを調べます。デフォルトのScale Factorは0.01です。Unity5がありScale Factorのデフォルトが1の場合、このパラメーターを1修正します。

おわりに


BlenderからUnityへの3Dモデルのエクスポートを見ると、これが記事全体です。これはそれほど難しくありません。 この資料の詳細については、記事の冒頭にあるビデオチュートリアルをご覧になることをお勧めします>> リンク

レオポタムのサプリメント


レオポタム:
マテリアルにテクスチャを吊ることができないとは言われていません(UVウィンドウにあるもののみ)。そうでない場合、ユニットはobject.fbmなどのフォルダーの作成を開始し、隣接するTexturesフォルダーにあるものに関係なくテクスチャをインポートしようとします。 ここに問題があります-それらを削除しても、次に再インポートするとき(たとえば、新しいフォルダーでリポジトリを選択するか、ターゲットプラットフォームを変更するとき)には、アセットフォルダーが再び表示されます。 唯一の解決策は、ブレンダーでこのケースを適切に準備することです。 さて、または材料のインポートをオフにして、手でプレハブを構成します。

答えは:
はい、確かにUnity 5では、これらのフォルダーは気づかないうちに作成されました(プライマリインポート中)が、空で削除でき(プライマリインポート中にのみ作成されます)、Texturesフォルダーでテクスチャを探し、マテリアル設定に応じてシェーダーが適用されますマテリアルは標準であり、Transpertyがマテリアルで使用されている場合は、構成済みのテクスチャで拡散反射光を適用し、Unity3dで対応するTranspertyシェーダーを適用すると、テクスチャも適用されます。 ターゲットプラットフォームをWeb Playerからデスクトップに変更しました-何も変更されておらず、フォルダーは作成されていません。 Iosに変更-何も変更されていません。 Unity 5.0.1f1

レオポタム:
アニメーション付きのアーマチュアをエクスポートする場合、FBX 7.4 BINARY形式は使用できず、古いFBX 6.1 ASCIIのみを使用できるとは言われていません。それ以外の場合、ユニット内のすべてが「ブラッドサッカー」のスタイルになります。

答えは:
追加情報のおかげで、私はBlenderでアニメーションを操作しませんでした。実際、開発プロジェクトでは、ボーンアニメーションは必要ありません。したがって、このマテリアルについてはほとんど知りませんでした。

Source: https://habr.com/ru/post/J254937/


All Articles