見出し画像

【godot】pckの扱い方 -エクスポート・ロード-

今日はタイトルの通りpckの取り扱いに関してお話ししていければと考えています。

アプリを作るうえで切っても切れない関係のリソースがあります。
これがgodotの場合 アプリでのリソースは pck だと思っています。
(多分、間違っていたらすみません)

アプリの配信を考えると容量は100mb以下で配信して
リソースはサーバーにおいてダウンロードさせて機能するように…
これだけなんですがかなり色々なところに技術がいりそうなので
今回はエクスポートとロードだけ話していければと思います。

godot engine には
アプリのエクスポートをする際にリソースのエクスポートも選択できます。

最初にエクスポートするプリセット(ビルドする端末用アプリの設定)を
作成した際にはすべてのリソースが選択状態になっていますが、
これをエクスポートしたいリソースだけ選択して
PCK/Zipのエクスポート…を押して名前を決めてエクスポートする際に
エクスポートモードが
「選択したリソース(と依存関係にあるもの)をエクスポート」になっていると該当の「選択したリソース(と依存関係にあるもの)をエクスポート」してくれる状態となります。

iconとtscnを pckエクスポート

これを使用する場合は公式のドキュメントにもある通り
load_resource_pack でロードして success状態を判定できればそのあとは
前回書いた SceneLoaderでロード時間を図って呼び出してもいいし
loadで呼び出してもいいしができるわけですね。

var success = ProjectSettings.load_resource_pack("user://icon.pck")
    
if success:
    var icon_scene = load("res://icons/sprite_2d.tscn")
    var icon = icon_scene.instantiate()
    self.add_child(icon)

ただ、Editorではpckを読み込んだとしてもどうやらファイルシステム側のものを呼んでいる風な動きをしているのでそこらへんは unity の addressable と変わらない気がしますね

まだわからないところがありますがidの関連付けはやはりプロジェクト構造上から取得してアプリとしてはそのidを持ったままエクスポートで選択しなかったリソースはpckから読み込むというのかオブジェクト構造なわけです

ただこの方法だと1つのpckを作って読み込んだ場合かなりのロード時間がかかりますし一回ロードに失敗したら再度読み込みになるので
pckを分ける必要が出てくるわけなのでそれを解決する方法が
PCKPacker なわけなんですね。やっとここまでたどり着いた気がします。

プリセットを複数作って管理とかやれるんだろうけどプログラム上でやっぱり管理したいわけです。いや、多分プラグイン・Addonで管理ツール作るのがもっぱらの方法なんでしょうけど

なので段階的に PCKPacker の解説ができたらいいな(いつになるやら)
という希望的観測を述べておきながら今回は閉めたいと思います。

きっと長くかかりますから長い目で見てもらえればと思います・・・

この記事が気に入ったらサポートをしてみませんか?