完成した3DモデルをUnity Packageにするまでの流れ
Blender 2.8からUnity 2018へ持っていき、unitypackageにして頒布できるようにするまでの流れをまとめます。
https://gyazo.com/08b84b390df1f7501daa06abb1141b52
1.スケールを調整する。
もしモデルの大きさ(Dimensions)が大きすぎたり小さすぎたりするとUnityに持ち込んだときに再調整する必要が出てくるので、モデルのExport前に調整しておきます。
https://gyazo.com/444b7045ba8331aae33136f52f9cc2c3
2.トランスフォームを適用する
全選択してモデルの回転、移動、スケールを適用します。
https://gyazo.com/033bd304e567b3f5f13da70f5f313606
3.X軸に+90度のRotationを設定する
アーマチュアを含むモデルをUnityに持ち込む際のおまじないです。
具体的な手順は、
3.1. アーマチュアのオブジェクトのみ を選択し、X軸に-90度回転させる
https://gyazo.com/ff70b0cc305f6b6c92fa88e760f43c8a
3.2. 回転を適用する
https://gyazo.com/21c857a24b87813771a455f3744664fa
3.3. X軸に+90度回転させる(適用はしない)
https://gyazo.com/431e8e82de38f635e6b1029e70530ae0
4.全選択してFBXとしてエクスポートする
エクスポート時の設定で確認すべき点は上の項目から順に以下の通りです。
基本的には画像と同じ設定になっていれば問題ないかと思います。
https://gyazo.com/3dcefa65056bed6dcbab8cc1f5ec0dee
「Path Mode」が「Copy」になっており、右のアイコンに色がついている。(テクスチャやマテリアル情報をFBXに含めます)
Selected Objects、Active Collectionにチェックが入っている。(Export対象をどれにするかの設定です。シーンをまるごとExportする際はチェックを外します。)
「Object Types」で「Armature」と「Mesh」のみが選択されている。
「Transform」の「Scale」が「1.0」になっている。
「Aply Scalings(スケールを適用)」が「FBX Units Scale(FBX単位スケール)」になっている。
-Z Forwerd Y Up になっている。
「Apply Unit」「!EXPERIMENTAL! Apply Transform」にチェックが入っている。
「Armature」の「Primary Bone Axis」が「Y Axis」、「Secondary Bone Axis」が「X Axis」になっている。
「Add Leaf Bones」のチェックが外れている。(Dynamic Boneで揺らしたい部分には末端のボーンが必要ですので手動で追加しておいてください)
「Bake Animation」のチェックが外れている。
5.Unityでプロジェクトを作成し、Assetsのルートにフォルダを作成し、モデルをインポートする
他の人のAssetと干渉しないようにAssetsのルート(一番上の階層)にフォルダを作成し、その中で作業します。
作成したフォルダにエクスポートしたFBXをドラッグ・アンド・ドロップしてインポートします。
https://gyazo.com/27eee20af675d7fb9cf68537d93d1653
6.Textureを展開する
インポートしたモデルを選択肢、Inspectorタブの「Materials」の欄にある「Extract Textures...」のボタンを押します。
テクスチャの展開先フォルダを選択すると、そこに埋め込んだテクスチャが展開されます。
(この記事ではAssets/Vintorez/Texturesに展開しています。)
(ノーマルマップを含むモデルの場合、ノーマルマップテクスチャをノーマルマップとして扱うかどうかを確認されると思われますのでAuto Fixして対応しておきます。)
https://gyazo.com/e70e326fa7728efe0458f03b22cc5127
7.Materialを展開する
先程と同様にInspectorタブの「Materials」の欄にある「Extract Materials...」のボタンを押します。
マテリアルの展開先フォルダを選択すると、そこに埋め込んだマテリアルが展開されます。
(この記事ではAssets/Vintorez/Materialsに展開しています。)
https://gyazo.com/e70e326fa7728efe0458f03b22cc5127
テクスチャとマテリアルが両方展開されると以下のようにマテリアル設定が一通り反映された状態になるかと思います。
https://gyazo.com/6799ff26a5910e440eac4b1676a18323
7.Streaming mip mapsの有効化
テクスチャを選択し、Streaming Mip Mapsにチェックを入れておきます。(モデルをVRChatで利用する際は必須の作業です。)
https://gyazo.com/8506565e3d8e21e1943e9e85813a0bba
8.Blend Shape の設定
モデルを選択し、「Model」の欄を開きます。
「Legacy Blend Shape Normals」にチェックを外し、Blend Shape Normalsを「None」にする。
(これをやらないとシェイプキーを含むモデルで法線がおかしくなる場合がある)
https://gyazo.com/904613e3b178ba5df278ef1796127da7
9.Prefabを作成する
一通り設定が完了したらHierarchyタブのScene内にモデルをドラッグ・アンド・ドロップし、モデルが意図した通りに表示されているかを確認します。
TransformのRotationは全て0、Scaleは全て1になっているか
ボーンを動かした際にちゃんと意図した部分が動いているか
全てのメッシュ(パーツ)が含まれているか
Dynamic Boneの調整(必要に応じて)
各種ギミックの実装(必要に応じて)
マテリアルの調整(透過したい部分が透過されているかなど)
Blenderのマテリアル設定(Metallicの値など)はUnityへは持ち込めないため、このタイミングで調整する必要があるかと思います。
https://gyazo.com/ba315ab8bcf9a988ab04963247b3ed54
確認が済んだらHierarchyタブScene内のモデルをProjectタブの適当なフォルダの中にドラッグ・アンド・ドロップし、Prefabを作成します。
(PrefabはVariantとして作成します。)
10.作成したPrefabをunity packageとしてExportする
作成したPrefab Variantを右クリックし、「Export Package...」をクリックします。
https://gyazo.com/17e6f24f18b1f092717d7c49c416e27a
Exportの際にpackageに含まれるItemのリストが表示されます。
この時、意図しないItemが含まれていないことを必ず確認してください。
依存関係に含まれる他のAsset(シェーダやモデル、音源など)のライセンスを確認し、頒布して問題ないものだけを含めるようにする必要があります。
https://gyazo.com/e3bedff5a5f59ba56200d6639d3775c7
右下の「Export...」のボタンを押し、uintypackageを出力する先の適当なフォルダを選択してOKすればPackageの出力は完了です。