VRC Pickup
オブジェクトをプレイヤーが拾ったり、持ったり、使用したりできるようにします。
バージョン

コンポーネント上で直接、使用したい VRCPickup のバージョンを選択できるようになりました。新しいコンポーネントを作成する際は、デフォルトで最新バージョンが選択されます。既存のピックアップは、更新してワールドを再アップロードしない限り、以前のバージョンが引き続き使用されます。
Version 1.0:
VRCPickup コンポーネントのベースバージョンです。
Version 1.1:
Auto Hold プロパティがチェックボックス形式に簡略化されました。チェックを入れると、プレイヤーが最初に「掴む」動作をした際にアイテムが手に固定され、もう一度「掴む」(またはコントローラーに割り当てた「離す」動作をする)ことでドロップします。チェックを外すと、掴んでいた手を離した瞬間にアイテムがドロップされます。
近接ルール
note
このセクションで説明するすべてのルールは「インタラクタブル(Interactables)」、つまり Interact イベントを持つ UdonBehaviour にも適用されます(これらにもインスペクターに「Proximity」スライダーが表示されます)。
「Proximity」の値は、ピックアップをどれくらい離れた場所から掴めるかを定義します。単位はメートル(Unityユニット)で、デフォルトのCubeの1辺の長さが1ユニットに相当します。
Proximityの値が関係する掴み方には、以下の2つのメカニズムがあります。
- Raycast(レイキャスト): ピックアップから離れている場合、またはデスクトップモードで実行している場合、手(VR)または頭(デスクトップ)から出る「レーザー」がピックアップオブジェクトのコライダーと交差すると、そのオブジェクトがハイライトされます。Proximityと比較するための距離計算は、VRモードとデスクトップモードで異なります。
- VR: レーザーの起点(手元のコントローラー)からコライダー上の衝突地点までの距離(メートル)。
- デスクトップ: レーザーの起点(頭またはメインカメラの位置)までの距離から、手を前に出せないことを補うための「追加のリーチ」分を差し引いたもの。これは、アバターのスケール(「腕の長さ」)を考慮した概算値です。距離から差し引かれるため、理論上は「Proximity」の範囲外にあるオブジェクトでも、VRでその位置に立って腕を伸ばせば掴めるようなオブジェクトであれば掴めるようになります。
- Hover(VRのみ): 手がオブジェクトに十分に近づいている場合、UIレーザーの方向にあるレイがオブジェクトと交差していなくても、ピックアップがハイライトされます。これにより、より自然なオブジェクトの「掴み」が可能になります。リーチの距離は、手を起点として半径0.4メートル(アバターのスケール倍)の球体となります(この値はユーザーが利用できる「アバターのスケーリング」システムと直接比較できるものではありませんが、その方法でアバターのスケールを変更するとリーチに影響する場合があります)。
- 「Proximity」の値は、手とピックアップのコライダー間の純粋な距離と比較されます。つまり、上記で説明した「リーチの距離」は、「Hover」モードが有効になる距離の上限に過ぎません。
- たとえば、Proximityを0に設定すると、ピックアップをハイライトさせるには手をコライダーの内部に入れる必要があります(ただし、デスクトップユーザー向けの「追加のリーチ」補正があるため、デスクトップモードでは掴むことができます)。
- 上級者向けのテクニックとして、アバタースケーリングシステム経由で提供されるデータに基づいてProximityの値を調整するとよいでしょう。
必須コンポーネント:
- Rigidbody
- Collider
| パラメータ | 説明 |
|---|---|
| Momentum Transfer Method | Rigidbody.AddForceAtPosition を使用して、衝突した別のオブジェクトに衝突力をどのように加えるかを定義します。 注意: 'AllowCollisionTransfer' がオンになっている場合のみ、力が加えられます。 |
| Disallow Theft | 他のユーザーが、他人が掴んでいるピックアップアイテムを奪うことを許可するかどうか。 |
| Exact Gun | この設定にすると、オブジェクトが Exact Gun の位置で保持されます。 |
| Exact Grip | この設定にすると、オブジェクトが Exact Grip の位置で保持されます。 |
| Allow Manipulation When Equipped | コントローラーを使用している際、ピックアップアイテムを保持したまま操作できるようにするかどうか。 |
| Orientation | オブジェクトを保持する向き。 |
| Auto Hold | Grab アクション終了後、ユーザーの手の中にピックアップアイテムを残しておくかどうか。 - Yes: Grab または Drop アクションがトリガーされるまで、手の中に残ります。 - No: 初回の Grab アクションが完了するとすぐに手放されます。 - Sometimes: 上記の "Yes" と同様ですが、キーボード、マウス、ゲームパッド、Vive Wand 入力を使用しているユーザーにのみ適用されます。これは古いタイプであり、ほとんどの場合使用すべきではありません。 - Auto: "Sometimes" と同じロジックが適用されますが、AutoHold を機能させるには Gun または Grip の設定が必須となります。これは古いタイプであり、ほとんどの場合使用すべきではありません。 |
| Use Text | オブジェクトを装備した際に表示される、オブジェクトを「発射」するよう促すテキスト。 "Auto Hold" が "Yes" に設定されている必要があります。 |
| Throw Velocity Boost Min Speed | オブジェクトを投げるために必要な最低移動速度。 |
| Throw Velocity Boost Scale | 投げる動作の倍率。値を大きくすると投げた際の速度が速くなり、小さくすると遅くなります。 |
| Pickupable | このピックアップアイテムを拾うことができるかどうか。 |
| Proximity | このピックアップアイテムを拾うことができる最大距離。詳細は上記のセクションを参照してください。 |
最終更新: