【Blender × Unity】Blenderで作った3DオブジェクトをUnityにインポートする方法


### 概要
今回は、Blenderで作った3DオブジェクトをUnityへインポートする方法をまとめてみました。
(自分が作業手順を忘れないようにするための備忘録も兼ねています！)

### ****動作環境****
- Blender 2.93.8
- MacOS Big Sur (11.6.1)
- Unity 2020.3.11f1

### メリット・デメリット

正直今から行おうとしている作業について、このままでもfbx形式に書き出して、Unityへ持っていく事自体は可能なのですが、

例えば
- Blenderでオブジェクトを複数個作成し、それぞれ書き出した場合
    - 各オブジェクトのサイズ感が合っておらず、Unity側でサイズを微調整し直す必要が出てくる。
    - また、再度Blenderでオブジェクトを作り直してUnityへ取り込みなおした時、前回どれくらい拡大縮小したか分からなくなる。
    
といった面倒なひと手間が増えてしまいます…イライラしてる姿が想像できますね。

そこで、今からお伝えする作業をやっていただくことで、上記のデメリットを避けることができます。
少しでもストレスなく作業していきたいですね、とりあえずやってみましょう！

### 作業内容

#### 1. 3Dオブジェクトを準備しよう！

Unityへ持っていきたい3Dオブジェクトを用意してください。

今回は、こちらのBibi(びび)さんの動画を参考にさせていただき、机を作成してみました。
[【初心者向け】世界一やさしいBlender入門！使い方＆導入〜画像作成までを解説【Blender2.9】](https://youtu.be/S6aAvxUx2ko)

これで、可愛らしい机の完成です！
![スクリーンショット_2022-05-11_16.04.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/2414442f-5f52-af87-1067-2026aa30fc7e.png)
ちなみに、この3Dオブジェクト完成時の各値は下記のような状態になっています。
![スクリーンショット_2022-05-11_16.04.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/b924a1d7-70b8-35c5-9c50-17fe65957895.png)


#### 2. オブジェクトの各値を「適用」しよう！

次は、作成したオブジェクトが持っている各値を適用させる作業に入ります。
現在オブジェクトが持っている値は下記のようになっていますが、赤四角の部分をご覧ください。
![スクリーンショット_2022-05-11_16.04.40 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/5597ca73-464d-8cd6-adaf-58a45c7beb3d.png)
机のオブジェクトを作成する際、適当な場所で作り出してしまったため、「位置」の各パラメーターがぐちゃぐちゃになっています。
このままだとUnityへ持っていった際、自分が意図しない位置にオブジェクトが生成されてしまうでしょう…。

そこで、「適用」の作業を行います。
- control + A キー でメニューを表示→ 「位置」を選択して、値を適用する。

すると、現在のオブジェクトが持っているそれぞれの数値を、形状を保ったまま初期化することができます。
![スクリーンショット_2022-05-11_16.06.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/21f317ab-6335-5ca2-7ff8-d9b51faa585e.png)
また、その他の「回転」や「拡大縮小」の値も同じく、値が統一されていない場合があります。

その場合も先ほどの手順と同じく、control + A キー でメニューを表示してから、適用させたい項目を選択することで、形状を保ったまま値を初期化することができます。

最終的に、下記のような感じで各値が綺麗になっていると思います。これでOKです！
![スクリーンショット_2022-05-11_16.53.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/29b904df-9115-de2e-c2f5-83a5612a75ee.png)

#### 3. オブジェクトをFBX形式でエクスポートしよう！

次に、このオブジェクトデータを書き出す(エクスポート)作業に入ります。

先にエクスポートするオブジェクトを指定しておきたい場合、
「シーンコレクション」としてオブジェクトをまとめておき、右クリック → 「オブジェクトを選択」からまとめて選択することができます。
![スクリーンショット_2022-05-16_18.37.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/7178f095-a344-165b-2636-49a6e27beda4.png)
![スクリーンショット_2022-05-16_18.38.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/d52d9bad-2d14-e582-42de-e7c3e6193797.png)
次に、ファイル > エクスポート > FBX (.fbx) を選択します。
![スクリーンショット_2022-05-11_16.28.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/1c59773e-136a-ade4-c00e-dbcd6637c835.png)
続いて、各パラメーターを下記の設定にしました。
- 内容
    - 「Limit to : 選択したオブジェクト」にチェックを入れる
- トランスフォーム
    - 「スケール」を「0.5」に設定
    - 「スケールを適用」を「すべてFBX」に設定
    - 「前方」を「-Zが前方」に設定
    - 「上」を「Yが上」に設定

※ 今回はこのように書き出しましたが、皆様の作成されたオブジェクトに合わせて設定を行ってください。
![スクリーンショット_2022-05-11_16.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/9a111d2a-d5dd-cfb5-7eb5-3c675da8e253.png)
設定を行い、fbxファイル名も付けられたら、右下の「FBXをエクスポート」を押してください。
これで、fbxファイルの完成です！

#### 4. Unityにfbxファイルをインポートしよう！

最後の作業になります！
先ほどエクスポートしたfbxをUnityへドラック＆ドロップすることで、3Dオブジェクトを配置することができます。

各値がちゃんと初期化されてる状態で、Unityにインポートすることができましたね。
![スクリーンショット_2022-05-11_16.57.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/5de2477f-c825-5fe7-432b-4014f7054999.png)
これにて作業完了です！お疲れ様でした！

### おまけ

せっかくなので、Blenderで作った机に対して背景つけたり、ライトで照らしたりしてみました。
まだまだこの辺りの知識は持ってないので、今後勉強していきたいところです！
![blender_table.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2669177/3c718dab-de0f-310e-558d-c39eeffe29ae.png)