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

Player API

Udonを使用して、ワールドインスタンス内のプレイヤーに関する情報を取得できます。

Udonは VRCPlayerApi を通じてプレイヤーとやり取りを行います。各プレイヤーは VRCPlayerApi オブジェクトを保持しており、プレイヤーが参加または退出すると、それらをリッスンしているすべての UdonBehaviour に対して OnPlayerJoined / OnPlayerLeft イベントが発生します。

このページでは、一般的なプレイヤーのプロパティやメソッドの使用方法に関する情報を掲載しています。VRCPlayerApi オブジェクトを使用して行えることは非常に多岐にわたるため、以下のページに情報を分類してまとめています。

一般的に便利なプロパティとメソッド

IsValid

VRCPlayerApi, Boolean

プレイヤーに対して何かを取得または設定しようとする前に、IsValid が true を返すかどうかを確認してください。プレイヤーへの参照を保存した後でそのプレイヤーが退出している場合、このメソッドは False を返します。グラフ上でより簡単に使用するには、汎用の "IsValid" メソッドを検索してください。これは任意のオブジェクトに対して機能し、True と False で処理を分岐させることができます。

An Udon Graph screenshot showing the OnPlayerLeft event connected to an IsValid node.

EnablePickups

VRCPlayerApi, Boolean

ワールド内の VRCPickup オブジェクトをプレイヤーが拾ったり使用したりする機能をオフにします。このプロパティはデフォルトで on になっているため、無効にしたい場合のみこのメソッドを使用してください。

get displayName

VRCPlayerApi

プレイヤーの表示名を取得します(VRChatへのログインに使用され、公開されない「ユーザー名」とは異なる場合があります)。

Get isLocal

in: VRCPlayerApi

out: Boolean

指定されたプレイヤーがローカルプレイヤーかどうかを返します。

Get isMaster

in: VRCPlayerApi

out: Boolean

指定されたプレイヤーが インスタンスマスター かどうかを返します。

Get isInstanceOwner

in: VRCPlayerApi

out: Boolean

指定されたプレイヤーが現在のインスタンス所有者かどうかを返します。

Get isVRCPlus

in: VRCPlayerApi

out: Boolean

指定されたプレイヤーが有効な VRC+ サブスクリプションを持っているかどうかを返します。

Get isSuspended

in: VRCPlayerApi

out: Boolean

プレイヤーのデバイスがサスペンド(一時停止)状態かどうかを返します。デバイスがスリープモードに入るか、別のアプリに切り替わるとサスペンド状態になります。サスペンド中、デバイスは Udon コードを実行せず、プレイヤーが VRChat を再開するまでネットワークイベントに応答しません。

プラットフォームに関係なく、いつでもデバイスがサスペンド状態になる可能性があることをコードで考慮してください。現在のところ PC プレイヤーがサスペンド状態になることはありませんが、これを前提としないでください。

isSuspended はローカルプレイヤーに対して常に false であることに注意してください。ローカルプレイヤーがサスペンドしている間、Udon は実行できないためです。

GetPickupInHand

in: VRCPlayerApi, Hand (none, left, right)

out: VRCPickup

プレイヤーが指定した手に持っているピックアップを取得します。ローカルプレイヤーに対してのみ機能します。VRCPickup が見つからない場合は null を返します。

IsOwner

in: VRCPlayerApi, GameObject

out: Boolean

プレイヤーが特定の GameObject のオーナーであるかどうかを返します。これは同期(Sync)において重要です。

IsUserInVR

in: VRCPlayerApi

out: Boolean

プレイヤーが VR ヘッドセットを使用しているかどうかを返します。

PlayHapticEventInHand

VRCPlayerApi, Hand, float, float, float

プレイヤーがハプティックコントローラーを持っている場合、それを振動させます。float 入力は 0 ~ 1 の範囲で指定します。duration(持続時間)は振動する時間、amplitude(振幅)は振動の強さ、frequency(周波数)は振動の速度です。この感覚はコントローラーによって大きく異なる場合があります。

UseAttachedStation

VRCPlayerApi

この UdonBehaviour と同じ GameObject にある Station にプレイヤーを乗せます。

SimulationTime

float

プレイヤーの シミュレーション時間 です。

UseLegacyLocomotion

VRCPlayerApi

非推奨 - このプレイヤーに対してレガシーロコモーションをオンにします。これは VRChat の旧 SDK2 でのプレイヤーの移動方法を模倣するものです。レガシーロコモーションを有効にすると、ユーザーがワールドから退出するまで有効なままとなります。

言語

GetCurrentLanguage

string

ローカルユーザーが選択している言語を取得します。値は RFC 5646 形式でフォーマットされています。(enjaeszh-CN など)

GetAvailableLanguages

string[]

VRChat の設定でプレイヤーが選択可能なすべての言語を取得します。値は RFC 5646 形式でフォーマットされています。(enjaeszh-CN など)

最終更新: