プロジェクトのアセットを操作している場合(マテリアルまたは特定のエフェクトのプロパティを微調整している場合など)に、シーンのコンテキスト内で変更をすぐに確認できれば、必要なエフェクトを得ることが非常に簡単になります。
Stingray エディタのアセット プレビュー ビューポートおよびレベル編集ビューポートには、アセットおよびシーンに対する最新の変更内容が常に表示されています。ただし、変更内容をエンジン内でライブに表示して、プロジェクトの最終ターゲット プラットフォームで実行したい場合があります。
このページでは、エンジンの実行中のインスタンスを取得してアセットを「ホットリロード」する方法、つまり、アセットをメモリに即座に再ロードして、最新の変更内容を表示する方法について説明します。
プロジェクト内でアセットを変更すると、接続された各エンジンが自動的にリフレッシュされて、エディタに最新の変更内容が表示されます。この操作は、Test Level ボタンまたは Run Project
ボタンを使用して起動されたすべてのエンジンで有効です。
この操作を行うと、プロジェクト フォルダ内の独自のデータ ファイルに保存されたアセットを操作しているときはいつでも、シームレスに作業することができます。
Stingray エディタでオブジェクトのプロパティを変更するとすぐに、エンジン内でマテリアルおよびパーティクル エフェクトが更新されます。これにより、スライダのドラッグやカラー選択などの微調整を行っている場合に、フィードバックが即座に得られます。
ユニット リソース、地表、アニメーション コントローラなど、他の種類のほとんどのアセットについては、変更をディスク上のファイルに保存する必要があります。エディタはディスク上のファイルに対する変更を検出し、リソースを再コンパイルして、エンジンをリフレッシュします。
Levels: Stingray エディタを使用して、.level リソースに保存されたいずれかの情報を変更すると(シーン内でオブジェクトを移動する、新しいユニットを配置する、レベルに配置されたエンティティまたはユニットのプロパティを編集する、またはレベル フロー グラフを変更するなど)、エディタは .level アセットを上記の他の種類のアセットとまったく同じように処理します。レベル リソースは自動的に再コンパイルされ、接続されているすべてのエンジンは新しいコンテンツを使用してレベルをリフレッシュするよう要求されます。
ただし、変更内容をレベルに保存した時点で、接続されているエンジンがこの変更されたレベルをロードしている場合は、変更内容をすぐに表示できません。変更を表示するには、エンジン内でこのレベルを終了して、再開する必要があります。
リソースのソース データ ファイルはプロジェクト フォルダ内にありますが、エンジンはプロジェクトの _data フォルダからこのデータのコンパイル済みバージョンをロードします。(「コンテンツのライフサイクルについて」を参照してください。)したがって、リソースのソース データ ファイルを変更した場合は、このアセットをコンパイル済みデータのフォルダに再コンパイルしてから、ゲーム内にロードする必要があります。
上記のように、ほとんどの種類のリソースは、保存するとすぐに、Stingray エディタによって自動的に再コンパイルされます。ただし、Lua ファイルだけは例外です。プロジェクト内で 1 つまたは複数のスクリプトを変更した場合は、再コンパイルするようエディタに要求する必要があります。編集ツールの外部でリソースを編集した場合(たとえば、テキスト エディタでプロジェクトの global.physics_properties ファイル内の物理プロパティを変更した場合)は、同じ操作を実行する必要があります。
最近修正されたリソースを強制的にコンパイルするには、次の手順を実行します。
Stingray エディタでアセットを変更または再コンパイルするたびに、エンジンのすべての接続済みインスタンスで変更済みのコンテンツが自動的にリフレッシュされます。該当するのは、独自の内部エンジン、エディタの Test Level ボタンおよび Run Project ボタンを使用して起動されたすべてのエンジンです。
ただし、最新のコンパイル済みコンテンツからエンジン自体を強制的にリフレッシュしなければならない場合があります。たとえば、エンジンでプロジェクトが実行されているときに、異なる編集ツールを使用してアセットを変更する場合(Visual Studio Code 内で Lua スクリプトをデバッグしている場合など)は、現在ロードされているアセットをリフレッシュするように指示するコマンドをエンジンに送信する必要があります。
再ロードをトリガするには、エンジンに refresh コンソール コマンドを送信します。このコマンドは、Stingray エディタのステータス バー(「ステータス バーからコマンドを送信する」を参照)、または Visual Studio Code デバッグ プラグイン から送信できます。
次の点を確認します。