リソースの再ロード

プロジェクトのアセットを操作している場合(マテリアルまたは特定のエフェクトのプロパティを微調整している場合など)に、シーンのコンテキスト内で変更をすぐに確認できれば、必要なエフェクトを得ることが非常に簡単になります。

Stingray エディタのアセット プレビュー ビューポートおよびレベル編集ビューポートには、アセットおよびシーンに対する最新の変更内容が常に表示されています。ただし、変更内容をエンジン内でライブに表示して、プロジェクトの最終ターゲット プラットフォームで実行したい場合があります。

このページでは、エンジンの実行中のインスタンスを取得してアセットを「ホットリロード」する方法、つまり、アセットをメモリに即座に再ロードして、最新の変更内容を表示する方法について説明します。

アセットを自動的にリフレッシュする

プロジェクト内でアセットを変更すると、接続された各エンジンが自動的にリフレッシュされて、エディタに最新の変更内容が表示されます。この操作は、Test Level ボタンまたは Run Project ボタンを使用して起動されたすべてのエンジンで有効です。

この操作を行うと、プロジェクト フォルダ内の独自のデータ ファイルに保存されたアセットを操作しているときはいつでも、シームレスに作業することができます。

アセットを強制的に再コンパイルする

リソースのソース データ ファイルはプロジェクト フォルダ内にありますが、エンジンはプロジェクトの _data フォルダからこのデータのコンパイル済みバージョンをロードします。(「コンテンツのライフサイクルについて」を参照してください。)したがって、リソースのソース データ ファイルを変更した場合は、このアセットをコンパイル済みデータのフォルダに再コンパイルしてから、ゲーム内にロードする必要があります。

上記のように、ほとんどの種類のリソースは、保存するとすぐに、Stingray エディタによって自動的に再コンパイルされます。ただし、Lua ファイルだけは例外です。プロジェクト内で 1 つまたは複数のスクリプトを変更した場合は、再コンパイルするようエディタに要求する必要があります。編集ツールの外部でリソースを編集した場合(たとえば、テキスト エディタでプロジェクトの global.physics_properties ファイル内の物理プロパティを変更した場合)は、同じ操作を実行する必要があります。

最近修正されたリソースを強制的にコンパイルするには、次の手順を実行します。

強制的にリフレッシュする

Stingray エディタでアセットを変更または再コンパイルするたびに、エンジンのすべての接続済みインスタンスで変更済みのコンテンツが自動的にリフレッシュされます。該当するのは、独自の内部エンジン、エディタの Test Level ボタンおよび Run Project ボタンを使用して起動されたすべてのエンジンです。

ただし、最新のコンパイル済みコンテンツからエンジン自体を強制的にリフレッシュしなければならない場合があります。たとえば、エンジンでプロジェクトが実行されているときに、異なる編集ツールを使用してアセットを変更する場合(Visual Studio Code 内で Lua スクリプトをデバッグしている場合など)は、現在ロードされているアセットをリフレッシュするように指示するコマンドをエンジンに送信する必要があります。

再ロードをトリガするには、エンジンに refresh コンソール コマンドを送信します。このコマンドは、Stingray エディタのステータス バー(「ステータス バーからコマンドを送信する」を参照)、または Visual Studio Code デバッグ プラグイン から送信できます。

次の点を確認します。

関連項目