Skip to content

Latest commit

 

History

History
126 lines (100 loc) · 9.83 KB

File metadata and controls

126 lines (100 loc) · 9.83 KB

QuickBaker

Available on Fab Unreal Engine Version License Platform

QuickBakerは、Unreal Engine 5.5以降向けのマテリアル表現(エミッシブ/ファイナルカラー)を静的テクスチャにベイクするためのシンプルで高速なツールです。

初めての方はこちら! クイックスタートガイド をご覧ください。

QuickBaker Architecture

アーキテクチャ

QuickBakerプラグインは、単一責任の原則(SRP)に従って構成されており、保守性と拡張性を確保しています。

クラス図 / 責務

  • FQuickBakerModule: モジュールのライフサイクル(起動/終了)を処理し、エディタタブを登録し、メニューエントリを管理します。
  • FQuickBakerSettings: ベイク操作の設定(解像度、出力タイプ、パスなど)を保持する純粋なデータ構造体(struct)です。検証ロジックを含みます。
  • FQuickBakerCore: ベイクプロセスのコアビジネスロジックを含みます。
    • レンダーターゲットのセットアップ。
    • 選択されたマテリアルのレンダリング。
    • テクスチャアセット(.uasset)の作成とトランザクションの処理。
  • FQuickBakerExporter: レンダーターゲットを外部ファイル(PNG、EXR)にエクスポートするための専用クラスです。イメージラッパーの相互作用とファイルシステムの書き込みを処理します。
  • SQuickBakerWidget: Slate UIウィジェットです。
    • すべてのUI要素(コンボボックス、ボタン、サムネイル)を管理します。
    • ユーザー操作を処理します。
    • UI状態から FQuickBakerSettings を構築し、FQuickBakerCore に実行を委譲します。

概要

QuickBakerは、動的なマテリアルを静的なテクスチャに変換するプロセスを効率化します。複雑なノイズパターン、SDF(Signed Distance Fields)、プロシージャルテクスチャのベイクが必要な場合でも、QuickBakerはセットアップ、レンダリング、保存のプロセスをワンクリックで処理します。テクスチャアセット(.uasset)として直接保存するか、PNGやEXRとしてディスクにエクスポートすることが可能です。

機能

  • マルチフォーマット対応:
    • テクスチャアセット: コンテンツブラウザに直接保存します。
    • PNG: ディスクにエクスポート(8bit固定、アルファ/透過をサポート)。
    • EXR: ディスクにエクスポート(16bit float固定、リニア)、ハイトマップなどの高精度データに最適です。
  • スマートUI:
    • サムネイルプレビュー: 選択したマテリアルの64x64プレビューを即座に表示します。
    • 自動命名: M_MI_ の接頭辞を自動的に T_ に変換します(例: M_Noise -> T_Noise)。
    • 動的設定: 「ビット深度」ドロップダウンは、無効な設定を防ぐために選択した出力タイプに基づいて自動的にロックされます。
  • ワークフローの効率化:
    • フォルダの自動作成: 保存先フォルダが存在しない場合、自動的に作成されます。
    • コンテキストに応じた参照: アセットの場合はコンテンツブラウザを、外部エクスポートの場合はOSのファイルダイアログを開きます。
    • 柔軟な設定: 64から8192までの解像度、8/16ビット深度、および様々な圧縮設定(Default, Normalmap, Grayscale, HDR)をサポートします。

インストール

  1. Unreal Engineを閉じます。
  2. QuickBaker フォルダをUnreal Engineプロジェクトの Plugins ディレクトリにコピーします(例: MyProject/Plugins/QuickBaker)。
    • Plugins フォルダが存在しない場合は、プロジェクトのルートディレクトリに作成してください。
  3. プロジェクトを開きます。
  4. Edit > Plugins からプラグインが有効になっていることを確認します(通常はデフォルトで有効になります)。

使い方

  1. Tools > QuickBaker > Quick Baker からツールを開きます。
  2. Material (マテリアル) の選択: ベイクしたいマテリアルまたはマテリアルインスタンスを選択します。サムネイルプレビューが表示されます。
    • 注: ツールはマテリアルの「ファイナルカラー」(エミッシブ)出力をキャプチャします。
  3. Output Type (出力タイプ) の選択:
    • Asset: プロジェクトに .uasset を保存します。
    • PNG または EXR: コンピュータに画像ファイルを保存します。
  4. 設定の構成:
    • Resolution (解像度): 64x64 から 8192x8192 の間でサイズを選択します。
    • Bit Depth (ビット深度): 8bit または 16bit を選択します(PNG/EXRの場合はロックされます)。スムーズなグラデーションには16bitが推奨されます。
    • Compression (圧縮): テクスチャ圧縮を選択します(例: ノーマルマップの場合は TC_Normalmap)。
  5. Output Path (出力パス) の設定:
    • Browse をクリックして保存先フォルダを選択します。
    • Output Name (出力名) は自動的に生成されますが、カスタマイズも可能です。
  6. Bake Texture をクリックします。

圧縮設定 (Compression Settings)

用途に合わせて適切な圧縮設定を選択してください。

設定名 推奨される用途 技術的な詳細
TC_Default 一般的なカラーテクスチャ(Base Colorなど) 標準的な圧縮 (DXT1/DXT5)。不可逆圧縮。
TC_Normalmap 法線マップ (Normal Map)。ノイズから法線を作った場合など 法線用圧縮 (BC5)。RGチャンネルを高精度に保存。
TC_Grayscale マスク、ハイトマップ、グレースケールノイズ 1チャンネルのみ保存 (G8/BC4)。色情報が不要な場合にメモリ効率が最も良い。
TC_HDR SDF (Signed Distance Fields)、LUT、1.0を超える値が必要なデータ 高精度 (BC6H / Float)。滑らかなグラデーションが必要な場合に必須。

注意:

  • TC_Grayscale は色情報が破棄されますが、メモリ使用量を大幅に削減できます。
  • TC_HDR はファイルサイズが大きくなりますが、SDFなどの高精度データには必須です。
  • これらの設定は Asset (.uasset) 出力時のみ有効です。PNG/EXRエクスポート時は無視されます。

要件

  • Unreal Engine 5.5 以降。

FAQ(よくある質問)

Q: ベイクしたテクスチャが真っ黒になります。何が問題ですか?

A: QuickBakerはマテリアルの**ファイナルカラー(エミッシブ)**出力をキャプチャします。マテリアルのEmissive Colorピンに何も接続されていない場合、出力は黒になります。

解決方法:

  • Unlitマテリアルを使用: UnlitマテリアルはEmissive Color入力のみを使用するため、ベイクに最適です。
  • エミッシブに接続: Litマテリアル(DefaultLit、Subsurfaceなど)を使用する場合、目的の出力をEmissive Colorピンに接続してください。
  • セットアップ例:
    • ノイズテクスチャの場合: ノイズを直接Emissive Colorに接続。
    • カラー/アルベドの場合: Base ColorをEmissive Colorに接続。
    • ノーマルマップの場合: このツールは適していません(専用のノーマルマップベイカーを使用してください)。

Q: QuickBakerに適したテクスチャタイプは?

A: QuickBakerは以下のベイクに優れています:

  • プロシージャルノイズパターン
  • Signed Distance Fields (SDF)
  • グラデーションテクスチャ
  • 数学的/計算的なテクスチャ
  • 色を出力するあらゆるMaterial Expression

ライティング、シャドウ、ノーマルマップのベイクには設計されていません

Q: 8bitと16bitの違いは何ですか?

A:

  • 8bit: 標準的な色精度。通常のテクスチャに使用。
  • 16bit: 高精度。ノイズテクスチャやSDFには強く推奨。カラーバンディング/ポスタリゼーションを防ぎます。

注意: PNGエクスポートは8bitに固定、EXRエクスポートは16bit floatに固定されます。

既知の問題

  1. 8-bitモードでのHDR値のクランプ

    • Asset (8-bit)PNG を選択した場合、1.0を超える値(HDR)はクランプされます。
    • HDR値が必要な場合は EXR または Asset (16-bit) を使用してください。
  2. 視点依存のマテリアルノード

    • FresnelCameraVector などは、ベイク時のカメラ位置で固定されるため、期待通りの結果にならない場合があります。

ライセンス

このプロジェクトはMITライセンスの下で提供されています。