VRChat 非公式日本語ドキュメント

プレイヤーの衝突(Player Collisions)

Udonには、プレイヤーとオブジェクトが衝突したことを検知する方法が3つあります。Triggers(トリガー)Physics(物理演算)、そしてParticles(パーティクル)です。

トリガー

プレイヤーが特定のエリアに出入りしたことを検知したい場合は、OnPlayerTrigger イベントを使用するのが最適です。これには以下の3種類があります。

 'Is Trigger' にチェックを入れたシンプルな Box Collider。

これらのイベントを使用するには、collider コンポーネントを持つオブジェクトを追加し、そのコライダーの「Is Trigger」ボックスを有効にしてください。トリガーコライダーを使用すると、オブジェクトやプレイヤーはその中を通り抜けることができ、コライダーを持つオブジェクトが通過した際にイベントが呼び出されます。詳細については Collision in Unity's documentation を参照してください。

danger

プレイヤーがコライダーの内外へテレポートした場合や、非常に高速で移動している場合など、これらのイベントの一部がスキップされるエッジケースがいくつか存在します。

物理演算 (Physics)

弾むボールや弾丸のように、物理演算で動かしているオブジェクトに対して使用できる一連のイベントがあります。これらのオブジェクトは IsTrigger がオフに設定された Collider を持っており、環境や他のオブジェクトと相互作用します。

これらの Collider でイベントを検知するには、以下を使用します。

OnPlayerCollision イベントは移動するオブジェクト用です

これらのイベントは、プレイヤーが静止しているオブジェクトに「歩いて接触した」場合には呼び出されません。そのケースを処理したい場合は、Trigger Collider を使用してください。

パーティクル

最後に、Particle SystemのCollisionとSend Collision Messagesが有効になっている場合、OnPlayerParticleCollisionを使用してパーティクルがプレイヤーと衝突したことを検知できます。

このパーティクルシステムはCollisionモジュールが有効で、モードが「World」および「3D」に設定されており、「Send Collision Messages」がオンになっています。

Udon example scene では、プレイヤーの衝突を検知する3つのすべてのメソッドの使用方法が紹介されています。

Udon Example Sceneでこれらのイベントがどのように使用されるかを確認してください。

最終更新: