====== Collider (UnityComponent) ======
Collider(コライダー)とは当たり判定を行うのに必要なコンポーネントです。
===== バーチャルキャストにおけるコライダー =====
* 現在使用可能なのは以下のコライダーです。
* **Box**Collider (箱状)
* **Sphere**Collider (球状)
* **Capsule**Collider (カプセル状)
* **Mesh**Collider (任意のメッシュ状)
* [[vci:script:reference:eventfunction|VCIイベント関数]]のonTrigger関数を使用するのに必要です。
* [[vci:component:sdk:subitem|VCI SubItem Component (VCISDK)]]を使用するのに必要です。
* バーチャルキャストはキャラクターと床( y = 0 )にコライダーが設定されています。
--> Unityの解説一覧 (クリックで展開) #
* [[https://unity3d.com/jp/learn/tutorials/topics/physics/colliders?playlist=17120 | Collider (チュートリアル)]]
* [[https://unity3d.com/jp/learn/tutorials/topics/physics/colliders-triggers?playlist=17120 | Colliders as Triggers (チュートリアル)]]
* [[https://docs.unity3d.com/ja/current/Manual/class-BoxCollider.html |Box Collider]]
* [[https://docs.unity3d.com/ja/current/Manual/class-SphereCollider.html |Sphere Collider]]
* [[https://docs.unity3d.com/ja/current/Manual/class-CapsuleCollider.html | Capsule Collider]]
* [[https://docs.unity3d.com/ja/current/Manual/class-MeshCollider.html | MeshCollider]]
<--
==== プロパティーの説明 ====
=== 共通 ===
^ プロパティー ^ 機能 ^
| Is Trigger | 有効時、イベント処理に必要な判定として使われるようになり\\ 物理的な接触は発生しなくなります。\\ オブジェクト同士が重なって欲しい場合に有効にします。\\ **Is Triggerが有効なオブジェクトが大量に重なると、負荷が高くなるのでご注意ください。** |
| Material | [[https://docs.unity3d.com/ja/current/Manual/class-PhysicMaterial.html | Physic Material]]を割り当てる事で\\ コライダー同士が接触した際の物理挙動を決める事ができます。 |
=== SphereCollider ===
^ プロパティー ^ 機能 ^
| Center | コライダーを付与したゲームオブジェクトの原点に対する、コライダーの相対位置 |
| Radius | コライダーの半径 |
=== CapsuleCollider ===
^ プロパティー ^ 機能 ^
| Center | コライダーを付与したゲームオブジェクトの原点に対する、コライダーの相対位置 |
| Radius | コライダーの半径 |
| Height | コライダーの高さ |
| Direction | 高さ方向の軸の向き |
=== BoxCollider ===
^ プロパティー ^ 機能 ^
| Center | コライダーを付与したゲームオブジェクトの原点に対する、コライダーの相対位置 |
| Size | コライダーの大きさ (x,y,z) |
=== MeshCollider ===
いくつか条件があるので、[[vci:component:unity_meshcollider|専用ページ]]で詳しく説明しています。
===== コライダーレイヤーの指定 =====
**ColliderLayer**とは、UnityにおいてGameObjectごとに設定するコライダーの当たり判定の属性のことです。\\
ルームにおいては、キャラクターがコライダーを貫通出来ないように設定できるので、スタジオよりも幅広い当たり判定の属性が存在します。
{{:vci:component:unitycomponent:image_3_.png?400|}}
* UniVCI v0.30以上が必要です。
* ルーム向けの機能であるため、スタジオでは一部動作しません。
* コライダーが付加されているGameObjectに対してレイヤーを設定します。
==== レイヤーの違い ====
キャラクターに関して、**「Character」**と**「HumanoidParts」**のレイヤーが存在し、VCI用のコライダーレイヤーと干渉するようになっています。
^ {{:vci:component:collider_humanoidparts.png|HumanoidParts}} |各ボーンに対応するコライダー。スタジオ/ルーム共通。\\ isKinematic=offの物体を反発。装着VCIを判定。 ||
^ {{:vci:component:collider_character.png?|Character}} |床や壁などと衝突するコライダー。**ルーム**にのみ対応。\\ ローカルのキャラクター(自分自身が操作するキャラクター)のみに存在し、\\ リモートキャラクター(他人のキャラクター)には存在しない。||
^ | {{:vci:component:unitycomponent:colliders.png?150|}} ||
^ ^ {{:vci:component:collider_humanoidparts.png|HumanoidParts}} ^ {{:vci:component:collider_character.png?|Character}} ^
^Default\\ /Location| 衝突する | 衝突する |
^:::|デフォルトのコライダー。設定をしなかった場合はこのコライダーになる。\\ 動かない壁や足場に使用。手持ちVCIや装着VCIには基本的に使用しない。\\ ロケーションVCIは出力時に**Default⇒Location**レイヤーに変更される。||
^VCIAccessory| 衝突する | 衝突しない |
^:::|**HumanoidParts**は反発するが、**Character**が押しのけられることはない。\\ 装着VCIや**HumanoidParts**で弾かせたいVCI、銃弾にも使える。||
^VCIItem| 衝突しない | 衝突する |
^:::|**HumanoidParts**が反発せずに、**Character**を押しのける。 \\ **Default**に比べて**Character**を動かしやすい。\\ 動くタイプの足場や壁に使える。||
^VCIPickUp| 衝突しない | 衝突しない |
^:::|一切干渉しない。\\ 体とVCIとが一切反発しないVCI、装着VCIにも使える。||
表は、ユーザーのユエムさんの記事を参考にさせていただきました。\\
https://qiita.com/johnny-um/items/57c509bb1592c6d22f2f
**「Character」「HumanoidParts」「Location」「VCIPickUp」「VCIAccessory」「VCIItem」**は図のような当たり判定が設定されています。(バーチャルキャストv2.0.0a時点での設定)
{{:vci:component:unitycomponent:image_ph_2.png?400|}}