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

Player API

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

UdonはVRCPlayerApiを通じてプレイヤーとやり取りします。各プレイヤーはVRCPlayerApiオブジェクトを持っており、プレイヤーの参加や退出時には、それらを監視しているUdonBehaviour上でOnPlayerJoined / OnPlayerLeftイベントが発生します。

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

一般的に有用なプロパティとメソッド

IsValid

VRCPlayerApi, Boolean

Playerに対して何かを取得または設定しようとする前に、IsValidがtrueを返すかどうかを確認してください。参照を保存した後にプレイヤーが退出している場合、これはFalseを返します。グラフ上でより簡単に使用するには、あらゆるObjectに対して機能する汎用的な「IsValid」メソッドを検索してください。これを使用すると、TrueとFalseでフローを分けることができます。

OnPlayerLeftイベントがIsValidノードに接続されているUdon Graphのスクリーンショット。

EnablePickups

VRCPlayerApi, Boolean

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

get displayName

VRCPlayerApi

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

Get isLocal

in: VRCPlayerApi

out: Boolean

対象のプレイヤーがローカルプレイヤーであるかどうかを判別します。

Get isMaster

in: VRCPlayerApi

out: Boolean

指定したPlayerがインスタンスマスターかどうかを返します。

isInstanceOwner を取得

in: VRCPlayerApi

out: Boolean

指定したプレイヤーが現在のインスタンスオーナーかどうかを返します。

isVRCPlus を取得

in: VRCPlayerApi

out: Boolean

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

isSuspended を取得

in: VRCPlayerApi

out: Boolean

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

プラットフォームを問わず、いつでもデバイスがサスペンド状態になることを考慮してコードを作成してください。PC版のプレイヤーは現在サスペンド状態になることはありませんが、これを前提とした設計は避けてください。

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

GetPickupInHand

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

out: VRCPickup

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

IsOwner

in: VRCPlayerApi, GameObject

out: Boolean

プレイヤーが指定されたGameObjectのオーナーであるかどうかを返します。同期において重要です。

IsUserInVR

in: VRCPlayerApi

out: Boolean

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

PlayHapticEventInHand

VRCPlayerApi, Hand, float, float, float

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

UseAttachedStation

VRCPlayerApi

このUdonBehaviourと同じGameObject上にあるステーションにプレイヤーを座らせます。

SimulationTime

float

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

UseLegacyLocomotion

VRCPlayerApi

NOT RECOMMENDED - このプレイヤーに対してレガシーな移動方式を有効にします。これは、VRChatの非推奨となったSDK2におけるプレイヤーの移動を模倣するものです。レガシー移動を有効にすると、ユーザーがワールドから退出するまで有効なままとなります。

Language

GetCurrentLanguage

string

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

GetAvailableLanguages

string[]

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

最終更新: