なるべく楽にUnityからPlayCanvasへヒエラルキーごと3Dモデルを移植する

2021年8月17日(火) 2時29分33秒 | 425 view |

UnityからPlayCanvasへそのままヒエラルキーごとモデルを移植するいい感じの方法を見つけたので書きます

前提

Unityから3Dモデルデータをそのまま移植したい方向けです。
最終的にはヒエラルキーの階層構造のまま移植可能ですが、スクリプトやライト、パーティクルなど、モデルデータ以外のゲームオブジェクトはこの方法では移植できません。
また、マテリアルはからの状態でインポートされるため、Unityと全く同等の質感にするためにはもうちょっと努力が必要です
今回はUnity Asset Storeで購入した複数の3Dモデルとそれがいい具合に配置されたシーンのアセットを、そのシーンに表示されているヒエラルキーごと移植します。

最終的な結果はこうなります
Unity

PlayCanvas

それではやっていきましょう

※注意事項

Unityでは、2020年4月13日のEULAのアップデートによりUnity Asset Storeで展開されている商品を最終的にUnity外で利用しても良い改定が実施されました
https://assetstore.info/notice/eulainterpretation20200413/
ですがすべてのアセットが対象ではなく、「使用許諾 標準Unity Asset Store EULA」となっているものが対象です。

Unity側の作業

大きく分けて、Unityで移植したい環境を構築する,FBX exporterをインストールする→FBX化するという3ステップが必要です。

移植したい環境を構築する

まず移植したい環境をUnityのシーンに構築します。
今回はUnity Asset Storeで購入したこちらのアセットを移植します



Asset Storeで購入後、Package Managerよりインポートします

このようにインポートされ、サンプルシーンが動作しました

こちらの例ではGameObjectという名前のゲームオブジェクトにモデルのゲームオブジェクト全てが子要素として格納されています。
移植したいゲームオブジェクトはこのようにすべてが格納された一つのオブジェクトにまとまっていることを確認してください。

FBX exporterをインストールする

Unity Technologies公式が出しているFBX Importerを利用してゲームオブジェクトをFBX化します。
Package ManagerからUnity Resistryを参照している状態で、右上の検索窓よりFBX exporterと検索してください。

※無料のUnityが出しているものを利用してください。有料のものもありますが、無料のものでいけます。

FBX化する

FBX exporterがインストールできていれば、ヒエラルキーにあるゲームオブジェクトをFBXにすることができます。
移植したいゲームオブジェクトを右クリックし、Export to FBXをクリックします

クリックするとエクスポートのオプションが聞かれますが、特に変更しなくて大丈夫です。


Exportを押したあとに処理が走り、無事終わればAssets配下にFBXモデルが作成されていると思います。
これでUnity側での作業は終了です。

PlayCanvas側での作業

大きく分けて、エディターの設定変更,アップロード,マテリアルの設定の3ステップです。

エディターの設定変更

インポートしたモデルを階層構造で表示されるように変更します。
左下歯車マークのsettingsを押下し、右側に表示された項目からASSET TASKS -> Model Import Settings -> Import HierarchyのチェックボックスをONにします

アップロード

生成されたFBXをPlayCanvasのAssets欄にドラッグ・アンド・ドロップしてアップロードします
アップロードが終わると、大量のマテリアルやレンダーアセットが生成されます。


この状態だとテクスチャが含まれていないので、テクスチャは別でアップロードします
テクスチャのアップロードが終了するとこのような見た目になります。


これでアップロードは完了です。

マテリアルの設定

まずすべての画像が素のデータのままアップロードされていて重いので、全てにBASIS圧縮を適用します。
AssetsからTextureを選択し、すべてのテクスチャを表示します
SHIFTキーを押しながらすべてのテクスチャを選択します

右側ヒエラルキー下部のCOMPRESSION -> BASISにチェックを入れ、IMPORT BASISとCOMPRESS BASISを押下します。
圧縮処理が実行され、すべてのプログレスバーが表示されなくなればBASIS圧縮完了です

次に、モデルデータを表示してみます。
Assetの中にひし形アイコンのアセットがあると思います。こちらがテンプレート化されたモデルデータになります。
ヒエラルキーのBoxとPlaneを削除し、アップロードしたモデルデータをシーンにドラッグアンドドロップして表示します。
すると以下のようにグレーの状態になって表示されます


マテリアルが設定されていないため、グレーになっています。
次に、マテリアルにテクスチャを適用していきます。
解析されたマテリアルに、それぞれアップロードしたテクスチャを反映させていきます。
マテリアルの設計についてはそれぞれUnityで元になったモデルのマテリアルを確認しながらやることをおすすめします。

追記:Editor APIを利用するととても簡単に適用できます



マテリアルの設定が完了するとこのようになります


あとは、skyboxの設定やライトの設定などを入れることで表現をアップすることができると思います。