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
反Apple信者の私が移動用のメインマシンをiPad Pro(第5世代) 12.9インチに変えてからしばらく経ったので現在の構成を紹介
2022年8月9日(火) 15時27分41秒 | 416 viewnuxt.jsでテキストボックスクリック時にテキストを全選択する
2021年6月1日(火) 14時2分16秒 | 109 viewNCMBのスクリプト機能はGETでいいなと思ってもPOSTで設定しておこう
2021年3月6日(土) 18時29分49秒 | 39 viewnovelで書いたmarkdownを保存できるようにする
2023年11月28日(火) 16時48分34秒 | 30 view8時間ゲームジャム
2020年10月26日(月) 11時45分38秒 | 6 view