Stingray の拡張方法

システムの概要」で紹介したように、Stingray エディタ、ランタイム エンジン、およびプロジェクト コンテンツにカスタム プラグインをフックすることができます。プラグインの機能に応じて、次に示す 3 つのコンポーネントのうちの 1 つ、2 つ、またはすべてを統合しなければならないことがあります。

Stingray SDK は、主に次に示す最初の 2 つのセクションを重点的に扱います。つまり、定義済みのプラグイン アーキテクチャを使用して編集ツールとランタイム環境を拡張することについて説明します。ただし、作成される可能性があるさまざまなものを 1 か所にまとめて配置しておくと便利です。

エディタ プラグイン

エディタ プラグインは、Stingray エディタに新機能を追加します。通常は、プロジェクトのソース フォルダを構成する未加工のコンテンツを作成し、管理するための機能です。

プラグインでエディタを拡張する方法の詳細については、「エディタを拡張する」を参照してください。

Stingray エディタ アプリに表示されるパネルおよびビューのほとんどは、自分で記述できるパネルやビューと同様に、プラグインから実際に提供されます。

エンジン プラグイン

エンジン プラグインはランタイムの表示および再生エンジンに統合されます。これは、プロジェクト データのロード方法、またはゲームのループ中にランタイムにデータを使用する方法について何らかの変更を加えられるようにするためです。

プラグインでエンジンを拡張する方法の詳細については、「エンジンを拡張する」を参照してください。

コンテンツの拡張機能

Stingray は、これまで実現することはおろか、想像することすらできなかったユニークな新しいエクスペリエンスを想像、設計、作成することを目的とする、クリエイティブなユーザ向けの一連のツールです。したがって、新しいプロジェクト コンテンツを作成するだけの機能と、ツールセットを拡張する機能の境界が非常に曖昧になることがあります。

新しいユニットを単に読み込む場合や、シェーダやレベルなどの新しいアセットをプロジェクト内で作成する場合、ほとんどのユーザはツールを「拡張」することを意識しません。製品を「使用」してコンテンツを作成することだけを意識して、ツールの機能を変更するとは考えません。でも、新しい Lua スクリプトを追加する場合はどうでしょうか。あるいは、新しいカスタム フロー ノードやシェーダ ノードを作成する場合はどうでしょうか。このようなアセットもプロジェクト コンテンツです。これらはプロジェクトのソース フォルダ内にあり、コンパイルされてレベル、ユニット、アニメーションなどと一緒にゲーム エンジンに組み込まれます。ところが、他のコンテンツを作成するためにエディタおよびエンジンを使用する新しい方法を追加することもあります。

コンテンツ プラグインは、あらゆる種類の新しいアセットを、Stingray で開いて作成したすべてのプロジェクトで使用できるようにします。これらの新しいアセットは、core Stingray リソースとまったく同じように処理されます。エディタによって「マウント」され、Asset Browser に表示され、エンジンによってコンパイルされ、ランタイムにプロジェクトで使用できるようになります。

一般に、ユーザが 1 つのプロジェクトで作業している場合は、独自のコンテンツをプラグインとして作成することに悩むことはありません。プロジェクトのソース フォルダ内にコンテンツを作成するだけです。コンテンツ プラグインが必要になるのは、複数のプロジェクト間で一連のアセットを再利用する場合、または一連のアセットで別のエディタまたはエンジン プラグインをサポートする必要がある場合のみです。

次に、Stingray の機能を拡張する際に特に役立つ可能性があるプロジェクト アセットの種類をいくつか示します。

新しいリソースをプロジェクトに公開するようにプラグインを設定する方法の詳細については、「プロジェクト コンテンツを拡張する」を参照してください。

Asset BrowserShow mapped folders を選択すると、すべてのプラグインでマウントされているすべてのアセット フォルダを表示できるようになります。

何を選択すればよいか

この質問に回答するには、Stingray エコシステム全体でプラグインが果たす役割を検討する必要があります。

次に例を示します。