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で購入したこちらのアセットを移植します
Elevate your workflow with the Japanese School Classroom asset from SbbUtutuya. Find this & other 環境...
assetstore.unity.com
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を利用するととても簡単に適用できます
エンティティ操作すべてのエンティティを取得するconst entities = editor.entities.list();renderコンポーネントを持つエンティティをすべて取得するconst ....
utautattaro.blog
3D Gaussian Splatting で遊んでみる
2023年10月18日(水) 14時5分18秒 | 358 viewvue-scrolltoとv-b-scrollspyが共存したらかっこよかった
2021年12月1日(水) 16時37分57秒 | 290 viewWindows11でダークモードにした際にChromeでCSSが変更されて見えづらくなってしまう問題を解決した
2022年2月24日(木) 12時49分57秒 | 154 viewLIFF(LINE)ブラウザでwindow.prompt()が期待する動作をしない
2021年10月16日(土) 14時22分50秒 | 119 view目次をデフォルトで開いたり、開いたり閉じたりを検出したい
2020年10月30日(金) 9時52分28秒 | 23 view