【2024】BlenderとUnityで3Dモデルをインポートする方法&それぞれの違い
これからBlenderを扱う人は、何のために3DCGを触ろうとしているのでしょうか?「単純に3Dに興味があるから」「映像制作に3Dを使うから」「建築に使うから」このようにさまざまな動機があるでしょうが、その中でもトップに入るのは「3Dのゲームを作るため」でしょう。
そして、これから3Dのゲームを作るという人がまず触ることになるであろうエンジンが「Unity」です。Unityは、初心者から玄人、フリーゲームから大ベストセラー作品にまで幅広く世界中の人に愛され使用されているエンジンであり、これからゲームを作るという人にも最もおすすめできるものです。
この記事では、Unityとはどんなものなのか、BlenderとUnityで3Dモデルを移動するのはどうすれば良いのかなどについて解説していきます。
Unityとは?
画像引用元:Unity
Unityとは、ユニティ・テクノロジーズ社が開発・提供を行っている統合開発環境を内蔵した無料のゲームエンジンです。
ゲーム制作には本来、コンパイラやデバッガ、イラストや3DCGの制作ソフトなどさまざまなソフトが必要となりますが、それらを統合開発環境として一つにまとめ、これ一つでゲームを簡単に作れるようにと設計されたのがUnityです。
最初にリリースされたのは2005年の6月ですが、2020年現在では100万人以上の開発者に利用され、世界で一番有名なゲームエンジンと言っても過言ではないほどに成長しています。
大きな特徴として、対応プラットフォームの多さとそれらをつなげるクロスプラットフォームへの対応が挙げられます。
対応プラットフォームとしては、WindowsやmacOSはもちろん、PlaystationシリーズやNintendo Switch、Xboxシリーズなどコンシューマ機、iOSやAndroidなどのスマホ用OSまであり、Unityの使えないものを探すのが難しいほどです。
さらに、その上で別プラットフォームでの展開も同時にできるため、世界中で支持されるわけだと納得せざるを得ません。
この「世界中で支持されている」という点も大きな利点です。
ゲームエンジンに限らず、何か新しいソフトウェアに触る際は、まず使い方などチュートリアル的な部分を調べ、さらに実際に触ってみてわからない点を調べ、躓いた点などを調べと逐一インターネット上の知識に頼ることが一般的です。
これが少しでも知名度が足りないソフトとなると大変です。
特に、つまずいた点を調べる際などはマイナーな知識を必要とすることが多いため、簡単には解決しにくいものです。
その点、Unityは他ゲームエンジンと比べても過度に多くネット上に情報が存在するため、そういった心配はほとんどありません。
さらに、Unityにはアセットという他ソフトでいうところの拡張機能、アドオン、modなどと呼ばれるものが存在しますが、利用者の数が多い分このアセットもおびただしいほどの種類の数になっています。
「ゲーム開発をこれから始めたい」という方には、まず真っ先に勧められるとても優秀なエンジンです。
UnityとBlenderの関係
先ほど解説したように、Unityはゲーム開発に必要なツールを取り揃えた、統合開発環境内蔵のゲームエンジンです。
Unityは3Dゲームの開発を得意とするソフトでもあり、統合されたソフトの中には、3Dゲームを作るために必須である3Dモデリングや3Dアニメーションのソフトも含まれています。
つまり、3Dのゲームを作ろうとした際は、別のソフトなどに一切頼ることなく、1から10まですべての工程をUnity内で済ませることができます。
実際に、そうやってUnityだけですべてを作っている人はそう多くありません。
Unityのモデリング機能は十分に使用に耐えるものですが、Blenderなどと比べるとどうしても扱い慣れてない人には難しく、また機能面でも物足りない部分があります。
アセットには3Dモデルを無料配布しているようなものも複数あり、それらを使えばUnity内でゲーム開発を完結させることも難しくはありません。
しかし、手間暇かけてゲームを作るのであれば、見栄えに直結する3Dモデルにこだわりたくなることもおかしなことではありません。
幸い、他の3DCGソフトからUnityに3Dモデルを移動させるのは、そう難しくありません。
Blenderは無料で使用者が多いこともあり、そういった用途で使用されることの多いソフトでもあります。
そこで、ここから先ではBlenderで作った3DモデルをUnityで簡単に利用する方法を解説していきます。
BlenderからUnityへ3Dモデルをインポートする方法
それでは、Blenderで作成した3DモデルをUnityで利用する方法を手順を追ってお伝えしていきます。
ステップ①:FBXでエクスポートする
3Dモデルが完成していること、その3Dを動かすためのボーンとウェイトが設定されていることが前提です。
完了しているようなら、上部メニューの「ファイル」から「エクスポート」「FBX」と選択してください。
もしエクスポートの中にFBXの選択肢がなければ、アドオンの一覧から「Import-Export:FBX format」にチェックを入れると表れるはずです。
ステップ②:エクスポート要素を選択する
エクスポート画面では、オブジェクトという項目の中にエクスポートする要素が並んでいます。
デフォルトではすべてを選択している状態になっているかと思いますが、ここは特に理由がなければアーマチュアとメッシュ以外の選択は外して良いでしょう。
ちなみ、この項目はShift+クリックで複数選択することができます。
ステップ③:テクスチャやマテリアルは移動できない
エクスポートしたファイルをUnity側で読み込むことで、移動は完了します。
おそらくUnityでそのモデルを見ると、テクスチャやマテリアルの設定が消えてしまっているでしょう。
メッシュも壊れておかしな部分がつながっている状態になっているかもしれません。
テクスチャやマテリアルに関しては、BlenderからUnityへはどうしても移せないようです。
Unity側で改めて再設定する必要が出てくるため、もしUnityへ移行する前提でモデルを作るのであれば、テクスチャとマテリアルに関してはUnityにモデルを移動してから作りましょう。
テクスチャは、画像として移動し再設定すればBlenderで作ったものでも利用できるようです。
ステップ④:メッシュがおかしくなっている場合
メッシュがおかしくなってしまっている場合は、Blender側でモデルを再び開き、法線の再計算を行う必要があります。
法線を意図的に別方向に設定しているわけでないのであれば、編集モードですべてのメッシュに対し、法線の再計算を行うと良いでしょう。
ver2.8では、編集モードで上部から「メッシュ」「ノーマル」と選択し、「面の向きを外側に揃える(RecalculateOutside)」「面の向きを内側に揃える(RecalculateInside)」いずれかを使用することで再計算を行ってくれます。
UnityからBlenderへ3Dモデルをインポートする方法
UnityからBlenderへとモデルを移動させる意味がないわけではありません。
例えば、Unityのアセットに含まれる3DモデルをBlenderで改変したい場合や、Unityで途中までモデルを作ったものの、Blenderで作りたくなったときなどのために、UnityからBlenderへの移動方法も知っておいて損はありません。
とはいえ、こちらの移動も、BlenderからUnityへの移動と同じように、インポート自体は簡単です。
ステップ①:FBXを出力する
Unityで作成したモデルをfbx形式のファイルとして出力すれば、それをそのままBlenderで読み込めるはずです。
アセットとして購入したモデルであれば、Unityで読み込むまでもなく、最初からこの形式になっているかもしれません。
ただし、そうやって読み込んだファイルは、大抵の場合Blenderではかなり崩れてしまっています。
そのため、その後の細々とした修正はほぼ必須となります。
ステップ②:ボーンを修正する
修正すべき点は、パーツ位置やスケール、回転などさまざまです。
まずは、おかしな形になっているであろうボーンの関連付けを切って、位置を整えることをおすすめします。
ステップ③:パーツ修正
その後、パーツの位置、スケール、回転などを初期値に戻し、ボーンを再びモデルに関連付ければ、おそらくUnityで表示できていた状態に戻せているはずです。
3DCGソフトウェアとしてのUnityとBlenderの違い
Blenderが3DCGに特化したソフトであるのに対し、Unityはあくまでゲーム制作に必要な1要素として3DCGを扱えるにすぎません。
そのため、基本的には3DCGに関しては、Blenderが機能性、使いやすさにおいて上とされており、事実ゲーム制作のための3DCG作成がUnity内のみで完結することはあまりないようです。
しかし、マテリアル設定アニメーション作成、レンダリングはあくまでUnity内で行うしかなく、その上でUnityで作成されたしっかり高品質な映像作品も数多く存在するということは、Unityが3DCGソフトウェアとして低品質ではないということができるでしょう。
また、Unityは3Dモデルをゲーム内で動かすことを前提にしており、Blenderにない特徴もいくつか見られます。
ゲーム使用に対する適正、汎用性としてはUnityの3DCGに軍配が上がるでしょう。
レンダリングにはRender Poolがおすすめ
3DCGの映像制作において、レンダリングは最重要とも言える要素です。
どんなに素晴らしいシナリオを使い、モデリングやアニメーションが最高だったとしても、レンダリングがお粗末であればその映像すべてがチープなものとされてしまうことも十分にあり得ます。
しかし、レンダリングはある程度スペックの低いPCでも不足なく可能なモデリングやアニメーションと違い、平均よりとても高い性能のPCを使ったとしても、作業容量をすべて使い続けるものです。
つまり、PCの性能が低ければ、十分に満足の行く結果にはなかなかなりません。
この点に関しては、個人の技術力などでは如何ともし難い部分です。
レンダリング以外の部分が非常に高水準である作品が単純なスペック不足によりお粗末になってしまうのは、作る側、見る側の両者にとって非常に悔やまれる、とてももったいないことです。
しかし、そうはいっても資金のない人にレンダリングのためだけに高いPCを買い揃えろとは言えません。
代わりにおすすめしたいのが、クラウドレンダリングサービスの「Render Pool(レンダープール)」です。
Render Poolとは、簡単に言えばレンダリングを代行してくれるサービスです。
Render Poolは、このレンダリングサービスのためだけに複数のGPUを内蔵した数千のサーバーを用意しており、十全なレンダリング結果を出してくれることはもちろん、一般的なPCと比べてとても素早くレンダリングを完了してくれます。
料金も非常にリーズナブルです。
レンダリングにかかった時間で決定されますが、なんと1分につき3円~6円ほどしかかかりません。
先払いのプリペイド式で支払う形ですが、これはある種の保険にもなります。
どんなにレンダリングするデータの量が多く、どんなに時間がかかるとしても、先払いであれば、気がついたらレンダリング時間が恐ろしく長くなっており、莫大な料金を請求されてしまうということはあり得ないからです。
また、Render Poolは利用前にレンダリングにかかる時間をシミュレートしてくれる機能もあります。
事前に使っておけば、先払いする金額に悩むこともないでしょう。
ゲーム制作においても、ゲーム中挿入される3DCGムービーなどをBlenderなどで作成することは決して珍しいことではありません。
よりよりゲームを作るために、一度RenderPoolを試してみてはいかがでしょうか?
まとめ
BlenderからUnity、UnityからBlender、どちらもモデルを移動させること自体は難しくありませんが、問題は移動したモデルが正しく反映されづらいことです。
原因を知り、正しく修正しましょう。
また、BlenderからUnityに持ってこれるのはモデリングとアーマチュアのみであり、その後のマテリアル設定、アニメーション、レンダリングなどはUnityで行わなければなりません。
レンダリングに不安があるなら、Render Poolを利用することも検討してみてください。