Player API
Udonを使用して、ワールドインスタンス内のプレイヤーに関する情報を取得できます。
Udonは VRCPlayerApi を通じてプレイヤーとやり取りを行います。各プレイヤーは VRCPlayerApi オブジェクトを保持しており、プレイヤーが参加または退出すると、それらをリッスンしているすべての UdonBehaviour に対して OnPlayerJoined / OnPlayerLeft イベントが発生します。
このページでは、一般的なプレイヤーのプロパティやメソッドの使用方法に関する情報を掲載しています。VRCPlayerApi オブジェクトを使用して行えることは非常に多岐にわたるため、以下のページに情報を分類してまとめています。
一般的に便利なプロパティとメソッド
IsValid
VRCPlayerApi, Boolean
プレイヤーに対して何かを取得または設定しようとする前に、IsValid が true を返すかどうかを確認してください。プレイヤーへの参照を保存した後でそのプレイヤーが退出している場合、このメソッドは False を返します。グラフ上でより簡単に使用するには、汎用の "IsValid" メソッドを検索してください。これは任意のオブジェクトに対して機能し、True と False で処理を分岐させることができます。

public override void OnPlayerLeft(VRCPlayerApi player)
{
if (Utilities.IsValid(player))
{
// Player is valid
}
else
{
// Player is not valid
}
}
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 形式でフォーマットされています。(en、ja、es、zh-CN など)
GetAvailableLanguages
string[]
VRChat の設定でプレイヤーが選択可能なすべての言語を取得します。値は RFC 5646 形式でフォーマットされています。(en、ja、es、zh-CN など)
最終更新: