アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5.1】GeometryScriptでTextureBakeする。

TextureBakeできるようになった(*'ω'*)

今回はGeometryScriptにBakeTextureというノードが、

追加されたのでそちらを試しました。

※UE5.1Preview1を使用しているため今後変更があるかもしれません。

※説明の誤りや不明瞭な点はコメントいただけると幸いです。

※サンプルプロジェクトも作ったので記事と一緒にご確認ください。

GeometryScriptの処理を作成する

まず準備の部分からの説明になりますがこちらは、

下記記事の一番最初のタイトルにある、

プラグインの有効と準備」に記載されています。

GeometryScriptの準備が完了したら、

下記Dropboxの共有フォルダ内にある、

BakeModel.fbx・Base.fbx・Test.pngを落とします。

それぞれのファイルは下記のような使用します。

BakeModel → NormalMapに焼きまわしたい凹凸モデル。

Base.fbx → なんの凸凹もない平面モデル。

Test.png → NormalMapを焼きまわした情報を上書きする。

コンテンツブラウザ上にドラッグしてファイルを追加します。

プロジェクトに追加した場合

ここからはBPの中身を作成していきます。

StaticMeshの情報を変数として持ちます。

BakeModelとBaseModelを作成しています。

Staticmesh変数を生成する。

続いてGeometryScriptではまずStaticmesh情報をDynamicmeshや、

ComputeMeshにコピーします。

StaticMeshをDynamicMeshにコピー

続いて5.1で追加されたBakeTextureノードから、

Bakeする側のモデル・Bakeされない側のモデルとBakeするタイプを指定します。

設定する値や変更した値については下記になります。

◎BakeTexture

・BakeType → Bakeするタイプを配列で持ち各設定に合わせてTexture2D出力

・BakeOptionsSourceNormalSpace → ベイク空間の設定(tangentかobject)

・BakeOptionsResolution → テクスチャ出力サイズ

・BakeOptionsBitDepth → 出力する際のビット量

・Bake Options Projection Distance → 投影距離
 ※必ず凹凸モデルの高さに合わせてください。

BakeTextureを使用してBakeする処理

最後にBakeTextureから出力されたTexture2D配列から、

要素を取得して「Create New Texture2DAsset」で上書きします。

CreateNewTexture2DAssetに出力

こちらで保存してコンパイルするとコンテンツブラウザ内のTESTに、

ベイクされたBentNormalマップが生成されています。

BentNormalマップの生成

大まかな流れは以上です。

・目次に戻る

Bake出来るテクスチャの種類について

BakeTextureノードでBakeTypesで様々なテクスチャを出力可能です。

これを用いて応用編として別のアンビエントオクルージョンテクスチャも、

出力してみたいと思います。

まずAOの情報を保存するためTexture2Dを複製します。

Texture2D情報の複製

複製が完了したらBakeTypeの配列に、

Make Bake Type Ambient Occlusionノードを追加して、

配列を作成に接続します。

アンビエントオクルージョン用のノードを追加

最後にAO出力された情報が格納されている、

Texture2D配列の1番目の要素をコピーして、

「Create New Texture2DAsset」で複製した、

Texture2Dにコピーしたら完了です。

Texture2D配列の要素情報を上書きする

最後に保存してコンパイルするとNormalとAOのTexture2Dが、

出来上がっているかと思います。

出力後のそれぞれのTexture2D

他にも色々なノードはあります。ぜひ色々試してみてください!

※PositionとCurvatureとMultiTextureはうまくいきました・・・

Bake設定の各種ノード

説明は以上になります。見ていただきありがとうございます!!

・目次に戻る