VRC Ui Shape
VRC Ui Shape コンポーネントを使用すると、プレイヤーが操作可能な Canvas コンポーネントを作成できます。
- プレイヤーは VRChat のメニューと同様に、UI をポイント、クリック、またはスクロールして操作できます。
- プレイヤーは離れた場所からでも UI を操作可能です。これにより、Interact イベントを使用するよりも使いやすくなることがよくあります。

VRC Ui Shape には、設定可能なパラメーターが1つだけあります。
| パラメーター | 説明 |
|---|---|
| Allow Focus View | スマートフォンやタブレットでプレイしているユーザーが、この Canvas に対して Focus View を使用できるようにするかどうかを設定します。 |
Canvas のセットアップ方法
ヒエラルキーウィンドウを右クリックして "UI" -> "TextMeshPro (VRC)" を選択すると、SDK が自動的に Canvas をセットアップします。SDK は Canvas を自動的に構成し、必要な他のコンポーネントを追加します。

手動で Canvas を構成したい場合は、以下の手順に従ってください。そうしないと、VRChat で Canvas が正しく動作しない可能性があります。
- Canvas コンポーネントを GameObject に追加するか、新しい GameObject を作成します。
- Unity は他の便利なコンポーネントを Canvas に自動的に追加します。
- Canvas と同じ GameObject に "VRC_UIShape" コンポーネントを追加します。
- GameObject のレイヤーを "UI" から "Default" または別のレイヤーに変更します。
- "UI" レイヤーのままだと、VRChat のメニューを開いている時以外は、ユーザーが UI を操作できなくなります。
- GameObject の
x、y、zのスケールを縮小します。- デフォルトのスケールは 1 ですが、これでは大きすぎます(1ピクセル = 1メートル)。
- スケールを
0.01程度まで小さくしてください(1ピクセル = 0.01メートル)。
- Canvas の "Render Mode" プロパティを "Screen Space" から "World Space" に変更します。
- "World Space" の Canvas は、画面に直接表示されるのではなく、ワールド内に表示されるようになります。
- UI 要素を Canvas に追加します。
- 例えば、テキスト、ボタン、トグル、スクロールビュー、入力フィールドなどを追加できます。
- 各 UI 要素の "Navigation" プロパティを "None" に設定してください。これにより、ワールド内での移動中にプレイヤーが誤って UI を操作してしまうことを防げます。
- より高品質なテキストを表示するために、Unity 標準のコンポーネントではなく TextMeshPro を使用してください。
これらの手順に従えば、プレイヤーは UI をクリックして操作できるようになります。
よくある問題
Canvasが正しく設定されていない場合、プレイヤーが操作できないことがあります。一般的な問題を解決するための手順は以下の通りです。
VRChatのポインターが表示されない場合:
- Canvasには必ず
VRC_UIShapeコンポーネントが必要です。 他の子オブジェクトに配置していないことを確認してください。 - CanvasのレイヤーにUIを指定してはいけません。 Canvasとそのすべての子オブジェクトをDefaultレイヤーに設定してください。
VRC_UIShapeが付いているオブジェクトにはBox Colliderが必要です。 もし存在しない場合、ワールドアップロード時に自動的に追加されます。ただし、自分でColliderを追加した場合は、サイズが適切であることを確認する必要があります。- Canvasを遮っている他のColliderがないことを確認してください。
ポインターは表示されるがUIが反応しない場合:
- シーン内にEventSystemが必要です。 これはCanvasを作成した際に自動的に追加されるため、削除しないでください。
- 操作可能な要素が、目に見えない要素で隠されていないか確認してください。 テキストボックスがボタンに重なって隠している場合によく起こります。解決策として、ボタンを前面に配置する(ヒエラルキーで下の方に移動させる)、テキストのサイズを調整してボタンを覆わないようにする、あるいはテキストの
raycast targetをfalseに設定する方法があります。 - 操作しようとしているUIに、
Raycast Targetが有効なImageが含まれているか確認してください。 ヒエラルキーの右クリックメニューからUI要素を作成した場合、これは自動生成されます。 - Canvasに
Graphic Raycasterコンポーネントがあるか確認してください。 このコンポーネントは、GameObjectにCanvasコンポーネントを追加すると自動的に追加されます。 - 正しい向きからCanvasを見ているか確認してください。 CanvasのZ方向(前方)の軸は、自分とは反対の方向を向いている必要があります。
UIは反応するが期待通りに動作しない場合:
- セキュリティ上の理由により、一部のUIイベントはVRChatでは削除されています。使用しようとしているイベントがこちらのリストに含まれているか確認してください。
SendCustomEventを使用している場合は、UIボタンとUdonBehaviourのevent customノードの両方でイベント名が完全に一致していることを確認してください。- UdonSharpの挙動に対して
SendCustomEventを使用している場合、イベントはpublicに設定されている必要があります。privateに設定されていると動作しません。 - UdonBehaviourに問題がある場合、処理が停止して何も実行されなくなることがあります。詳細については、Udonプロジェクトのデバッグ方法を参照してください。
移動、キー入力、ジョイスティック操作時にUIが動いてしまう場合:
- すべてのUI要素の
NavigationをNoneに設定してください。 - UIにスクロールバーがある場合は、
Scroll Sensitivityを0に設定してください。
TextFieldでVRChatのキーボードを表示させたくない場合:
VRCInputFieldKeyboardOverrideコンポーネントを追加することで、VRChatのキーボードが表示されるのを防ぐことができます。
Focus view
VRChatの「Focus View」機能を使用すると、ユーザーはスマートフォンやタブレット上でワールドのUIを拡大、パン、ズームできるようになります。これにより、画面上の小さなテキストの読み取りや操作が容易になります。
Focus Viewを利用可能にするには、Canvasが以下の条件を満たしている必要があります。
- Canvasが正しく設定されており、
VRC_UIShapeコンポーネントがアタッチされていること。 VRC_UIShapeコンポーネントの「Allow Focus View」パラメータが有効になっていること。- VRChat.comのワールド設定でFocus Viewが無効になっていないこと。
加えて、ワールド内のユーザーは以下の条件を満たしている必要があります。
- スマートフォンまたはタブレットでVRChatをプレイしていること。
- タッチスクリーンのみを唯一の入力デバイスとして使用していること。
- VRChatの設定でFocus Viewを無効にしていないこと。
- Canvasから3〜6メートル以内(Canvasのサイズによって異なります)にいること。
- Canvasから0.6〜2メートル以上(Canvasのサイズによって異なります)離れていること。
ユーザーがFocus Viewを使用している間:
- ユーザーのネームプレートに他のプレイヤーからも見えるFocus Viewアイコンが表示されます。
- ユーザーは手動で閉じるまでFocus View状態を維持します。
最終更新: