いろか マニュアル 0.2.0

いろか

マニュアル

はじめて使うときは「はじめての色替え」から。

紹介動画(1 分 33 秒・YouTube)

インストール

前提条件

  • Unity 2022.3(2022.3.22f1・Windows で検証しています。自動調整と AI マスク提案に使う Unity Sentis 2.1.3 は 2022.3.11f1 以降が必要です)
  • PNG / JPG のテクスチャはそのまま使えます
  • PSD・TGA・EXR などは Read/Write Enabled が必要です。無効のときはウィンドウに警告が出て、「Read/Write を有効にする」ボタンで有効にできます(Undo できないため確認が出ます)

手順

  1. GitHub Releases から Iroca_v<バージョン>.zip をダウンロードして展開します(中身はインストーラ Iroca_Installer.unitypackage と README.txt・LICENSE.txt です。同じ欄の com.yukkuri-aoba.iroca-<バージョン>.zip は VCC / ALCOM が取得するパッケージ本体なので、ダウンロードする必要はありません)。
  2. Iroca_Installer.unitypackage を Unity のプロジェクトウィンドウへドラッグ&ドロップし、「Import」を押します。
  3. 確認ダイアログで「Install」を押すと、いろかの最新版がダウンロードされ、プロジェクトの Packages に入ります(インターネット接続が必要です。インストーラ自体は自動で消えます)。
  4. メニューの Tools > いろか でウィンドウを開きます。

VCC / ALCOM を使っているなら、リポジトリ https://yukkuri-aoba.github.io/Iroca/index.json を追加して、プロジェクトの管理画面から「いろか」と「Non-Destructive Modular Framework」(NDMF)を追加する方法でも導入できます。NDMF もこのリポジトリに載っています。新しい版が出たら、VCC / ALCOM から更新するか、インストーラをもう一度読み込みます。

このマニュアルは、いろかウィンドウ上部の「マニュアル」でいつでも開けます。

旧版(0.1.0、旧名 VRC Avatar Color Changer)を使っていた場合は、Assets/VACC フォルダを削除してください。いろかとは別物として入るため、残すと旧版も動いたままになります。プロジェクト内に保存したプリセットが必要なら、削除の前にバックアップしてください。

はじめての色替え

変更前変更後
つまんで左右に動かすと、変更前後を見比べられます

スニーカーの青を赤に変える例で、最初から最後までを通します。手順は 5 つです。いろかのウィンドウは、いちばん上に ① 元テクスチャ、その下の左に ② カラーゾーン、右に ③ プレビュー、下端に ④ アバターに反映 が並んでいます。

1. テクスチャを開く

メニューの Tools > いろか でウィンドウを開き、「① 元テクスチャ」の「テクスチャ」欄へ、色を変えたいテクスチャをドラッグします。

どのテクスチャか分からないときは、ウィンドウを開いたまま Scene でモデルの変えたい所をクリックしても開けます(テクスチャを何も開いていないとき)。

テクスチャを開いていないときに Scene で靴をクリックすると、そのテクスチャが開きます
テクスチャを開いたところ。テクスチャ欄の下に、次にすることが 1 行で出ます

2. 変える色をスポイトで選ぶ

「スポイトで変えたい色を選ぶ」を押してから、プレビュー上の変えたい色をクリックします。色替え 1 つぶんの「ゾーン」ができ、クリックした色が「サンプルカラー」に入ります。パーツのいちばん鮮やかな所を選ぶとうまくいきます。

この時点では、選んだ色の部分が白っぽくなります(変更先カラーの初期値が白のため)。

「スポイトで変えたい色を選ぶ」→ プレビューの青い部分をクリック。ゾーンができ、青かった所が白っぽくなります
色は必ずスポイトのボタンで取ってください。欄をクリックして開くカラーピッカーのスポイトは、色がわずかにずれるうえクリックした位置が残らず、自動調整が AI の手がかりを使えません。

3. 新しい色を選ぶ

ゾーンの「変更先カラー」をクリックして色を選びます。プレビューにすぐ反映されます。

「変更先カラー」をクリックして、カラーピッカーで赤(FF0000)にします。ハイライトには、まだ白い芯が残っています

4. 自動調整を押す

ゾーンの「自動調整」を押します。スポイトでクリックした場所のパーツを AI が見分け、その暗い所から明るい所までを覆うように、許容範囲などをまとめて合わせます。数秒かかります。

模様保持は元の色と新しい色の明るさの差から決めるので、新しい色を選んでから押してください。初めて使うときは AI の準備(Unity Sentis の導入と、約 44 MB のモデルのダウンロード)が要ります。ウィンドウ上部の案内から入れられます(→「AI マスク提案」)。

「自動調整」を押すと、ハイライトの芯まで赤くなり、許容範囲と模様保持が自動で入ります(待ち時間は 3 倍速にしています)

自動調整を使わなくても、色を選んだ時点でプレビューは変わります。範囲が広い・狭いときは「許容範囲」で手直しできます(→「カラーゾーンの設定」)。

5. アバターに反映する

Scene のアバターには、いろかで開いているテクスチャの色替えが、再生しなくてもそのまま映ります。仕上がりを確かめたら、Hierarchy で衣装かアバターを選び、「④ アバターに反映」の「アバターに非破壊で登録」を押します。

いろかで色を変えると、右の Scene のアバターもその場で変わります(まだ登録していない状態)
Hierarchy でアバターを選び、「アバターに非破壊で登録」→ 確認画面で「登録」。アバターに「Iroca Recolor」が付きます

元のテクスチャは書き換えず、再生・アップロードのときだけ色替えされます。登録したあとにいろかで色を変えても、次の再生・アップロードに反映されます(→「アバターに反映(NDMF)」)。色替えした画像ファイルが要るとき(衣装を配布・販売するときなど)は、その下の「テクスチャとして書き出す」を使います(→「書き出し」)。

NDMF が入っていないプロジェクトでは、この欄は「④ エクスポート」になり、書き出しだけが使えます。

次にすること

  • 同じ色がほかの場所にもあって、一か所だけ変えたい → その場所を右クリックして「この部分だけ塗る」(→「右クリックで直す」)
  • はみ出した所・塗れていない所がある → 右クリックで「ここは塗らない」「ここも塗る」
  • 2 色目も変えたい → ゾーンの下の「スポイトで別の色を追加」を押して、同じようにプレビュー上の色をクリック(→「カラーゾーンの設定」)
  • 仕上がりがベタっとする、縁に元の色が残る → 「困ったとき」

右クリックで直す

いろかは、選んだ色と同じ色の場所を、テクスチャ全体でまとめて変えます。一か所だけ変えたいときや、はみ出し・塗り残しを直すときは、プレビューのその場所を右クリック(mac は Control+クリック)します。クリックした場所の部分に、次の操作を当てられます。左ドラッグはプレビューの移動のままです。

プレビューを右クリックしたところ。先頭の行が、直す相手のゾーンです
「この部分だけ塗る」: つま先の部分を右クリックして選ぶと、その部分だけが赤のまま残り、ほかは元の色に戻ります(部分の外には、塗らない印の色が重なります)
「ここは塗らない」: 右上の部分を右クリックして選ぶと、そこだけが元の色に戻ります
項目すること使う場面
ここも塗るその部分も塗ります色の判定で拾えなかった光沢や、離れた場所にある同じパーツを足す
ここは塗らないその部分を塗らないようにします同じ色の別のパーツまで変わったとき
この部分だけ塗るその部分の外を塗らないようにします。部分の中は今まで通り色で選ぶので、中にある別の色(ロゴの文字など)は変わりません同じ色がほかの場所にもあるのに、一か所だけ変えたいとき
  • メニューの見出しが、直す相手のゾーン(いま直しているゾーン)です。最後に触ったゾーン(作った・カードを押した)が選ばれます。ゾーンが 2 つ以上あるときは、そのカードを枠で示します。「直すゾーンを変える」でも切り替えられます。
  • 後から選んだ操作が勝ちます。「ここは塗らない」にした所で「ここも塗る」を選ぶと塗られます(逆も同じです)。
  • 「この部分だけ塗る」のあとで別の場所も変えたいときは「ここも塗る」を足します。もう一度「この部分だけ塗る」を選ぶと、その部分だけに置き換わります。
  • 「この部分だけ塗る」のあとで「自動調整」を押すと、その部分の中だけを見て範囲を合わせ直します。自動調整の前に使うと、部分の中を取りこぼすことがあります(そのときは知らせが出ます)。白い服などで部分の中に塗られない所が残るときは、そこに「ここも塗る」を当てます。
  • 「直すゾーンを変える」で「全部のゾーンに共通(塗らないだけ)」を選ぶと、「ここはどのゾーンでも塗らない」だけが使えます(顔など、どの色替えでも守りたい場所に)。全部のゾーンに共通の「塗らない」が重なる所は、「ここも塗る」でも塗られません(そのときは知らせが出ます。マスク編集で消せます)。
  • 当てた結果は通常のマスクです。「ここも塗る」は含めるマスク、「ここは塗らない」と「この部分だけ塗る」は除外マスクとして入るので、Ctrl+Z で 1 つずつ戻せ、ブラシで整えられます(→「マスク」)。

部分の見分け方

ふつうは AI(MobileSAM)がクリックした場所の部分を見分けます(→「AI マスク提案」)。AI が使えないときは、メニューにそう出ます。

AI が見分ける部分の大きさは、ふつうは「自動」(輪郭のはっきりした候補のうち、いちばん大きいもの)です。大きさが合わないときは、サブメニューから同じ操作を選び直します。選んだ大きさは、その 1 回だけ使います。

  • 小さめの部分で → ここも塗る / ここは塗らない / この部分だけ塗る: 輪郭のはっきりした候補のうち、いちばん小さいものに当てます。服に描かれたファスナーや小さなロゴのような細かい所を、服全体ではなくそこだけ外したり足したりするときに使います。
  • 大きめの部分で → ここも塗る / ここは塗らない / この部分だけ塗る: 輪郭のはっきりさを問わず、いちばん大きい候補に当てます。「自動」で足りないときに使います(周りを巻き込むこともあります)。
「小さめの部分で」→「ここは塗らない」: 黒い服を紺にすると、黒地に描かれた灰色のファスナーまで水色になります。ファスナーを 1 本ずつ外すと、元の灰色に戻ります

テクスチャを使っているメッシュが見つかっていれば、サブメニューの「メッシュの形で」から、メッシュの形(UV の島)にも同じ操作を当てられます。色では分けられない、同じ色の別パーツ(アトラスに並んだ同色のパンツとブーツなど)を 1 回で分けられます。

  • メッシュの形で → ここも塗る / ここは塗らない / この部分だけ塗る(○○ のこの島): クリックした場所の UV の島(とその周りのにじみ代)に当てます。
  • メッシュの形で → ○○ 以外のメッシュは塗らない: クリックしたメッシュ以外をすべて塗らないようにします。「このゾーンはパンツだけ」にしたいときに 1 回で済みます。部位が複数のメッシュにまたがるときは使わず、島ごとに当ててください。

メッシュの見つけ方

メッシュは、開いているシーンの中、なければテクスチャと同じ素材フォルダの Prefab から自動で探します(テクスチャを以前いろかで書き出した _recolored.png をマテリアルが使っている場合も見つかります)。メッシュが無くても、色の処理はこれまで通り動きます。

使っているメッシュは、本体ウィンドウのマスク欄の「メッシュ」に出ます。

マスク欄。「メッシュ」に見つけた FBX・Prefab と、メッシュの数が出ます
  • メッシュ: 見つけた FBX・Prefab と、使っているメッシュの数です(名前にカーソルを置くと、メッシュの一覧が出ます)。見つからないときや違うものを拾ったときは、Project か Hierarchy から FBX・Prefab をこの欄へドラッグするか、◎ で選びます。欄を空にする(選んで Delete)と自動に戻ります。
  • 探し直す: アバターをシーンに置いたときや、FBX の Read/Write を変えたあとに押します。シーンを開き直したときは自動で探し直します。
  • UV の島をプレビューに表示: メッシュの UV の島の輪郭を、黄色い線でプレビューに重ねます。「メッシュの形で」で当てる範囲が、この線で囲まれた島(と線のすぐ外のにじみ)です。表示だけで、色替えの結果は変わりません。

右クリックメニューの「メッシュの形で」→「選択中の○○のメッシュを使う」でも、Hierarchy か Project で選んでいる FBX・Prefab を指定できます。「メッシュを読めません」と出たら、FBX のインポート設定で Read/Write を有効にして「探し直す」を押してください。

アバターに反映(NDMF)

元のテクスチャとマテリアルを書き換えずに色替えできます。アバターに「Iroca Recolor」コンポーネントを付けておくと、再生(Play)・アップロードのときだけ色替え済みのテクスチャに差し替わります。コンポーネントを外せば元に戻ります。編集中は、再生しなくてもシーンのアバターに同じ色替えが映ります(下の「シーンでのプレビュー」)。

必要なもの

NDMF(Non-Destructive Modular Framework)1.8 以上 2.0 未満。インストーラで入れたときは一緒に入ります。VCC / ALCOM では、いろかと同じリポジトリから追加できます(→「インストール」)。Modular Avatar や Avatar Optimizer を使っているプロジェクトには、たいてい入っています。NDMF が無いときは、書き出しだけが使えます(→「書き出し」)。NDMF が無い状態(あとから NDMF を外したときや、対応していない版のときも同じ)で「Iroca Recolor」の付いたアバターを VRChat にアップロードしようとすると、VRChat SDK が「Iroca Recolor」を使えないコンポーネントとしてエラーにします。そこで「Remove」を押すと「Iroca Recolor」が消えてしまうので、押さずに、NDMF を入れてからアップロードし直してください。

使い方

  1. いつもどおりゾーンを作って色を決めます(→「はじめての色替え」)。
  2. Hierarchy で、色替えしたい衣装(またはアバター)を選びます。選ばなければ、そのテクスチャを使っているオブジェクトの共通の親に付きます。
  3. 「④ アバターに反映」の「アバターに非破壊で登録」を押し、確認画面で「登録」を押します。選んだオブジェクトに「Iroca Recolor」が付き、色替えの内容(レシピ)が Assets/Iroca/Recipes に保存されます。そのオブジェクトに「Iroca Recolor」が既にあれば、新しく付けずにそこへレシピを足します(衣装や髪など、テクスチャをいくつ登録してもコンポーネントは 1 つです)。同じテクスチャのレシピが既にあれば置き換えます。
  4. 再生すると色替え後の姿になります。アップロードも同じです。
Hierarchy でアバターを選び、「アバターに非破壊で登録」→ 確認画面で「登録」。右の Inspector で、付いた「Iroca Recolor」のレシピと対象のマテリアル数を確かめられます
「④ アバターに反映」。登録したあとは「保存先のレシピ」に保存先が出ます

登録したあとも、いろかウィンドウで編集を続けられます。編集内容はレシピにも保存され、次の再生・アップロードに反映されます(「④ アバターに反映」の「保存先のレシピ」に保存先が出ます)。同じテクスチャのレシピが複数あるときは、「Iroca Recolor」かレシピのインスペクタの「いろかで開く」で、編集するレシピを選びます。

色替えされる範囲

  • 「Iroca Recolor」を付けたオブジェクトとその子のうち、レシピの元テクスチャを使っているマテリアルだけが差し替わります。範囲の外で同じマテリアルを使っている所は元のままです。
  • 衣装や表情のトグルなど、アニメーションで後から切り替わるマテリアルも、切り替える先のオブジェクトが範囲内なら同じように色替えされます。元のアニメーションファイルは変わりません。Modular Avatar や VRCFury のトグルで切り替わるマテリアルも対象です。
  • 1 つの「Iroca Recolor」は、テクスチャごとのレシピを一覧で持ちます。同じテクスチャのレシピが重なったときは、一覧の上のものが使われます。
  • 範囲が入れ子になっているときは、近い(深い)方のコンポーネントが優先されます。
  • 以前の版で同じオブジェクトに「Iroca Recolor」を複数付けていた場合は、インスペクタの「1 つにまとめる」で 1 つにできます(色替えの結果は変わりません)。いろかウィンドウからそのオブジェクトへ登録したときも、自動でまとめます。
  • 差し替え後のテクスチャは、元テクスチャのインポート設定(最大サイズ・圧縮形式・ミップマップ)に合わせます。PC と Android(Quest)で圧縮形式が違っても、それぞれに合わせます。
  • 「Iroca Recolor」のインスペクタに、対象になるマテリアルの数が出ます。0 個のときやレシピに問題があるときは警告が出ます。

シーンでのプレビュー

再生しなくても、シーンのアバターで色替え後の見た目を確かめられます。NDMF のプレビュー機能を使うので、元のテクスチャ・マテリアルは書き換えません。

いろかで開いているテクスチャの色替えが、Scene のアバターにそのまま映ります
  • いろかウィンドウで開いているテクスチャは、ウィンドウのプレビューと同じ内容がアバターに映ります。スライダーを動かしている間は粗い版が追従し、手を止めると細かい版に切り替わります。
  • 登録する前でも映ります。「Iroca Recolor」がまだ無いテクスチャは、それを使っているシーン上のすべての物に映るので、登録前に試せます。
  • 登録したテクスチャは、「Iroca Recolor」の範囲(再生・アップロードで色替えされる範囲)にだけ映ります。いろかウィンドウで編集していないときは、レシピの内容が映ります。
  • 有効なゾーンが 1 つも無いときは何も映しません。
  • このプレビューのオン/オフは Tools > NDM Framework > Configure Previews の「Iroca」の「色替え」で切り替えます。NDMF のプレビュー全体のオン/オフは Tools > NDM Framework > Enable Previews です。

配布・販売するとき

非破壊の色替えは、いろかと NDMF が入ったプロジェクトでビルドするときに行われます。色替えした衣装やアバターを unitypackage などで配布・販売すると、受け取る人のプロジェクトにいろかと NDMF が無い場合は元の色のままです。配るときは「書き出し」で画像に書き出し、その画像を使うマテリアルを同梱してください。

自分でアップロードしたアバターは、VRChat の中では色替え後の姿で見えます(アップロードしたデータに色替え済みのテクスチャが入るため)。

注意

  • 以前「適用して保存」で書き出した _recolored.png をマテリアルが使っていても、そのまま登録できます。登録のときに、範囲内でその画像を使っているマテリアルを元のテクスチャへ戻します(確認画面に出ます。Ctrl+Z で戻せます)。FBX の中やパッケージのマテリアルは書き換えられないので、元のテクスチャに差し替えた自分のマテリアルを使ってください。「④ アバターに反映」にも、書き出した画像を使っているマテリアルがあると案内が出ます。
  • 最初の再生・アップロードは色替えの計算で数秒かかります。2 回目以降は Library/Iroca のキャッシュを使います。シーンでのプレビューも同じキャッシュを使います。登録済みのテクスチャを初めて映すときは、色替えができるまでの数秒は元の色のまま映ります(その間もエディタは止まりません)。
  • 編集中のシーンでのプレビューは圧縮前のテクスチャで映すので、アップロード後の見た目とは圧縮のぶんだけわずかに違うことがあります。
  • 問題があると NDMF のエラー画面に「いろか: …」と出ます。元テクスチャが読めないなど、色替えできなかったときはアップロードが止まります(元の色のまま上がるのを防ぐため)。

書き出し

色替えを書き込んだ画像ファイル(PNG)を作ります。自分のアバターには「アバターに反映(NDMF)」をお勧めします。書き出しが向いているのは次のようなときです。

  • 色替えした衣装やアバターを配布・販売する(受け取る人のプロジェクトにいろかが無くても、その色で見えます)
  • NDMF を使わないプロジェクトで色替えする

NDMF が入っているときは「④ アバターに反映」の下の「テクスチャとして書き出す」を開くと出ます。NDMF が無いときは「④ エクスポート」として最初から出ています。

「テクスチャとして書き出す」を開いたところ

「適用して保存」で保存します。出力は常に PNG です。

「テクスチャとして書き出す」を開いて「適用して保存」。元のテクスチャと同じフォルダに _recolored の付いた PNG ができます
  • 新規ファイルとして保存: ON なら元のテクスチャを残し、「ファイル名」の別ファイルに保存します。OFF なら元のファイルを上書きします(確認が出ます。元に戻せないのでバックアップをお勧めします)。
  • インポート設定を引き継ぐ(既定 ON): 元テクスチャのインポート設定(タイプ・圧縮・ミップマップなど)を引き継ぎます。
  • フォルダを開く: 保存先のフォルダを開きます。
  • Project で表示: 保存したテクスチャを Project ウィンドウで選択します(マテリアルへの差し替え用)。

保存に失敗したときは、④ の欄の下にエラーが残ります。詳細は Console にも出ます。

カラーゾーンの設定

ゾーンは「この色を、この色に変える」1 つぶんの設定です。2 色目からは「スポイトで別の色を追加」でゾーンを足します(「+ 空のゾーン」は、色を決めずにゾーンだけを作ります)。

2 色目を足す: 「スポイトで別の色を追加」→ 明るいグレーの部分をクリック → 変更先カラーを濃いグレーに → 自動調整(待ち時間は 3 倍速)

基本の項目(常に表示)

ゾーン 1 枚ぶんの基本の項目(自動調整のあと)

サンプルカラー

色替え対象の基準色です。この色に近いピクセルが対象になります。右の「スポイト」ボタンで取ると、クリック位置も「自動調整」の手がかりとして記憶します。

自動調整

テクスチャを解析して、許容範囲・彩度制限などをまとめて決めます。スポイトした位置に AI マスク提案(MobileSAM)をかけ、そのパーツの暗部からハイライトまでを取りこぼさないように導出します。スポイトで色を取り、変更先カラーを決めてから押すのが最も効果的です(模様保持は、元の色と変更先の明るさの差から決めます)。

  • 元テクスチャが未設定、画素を取り出せない、サンプルカラーが未指定(白のまま)のときは押せません。
  • AI が未導入のときは導入の案内が出ます(→「AI マスク提案」の「必要なもの」)。準備中のときは終わるまで待ちます(進捗バーと中止ボタンが出ます)。
  • カラーピッカーで色を指定したゾーンは位置がないため、AI 提案なしで解析します(ゾーンに「スポイト位置がありません」と出ます)。
  • 自分で値を変えているときだけ、上書きの確認が出ます。

許容範囲

色の一致をどこまで許すかです(0.0〜1.0)。低いほど厳密(選択が狭い)、高いほど広く拾います(ノイズも増えます)。目安は 0.15〜0.40 です。新しいゾーンは 0.20 で始まります。

許容範囲を動かす(自動調整を使わない場合)
許容範囲0.20

芯が大きく残るハイライトの芯が残る(新規ゾーンの初期値)ちょうどよい広め黒いアッパーへはみ出す狭いとハイライトの芯が残り、広げすぎると隣の黒い素材へ回ります

変更先カラー

変えたあとの色です。

変更先カラーを変える

赤オレンジ黄緑水色紫ピンクどれもスポイト 1 回 → 自動調整の結果。色ごとに設定を変えてはいません

模様保持

元の明度をどれだけ残すかです。0 に近いほどベタ塗り風、1 に近いほど元の柄をそのまま残します(既定 1.0)。

模様保持を動かす
模様保持0.90

陰影が浅い純赤で自動調整が選ぶ値元の陰影のまま(既定)下げるほど陰影が浅くなり、ベタ塗りに近づきます(既定 1.0)

出力彩度

再着色後の鮮やかさです(既定 1.0)。純赤など彩度 100% の色は明暗が潰れてベタ塗りに見えがちです。0.7〜0.9 に下げると、色相は保ったまま陰影が戻ります。

出力彩度を動かす
出力彩度1.00

淡いそのまま(既定)純色がベタに見えるときは下げると陰影が戻ります

詳細の項目(「詳細設定」を開くと表示)

上から処理の走る順(選択の範囲 → ハイライト → 暗部・無彩色 → 色の写り方)に並んでいます。触りすぎたときは、ゾーン末尾の「詳細を既定値に戻す」で詳細だけ初期化できます(色・許容範囲・名前は残ります)。

詳細設定(製品の既定値)

連続領域モード(既定 ON)

色が一致した領域のうち、確信度の高い芯を含む「つながった塊」だけに変換を絞ります。離れた同色パーツや背景へのにじみが自動で外れます。既定は自動で、シードは要りません。

特定の塊だけ残したいときはシードを置きます。「シード(任意)」行の「指定」を押してからプレビューをクリックするか、プレビューを Shift+クリックします(詳細設定を閉じていても使えます。置いた位置はプレビューに十字で出ます)。「自動へ」で解除します。

エッジ柔らかさ(既定 0)

0 で硬いエッジ、上げるとアンチエイリアス境界をなめらかに拾います。ぼかしのあるテクスチャ向けです。

彩度制限(影の厳しさ)(既定 0.50)

薄い影や AO(暗い陰り)をどこまで拾うかです。上げるとはみ出しが減り、境界に色のドットが残りやすくなります。下げるとその逆です。

彩度ガード(無彩色よけ)(既定 0)

鮮やかな色を選んだとき、白・黒・灰色が混ざるのを防ぎます。許容範囲を大きく上げるときに使います。選んだ色が灰色寄りなら自動で無効になります。

穴埋めの余白(既定 0)

選択に囲まれた小さな穴を埋めるとき、許容範囲をこの割合だけ広げて判定します。布の明るい面のように、色が許容範囲の境目をまたぐ所で元の色の点が点々と残るのを防ぎます。囲まれていない画素には広がりません。AI 提案ありの自動調整が設定します。許容範囲を手で広く取ったときに上げると、別の部位が塊で塗られることがあります。

ハイライト補助(既定 ON)

高明度・低彩度のハイライト(鏡面反射・光沢)もマッチさせ、光沢素材の変換漏れを防ぎます。ON のときに出る「ハイライト帯の拡張」(既定 ON)は、本体につながった描き込みハイライトまで範囲を広げます。

ハイライト白寄せ合成(既定 OFF)

開発者向けの項目です。ふだんは表示されず、ウィンドウのタブの「⋮」メニューの「開発者向けの設定を表示」で出ます(プリセットなどで既定から変わっているゾーンでは、常に表示されます)。

明部を白へ寄せて、鏡面ハイライトの白い反射を表現します。光沢・プラスチック向けです。ON のときに出る「ハイライト自動補正」(既定 OFF)は、パーツの地色を自動で見つけて白寄せを全体に効かせます。髪など細い房の多いテクスチャでは広がりすぎることがあるので、その場合は OFF にします。

暗部・無彩色

「暗部の明度下限」「別パーツの彩度上限」「別パーツの色相幅」は、近い色の別パーツを、離れたかたまりごと選択から外すための項目です。AI 提案ありの自動調整が、クリックしたパーツに実在する暗さ・鮮やかさ・色相の広がりから導きます。連続領域モードでのみ効き、スポイトでクリックした場所を含むかたまりは外しません。

設定説明既定
暗部の彩度低下この明度より暗いピクセルの彩度を落とす。下げると暗い色も鮮やかに染まる0.35
暗部に含める最低彩度暗いピクセルを影として拾うのに必要な最低彩度。純粋なグレー・黒の色付けを防ぐ0.05
暗部の明度下限この明度より暗いピクセルだけでできた離れた領域を、同じ素材の陰影とみなさず外す。同じ色相で暗いだけの別パーツ(上衣に対する暗いジャケットなど)の巻き込みを防ぐ。0 = 無効0
別パーツの彩度上限色が近くても、より鮮やかな離れた領域を別のパーツとみなして外す。0 = 無効0
別パーツの色相幅色相が少しずれた離れた領域を別のパーツとみなして外す。彩度の低いピクセルは判定に使わない。0 = 無効0
無彩色とみなす彩度サンプルの彩度がこの値以下なら、色相を無視して無彩色(黒・グレー)として抽出する0.05
無彩色の彩度上限白・グレー・黒をスポイトしたとき、これより色づいた離れた領域を「染められた別素材」とみなして外す。0 = 自動(サンプル彩度の 3 倍、最低 0.04)。白い布の陰が青みがかっているときは上げる0

基準色の自動補正(既定 ON)

「色の写り方」の項目です。影をスポイトしても、パーツの明るい面が変更先の色に合うよう基準を補正します。クリックした画素そのものを変更先の色にしたいとき、意図的に明るく塗りたいときは OFF にします。選択範囲は変わりません。

マッチング距離の重み

色の距離式そのものの係数です。ふつうは触りません。開発者向けの項目で、ふだんは表示されず、ウィンドウのタブの「⋮」メニューの「開発者向けの設定を表示」で出ます(プリセットなどで既定から変わっているゾーンでは、常に表示されます)。

設定説明既定
明度重み高いほど明度差に敏感(別素材を分離しやすい)。低いほど同じ素材の影・ハイライトを吸収する1.0
彩度距離重み高いほど彩度差に敏感0.15
彩度ランプスケール大きいほど彩度閾値付近でなだらかにフェードする0.10

これらの値もプリセットに保存されます。

ゾーンの優先度(並び順)

ゾーンが重なる部分には、リストで上にあるゾーンだけが適用されます。各ゾーン左の ☰ をドラッグして並べ替えます。

加工設定

全ゾーン共通の、エッジとノイズの処理です。既定値のままで使えるので、最初は畳まれています。

加工設定と、その詳細設定(製品の既定値)

エッジぼかし

選択境界をぼかして、エッジの色をなじませます(0〜5)。

値効果
0オフ(エッジがシャープ)
0.5〜1.5標準的なぼかし
2.0 以上強いぼかし(なめらかなテクスチャ向け)

縁のドット回収

アンチエイリアス境界に残るドットを回収するパス数です。0 でオフ、3 が標準(既定)、4〜5 で強めです。初期設定(下の境界クリーンアップ ON・エッジぼかし 0)では、色のあるパーツには効きません。縁は境界クリーンアップが塗ります。白・黒・灰のパーツと、境界クリーンアップ OFF またはエッジぼかしを使うときに効きます。

境界クリーンアップ

境界の混ざった色(アンチエイリアス・にじみ)を、パーツの色が混ざっている割合だけ色替えします。縁に元の色が点々と残る、許容範囲を上げるとパーツの周りに輪(ゴースト)が出る、境界が薄汚れた中間色(ハロー)になる、を防ぎます。既定は ON で、通常はそのままで構いません。

詳細設定(折りたたみ)

通常は既定のままで構いません。

設定説明既定
穴埋めパス数アンチエイリアス端の孤立ドットを埋めるパス数5
穴埋め最小隣接数穴を埋めるのに必要な一致隣接ピクセル数。低いほど積極的に埋める4
境界復元 彩度最小境界復元時の彩度最小閾値0.02
境界復元 彩度ランプ境界復元時の彩度ランプ幅0.08
境界クリーンアップの半径境界の画素について、パーツの色と背景の色を探す近傍の半径4

穴埋め・境界復元の 4 つも、縁のドット回収と同じく、初期設定では色のあるパーツには効きません。

プレビュー

設定を変えると、約 0.2 秒後に自動で更新されます。

ズームとパン

  • ズーム 100% は、テクスチャ全体がプレビュー枠にちょうど収まる大きさです。ウィンドウを広げるとプレビューも大きくなります
  • Ctrl + スクロール: ズーム(ピクセル単位まで拡大できます)
  • ドラッグ: ビューの移動
  • 中ボタンドラッグ / Alt + ドラッグ: マスクを塗っている最中でも移動できます
  • 「③ プレビュー」見出し右端の「リセット」: ズームを 100% に、表示位置を先頭に戻します

ウィンドウが狭いとき

いろかのウィンドウの幅が狭いと、本体にはプレビューを出さず、「③ プレビュー」の所に「プレビューを別ウィンドウで開く」ボタンが出ます。別ウィンドウでも、ズーム・前後比較・スポイト・マスクの塗りや AI の操作はそのまま使えます。いろかのウィンドウを広げると、「プレビューを本体に戻す」で本体の表示に戻せます。

表示モード

  • 前後比較: 変更前後を左右に並べます(高ズーム時は使えません)
  • 差分表示: 変わったピクセルだけを強調します
  • 「元を表示」ボタン: 押している間だけ変更前を表示します
  • 「ソロ」(ゾーンの行): そのゾーンだけをプレビューします。表示だけの機能で、保存される内容は変わりません
前後比較。変更前と変更後を左右に並べます
差分表示。変わったピクセルだけが色で浮きます

いまのモード表示

操作行のすぐ下に、プレビュー上のクリックがいま何をするか(スポイト/シード指定/マスクを塗る・消す)と、AI 提案の計算中かどうかが 1 行で出ます。Esc でどのモードも解除できます(AI 提案の計算待ちも取り消せます)。

モードが無いときは、同じ行に Scene でクリックした結果の案内(「ここは『○○』のテクスチャです」)が出ます。

プレビュー上の目印

  • 十字: 連続領域モードのシード位置
  • 菱形: スポイトで色を取った位置
  • 黄色い線: メッシュの UV の島の輪郭(マスク欄の「UV の島をプレビューに表示」がオンのとき)
  • 水色の輪と線: Scene でクリックした場所とその UV の島(下の「Scene でクリックした場所を表示」)

十字と菱形は、ゾーンごとの色(マスクの重ね表示と同じ色)で出ます。

Scene でクリックした場所を表示

いろかのウィンドウを開いたまま Scene でモデルをクリックすると、その部分がテクスチャのどこにあるかをプレビューに示します。モデルの作り(UV)を知らなくても、「袖はテクスチャのどこか」が分かります。ボタンやモードの切り替えはありません。

  • クリックした部分の UV の島を水色で塗り(2 秒ほどで消えます)、島の輪郭と、クリックした点の輪を残します。島は右クリックの「メッシュの形で」で当たる範囲と同じまとまりです
  • 拡大表示中は、その場所が見えるところまでスクロールします
  • テクスチャを何も開いていないときは、クリックした部分のテクスチャを開きます
  • 別のテクスチャを使う部分をクリックしたときは、プレビューの上に「ここは『○○』のテクスチャです」と出ます。「開く」を押すとそのテクスチャに切り替わり、場所を示します(今のテクスチャの編集内容は保存されます)
  • 何もない所をクリックすると表示が消えます
テクスチャを開いていないときは、クリックした部分のテクスチャが開きます

表示だけの機能です。Unity のふつうの選択もそのまま行われ、色替えの設定やマスクは変わりません。

  • 左右で UV を共有しているパーツ(左右の袖など)は、どちらをクリックしても同じ場所が光ります。そこを変えると両方の色が変わります
  • 当たるのは Scene に見えているメッシュです(非表示のオブジェクトや、Hierarchy の目のアイコンで隠したものには当たりません)。ポーズやシェイプキーを付けた形のままクリックできます
  • 透過で抜けている部分(レースの隙間など)も、メッシュがあればその面に当たります

マスク(除外・含める)

プレビューにブラシで塗って、色替えの範囲を手で直します。ふつうは右クリックで足りるので(→「右クリックで直す」)、ブラシは右クリックで当てた範囲の仕上げや、AI が見分けられない所に使います。

  • 除外マスク: 塗った領域を色替えから外します。全ゾーンに効く共通マスクと、ゾーン別マスクがあります。
  • 含めるマスク: 塗った領域を必ず色替えします。強い光沢や、離れた場所の同じパーツなど、色の判定で拾えなかった部分を足すのに使います。ゾーン別のみです。

同じゾーンでは後から塗ったほうが勝ちます。含めるを塗るとその場所の除外が消え、除外を塗るとその場所の含めるが消えます(右クリックの「ここも塗る / ここは塗らない」も同じです)。消しゴムは、いま選んでいる種類のマスクだけを消します。全部のゾーンに共通の除外マスクは、ゾーンの含めるより優先されます。

以前の版で含めると除外を重ねて塗った所は、除外が優先されたままです。その場所を塗り直すと解消します。

使い方

操作は「いろか マスク編集」ウィンドウにまとまっています。

マスク編集ウィンドウ。対象・種類・ツールをここで切り替えます
  1. マスク欄の「マスクを編集…」を押してウィンドウを開きます。
  2. 「編集対象」で各ゾーンか共通マスクを、「マスクの種類」で除外/含めるを選びます(含めるはゾーン選択時のみ)。編集対象には、いま直しているゾーン(最後に触ったゾーン)が最初から選ばれています。
  3. ツールの「塗る」「消す」を選び、プレビュー上をドラッグします。ブラシサイズは 1〜64 です。画面上のブラシの大きさは拡大しても変わらず、拡大したぶん細かく塗れます(拡大して小さなブラシにすれば 1 画素単位)。同じボタンをもう一度押すか Esc で抜けます。
  4. プレビューを右クリックすると、「ここも塗る / ここは塗らない / この部分だけ塗る」を、AI が見分けた部分やメッシュの形に当てられます(→「右クリックで直す」)。

重ね表示は、赤が共通の除外、ゾーンの色がゾーン別の除外、緑が含めるです。編集中の 1 枚は明るく、ほかは薄く出ますが、薄いマスクも色替えには効いています。

マスクは元画像と同じ解像度で持ちます(Unity の取り込みの最大サイズで縮んでいても、書き出しと同じ細かさ)。拡大して見ると、重ね表示も 1 画素単位で出ます。

ウィンドウを閉じるとブラシのモードは解除されます(右クリックメニューはウィンドウを閉じていても使えます)。

含めるマスクの色の写り方

含めるマスクで足した領域は、そのゾーンの色マッチした部分と同じ素材として色替えされます。足した領域の色や明るさは、ゾーンのほかの部分の仕上がりに影響しません。

取り消しとリセット

  • Ctrl+Z(または「直前の操作を元に戻す」ボタン): 直前のストロークを取り消します。
  • このマスクをクリア: いま選んでいる対象・種類のマスク 1 枚だけを消します。

AI マスク提案(実験的機能)

右クリックメニューの「ここも塗る / ここは塗らない / この部分だけ塗る」を選ぶと、AI(MobileSAM)がクリックしたパーツの領域を推定し、その部分に操作をその場で当てます。手描きで囲む手間を減らせます。「自動調整」も、スポイトした場所のパーツを見分けるのにこの AI を使います。

必要なもの(自動調整にも必要)

未導入のときは、いろかのウィンドウ上部に案内の帯が出ます。そこから 2 つとも導入できます。

  1. Unity Sentis パッケージ: 帯の「AI 機能を有効化(Sentis を導入)」を押します。手動の場合は Package Manager →「+」→「Add package by name...」→ com.unity.sentis(バージョン 2.1.3)。Sentis と一緒に、VRChat SDK も使う Burst と Collections が新しい版に上がります。Unity から再起動の案内が出たら、再起動してください。
  2. AI モデル(2 ファイル・合計約 44 MB): 帯の「モデルをダウンロード」を押します。保存先はユーザー共通のフォルダ(Windows は %LOCALAPPDATA%\Iroca\Models)なので、別プロジェクトでの再ダウンロードは不要です。手動の場合は Iroca-Models から 2 つの .onnx を取得し、「モデルフォルダを開く」で開いたフォルダへ置きます。

使い方

  1. 選びたいパーツの内側を右クリックし、「ここも塗る」「ここは塗らない」「この部分だけ塗る」のどれかを選びます。初回は画像の解析とモデルの準備で少し待ちます(進み具合はマスク編集ウィンドウの「AI 提案」欄に出ます)。
  2. 推定された部分に、メニューの見出しのゾーンへすぐ当たります(確定ボタンはありません)。計算中の場所にはプレビュー上に目印が出ます。パーツが画像上で複数の領域に分かれているときは、領域ごとに繰り返します。
  3. 間違えたら Ctrl+Z で 1 つずつ戻します。取れる部分の大きさが合わないときは、メニューの「小さめの部分で」「大きめの部分で」から選び直します(その 1 回だけ。いつも使う大きさは、マスク編集ウィンドウの「AI 提案」欄の粒度で変えられます)。

1 回の右クリックで取れるのは、画像上でつながった 1 つの領域です(AI 提案はモデルの UV を見ていません)。テクスチャ上でいくつにも分かれたパーツ(衣装 1 着ぶんなど)を全部選ぶには、数回〜十数回のクリックが要ります。取った領域がまれに隣のパーツへはみ出すこともあるので、重ね表示で確かめてください。

苦手なケース

  • 白背景に白いパーツなど、見た目の境界が無いもの。手描きマスクを使ってください。
  • 数十個の小さなピースに分かれたパーツ。大きな塊だけ AI で選び、残りはブラシで足すのが早道です。
  • 「背景まで広がった可能性があります」と警告が出たら、Ctrl+Z で戻し、右クリックの「小さめの部分で」から選び直すか、パーツのより内側を右クリックし直します。

うまく動かないとき

  • 左クリックしても何も起きない: 右クリックでメニューを開いて選びます。
  • メニューに「AI が使えません」「AI モデルが未取得です」と出る: Sentis かモデルが未導入です。ウィンドウ上部の案内から導入してください(それまでもメッシュの形では使えます)。
  • Unity 起動後の最初の 1 回だけ遅い: AI エンジン(Burst)のコンパイルが入るためで、異常ではありません。
  • 小さいパーツで少し待つ: 周辺を自動で拡大して推定し直すためです。
  • 右クリックしてもマスクが変わらない(「AI が領域を返しませんでした」「内部コンパイル(Burst)が失敗しています」): Burst の初期化失敗です。同じセッションでは直らないので、欄の「Unity を再起動」を押します。再発するときは、プロジェクトの Library\BurstCache と Library\Bee を削除してから起動し直します(自動で再生成されます)。
  • 「変わりませんでした(すでにそうなっています)」: クリックした部分は、選んだ操作のとおりにすでになっています(「ここは塗らない」なら、もう塗らない所に入っています)。

クレジット / ライセンス

この機能は MobileSAM(Apache License 2.0)を ONNX 形式に変換して使用しています。モデルの著作権は原作者に帰属します。変換済みモデルは Iroca-Models で Apache License 2.0 のもと配布しています(詳細は同リポジトリの NOTICE)。

プリセット

カラーゾーンと加工設定を保存・読み込みできます。

プリセット。保存先はプロジェクト内と全プロジェクト共通の 2 つ

保存と読み込み

「プリセット」セクションで保存先を選び、名前を入れて「保存」を押します。一覧の「読込」で読み込み、「×」で削除します。

  • プロジェクト内: Assets フォルダ内に保存します。Git などでチームと共有できます。
  • 全プロジェクト共通: OS のユーザーフォルダに保存します。この端末のすべてのプロジェクトで使えます。

マスクの保存・読み込み

「詳細(マスク・JSON 入出力)」を開き、「マスクも保存する」を ON にすると、塗ってあるマスクもプリセットに入ります。「マスクも読み込む」を OFF にすると、読み込み時にマスクだけ無視します。

JSON の書き出し・読み込み

同じ欄の「JSON エクスポート」「JSON インポート」で、設定をファイルとしてやり取りできます。

困ったとき

範囲の問題は、まず右クリックで直せないか試してください(→「右クリックで直す」)。数値を動かすのは、そのあとで構いません。AI の動作については「AI マスク提案」の「うまく動かないとき」にまとめています。

ほかの場所まで同じ色に変わった

いろかは、選んだ色と同じ色の場所をテクスチャ全体で変えます。一か所だけ変えたいときは、その場所を右クリックして「この部分だけ塗る」を選びます。同じ色の別パーツを外したいときは、そこを右クリックして「ここは塗らない」を選びます。

アトラスに並んだ同じ色の別パーツ(パンツとブーツなど)は、色では分けられません。テクスチャを使うメッシュが見つかっていれば、右クリックの「メッシュの形で」→「ここは塗らない」で島ごとに外せます。

色の範囲そのものが広すぎるときは、許容範囲を 0.05〜0.15 まで下げ、サンプルカラーをより限定的な色で取り直します。離れた領域まで変わるときは詳細設定の連続領域モードで絞ります。

塗れていない所がある

まだなら「自動調整」を押します(ハイライトの芯などを拾えるようになります)。それでも残る所は、右クリックして「ここも塗る」を選びます。白い服など、色の判定で拾いきれない部分は「ここも塗る」で足すのが早道です。

パーツの中の淡い部分(金属の反射・淡い縁取りなど)が元の色のまま残るときは、許容範囲ではなく彩度制限を下げます。許容範囲を上げても、色の薄い部分は選ばれません。

隣のパーツへ色がはみ出す

はみ出した所を右クリックして「ここは塗らない」を選びます。全体に少しずつはみ出すときは、彩度制限を 0.8〜0.95 に上げ、許容範囲を狭めます。白・黒・灰を巻き込んでいるなら彩度ガードを上げます。エッジ柔らかさを 0.0〜0.5 で調整するのも有効です。

図形の周りに薄い色やドットが残る

アンチエイリアスやぼかしで薄くなった縁が、変換から漏れています。次の順に試してください。

  1. 彩度制限(影の厳しさ)を 0.7〜0.9 に上げる
  2. 許容範囲を狭める
  3. 詳細設定の連続領域モードで離れた残りを切り離す
  4. 残った部分を「ここは塗らない」か除外マスクで保護する

境界に細かいノイズが残る

まず加工設定の境界クリーンアップが ON か確かめます。それでも残るなら、彩度制限を 0.1〜0.4 に下げます(そのぶんはみ出しやすくなります)。あわせてエッジぼかしを 0.5〜1.5、エッジ柔らかさを 0.3〜0.7 のいずれかで試します。白・黒・灰のパーツでは縁のドット回収を 3〜5 にするのも効きます。

境界がギザギザしている・硬い

エッジぼかしを 0.5〜1.5 から入れます。足りなければエッジ柔らかさを 0.3〜0.7 に上げ、彩度制限を 0.3〜0.45 まで少し下げます。

仕上がりがベタ塗りになる

出力彩度を 0.7〜0.9 に下げます。模様を残したいときは模様保持を上げます。

黒い色に変更できない

黒は明度の情報がほとんどなく、模様保持が効きにくくなります。模様保持を 0〜0.3、エッジ柔らかさを 0 にします。保護したい部分は先に「ここは塗らない」か除外マスクで囲っておきます。

Scene でモデルをクリックしても場所が出ない

  • いろかのウィンドウを閉じていると反応しません(タブの裏に隠れているだけなら反応します)
  • プレビューの上に「ここは『○○』のテクスチャです」と出ていれば、クリックした部分は別のテクスチャを使っています。「開く」で切り替えます
  • 何も出ないときは、マテリアルのメインテクスチャ(_MainTex など)が開いているテクスチャではない可能性があります。いろかで書き出した _recolored のテクスチャを使っているマテリアルは、元のテクスチャと同じものとして扱います

ウィンドウの大きさを変えると Unity が落ちる

ウィンドウの端をドラッグしている途中で Unity が終了し、ログ(%LOCALAPPDATA%\Unity\Editor\Editor.log。落ちた後に Unity を開き直したなら Editor-prev.log)に 0x887a0005 や Failed to present D3D11 swapchain due to device reset/removed が出ていれば、Unity(Direct3D 11)と GPU ドライバの組み合わせの問題です。いろか以外のウィンドウでも起きますが、いろかのプレビューは描画が多いので、開いているときに起きやすくなります。Intel の内蔵 GPU(Arc B390)で確認しています。

Unity Hub のプロジェクト一覧で、そのプロジェクトの行の右端のメニューから「コマンドライン引数を追加」を選び、-force-d3d12 と入れて開き直すと、Unity が Direct3D 12 で動きます。確認した環境では、これで落ちなくなりました(タイトルバーに <DX12> と出ます。戻すときは引数を消します)。GPU ドライバの更新で直ることもあります。

いろかの編集内容は手を止めて 2 秒ほどで自動保存しているので、落ちても失うのは直前の数秒ぶんだけです。

よくある質問

Q: PSD のレイヤー構造をサポートしていますか?

いいえ。統合済みのテクスチャが対象です。いろかでも色は替えられますが、PSD があるなら、PSD 側で直接編集した方がレイヤーごとに思いどおりに仕上げられます。

Q: Undo は使えますか?

ゾーンの作成・設定の変更・マスクの描画は Ctrl+Z で戻せます。アバターへの反映は非破壊なので、元のテクスチャは変わりません。書き出しで元のファイルを上書きしたときだけは元に戻せないので、上書きの前にバックアップをお勧めします。

Q: 複数のプロジェクトで使えますか?

はい。各プロジェクトでインストーラを読み込むか、VCC / ALCOM から追加するだけです。プリセットの保存先を「全プロジェクト共通」にすると、プロジェクト間で設定を共有できます。

Q: 対応しているファイル形式は?

入力は PNG / JPG が基本で、出力は常に PNG です。TGA・EXR・PSD は、Unity が取り込んだ画素から書き出します(インポート設定の縮小・圧縮が反映されるため、原本と同じ解像度・画質とは限りません。書き出し時に知らせます)。

Q: 大きなテクスチャでも使えますか?

8192×8192 まで検証しています。処理はメモリ上で行うため、一時的にメモリ使用量が増えます(8K で数 GB)。それより大きいテクスチャはメモリを大きく使うため、お勧めしません。

Q: マニュアルの画像のテクスチャは?

画面写真・実演画像・動画には、かなリぁ「ハオラン-HAOLAN」のテクスチャとモデル(一部は色替え後)を、作者の規約に基づき掲載しています。