アイテム

アイテムとは

アイテムは空間内の3Dオブジェクトです。アイテムの位置や状態などは基本的に空間内の全員から見て同じです (「同期されている」といいます)。 アイテムに属性を付与することで、掴んで移動したり、座ったり、乗ったりすることができるようになります。トリガー・ギミックClusterScriptもアイテムを基本要素として動作します。ほとんどのインタラクションは、アイテムと他のアイテム、アイテムとプレイヤーの作用として記述されます。

アイテムの分類

アイテムには二種類あり、特徴が異なります。

  • ワールドアイテム
    • ワールドの一部としてCreator Kit内で作られた、UnityのGameObjectやprefabがアイテムとして設定されたものです。
    • ワールドアイテムは特定のワールドに紐付き、それ以外のワールドで動的生成することはできません。
    • アイテムを構成するテクスチャなどのアセットはワールドの景観や他のワールドアイテムと共通で、ワールド読み込み時に読み込まれます。
  • クラフトアイテム
    • Creator Kitやその他のツールで作られたポータブルなアイテムです。主にワールドクラフトで用いられます。
    • クラフトアイテムはより柔軟に動的生成を行うことができ、Unityを使わずにクラフトアイテムを製作することも可能です。
    • クラフトアイテムを構成するアセットはクラフトアイテム毎に完結していて、他のアイテムやワールドに対する参照を持ちません。

アイテムテンプレートとアイテムの動的生成

ワールドアイテムは基本的にはCreator Kitで静的に(Unity内でアップロード前に)設置します。 これをワールド設置アイテムと呼びます。一方で、空間インスタンス内で動的にアイテムを生成することもできます。

具体的には以下のような方法です。

このように動的に生成されたアイテムをワールド生成アイテムと呼び、生成時のコピー元になるprefabをワールドアイテムテンプレートと呼びます。

クラフトアイテムもユーザーが手でワールドクラフト内に設置することと、ClusterScriptから動的生成することができます。 しかし、ワールドアイテムと異なり、これら二つはシステム上同様に扱われます。そのため、区別せずにクラフトアイテムと呼びます。 そして、クラフトアイテムの元になるPITMデータ形式のデータはクラフトアイテムテンプレートと呼ばれます。

アイテムの設定方法

全てのアイテムには Item コンポーネントが必要です。 さらに他のコンポーネントを追加することで様々な動作を実現できます。

アイテムにより複雑な動作をさせるときも、追加のコンポーネントを使います。