【VRChat】Udon Assembly 詳解
Udonについて VRChatのワールド用実行基盤として、Udon VMという仮想マシンが存在します。 このUdon VMは、Udon Assemblyから生成されたバイトコードを実行します。 Udon Assemblyは、現状では公式のUdonGraphやUdonSharpなどからコンパイルにより生成されますが、Udon Assemblyを直接手書きすることも可能です。 本記事では、Udon Assemblyを記述する方法についてご紹介します。 Udon Assembly Program Asset Udon Assemblyを直接記述できるアセットであるUdon Assembly Program Assetを作成するには、VRChat World SDKをインポートした上で、以下のようにします。 Projectタブ > 右クリック > Create > VRChat > Udon > Udon Assembly Program Asset これでアセットファイルが生成されます。 アセットファイルを選択すると、Inspectorに設定画面が表示されます。 テキストエリアが空欄なので、分かりやすいようにアセンブリを入力してみるとこうなります。 各部を説明します。 ①: アセンブリをクリップボードにコピーするボタン ②: アセンブリの入力欄 ③: パブリック変数 ④: コンパイル後のバイトコードを逆アセンブルした結果(またはコンパイルエラーメッセージ) この②にアセンブリを入力してゆくことになりますが、アセンブリのコードにエラーがあるとフレームごとにエラーメッセージが出力され続けるというトンデモ仕様があります。 これは、コードの入力途中にも適用され、入力途中のコードは当然エラーと解釈されるので、コードを書いている最はずっとエラーが出続けます。 ログファイルを圧迫することもありますので、コードの記述はテキストエディタで行ない、コピーしたものを入力欄にペーストする方法が良いと思います。 ただ、これを気にしないというのであれば直接入力することもできます。 この方法でもコードにミスがあれば大量のエラーが出てしまいますが、Projectタブからアセットファイルの選択を解除してInspectorが閉じられるとエラーは止まりますので、覚えておきましょう。 Udon Assemblyの構造 Udon Assemblyは大きく分けて2つの部分により構成されます。 データ部 コード部 これらを以下のように記述します。 .data_start # データ部の記述 .data_end .code_start # コード部の記述 .code_end ....