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

VRC Ui Shape

VRC Ui Shapeコンポーネントを使用すると、プレイヤーがインタラクション可能なCanvasコンポーネントを作成できます。

  • プレイヤーはVRChatのメニューと同じように、UIをポイントしたり、クリックしたり、スクロールしたりして操作できます。
  • プレイヤーは離れた場所からでもUIを操作できます。これは多くの場合、Interactイベントよりも使いやすい操作方法です。

Two examples UIs: A "Toggle Mirror" setting with a checkbox, and a page indicator with a "Previous" and "Next" button.

VRC Ui Shapeには、設定可能なパラメータが1つだけあります。

Parameter説明
Allow Focus Viewスマートフォンやタブレットでプレイしているユーザーが、このCanvasで Focus View を使用できるようにするかどうかを設定します。

Canvasのセットアップ方法

ヒエラルキーウィンドウを右クリックして「UI」->「TextMeshPro (VRC)」をクリックすると、SDKが自動的にCanvasをセットアップします。SDKはCanvasを自動的に構成し、必要な他のコンポーネントを追加します。

UIの例:チェックボックス付きの「ミラー切り替え」設定と、「戻る」「次へ」ボタン付きのページインジケーター

Canvasを手動で構成する場合は、以下の手順に従ってください。そうしないと、VRChatでCanvasが正常に動作しない可能性があります。

  1. GameObjectにCanvasコンポーネントを追加するか、新しいGameObjectを作成します。
    • Unityは、Canvasに役立つその他のコンポーネントを自動的に追加します。
  2. Canvasと同じGameObjectに「VRC_UIShape」コンポーネントを追加します。
  3. GameObjectのレイヤーを「UI」から「Default」または別のレイヤーに変更してください。
    • UIレイヤーのままだと、VRChatのメニューを開いている時以外はユーザーがUIを操作できなくなります。
  4. GameObjectの xyz のスケールを縮小してください。
    • デフォルトのスケールは1ですが、これでは大きすぎます。(1ピクセル = 1メートル)
    • スケールを 0.01 程度に小さくしてください。(1ピクセル = 0.01メートル)
  5. Canvasの「Render Mode」プロパティを「Screen Space」から「World Space」に変更してください。
    • World SpaceのCanvasは、画面に直接表示されるのではなく、ワールド内に表示されます。
  6. CanvasにUI要素を追加します。
    • 例えば、テキスト、ボタン、トグル、スクロールビュー、入力フィールドなどを追加できます。
    • UI要素の「Navigation」プロパティを「None」に設定してください。これにより、プレイヤーがワールド内を移動している最中に誤ってUIを操作してしまうことを防げます。
    • より高品質なテキストを表示するために、Unity標準のコンポーネントではなくTextMeshProを使用してください。

これらの手順に従うと、プレイヤーはUIをクリックして操作できるようになります。

よくある問題

Canvasが正しく設定されていないと、プレイヤーが操作できない場合があります。よくある問題を解決する方法は以下の通りです:

VRChatのポインターが表示されないCanvasがある場合:

  • Canvasには VRC_UIShape コンポーネントが必要です。 他の子オブジェクトに配置していないか確認してください。
  • CanvasのレイヤーをUIにすることはできません。Canvasとそのすべての子オブジェクトをDefaultに設定すれば動作します。
  • VRC_UIShapeを持つオブジェクトにはBox Colliderが必要です。コライダーがない場合、ワールドのアップロード後に自動的に追加されます。ただし、自分でコライダーを追加した場合は、それが正しいサイズであることを確認してください。
  • Canvasを遮る他のコライダーがないことを確認してください。

ポインターは表示されるがUIが反応しない場合:

  • The sceneにはEventSystemが必要です。これはCanvasを作成した際に自動的に追加されるため、削除しないでください。
  • 操作可能な要素が不可視の要素によって覆われていないことを確認してください。これは、テキストボックスがボタンと重なり、ボタンを覆ってしまう際によく起こります。解決策として、ボタンを最前面(ヒエラルキーの下位)に配置し直す、テキストのサイズを変更してボタンを覆わないようにする、あるいはテキストのraycast targetfalseに設定するなどの方法があります。
  • 操作しようとしているUIのRaycast Targetが有効な画像コンポーネントを持っていることを確認してください。 これは、ヒエラルキーの右クリックメニューからUI要素を作成した際に自動的に生成されます。
  • CanvasにGraphic Raycasterコンポーネントがあることを確認してください。 このコンポーネントは、Canvasコンポーネントを追加するとGameObjectに自動的に追加されます。
  • **Canvasを正しい方向から見ていることを確認してください。CanvasのZ軸(前方)は、あなたから遠ざかる方向を向いている必要があります。

UIが反応するものの、期待した動作をしない場合:

  • セキュリティ上の理由により、一部のUIイベントはVRChatでは削除されます。使用しようとしているイベントがこちらのリストに含まれているか確認してください。
  • SendCustomEventを使用している場合、UIボタンとUdonBehaviourのevent customノードの両方で、イベント名が完全に一致していることを確認してください。
  • UdonSharpのビヘイビアに対してSendCustomEventを使用する場合、イベントはpublicに設定されている必要があります。privateに設定されていると動作しません。
  • UdonBehaviourに問題があると、動作が停止し、何もできなくなることがあります。詳細については、Udonプロジェクトのデバッグ方法を参照してください。

移動やキー入力、ジョイスティック操作時にUIが動いてしまう場合は、以下を確認してください:

  • すべてのUI要素のNavigationNoneに設定します。
  • UIにスクロールバーがある場合は、Scroll Sensitivity0に設定します。

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を無効にしていないこと。
  • ユーザーがキャンバスから3〜6メートル以内(キャンバスのサイズに依存)にいること。
  • ユーザーがキャンバスから0.6〜2メートル離れていること(キャンバスのサイズに依存)。

ユーザーがFocus Viewを使用している間:

  • 他のプレイヤーから見えるように、ユーザーのネームプレートにFocus Viewアイコンが表示されます。
  • ユーザーは手動で閉じるまでFocus View状態を維持します。

最終更新: