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

Special Nodes

"Special" カテゴリには、カスタム変数、カスタムイベント、フロー制御、および他の UdonBehaviour と通信するためのノードが含まれています。

Block

フローを複数のセクションに分割します。1 つのフロー入力と複数のフロー出力を持ちます。右側のすべてのフロー出力スロットを上から順に実行します。

Branch

Inputs: Bool - System.Boolean 条件評価に基づいて実行を分岐します。Bool が True の場合、True のフローパスが実行されます。Bool が False の場合、False のフローパスが実行されます。

Comment

ユーザーがコメント文字列を入力するためのスペースを提供します。この文字列はコンパイル時には含まれません。

Const Null

null チェック用の「null」値を提供します。

Const This

UdonBehavior がコンポーネントとしてアタッチされている GameObject への参照を提供します。

Event Custom

Inputs: name - System.String UdonBehaviour nodes から実行可能なカスタムイベントです。 グラフ上で名前を入力して、カスタムイベントに名前を付ける必要があります。イベント名はプログラムの実行中に変更することはできません。

For

Inputs: start, end, step - System.Int32 Outputs: index - System.Int32 カウンターを使用してフローを実行します。カウンターは start の値で初期化されます。Body フローが実行された後、カウンターが step の値だけ増加します。これは、カウンターの値が end 以上になるまで続きます。条件を満たすと、フローは Exit に沿って継続されます。

Get Variable

Inputs: name - System.String Outputs: System.Object name という名前の Udon 変数を取得し、出力として提供します。

Set Variable

Inputs: name - System.String value - System.Object sendChange - Boolean フローが実行されたとき、name という名前の Udon 変数を value に設定します。sendChange がチェックされている場合、その変数に対して OnVariableChanged イベントも発生させます。

Get Program Variable

Inputs: instance - UdonBehaviour symbolName - string 他の UdonBehaviour instance から Udon 変数 symbolName の値を取得します。ターゲットの UdonBehaviour がパブリック変数であり、Inspector で配線されている場合に最も効果的です。これにより、ドロップダウンからターゲット変数名を選択できます。instance に UdonBehaviour が接続されていない場合、現在の UdonBehaviour の変数名が使用されます。もし変数名がわかっており、直接指定したい場合は、String const ノードを使用して手動で入力してください。

Set Program Variable

Inputs: instance - UdonBehaviour symbolName - string value - Object 他の UdonBehaviour instance の Udon 変数 symbolNamevalue に設定します。ターゲットの UdonBehaviour がパブリック変数であり、Inspector で配線されている場合に最も効果的です。これにより、ドロップダウンからターゲット変数名を選択できます。instance に UdonBehaviour が接続されていない場合、現在の UdonBehaviour の変数名が使用されます。もし変数名がわかっており、直接指定したい場合は、String const ノードを使用して手動で入力してください。このノードは、ターゲット変数に対して OnVariableChanged イベントも発生させます。

On Variable Changed

Outputs: newValue oldValue ターゲット変数に対して SetProgramVariable が呼び出されたとき、または sendChange がチェックされた状態で Set Variable が呼び出されたときに発生します。同期された変数に対しても機能します!

While

Inputs: Bool - System.Boolean

Bool が true である間、Body のフローを実行します。Bool が false の場合は、Exit フローを実行します。

UdonBehaviour ノード

UdonBehaviour ノードを使用すると、ローカル、遅延実行、またはネットワーク経由のいずれかの方法で、プログラムが他の UdonBehaviour とやり取りできるようになります。

UdonSharp

以下のノードは public イベントに対してのみ機能します。Udon Graph を使用している場合、カスタムイベントは常に public になります。UdonSharp を使用している場合は、private イベントではなく public イベントを必ず使用してください!

SendCustomEvent

Inputs: instance - UdonBehaviour, eventName - String

ターゲットの UdonBehaviour 上で 'eventName' イベントを実行します。instance が空欄の場合、自分自身のイベントを指します。

SendCustomEventDelayedFrames

Inputs: instance - UdonBehaviour, eventName - String, delayFrames - int, eventTiming - EventTiming

delayFrames 待機した後、ターゲットの UdonBehaviour 上で eventName イベントを実行します。選択された eventTiming に応じて、UpdateLateUpdateFixedUpdate、または PostLateUpdate のいずれかのタイミングでイベントが実行されます。最低でも 1 フレームの遅延が発生します。

タイミングの問題について

Unity のフレームカウントは Update イベントに基づいている点に注意してください。StartInput イベント など、Update イベントの前に SendCustomEventDelayedFrames を呼び出した場合、遅延が想定よりも 1 フレーム短くなる可能性があります。

SendCustomEventDelayedSeconds

Inputs: instance - UdonBehaviour, eventName - String, delaySeconds - float, eventTiming - EventTiming

delaySeconds 待機した後、ターゲットの UdonBehaviour 上で 'eventName' イベントを実行します。選択された eventTiming に応じて、UpdateLateUpdateFixedUpdate、または PostLateUpdate のいずれかのタイミングでイベントが実行されます。

delaySeconds が 0 の場合、イベントは同一フレーム内 または 次のフレームで実行されます(上記の SendCustomEventDelayedFrames を参照してください)。

SendCustomNetworkEvent

Inputs: instance - UdonBehaviour, target - NetworkEventTarget, eventName - String

target に従って、リモートプレイヤーに対してターゲットの UdonBehaviour 上の eventName イベントを実行します。パラメータを含めるためのオーバーロードも用意されています。

詳細については、ネットワークイベントのページを確認してください。

最終更新: