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で移植したい環境を構築する,FBX exporterをインストールする→FBX化するという3ステップが必要です。
まず移植したい環境をUnityのシーンに構築します。
今回はUnity Asset Storeで購入したこちらのアセットを移植します
https://assetstore.unity.com/packages/3d/environments/japanese-school-classroom-18392?locale=ja-JP
Asset Storeで購入後、Package Managerよりインポートします
このようにインポートされ、サンプルシーンが動作しました
こちらの例ではGameObjectという名前のゲームオブジェクトにモデルのゲームオブジェクト全てが子要素として格納されています。
移植したいゲームオブジェクトはこのようにすべてが格納された一つのオブジェクトにまとまっていることを確認してください。
Unity Technologies公式が出しているFBX Importerを利用してゲームオブジェクトをFBX化します。
Package ManagerからUnity Resistryを参照している状態で、右上の検索窓よりFBX exporterと検索してください。
※無料のUnityが出しているものを利用してください。有料のものもありますが、無料のものでいけます。
FBX exporterがインストールできていれば、ヒエラルキーにあるゲームオブジェクトをFBXにすることができます。
移植したいゲームオブジェクトを右クリックし、Export to FBXをクリックします
クリックするとエクスポートのオプションが聞かれますが、特に変更しなくて大丈夫です。
Exportを押したあとに処理が走り、無事終わればAssets配下にFBXモデルが作成されていると思います。
これでUnity側での作業は終了です。
大きく分けて、エディターの設定変更,アップロード,マテリアルの設定の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を利用するととても簡単に適用できます
https://utautattaro.blog/post/rhs8oe2wtxm
マテリアルの設定が完了するとこのようになります
あとは、skyboxの設定やライトの設定などを入れることで表現をアップすることができると思います。
3D Gaussian Splattingで作成したplyデータのもやもやを超簡単に取る
2023年11月1日(水) 8時29分10秒 | 3373 viewキミを探す、夏 開発秘話
2021年11月5日(金) 22時43分0秒 | 510 viewPlayCanvas Editor APIで面倒な作業を自動化する
2022年4月18日(月) 6時39分30秒 | 196 view【Web表現チェンジャー】PlayCanvasに追加された3Diframeサンプルが控えめに言ってヤバい
2021年1月13日(水) 15時21分41秒 | 124 viewtweetlogを作った
2020年10月10日(土) 3時22分55秒 | 53 view