Stingray での作業中は、ユニットおよびエンティティという 2 つの用語が使用されます。ゲーム エンジンの作業を行ったことがなければ、これらの用語に馴染みがないかもしれません。
ユニットの広義の定義は、「特定のレベルに分類されるもの」です。
キャラクタやシーン オブジェクトなどの 3D アセットを Stingray プロジェクトに読み込むと、ユニット リソースが作成されます。 このリソースには、特定のゲーム レベルを実現するために必要なあらゆるものの参照が含まれています。たとえば、3D メッシュ、メッシュのサーフェスのシェーディングに使用されるマテリアル、ユニット フロー グラフ(存在する場合)、および物理などの各種設定などです。このユニット リソースは、オブジェクトの抽象的なテンプレートのように機能します。
Asset Browser でユニット リソースをダブルクリックすると、Unit Editor 内でそのユニット リソースを開くことができます。このツールは、ユニットの既定のプロパティおよびユニット フロー グラフを設定するのに役立ちます。
レベルにユニットを追加するか、スポーンすると、このレベル内にこのユニット リソースのインスタンスが作成されます。このインスタンスは、ユニット リソースのすべての設定を継承する独立したコピーです。ただし、同じユニットの他のインスタンスから独立しているため、多くのプロパティを変更しても、他のインスタンスに影響は及びません(ただし、すべてのプロパティを変更した場合は除きます)。たとえば、各ユニット インスタンスに同じユニットの他のすべてのコピーと異なる移動、回転、スケールを設定したり、各ユニットに独自のマテリアル セットを割り当てたりできます。
ユニットは、ゲーム内の最も可視性の高い物理オブジェクトを表すために使用されます。
エンティティは、コンポーネントというモジュール部分が保持されるコンテナです。
さまざまな種類のコンポーネントが、それぞれ異なる機能を専門に実行します。パラメータ設定などのデータを保持するコンポーネント、3D 空間におけるエンティティの移動、回転、スケールの値を指定するコンポーネント、3D メッシュやボーン階層などの特定のデータ構造またはリソースを処理するコンポーネント、物理世界でエンティティに寸法を設定するコンポーネントなどがあります。
エンティティベースのワークフローでエンティティを作成するには、必要な外観、動作、または機能をエンティティに設定するさまざまなコンポーネントを割り当てます。希望どおりにエンティティが設定されたら、.entity アセットとして保存し、テンプレートとして機能させることができます。これらのエンティティ アセットを、さらに専門的な処理を行う他のエンティティおよびエンティティ アセットの基盤として使用することができます。
このワークフローをサポートするツールは、現在のリリースの Stingray に導入されたばかりです。エンティティの用途はただ 1 つ、シェーディング環境です。シェーディング環境エンティティは、それぞれ異なるレンダリング エフェクトをコントロールするパラメータを含む、複数のコンポーネントで構成されています。詳細については、「シェーディング環境とポスト エフェクト」を参照してください。