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

VRC Pickup

プレイヤーがオブジェクトを手に取ったり、保持したり、使用したりできるようにします。

バージョン

Pickup Version Dropdown in Inspector

コンポーネント上で直接、使用したいVRCPickupのバージョンを選択できるようになりました。新規にコンポーネントを作成する際は、デフォルトで最新バージョンが選択されます。既存のピックアップは、手動で更新してワールドを再アップロードしない限り、以前のバージョンがそのまま使用されます。

バージョン 1.0:

VRCPickupコンポーネントの基本バージョンです。

バージョン 1.1:

Auto Holdプロパティがチェックボックスで簡略化されました。チェックを入れると、最初の「つかむ」操作でアイテムが手に固定され、2回目の「つかむ」操作(またはコントローラーに割り当てた「放す」操作)でドロップします。チェックを外すと、つかんでいる間のみ保持され、操作を離すとすぐにドロップします。

近接ルール

注意

このセクションで説明するすべてのルールは「Interactable」にも適用されます。つまり、Interactイベントを持つUdonBehaviour(インスペクターに「Proximity」スライダーが表示されるもの)にも適用されます。

「Proximity」の値は、ピックアップをつかめる距離を定義します。単位はメートル(別名「Unity units」)で、デフォルトのCubeの辺の長さが1ユニットに相当します。

Proximityの値が影響するつかみ方の仕組みは、以下の2通りです。

  • Raycast: ピックアップから離れている場合や、デスクトップモードで実行している場合、手(VR)または頭部(デスクトップ)から出る「レーザー」がピックアップオブジェクトのコライダーと交差すると、そのオブジェクトがハイライト表示されます。「Proximity(近接)」と比較するための距離計算は、VRモードとデスクトップモードで異なります。
    • VR: レーザーの起点(手持ちのコントローラー)からコライダー上の着弾点までの距離(メートル単位)
    • デスクトップ: レーザーの起点(頭部またはメインカメラの位置)から、腕を前に出せないことを補うための「extra reach」値を引いた距離。これはアバターのスケール(「腕の長さ」)も考慮した概算値です。この値は距離から差し引かれるため、本来は「Proximity」範囲外にあるオブジェクトでも、VRでその位置に立って腕を伸ばせば掴めるような対象であれば掴むことが可能になります。
  • Hover (VRのみ): 手がオブジェクトに十分に近づくと、UIレーザーの方向にあるレイがオブジェクトと交差していなくても、ピックアップがハイライト表示されます。これにより、より自然な「オブジェクトの掴み」が可能になります。リーチの距離は、手を起点とし、半径が0.4メートルにアバターのスケールを掛けた値の球体として定義されます(この値はユーザーが利用可能な「アバター・スケーリング」システムとは直接比較できない点に注意してください。ただし、そのシステムでアバターのスケールを変更すると、リーチに影響を与える場合があります)。
    • Proximityの値は、依然として手とピックアップ上のコライダー間の実際の距離と比較されます。つまり、ここで説明した「リーチ距離」は、「Hover」モードが有効になる距離の上限に過ぎません。
    • 例えば、Proximityを0に設定すると、ピックアップをハイライト表示させるには手がコライダーのに入っている必要があります(ただし、デスクトップモードでは補正のためにユーザーに「追加のリーチ」が与えられるため、この状態でも掴むことができます)。
    • 高度なテクニックとして、アバター・スケーリングシステムから提供されるデータに基づいてProximityの値を調整してください。

必要条件:

  • Rigidbody
  • Collider
Parameter説明
Momentum Transfer MethodRigidbody.AddForceAtPositionを使用して、衝突した他のオブジェクトに衝突力をどのように加えるかを定義します。
注意: この力はAllowCollisionTransferがオンになっている場合にのみ加えられます。
Disallow Theft他のユーザーが他人の手からピックアップを奪うことを許可するかどうか
Exact GunExact Gunが設定されている場合、オブジェクトが保持される位置
Exact GripExact Gripが設定されている場合、オブジェクトが保持される位置。
Allow Manipulation When Equippedコントローラーを使用している際、ピックアップを保持している間、そのピックアップを操作できるようにしますか?
Orientationオブジェクトを保持する際の向き。
Auto HoldGrab(掴む)動作が終了した後も、ピックアップをユーザーの手に保持したままにするか。
- Yes: GrabまたはDrop(離す)動作がトリガーされるまで、ピックアップを手に保持し続けます。
- No: 最初のGrab動作が完了すると、ピックアップを放します。

- Sometimes: 「Yes」と同様ですが、キーボード、マウス、ゲームパッド、Vive Wand入力を使用しているユーザーにのみ適用されます。これは古いタイプであり、ほとんどの場合使用すべきではありません。
- Auto: 「Sometimes」と同じロジックを適用しますが、AutoHoldを機能させるにはGunまたはGripの定義が必要です。これも古いタイプであり、ほとんどの場合使用すべきではありません。
Use Textユーザーがオブジェクトを装備した際に表示され、オブジェクトの「発射(fire)」を促すテキスト。
「Auto Hold」を「Yes」に設定する必要があります。
Throw Velocity Boost Min Speedオブジェクトを投げるために必要な最低移動速度。
Throw Velocity Boost Scale投げる際の速度倍率。値を大きくすると投げる速度が上がり、小さくすると投げる速度が下がります。
Pickupableこのオブジェクトを手に取れるようにしますか?
Proximityこのピックアップが掴める最大距離です。詳細については、上記のセクションを参照してください。

最終更新: