すべてのゲームには、少なくとも 1 つの「ブート パッケージ」と呼ばれるパッケージが必要です。このパッケージはゲームの起動時に自動的にロードされ、リソースのロード処理を開始します。
ブート パッケージは、ゲームの settings.ini ファイルの boot_package 設定で指定します。「Stingray エンジンの settings.ini ファイルのリファレンス」を参照してください。
ブート パッケージには、少なくとも以下が含まれている必要があります。
一般に、ブート パッケージには以下も含まれていることが推奨されます。
すべての core リソース。
Stingray エディタでコンテンツをオーサリングする際に役立つ機能の多くは、core フォルダのコンテンツに基づいています。たとえば、多くのフロー ノードは、core リソースにあるノードの定義と Lua スクリプトに依拠しており、Appkit からまたは Scaleform Studio、HumanIK、Gameware Navigation などのプラグ インから取得されます。さらに、Stingray レンダリング パイプラインは、core フォルダに格納されているデータ ファイルに依拠しています。
すべての core リソースをブート パッケージに含める必要はありません。ゲームで実際に使用するコンテンツの特定部分のみを選択できます。ただし、core フォルダ全体を含めることで、重要なリソースを誤って除外してしまう可能性を避けることができます。
プロジェクト内の他のすべての Lua スクリプト。
これは絶対に必要というわけではありません。他のパッケージにカスタム Lua スクリプトを含めて、ゲームの途中でメモリにロードおよびメモリからロードできます。ただし、これらのスクリプト ファイルはメモリ内では相対的に小さいため、ゲームの全過程ですべてをロードしたままにすることで、ゲームプレイ コードの記述およびデバッグが簡略化される傾向があります。
プロジェクトでカスタム フロー ノードを定義する .script_flow_nodes リソースと、それらのノードが依拠するコールバック関数を含む Lua スクリプト。
ブート パッケージでこれらのファイルをロードすることで、キャラクタまたはレベルのフロー グラフによって誤って、定義されていないカスタム ノードが使用されたり、現在の Lua 環境に存在しない Lua 関数が実行される可能性を避けることができます。「Lua でカスタム フロー ノードを作成する」も参照してください。
プロジェクト内の他のすべての .package リソース。
ゲームのバンドル ビルドでは、これは必須ではありません。.package リソースを明示的にメモリにロードしたかどうかに関係なく、パッケージは常に正しくロードされます。
ただし、コンパイルされた(ノンバンドル)データからゲームを実行する間は、ゲームで各パッケージにロードする必要のあるリソースを把握するために、.package リソースを利用できるようにする必要があります。すべてをブート パッケージに追加するのが最も簡単であるため、.package リソースを利用できないパッケージはロードしないでください。