PBRテクスチャ点検

サイズ不一致・不足マップ・余分なアルファ・チャンネルとノーマルの問題を一括点検。

PBRバリデーターは読み込み前にテクスチャセットを確認します。各マップに役割があるか、全マップのサイズが同じか、選んだワークフローの必須・推奨マップがそろっているか、サイズが2のべき乗か、グレーマップが本当にグレーか、ノーマルマップが本当に単位ベクトルにデコードされるかを見ます。1つのマテリアルのマップを入れると、ファイル名(_basecolor、_normal、_roughness、_ORMなど)から役割を決め、ワークフローを選ぶと問題ごとにファイルと測定値が出ます。JSONレポートに測定値が残り、ファイル名や中身は一切変えません。

画像をここにドロップ複数のファイルをまとめて処理できます
アップロードなし · この端末で処理

何を、どの基準で確認するか

名前から決まる役割。ファイル名を小文字にし、区切りを_にそろえてから、具体的なものから順に最初に一致したトークンを使います。パック(orm・arm・rma・mra・maskmap・mask)、アルベド(albedo・basecolor・diffuse・colorなど)、ノーマル(normalgl・normaldx・normal・nrm・n)、ラフネス、スムースネス(gloss)、メタリック、AO(ao・occlusion・ambientocclusion)、ハイト(height・displacement・bump)、エミッション、不透明度、スペキュラーの順です。1〜2文字のトークン(_n・_m・_r)は信頼度低とします。役割はすべてプルダウンなので、ファイル名を変えずに誤った推定を直せます。

不足はワークフローが決めます。個別マップ(glTF・汎用):アルベド必須、ノーマル・ラフネス・メタリック推奨。Unity HDRP:アルベドとマスクマップが必須、ノーマル推奨。Unity URP:アルベド必須、ノーマル・メタリック推奨。Godot ORM・Unreal ORM:アルベド必須、ノーマルとORMテクスチャ推奨で、ラフネスとメタリックはあるのにORMがない場合は、単なる「不足」ではなく「パック可能」と出ます。ラフネスのマップはスムースネスの代わりになり、その逆も同様です。

推測ではなく測定。単一チャンネルの役割(ラフネス・メタリック・AO・ハイト・不透明度)がRGBで保存されているとき、どのテクセルでもチャンネル差が2以下なら「RGBで保存されたグレー」、超えれば「チャンネルが異なる」(パック済みの可能性)と報告します。ノーマルマップはテクセルごとにデコードし、長さが1から0.12より離れたサンプルを単位外と数えます。単位外が1%以下で、青が128未満(面の内側を向くベクトル)のものがなければ合格です。別の役割なのにノーマルマップの判定(単位外5%以下、負の青0.1%以下)を通るものは「ノーマルマップに見える」と警告します。

2のべき乗はエラーではなく警告です。glTF 2.0は、サンプラーがリピートやミップマップを使う場合、対応が限られるプラットフォームでは2のべき乗でないテクスチャをリサイズすべき(SHOULD)としており、UnityのインポーターにはそうしたテクスチャをスケールするNon Power of 2の設定があります。問題になるかは対象次第なので、バリデーターは報告だけして判断は任せます。

ワークフロー
エンジンのマテリアルが期待するマップの構成(パックの仕方を含む)。
セット名
ファイル名から役割のトークンを除いた残り。一度に入れたファイルのセット名が違うと「名前の不統一」が出ます。
単位外のサンプル
デコードしたノーマルの長さが1から0.12より離れているサンプル。
2のべき乗
2ⁿピクセルのサイズ:256、512、1024、2048 …

例:Godot 4 ORMで確認した岩のセット

PNGを4枚まとめて入れ、ワークフローをGodot 4 ORMにしたときにバリデーターが返す結果です。

rock_basecolor.png   2048 × 2048   albedo
rock_normal.png      2048 × 2048   normal
rock_roughness.png   1000 × 1000   roughness
rock_metallic.png    2048 × 2048   metallic

error  dimension-mismatch    2048x2048 と 1000x1000 (rock_roughness.png)
warn   missing-recommended   orm
info   pack-available        roughness + metallic → Godot 4 ORMプリセット
warn   not-power-of-two      rock_roughness.png 1000 × 1000

セット合格:いいえ(エラー1)

ラフネスを2048 × 2048で書き出し直せば、エラーと2のべき乗の警告が同時に消えます。マスクパッカーでラフネスとメタリック(AOがあればAOも)をパックすれば「orm不足」も消えます。

結果の確認

  • 修正後に新しいファイルを入れ、同じワークフローのままにします。エラーも警告もなければサマリーに✓が出ます。
  • texture-report.jsonをダウンロードしてissuesを読みます。各項目にid・level・ファイル・数値(サイズ、maxDeviation、ratio、minBlue)があります。
  • ノーマルマップではnormalCheck.meanLengthが1に近く、blueNonNegativeがtrueのはずです。

トラブルシューティング

症状考えられる原因確認方法対処
分かっているファイルなのにunclassified名前に既知のトークンがない(rock_03.png)、または英語の一覧にないトークン役割の欄が不明になっているプルダウンで役割を選ぶ。レポートにもその選択が残る
ノーマルマップにduplicate-role1つのダウンロードの_NormalGLと_NormalDXを両方入れた役割がノーマルのファイルが2つあるエンジンが期待する方だけ残す(Unity・GodotはGL)。もう一方しかなければノーマルマップ変換で変換
ラフネス・メタリックのファイルにgray-channels-differ単一マップの名前だが、実はパックテクスチャ(または色付きのプレビュー)問題の項目に最大のチャンネル差と、差のあるテクセルの割合が出る役割をパックマップに変えるか、チャンネル分解で分ける
ハイト・バンプのファイルにlooks-like-normalノーマルマップを_bumpで保存し、名前のルールがハイトと読んだ単位長と青の判定を通っている役割をノーマルに変える
normal-blue-negativeやnormal-not-unit接空間ノーマルマップではない(ハイトやオブジェクト空間のマップ、色としてリサイズしたマップ)問題の項目にminBlueと単位外の割合が出る正しいファイルを使うか、ノーマルマップ生成でハイトから作る
ラフネス・メタリック・AOにunexpected-alpha書き出したソフトが、エンジンが読まないアルファを付けた問題の項目に最小のアルファとアルファ0のテクセル数が出るアルファなしで書き出し直す。アルファ0の下の色はラボでは保持されるが、多くのエンジンは無視する

ほかの方法

方法こんなときに向いています
テクスチャラボ全体チェックで見つかった問題の修正まで必要なとき:ノーマル変換、チャンネルの分解・パック、エッジブリード、リサイズ、一括書き出し。
エンジン上で確認するマテリアル1つ、エンジン1つのとき。インポート設定や空きスロットはマテリアルのインスペクターで分かりますが、サイズ・RGBで保存されたグレー・ノーマルの妥当性はそこでは測定されません。

この方法の限界

  • 色空間は判定しません。ICCプロファイルやガンマを読まず、エンジンが役割ごとにsRGBとリニアのどちらを期待するかと、PNGにsRGBチャンクがあるかだけを示します。
  • ノーマルマップのOpenGL・DirectXの規約はここでは判定しません。判定機能はStudioのテクスチャ作業画面にあります。
  • 名前のルールは英語のトークンだけで、ファイル名は決して変更しません。
  • レポートは汎用JSONで、エンジンが読み込む形式ではありません。

バージョンと出典

チェックレポートはテクスチャラボで確認しました(docs/TEXTURE-LAB.md):schemaVersion 1、engineTarget generic、テスト用ファイルと一致するalpha.zeroPixels = 2048、exactChannels true。JPEG入力ではexactChannels: false。このページの数値はsrc/game/texture-set.jsとsrc/game/texture-normal.jsの基準値です。

参照した公式ドキュメント

PBRテクスチャ点検

サイズ不一致・不足マップ・余分なアルファ・チャンネルとノーマルの問題を一括点検。

使い方

  1. 画像を追加
  2. 設定を調整して結果を確認
  3. 新しいファイルを保存

対応形式

PNG / JPG / WebP / AVIF / HEIC → JSON — 入力のデコードはブラウザ対応と追加エンジンに依存します。

このツールでできること

サイズ不一致・不足マップ・余分なアルファ・チャンネルとノーマルの問題を一括点検。

処理方式と検証状況

advanced · filename classification / pixel measurements / workflow rules. 品質検証中です。Pro・Flagship水準はまだ実証されていません。

書き出す前に

ファイル名とピクセルのみで判断します。ICCやガンマは読まず、色空間は指針です。

よくある質問

このツールにはどのような制限がありますか?

ファイル名とピクセルのみで判断します。ICCやガンマは読まず、色空間は指針です。

ファイルはアップロードされますか?

このツールで開いたファイルはアップロードせず端末で処理します。コミュニティの投稿に明示的に添付する画像は別途アップロードされます。一部のエンジンやモデルは外部から取得するため、IPアドレスなどの接続情報は配信元に伝わります。

作業は自動保存されますか?

いいえ。画像と編集状態はこのタブに保持され、メディア出力は端末の一時保存を利用する場合があります。言語を変えても作業は残りますが、再読み込み、タブを閉じる操作、別のページへの移動で失われることがあります。