【記事メモ】CustomMeshComponentの作成 Part0
UEのカスタムメッシュの作成について、まとめていただいている記事の資料を抜粋して意訳&メモまとめです。
※自分用メモなので端折っている箇所もあります。参考程度に
※少し古い記事なのでUE5では事情が異なるケースがあります。わかる所は補足予定
UE4でC++を利用した、カスタムメッシュコンポーネントを作成する手順についての説明。
MeshComponentsの構造について
MeshComponentは
ActorComponent←SceneComponent←PrimitiveComponent←MeshComponent
(上記構造は「Mesh Components」のリンク先画像を参照するとわかりやすいです)
と継承関係を構築していて、以下の機能を持つ。
・アクターへのアタッチ
・Transform情報を持つ
・メッシュ描画
そして、MeshComponentをUStaticMesh,UProceduralMeshなどメッシュ描画を行うため
のクラスがそれぞれ継承している状態。
ゆえに、カスタムメッシュのクラスもMeshComponentを継承する形になる。
カスタムメッシュコンポーネントを作成出来るようになると何のメリットがあるか?
カスタムメッシュコンポーネントでメッシュのレンダリングプロセスを、ほぼ制御できる。
例えば...
・VertexShaderで頂点毎のコントロールを実現して、マテリアルエディタでは難しいトリックを入れられる。
各頂点を独自にTransformしたり、USkinnedMeshComponentやUSplineMeshComponentなどの標準コンポーネントでは実現できない変形を行える
・VertexShaderで利用するパラメータやリソースの制御が出来る。
VertexShaderで実装したい制御に応じた、パラメータ、リソースをバインド出来る
・VertexLayoutの要素を決めることにより、Vertexbufferのメモリを最小限にしたり
頂点単位で追加の属性を渡すことが出来る
・全てのメッシュを管理し、バッファを作成することになるので、メッシュを利用する前
に何らかの前処理を差し込むことも出来る。
これはCPUで対応しても良いし、GPUのComputeShaderでも対応可能
Part1ではVertex Factoryについての説明を行う
→続く