AnyPortrait > スクリプト > コマンドバッファ

コマンドバッファ


Unityの「コマンドバッファ(Command Buffer)」をAnyPortraitのキャラクターを対象に使用するための関数です。
次の関数は、「apPortrait」ではなく「apCustomCommandBuffer」クラスに属しています。
コードの作成方法は、ページ下部のサンプルコードやコマンドバッファの使用例を説明する次のページを参照してください。
- 「Command Buffer」の作成


また、Unityのコマンドバッファの詳細な説明は、下記のUnityの公式マニュアルで確認できます。
- ビルトインレンダーパイプラインのコマンドバッファによる拡張
- スクリプタブルレンダーパイプラインにおけるレンダリングコマンドのスケジューリングと実行
- CommandBuffer API
- CameraEvent API


public apCustomCommandBuffer Camera ( camera, apPortrait portrait, string commandBufferName )
1.4.0
説明

   apPortrait を対象とするコマンドバッファクラスを生成します。


パラメーター

   Camera camera : レンダリングを実行するカメラ
   apPortrait portrait : レンダリングとなるapPortrait
   string commandBufferName : カメラに登録されるコマンドバッファの名前


public void Destory ()
1.4.0
説明

   コマンドバッファを登録済みのカメラから削除します。
   カメラ、apPortrait キャラクター、またはコマンドバッファクラスのいずれかが存在しなくなる場合は、この関数を必ず実行してください。


public void AddToCamera ( UnityEngine.Rendering.CameraEvent cameraEvent )
1.4.0
説明

   カメラにレンダリングをどの時点で行うかを設定します。
   Built-in レンダリングパイプラインを使用する場合に呼び出す必要がある関数です。


パラメーター

   UnityEngine.Rendering.CameraEvent cameraEvent : レンダリング時点のenum変数


public void AddToCameraSRP ( apCustomCommandBuffer.SRPRenderEvent srpRenderEvent )
1.4.0
説明

   カメラにレンダリングをどの時点で行うかを設定します。
   「Scriptable Render Pipeline (SRP)」を使用する場合に呼び出す必要がある関数です。
   この関数は、SRP を正式にサポートする Unity 2019.1 以降でのみサポートされます。


パラメーター

   apCustomCommandBuffer.SRPRenderEvent srpRenderEvent : SRPでのレンダリング時点


public void CreateAlternativeMaterials ( Material alternativeMaterial )
public void CreateAlternativeMaterials ( Dictionary<string, Material> imageNameToAlterMaterialMap, Material unmatchedMaterial )
1.4.0
説明

   コマンドバッファを使用してキャラクターをレンダリングするとき、別の「マテリアル」が適用されることを指定します。
   引数として入力されたマテリアルのプロパティが複製されレンダリングに使用されるようにスケジュールされていますが、「_MainTex」と「_Color」は複製されません。
   置き換えられるマテリアルのシェーダは、「カスタムシェーダ」としてのルールが守られなければなりません。
   この関数が呼び出された後、「DrawAllMeshesWithAlternativeMaterials」関数を使用して描画要求を行う必要があります。
   Dictionary型の変数でマテリアルを指定すると、キャラクターが持つ複数の画像ごとに異なるマテリアルが適用されてレンダリングされることがあります。


パラメーター

   Material alternativeMaterial : コマンドバッファによるレンダリング時に置き換えられるマテリアル
   Dictionary<string, Material> imageNameToAlterMaterialMap : イメージ名に応じて異なるマテリアルが置き換えられるように指定されたマッピング変数
   Material unmatchedMaterial : 代替対象のマテリアルが見つからない場合に共通に適用されるマテリアル


public void ClearCommands ()
1.4.0
説明

   コマンドバッファの内容を初期化します。


public void SetRenderTarget ( RenderTexture renderTexture )
1.4.0
説明

   カメラでキャラクターをレンダリングした結果を「レンダーテクスチャ」に保存するように設定します。


パラメーター

   RenderTexture renderTexture : レンダリング結果が保存されるテクスチャ


public void ClearRenderTarget ( bool clearDepth, bool clearColor, Color backgroundColor, float depth )
1.4.0
説明

   設定されたレンダリング先の色または深さの値を初期化します。
   Built-in レンダリングパイプラインで呼び出すことができる関数です。


パラメーター

   bool clearDepth : 深さ値を初期化するかどうか
   bool clearColor : カラー値を初期化するかどうか
   Color backgroundColor : clearColorがtrueの場合、初期化される色
   float depth : clearDepthがtrueの場合、初期化される深さ値(デフォルトは1.0f)


public void ClearRenderTarget ( UnityEngine.Rendering.RTClearFlags clearFlags, Color backgroundColor, float depth, uint stencil )
1.4.0
説明

   設定されたレンダリング先の色または深さの値を初期化します。
   Scriptable Render Pipeline(SRP)から呼び出すことができる関数です。
   この関数は、SRP を正式にサポートする Unity 2019.1 以降でのみサポートされます。


パラメーター

   UnityEngine.Rendering.RTClearFlags clearFlags : 初期化される値の種類を指定する Flag 変数
   Color backgroundColor : 初期化される色
   float depth : 初期化される深さ値(デフォルトは1.0f)
   uint stencil : 初期化されるステンシル値(デフォルトは0)


public void SetViewMatrix ()
public void SetViewMatrix ( Matrix4x4 customViewMatrix )
1.4.0
説明

   レンダリング時に「View Matrix」としてどの値が適用されるかをコマンドバッファに割り当てます。
   引数を指定しない場合は、ターゲットのカメラの「View Matrix」と同じ値がレンダリングに使用されます。
   この関数は「Unity 2019.1」以降のバージョンでのみサポートされており、そのバージョンでは必ずこの関数を呼び出す必要があります。


パラメーター

   Matrix4x4 customViewMatrix : カメラの設定とは異なる方法で適用される「View Matrix」


public void SetProjectionMatrix ()
public void SetProjectionMatrix ( Matrix4x4 customProjectionMatrix )
1.4.0
説明

   レンダリング時に「Projection Matrix」としてどの値が適用されるかをコマンドバッファに割り当てます。
   引数を指定しない場合は、ターゲットのカメラの「Projection Matrix」と同じ値がレンダリングに使用されます。
   この関数は「Unity 2019.1」以降のバージョンでのみサポートされており、そのバージョンでは必ずこの関数を呼び出す必要があります。


パラメーター

   Matrix4x4 customProjectionMatrix : カメラの設定とは異なる方法で適用される「Projection Matrix」


public void DrawMesh ( apOptTransform optTransform )
public void DrawMesh ( apOptTransform optTransform, Material material )
DrawMesh apOptTransform optTransform, ( Matrix4x4 localToWorldMatrix )
public void DrawMesh ( apOptTransform optTransform, Matrix4x4 localToWorldMatrix, Material material )
1.4.0
説明

   apOptTransform のメッシュをレンダリングすることを指定します。
   「apPortrait.GetOptTransform」関数が役に立ちます。
   材料または「World Matrix」を任意に変更してレンダリングできます。


パラメーター

   apOptTransform optTransform : レンダリングされるメッシュを持つ apOptTransform
   Material material : レンダリングされる代替マテリアル
   Matrix4x4 localToWorldMatrix : ユーザーが任意に指定する「World Matrix」


public void DrawAllMeshes ( bool sortOrder, bool excludeClippedChildMeshes )
public void DrawAllMeshes ( Material material, bool sortOrder, bool excludeClippedChildMeshes )
1.4.0
説明

   現在の画面に表示されているapPortraitのすべてのメッシュがレンダリングされることを指定します。


パラメーター

   bool sortOrder : レンダリング順序を再計算するかどうか
   bool excludeClippedChildMeshes : コマンドバッファと互換性のないクリッピングされたメッシュをレンダリングから除外するかどうか
   Material material : レンダリングされる代替マテリアル


public void DrawAllMeshesWithAlternativeMaterials ( bool sortOrder, bool excludeClippedChildMeshes )
1.4.0
説明

   現在画面に表示されているapPortraitのすべてのメッシュがレンダリングされるように指定する「DrawAllMeshes」関数と同じ役割を果たしますが、「CreateAlternativeMaterials」関数から登録された代替マテリアルが使用されます。


パラメーター

   bool sortOrder : レンダリング順序を再計算するかどうか
   bool excludeClippedChildMeshes : コマンドバッファと互換性のないクリッピングされたメッシュをレンダリングから除外するかどうか


public UnityEngine.Rendering.CommandBuffer GetCommandBuffer ()
1.4.0
説明

   Unity のコマンドバッファオブジェクトを返します。


リターン

   UnityEngine.Rendering.CommandBuffer : コマンドバッファオブジェクト