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

VRCGraphics

Udonでは、Unityの様々なグラフィックス機能にアクセスできます。

VRCShader

グローバルシェーダーセッターを管理する包括的なクラスです。詳細については、以下のドキュメントにある関数を参照してください。

VRCGraphics

Unityの組み込みクラス Graphics\ のサブセットを公開します。詳細については、各関数のドキュメントを参照してください。

VRCCameraSettings と VRCQualitySettings

ユーザーのスクリーンカメラ、ハンドヘルドカメラ、および Unity のグローバル品質設定に関する情報の取得や、限定的な制御を行うことができます。詳細については VRCCameraSettings を参照してください。

公開関数

VRCGraphics.Blit()

シェーダーを使用して、ソーステクスチャをターゲットの RenderTexture にコピーします。宛先に null を指定することはできませんのでご注意ください。

Graphics.Blit を参照してください。

VRCGraphics.Blit() の使用方法について詳しくは、Minimap Example をご確認ください。

Minimap Example World

Meta Quest に関する注意点

Meta Quest の GPU 上で VRCGraphics.Blit を機能させるには、以下のいずれかを行う必要があります。

シェーダーに ZTest Always を追加する または ターゲットの RenderTexture で深度(depth)をオフにする

これを行わない場合、操作は失敗します。

VRCGraphics.DrawMeshInstanced()

GPU インスタンシングを使用して、同じメッシュを複数回描画します。

Graphics.DrawMeshInstanced を参照してください。

VRCShader.PropertyToID()

シェーダーのプロパティ名から ID を取得するには PropertyToID を使用します。この関数は初期化時に一度だけ呼び出してください。取得した ID は再利用可能であり、異なるマテリアルやシェーダー間であっても変化することはありません。

VRCShader.SetGlobal で使用するには、プロパティ名に「_Udon」というプレフィックスを付けるか、文字列「_AudioTexture」である必要がある点に注意してください。ただし、この条件を満たさない場合でも、ID 自体は返されます。

Shader.PropertyToID を参照してください。

VRCShader.SetGlobal()

PropertyToID で取得した ID をキーとして使用し、正しい型の値を指定します。指定した値は、ワールド内のすべてのシェーダー(アバター上のものを含む!)で、PropertyToID に渡した名前を通じて利用可能になります。

利用可能なバリアントは以下の通りです。

追加のシェーダーグローバル

VRChatでは、カスタムアバターやワールドのシェーダーで使用できる特別なグローバルシェーダー変数がいくつか用意されています。これらの一覧はこちらで確認できます。

最終更新: