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

VRCGraphics

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

VRCShader

グローバルシェーダーセッターのための包括的なクラスです。詳細は後述の関数ドキュメントを参照してください。

VRCGraphics

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

VRCCameraSettings & VRCQualitySettings

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

公開されている関数

VRCGraphics.Blit()

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

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

VRCGraphics.Blit()の具体的な使用方法については、ミニマップのサンプルを確認してください。

Minimap Example World

Meta Questに関する例外事項

VRCGraphics.Blitは、以下のいずれかを行わない限り、QuestのGPUでは動作しません:

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

これらを行わない場合、処理は失敗します。

VRCGraphics.DrawMeshInstanced()

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

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

VRCShader.PropertyToID()

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

VRCShader.SetGlobalで使用するには、プロパティ名に「_Udon」というプレフィックスを付けるか、リテラル文字列「_AudioTexture」である必要がある点に注意してください。ただし、ID自体はそれに関係なく取得できます。

参照:Shader.PropertyToID

VRCShader.SetGlobal()

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

利用可能なバリエーション:

  • VRCShader.SetGlobalColor()
  • VRCShader.SetGlobalFloat()
  • VRCShader.SetGlobalFloatArray()
  • VRCShader.SetGlobalInteger() は、Unityのバグにより現状では値をfloatとして設定します。
  • VRCShader.SetGlobalMatrix()
  • VRCShader.SetGlobalMatrixArray()
  • VRCShader.SetGlobalTexture()
  • VRCShader.SetGlobalVector()
  • VRCShader.SetGlobalVectorArray()

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

VRChatは、カスタムアバターやワールドのシェーダーで使用できるいくつかの特別なグローバルシェーダー変数を公開しています。詳細はこちらを参照してください。

最終更新: