装着#
「装着」とは、VCIに含まれるオブジェクトをアバターの装着品として着用することです。
装着したオブジェクトはアバターの一部としてボーンとの相対位置を保持し、アバターの動きに追従します。
オブジェクトをアバターに装着する操作には、オブジェクトを掴んでアバターのボーンに接近させる、スクリプトからExportTransform.AttachToAvatar()またはExportTransform.AttachToPlayer()を呼び出す、といった方法があります。
装着オブジェクトの定義#
オブジェクトを掴んでアバターに近づけて装着できるようにするには、 VCISubItem コンポーネントがアタッチされたGameObjectを掴める設定とし、 VCIAttachable コンポーネントをアタッチします。
注釈
ルームにおいては、ExportTransform.AttachToPlayer() を用いることで設定によらずすべての VCISubItem を装着できます。
装着状態の解除#
装着状態は次の操作で解除できます。
- 掴む(掴むことができるオブジェクトのみ) 
- スタジオまたはルームから退室する 
推奨Rigidbody設定#
装着可能なオブジェクトには、以下のRigidbody設定を推奨します。
- Use Gravityをオフ
- Is Kinematicをオン
推奨Collider設定#
装着可能なオブジェクトには、以下のCollider設定を推奨します。
- Is Triggerをオン
アタッチ判定#
オブジェクトを掴んでアバターのボーンに接近させる、またはスクリプトからExportTransform.AttachToAvatar()を呼び出すと、「アタッチ判定」による装着が試行されます。
アタッチ判定とは、ボーンの位置から予測される球またはカプセル型の空間です。アタッチ判定による装着では、「VCIAttachableの装着判定位置」と「アバターのアタッチ判定」の距離が VCIAttachable で指定された値より小さいかどうかによって装着の可不可を決定します。
下図では見やすさのために一部のみ表示しています。
 \
\
Scripting API#
装着に関するAPIは以下の通りです。
| API | 説明 | 
|---|---|
| オブジェクトをアバターに装着します。 | |
| オブジェクトをルーム内のプレイヤーを指定して装着します。 | |
| オブジェクトをアバターから外します。 | |
| オブジェクトがアバターに装着されているかどうかを返します。 | |
| オブジェクトを装着できる距離の最大値を取得します。 | |
| オブジェクトを装着できるボーンのリストを取得します。 |