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

Udon Node Graph

Udon Node Graphは、Udonプログラムを作成するための標準的なインターフェースです。このセクションでは、その使用方法について解説します。すぐに具体的な例を確認したい場合は、Udon Example Sceneを参照してください。

インターフェース

Udon Graphウィンドウは、VRChatSDK > Udon Graphからメニュー項目を選択するか、UdonBehaviourコンポーネントにあるOpen Udon Graphボタンをクリックすることで開くことができます。

The Udon Window

メニューコマンドからウィンドウを開くと、変更履歴やいくつかの設定が表示されるウェルカム画面が開きます。

複数のグラフを同時に開くことができ、グラフウィンドウ上部のタブを使って切り替えることが可能です。

タブの隅にあるXをクリックすると、タブを閉じることができます。グラフのタブは「本物の」タブではなく、選択するたびに各タブを読み込み直す仕組みになっています。そのため、タブの切り替えにはグラフを開くのと同じ程度の時間がかかります。

フロー

グラフのフローは、どのノードが実行されるか、そしてどのような順序で実行されるかを定義します。

上の画像にある三角形が Flow ポートであり、これらは接続されている線(ヌードル)をたどって左から右へ順番に実行されます。Udonグラフで何が起こっているかを理解し、独自のグラフを作成するには、フローをたどることが重要です。

上部バーにある「Highlight flow」トグルを有効にすると、フローのエッジで接続されているノードが強調表示され、プログラムが特定のノードにどのように到達するかを素早く確認できます。

ノードにフローの接続がない場合、何も起こりません。

上のグラフの動作:

  1. ワールドが読み込まれると Start イベントがトリガーされます。
  2. 次に Branch がトリガーされます。Branch はチェックボックスの値をチェックし、True または False のいずれかのパスをトリガーします。
  3. 値が True の場合、上のノードがトリガーされ、「Hello」という名前の Custom Event が送信されます。
  4. そうでない場合は、「Goodbye」という名前の Custom Event が送信されます。

Sending a Custom Event の意味がまだわからなくても問題ありません。グラフのフローを読み解くことは、グラフが何をしているかを理解するための第一歩です。

ノードの作成

ノードは、実行可能なメソッドを表すボックスです。グラフの構築とは、ノードを作成してそれらを接続し、プログラムを作成する作業のことです。

ノードを作成するには、いくつかの方法があります。

ホットキー

以下のいずれかのキーを押しながらグラフ上の任意の場所をクリックすると、対応するノードが作成されます。

その他のホットキー:

これらの機能の多くは、各ノードの右クリックメニューからも利用可能です。 Making for loops the easy way!

GameObjectとComponentのドラッグ&ドロップ

GameObjectやComponentにインタラクティブな機能を追加したい場合は、Hierarchyウィンドウからグラフへ直接ドラッグ&ドロップできます。例えば、Lightコンポーネントのタイトル部分をドラッグしてグラフ上にドロップします。 Easy way to get a reference to a Light component so you can play with it. このようにドラッグ&ドロップでノードを作成すると、そのGameObjectやComponentに関連付けられた変数が生成されます。Variablesウィンドウに新しい変数が追加され、コンポーネントを取得するように自動設定された「Get Variable」ノードがグラフ上に配置されます。

変数のドラッグ&ドロップ

Graph SidebarのVariablesペインにある + ボタンを押すことで、任意の型の変数を作成できます。作成した変数は、名前をグラフ上にドラッグ&ドロップして「Get Variable」ノードを作成したり、 Ctrl キーを押しながらドラッグして「Set Variable」ノードを作成したり、 Alt キーを押しながらドラッグして「On Variable Changed」ノードを作成したりできます。

ノードの検索

スペースキー を押すとクイック検索が開きます。操作したいクラス名の最初の数文字を入力してください。

この検索方法は、Unityの基本的なクラスやオブジェクト型を把握している場合に最も効率的です。その他の検索方法については、Searching for nodesを参照してください。

グラフのコンパイル

グラフはバックグラウンドで定期的に自動コンパイルされます。コンパイルが行われると、グラフの右上にフラッシュが表示されます。正常に完了した場合は Status ボックスが緑色に、問題がある場合は赤色に変わります。いずれの場合も、Status ボックスをクリックすることで、生成された Assembly Code を確認したり、問題が発生した場合にはエラー内容を確認したりできます。

Status ボックスには「OK」と表示されており、このアセンブリの最上部で宣言されている Variables を確認できます。

グラフの実行

シーン内のグラフをVRChatへアップロードする前に実行する方法は2つあります。

エディタ内での実行

Unityの再生ボタンを使用して、エディタ内で直接シーンを実行し、いくつかのグラフをテストできます。これは単純なメソッドやロジックには有効ですが、以下の項目は期待通りに動作しません。

Build & Testによる実行

VRChat SDKウィンドウを使用してローカルテストを行います。これにはコンテンツをオフラインワールドとしてバンドルし、実際のVRChatクライアントを起動するため多少時間がかかりますが、オブジェクトや VRCPlayerAPI のリクエストとインタラクション可能なアバターを使用できます。 同期機能をテストする最も簡単な方法は、2つのローカルクライアントを起動することです。

Synced variablesや NetworkEvent をテストするには、2つのクライアントが必要です。'Number of Clients' フィールドを使用すると、プライベートなテストワールドで最大8つまでのローカルクライアントを起動できます。これらはすべて同じ DisplayName を持ちますが、それ以外は別々のプレイヤーとして認識されるため、インタラクションをテストできます。

'Force Non-VR' が機能しない場合は、VRChat SDKウィンドウの 'Settings' タブに切り替え、VRChat Client Pathが実際のVRChatインストール先を指すように設定してください。

VRChat SDKのInstalled Client Path設定

ワールドのアップロード

VRChatアカウントを作成すると、すぐに Build & Test が行えるようになります。他のプレイヤーが訪問できる状態でワールドを公開するには、VRChat内で一定時間過ごす必要があります。いろいろなワールドを巡ったり、フレンドを作ったりして、創作のインスピレーションを得ましょう!

最終更新: