【記事メモ】CustomMeshComponentの作成 Part0

UEのカスタムメッシュの作成について、まとめていただいている記事の資料を抜粋して意訳&メモまとめです。

medium.com

※自分用メモなので端折っている箇所もあります。参考程度に
※少し古い記事なのでUE5では事情が異なるケースがあります。わかる所は補足予定

 

UE4C++を利用した、カスタムメッシュコンポーネントを作成する手順についての説明。

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についての説明を行う

Creating a Custom Mesh Component in UE4 | Part 1: An In-depth Explanation of Vertex Factories | by khammassi ayoub | Realities.io | Medium

 

→続く

【記事メモ】CustomMeshComponentの作成 Part1 - SHIBA LOG