白黒のメタリック・ラフネス・AOテクスチャを1枚のR/G/B/A画像に合成したり、 パッキング済みのテクスチャをチャンネルごとに分解できます。Unity・Unreal Engine・glTFのプリセットにも対応。
このツールはブラウザの中だけで動いています。入力した内容が、外部に送信されることはありません。入力内容は外部に送信されません。
詳しく合成プレビュー
出力設定
出力サイズ
リサイズ方法
出力フォーマットのプリセット
メタリック (Metallic)
アンビエントオクルージョン (AO)
ディテールマスク (Detail Mask)
スムースネス (Smoothness)
チャンネルパッキングツールとは?R/G/B/Aへの合成・分解を1画面で
本ツールは、メタリック・ラフネス・AO(アンビエントオクルージョン)などの白黒テクスチャを、1枚のRGBA画像のR・G・B・Aチャンネルに合成(パッキング)できる無料のブラウザ完結型ツールです。Unity HDRP/URPのマスクマップ、Unreal EngineのORMテクスチャ、glTF 2.0のmetallicRoughnessTextureなど、代表的なエンジン・フォーマットのチャンネル仕様をプリセットとして用意しているため、どのチャンネルに何を入れればよいか迷うことなく作業できます。
逆に、既にパッキング済みの1枚のテクスチャをR・G・B・Aの各チャンネルごとに個別のグレースケール画像へ分解することも可能です。配布素材の中身を確認したい場合や、一部のチャンネルだけ修正したい場合に活用できます。
また、Unityのスムースネスと Unreal Engine・glTFのラフネスのように、エンジンによって定義が逆になっている値の反転変換にも対応。各チャンネルの「反転」トグルをオンにするだけで、255-値の変換を自動で行います。
こんなシーンで便利です
Substance Painter/Designer等の書き出し画像をエンジン用に1枚にまとめたいとき
書き出したMetallic・Roughness・AOの白黒画像を、UnityのマスクマップやUnreal Engine用のORMテクスチャとして1枚のテクスチャに合成できます。
VRM改変やアバター制作で、エンジンごとのチャンネル仕様に合わせたいとき
Unity HDRP/URP、Unreal Engine、glTFなど、異なるチャンネル仕様のプリセットを切り替えながら、改変素材を目的のフォーマットにパッキングし直せます。
配布されているORM・マスクテクスチャの中身を確認したいとき
「分解」タブに1枚のテクスチャをアップロードするだけで、R・G・B・Aの各チャンネルをそれぞれ個別のグレースケール画像として取り出し、プレビュー・ダウンロードできます。
ラフネスとスムースネスなど、エンジン間で逆転した値を変換したいとき
「反転変換」タブに白黒画像をアップロードするだけで、255-値の反転処理を行った画像をその場でプレビュー・ダウンロードできます。
使い方は簡単 4ステップ
- 「合成(パッキング)」タブで、出力したいフォーマットのプリセット(Unity・Unreal・glTF・カスタム)を選びます。
- 各チャンネル(R/G/B/A)に、対応する白黒画像をドラッグ&ドロップまたはファイル選択でアップロードします。画像がないチャンネルは定数値で埋められます。
- ラフネス⇄スムースネスなど仕様が逆の画像を使う場合は、該当チャンネルの「反転」トグルをオンにします。
- 出力サイズを確認し、プレビューに問題がなければ「合成画像をダウンロード」でPNG形式のテクスチャを保存します。
※既存のパッキング済みテクスチャを分解したい場合は「分解」タブに、単純な反転変換だけ行いたい場合は「反転変換」タブに切り替えてご利用ください。
ご利用時の注意点
- 本ツールの画像処理(合成・分解・反転)は、すべてブラウザ内のCanvas APIで行われます。アップロードした画像が外部サーバーに送信されることはありません。
- 出力画像はPNG形式(ロスレス)のみに対応しています。DDS・KTX2などの圧縮テクスチャ形式への変換は、各エンジン側のインポート設定で別途行ってください。
- 各チャンネルに割り当てた画像のサイズが異なる場合、指定した出力サイズに自動でリサイズ(引き伸ばし)されます。解像度の差が大きいと画質が劣化する場合があるため、近い解像度の画像を用意することをおすすめします。
- プリセットのチャンネル割り当ては代表的な慣習に基づく目安です。実際の割り当てはシェーダーやマテリアル設定によって異なる場合があるため、使用するエンジン・シェーダーのドキュメントも必ずご確認ください。
エンジン・フォーマット別チャンネル割り当て早見表
代表的なエンジン・フォーマットにおける、R・G・B・Aチャンネルの一般的な割り当てです。本ツールのプリセットもこの構成に対応しています。
| フォーマット / エンジン | R | G | B | A |
|---|---|---|---|---|
| Unity HDRP/URP マスクマップ | メタリック | AO | ディテールマスク | スムースネス |
| Unity Standard(Metallic+Smoothness) | メタリック | 未使用 | 未使用 | スムースネス |
| Unreal Engine(ORM) | AO(Occlusion) | ラフネス | メタリック | 未使用 |
| glTF 2.0(metallicRoughnessTexture) | AO(任意・ORM運用時) | ラフネス | メタリック | 未使用 |
【ORMという呼び方について】
ORMは Occlusion・Roughness・Metallic の頭文字で、R=AO、G=ラフネス、B=メタリックという並びでパッキングされたテクスチャの通称です。Unreal EngineとglTFはこの並びがほぼ共通しているため、相互に流用しやすい構成になっています。
※上表はあくまで一般的な慣習です。プロジェクトやシェーダーのカスタム設定によっては割り当てが異なる場合がありますので、必ず使用するエンジン・シェーダー側のドキュメントもご確認ください。
チャンネルパッキングの仕組みと、エンジン間の仕様差を理解する
Unity・Unreal Engine・glTFでテクスチャを使い回す際に押さえておきたい、チャンネルパッキングの基礎知識を解説します。
結論:チャンネルパッキングは「メモリ削減」と「サンプリング回数の削減」のための手法
チャンネルパッキングとは、メタリック・ラフネス・AOのようにそれぞれ白黒1枚で表現できる情報を、1枚のRGBA画像のR・G・B・Aにまとめて格納する手法です。
4枚必要だったテクスチャを1枚に統合することで、使用メモリ(VRAM)の削減はもちろん、シェーダーがテクスチャをサンプリングする回数が減るため描画負荷の軽減にもつながります。モバイル向けやVR向けなど、パフォーマンスが重視される制作現場では標準的な最適化手法です。
Unity・Unreal Engine・glTFで異なるチャンネル仕様の違い
同じ「メタリック・ラフネス・AO」の情報でも、エンジンによってチャンネルへの割り当て方が異なります。
Unity HDRP/URPのマスクマップはR=メタリック、G=AO、B=ディテールマスク、A=スムースネス、Unreal EngineのORMテクスチャはR=AO、G=ラフネス、B=メタリックという並びが一般的です。glTF 2.0のmetallicRoughnessTextureも後者に近い並び(G=ラフネス、B=メタリック)を採用しています。異なるエンジン間で素材を使い回す際は、この並びの違いを意識してチャンネルを詰め直す必要があります。
ラフネスとスムースネスの違いと、反転変換が必要な理由
ラフネス(Roughness)は値が大きいほど表面が粗く、光沢が弱くなる指標である一方、スムースネス(Smoothness)は値が大きいほど表面が滑らかで、光沢が強くなる指標です。両者は「スムースネス=255-ラフネス」という単純な反転関係にあるため、Unity(主にスムースネスを使用)とUnreal Engine・glTF(主にラフネスを使用)の間で素材を移植する際は、この反転変換を忘れると質感が正反対(ツルツルとザラザラが逆)になってしまいます。
チャンネルパッキング時に注意したいカラースペースの扱い
メタリック・ラフネス・AOなどのマスクテクスチャは、色の見た目を表すものではなく数値データ(線形値)として扱うべき情報です。そのため、エンジンにインポートする際は、通常のカラーテクスチャのようにsRGBとして扱わず、リニア(Linear/Raw)としてインポートする設定が必要です。この設定を誤ると、本ツールで正しくパッキングしたテクスチャでも、エンジン上で明るさや質感が想定とずれて表示されることがあります。
よくある失敗と対策
マスクテクスチャをsRGBとしてインポートし、明るさがずれる
本ツールで正しくパッキングしたテクスチャを、Unity・Unreal Engineにインポートする際に通常のカラーテクスチャと同じsRGB設定のままインポートしてしまい、エンジン上でメタリックやラフネスの数値が想定よりも明るく(または暗く)解釈されてしまう失敗です。
💡 対策・解決策を見る▼
ラフネスとスムースネスを反転せずに別エンジンへ持ち込み、質感が逆転する
Unreal Engine向けに作成したラフネス画像を、反転せずにそのままUnityのスムースネスチャンネルに詰めてしまい、本来ツルツルであるべき箇所がザラザラに、ザラザラであるべき箇所がツルツルに表示されてしまう失敗です。
💡 対策・解決策を見る▼
各チャンネルの元画像の解像度がバラバラで、出力後に画質が崩れる
メタリックは512px、AOは2048pxのように、各チャンネルに割り当てた元画像の解像度が大きく異なる状態でパッキングしてしまい、低解像度側の画像が引き伸ばされてぼやけた仕上がりになる失敗です。
💡 対策・解決策を見る▼
JPEG形式で書き出してしまい、圧縮ノイズでチャンネル情報が劣化する
パッキングしたテクスチャをJPEG形式で保存してしまい、JPEG特有の非可逆圧縮によって各チャンネルの境界にノイズが発生し、エンジン上でメタリックやラフネスの値がまだら状に乱れてしまう失敗です。
💡 対策・解決策を見る▼
どのチャンネルに何を割り当てたか忘れてしまい、後から修正できなくなる
パッキング作業から時間が経った後に素材を修正しようとした際、どのチャンネルにメタリックを、どのチャンネルにAOを入れたか忘れてしまい、分解して中身を確認するところからやり直す羽目になる失敗です。
💡 対策・解決策を見る▼
よくある質問(FAQ)
Q.チャンネルパッキングとは何ですか、なぜ必要なのですか
A. チャンネルパッキングとは、メタリック・ラフネス・AO(アンビエントオクルージョン)のような、それぞれ白黒1枚で表現できる情報を、1枚のRGBA画像のR・G・B・Aチャンネルにそれぞれ割り当てて1枚のテクスチャにまとめる手法です。本来4枚必要だったテクスチャを1枚にまとめることで、使用メモリの削減、読み込み時間の短縮、マテリアルのテクスチャスロット数の節約ができるため、Unity・Unreal Engineなどのリアルタイム3Dエンジンでは標準的に使われています。
Q.Unity HDRP/URPのマスクマップのチャンネル仕様を教えてください
A. Unity HDRP・URPのマスクマップは、一般的にR=メタリック、G=アンビエントオクルージョン(AO)、B=ディテールマスク、A=スムースネスという割り当てが標準です。本ツールのプリセットから「Unity HDRP/URP マスクマップ」を選ぶと、この割り当てで各チャンネルに画像をアップロードできます。
Q.Unreal EngineのORMテクスチャとは何ですか
A. ORMテクスチャとは、Occlusion(遮蔽・AO)・Roughness(ラフネス)・Metallic(メタリック)の頭文字を取ったもので、一般的にR=AO、G=ラフネス、B=メタリックという割り当てで1枚にパッキングされたテクスチャを指します。Unreal Engineのマテリアルでよく使われる構成で、glTF 2.0のmetallicRoughnessTextureも同様の考え方(G=ラフネス、B=メタリック)を採用しています。
Q.ラフネスとスムースネスの違いと反転方法を教えてください
A. ラフネス(Roughness)は表面の粗さを表し、値が高いほどザラザラで光沢が弱くなります。スムースネス(Smoothness)はその逆で、値が高いほどツルツルで光沢が強くなります。両者は「スムースネス=255-ラフネス」という単純な反転関係にあるため、本ツールの各チャンネルにある「反転」トグルをオンにすることで、ラフネス画像をスムースネス画像として(またはその逆として)変換できます。
Q.アップロードした画像はサーバーに送信されますか
A. 一切送信されません。本ツールの画像合成・分解・反転処理は、すべてお使いのブラウザ内のCanvas機能だけで行われます。アップロードしたテクスチャが外部サーバーに送信されたり保存されたりすることはなく、ページを閉じればデータは消去されます。未公開のプロジェクトの素材でも安心してご利用いただけます。
Q.分解(アンパッキング)機能では何ができますか
A. 「分解」タブに切り替えて、既にR・G・B・Aにパッキングされた1枚のテクスチャ(マスクマップやORMテクスチャなど)をアップロードすると、各チャンネルの情報をそれぞれグレースケール画像として自動的に取り出し、個別にプレビュー・ダウンロードできます。配布素材の中身を確認したい場合や、一部のチャンネルだけ再編集したい場合に便利です。
Q.出力画像の解像度や形式に制限はありますか
A. 出力形式はPNG(ロスレス)のみに対応しています。解像度は256〜4096pxのプリセット、または任意の数値を指定できます。各チャンネルに割り当てた画像の元のサイズが異なる場合は、指定した出力サイズに自動でリサイズ(引き伸ばし)されるため、事前に近い解像度の画像を用意することをおすすめします。
あなたの声で、
このツールをより鋭く。
「こんな機能が欲しい」「ここを直してほしい」といったご意見や、新しいツールのリクエストを募集しています。エンジニアが直接目を通し、開発の参考にさせていただきます。