とある紳士MMDerの3DCG関連wiki - 【MMD】MMDモデルのテクスチャ改変など【GIMP】
成人向けの内容を含みます!未成年の方はご覧にならないでください。

モデルの規約によってはテクスチャの改変などを禁止しているものもあります。ご注意ください!!

MMDモデルのテクスチャを改変したりします。(例えば髪色や瞳の色を変えたり、肌を褐色化したり)
主にGIMPを利用しますが、GIMPのインストール方法や基本的な使い方などはこのページでは解説しません。
このページで解説するGIMPのVerは2.10です。

このページでは例としてこだまちゃん Ver1.0ニコニ立体ちゃん/アリシア・ソリッドお宮式磯風を利用させてもらいます。


色変え

GIMPを利用してテクスチャを改変しますが、MMDモデルによっては一つのテクスチャにいくつかの材質がまとめられている場合があります。
例えば、肌の材質と衣服の材質が同じテクスチャに書き込まれていて同じテクスチャを参照している場合などです。

こういったケースで例えば肌色だけを変えたい場合はテクスチャを複製して肌の材質を参照しているテクスチャを複製したテクスチャにし、その複製したテクスチャを改変する方法と、GIMP上で肌が塗られている箇所だけを選択して改変する...という方法があります。

このページでは簡単な前者(テクスチャを複製する方法)を解説します。
(ただ、例えば肌と衣服が同じ材質で同じテクスチャを参照している場合に肌色だけを変えたい場合はGIMPで肌の箇所だけを選択する必要がある)

瞳の色を変える

瞳の色を変えてみます。


GIMPで瞳のテクスチャを開き、着色を選びます。


主に色相彩度を操作します。(輝度は基本的に触りません)

色相はそのまま、色合いです。
彩度はその色の明るさです。


カラーを変更したら、ファイル名前を付けてエクスポートでエクスポートし、別名で保存します。
あとはPmxEditorで瞳の材質に別名保存したテクスチャを割り当てれば完成です。
オリジナル瞳テクスチャ改変例

髪色を変える


瞳のテクスチャ改変同様、GIMPで髪のテクスチャを開き、着色を選びます。


瞳のテクスチャ改変と違い、色相彩度輝度すべてを操作します。


カラーを変更したら、ファイル名前を付けてエクスポートでエクスポートし、別名で保存します。
PmxEditorで髪の材質に別名保存したテクスチャを割り当てれば完成です。
オリジナル髪テクスチャ改変例

単純な肌の褐色化

単純な肌の褐色化の方法です。


GIMPで体のテクスチャを開きます。
スポイト([O]キー)で体テクスチャの一番濃い(暗い)箇所を選択し、色を取得します。


左側の描画色をクリックして描画色の変更ウインドウの右側のHSVを選択し、S(あるいはVも)を右側に移動させて描画色を濃くします。


右側のレイヤーウインドウで右クリックして新しいレイヤーの追加を選択します。
塗りつぶし色描画色にしてOKで新しいレイヤーを追加します。


元の体のテクスチャ上に新しいレイヤーがあるはずです。(体テクスチャの↓に新しいレイヤーがある場合は上に移動させます)
新しいレイヤーのレイヤー合成モードを乗算にします。

色が濃すぎたりした場合は描画色を変更してから塗りつぶし([Shift]+[B]キー)で新しいレイヤーに新しい描画色で塗りつぶします。


気に入った色合いになったら、ファイル名前を付けてエクスポートでエクスポートし、別名で保存します。
PmxEditorで体の材質に別名保存したテクスチャを割り当てれば完成です。
褐色肌の白色化
今度は逆に褐色の肌色を白っぽくします。


スポイト([O]キー)で体テクスチャの一番薄い(明るい)箇所を選択し、色を取得します。
左側の描画色をクリックして描画色の変更ウインドウの右側のHSVを選択し、S(あるいはVも)を左側に移動させて描画色を薄くします。


右側のレイヤーウインドウで右クリックして新しいレイヤーの追加を選択します。
塗りつぶし色描画色にしてOKで新しいレイヤーを追加します。


体テクスチャの上に新しいレイヤーがある事を確認し、新しいレイヤーのレイヤー合成モードを除算にします。
色が薄すぎたりした場合は描画色を変更してから塗りつぶし([Shift]+[B]キー)で新しいレイヤーに新しい描画色で塗りつぶします。

後はファイル名前を付けてエクスポートでエクスポートし、別名で保存し、PmxEditorで体の材質に別名保存したテクスチャを割り当てれば完成です。

日焼け化(日焼けなし部分あり)

この項目ではBlenderのAOベイクを利用して、単純に褐色化(日焼け化)するのではなく、非褐色部分(日焼けなし部分)のあるテクスチャに改変します。

Blenderでの作業

まずはBlenderへMMDモデルを読み込みます。インポート時のオプションはデフォルトで大丈夫です。
インポート方法などは【Blender 3.0】mmd_tools【UuuNyaa版】/インポートをご覧ください。


アーマチュア(ボーン)を選択して[H]キーを押すか、サイドバーの可視性:からアーマチュア(ボーン)を非表示にします。


メッシュオブジェクトを選択してサイドバーからモデル設定メッシュ:マテリアルで分解でMMDの材質単位でメッシュオブジェクトを分離させます。


髪など、干渉するメッシュオブジェクトを削除します。
ただし、”水着”など日焼けしない部分にあたるメッシュオブジェクトは削除してはいけません。


トップバーからShadingタブを開き、ベイクする体のメッシュオブジェクトを選択します。
画面中央下部のシェーダーエディター画面にマウスカーソルを持っていき、キーボードの[HOME]キーを押してノードを表示させます。


マウスカーソルをシェーダーエディター上に持っていってから[Shift]+[A]キーから入力アンビエントオクルージョンを選択してAOノードを追加します。
同様に[Shift]+[A]キーからシェーダーディフューズBSDFを選択してディフューズBSDFノードを追加します。
AOノード、ディフューズBSDFノード、マテリアル出力をそれぞれ上記画像のように接続します。


さらに、[Shift]+[A]キーからテクスチャ画像テクスチャノードを追加します。
画像テクスチャノードの新規をクリックして新規テクスチャを作成します。オプションはデフォルトでOKです。
このノードは他のノードと接続しません。


レンダープロパティからレンダーエンジンCyclesにします。
下の方にあるベイク項目を開き、ベイクタイプアンビエントオクルージョンにします。


ベイク項目のベイクをクリックすればベイクが開始されます。
※ベイク先のテクスチャは最後に選択した画像テクスチャノードのテクスチャです。


画面左側の画像エディターにベイクされたテクスチャが表示されるので、名前を付けて保存します。


GIMPで体のテクスチャを開きます。
さらに先ほどベイクしたAOテクスチャをGIMPにD&Dして追加します。


ベイクしたテクスチャは少しノイジーなのでガウスぼかしをかけて均します。
AOテクスチャのレイヤーを選択した状態でフィルターぼかしガウスぼかしでガウスぼかしをかけます。


レイヤーウインドウで右クリックして新しいレイヤーグループを作成します。
レイヤーグループにAOテクスチャを入れます。


描画色を真っ黒にし、その黒色で塗りつぶされた新しいレイヤーを作ります。
黒一色のレイヤーの合成モードを色消しゴムにします。


体テクスチャの色をスポイト([O]キー)で取得し、左側の描画色をクリックして描画色の変更ウインドウから少し色を濃くします。
その色で塗りつぶされた新しいレイヤーを作り、そのレイヤーの合成モードを乗算にします。


名前を付けてエクスポートし、PmxEditorで体の材質に別名保存したテクスチャを割り当てれば完成です。
完成例
日焼け化(日焼けなし部分あり)_日焼け部分の色の厳密な指定
日焼け部分の色の厳密な指定を行う場合です。

日焼け化(日焼けなし部分あり)/ Blenderでの作業でAOをベイクしたものとして進めます。


体のテクスチャをGIMPで開きます。
レイヤーウインドウで右クリックして新しいレイヤーグループを作成し、体のテクスチャをそのレイヤーグループに入れます。


体テクスチャの陰影の塗られていない箇所の色をスポイト([O]キー)で取得します。
スポイトで取得した色で塗りつぶされた新しいレイヤーを作り、そのレイヤーの合成モードを色消しゴムにします。


スポイトで取得した色で塗りつぶされたレイヤーの複製を作成してレイヤーグループから外に出し、一番下に移動させます。


下から二番目に位置するように新しいレイヤーグループを作成します。
新しいレイヤーグループにAOベイクしたテクスチャを入れ、ガウスぼかしをかけます。


描画色を真っ黒にしてその黒色で塗りつぶされた新しいレイヤーを作り、下から二番目のレイヤーグループのAOテクスチャの上に入れます。
黒一色のレイヤーの合成モードを色消しゴムにします。


体テクスチャの色をスポイト([O]キー)で取得し、左側の描画色をクリックして描画色の変更ウインドウから少し色を濃くします。
その色で塗りつぶされた新しいレイヤーを作り、そのレイヤーの合成モードを乗算にします。
レイヤーの位置は、下から二番目のレイヤーグループの真っ黒なレイヤーの上です。

あとは名前を付けてエクスポートし、PmxEditorで体の材質に保存したテクスチャを割り当てれば完成です。
日焼け(日焼けなし部分あり)テクスチャの日焼け部分消し化
元のテクスチャが日焼け(日焼けなし部分あり)の際にテクスチャの日焼け部分を消す場合です。


GIMPで体のテクスチャを開きます。
レイヤーグループを作成して体のテクスチャをそのレイヤーグループに入れます。


スポイト([O]キー)で日焼けしていない部分の色を取得し、その色で塗りつぶされた新しいレイヤーを作成します。
新しいレイヤーはレイヤーグループ内の元のテクスチャの上にして、合成モードを色消しゴムにします。


消したい褐色部分の色をスポイト([O]キー)で取得し、その色で塗りつぶされた新しいレイヤーを作成します。
合成モードを色消しゴムにします。


日焼けしていない部分の色で塗られたレイヤーを複製し、レイヤーグループの外に出して一番下に移動させます。

あとは名前を付けてエクスポートし、PmxEditorで体の材質に保存したテクスチャを割り当てれば完成です。

色合わせ

頭部の挿げ替えなどで顔のテクスチャと体のテクスチャの陰影色などを合わせる場合の手順です。

顔と体の陰影色を合わせる


顔(頭部)のテクスチャをGIMPで開きます。
陰影の塗られていない箇所をスポイト([O]キー)で取得してその色で塗りつぶされた新しいレイヤーを作成します。


体のテクスチャをGIMPへ読み込ませ、新しいレイヤーグループを作成してそのグループの中に体のテクスチャのレイヤーを入れます。


体のテクスチャの陰影の塗られていない箇所をスポイト([O]キー)で取得してその色で塗りつぶされた新しいレイヤーを作成します。
そのレイヤーの合成モードを色消しゴムにします。


一旦、顔(頭部)のテクスチャ以外を非表示にします。
顔(頭部)テクスチャの陰影色をスポイトで取得してその色で塗りつぶされた新しいレイヤーを作成します。
レイヤーの合成モードをHSLカラーにします。


あとは名前を付けてエクスポートし、PmxEditorで材質に保存したテクスチャを割り当てれば完成です。

頭部と首先のつなぎ目を合わせる

顔と体の陰影色を合わせるで頭部と体の陰影色は合わせられましたが、首先と頭部の付け根の色が合っていないので修正します。
Blenderで修正する場合
Blenderへモデルをインポートします。

今回は首先(体のテクスチャ)の陰影色で頭部の付け根の陰影色を塗りつぶします。


体オブジェクトを選択した状態で、トップバーからUV Editingタブを開き、[A]キーですべて選択します。


トップバーからTexture Paintタブを開きます。
左側のテクスチャが表示されている画像エディター画面に選択した面のUV展開図が表示されるので、首先部分にマウスカーソルを持っていって[S](スポイト)キーを押して色を取得します。


トップバーからLayoutタブに戻り、顔のオブジェクトを選択して[TAB]キーから編集モードにし、[A]キーですべて選択します。


Texture Paintタブをもう一度、開きます。
画面左の画像エディターには顔のテクスチャが表示されているはずですが、体のテクスチャが表示されている場合はリンクする画像を閲覧欄から顔のテクスチャを開きます。
画像エディター上にマウスカーソルを持っていき、[N]キーでサイドバーを出してブラシサイズを調整して先ほどスポイトで取得した色で頭部の付け根の陰影部分を塗ります。


塗り終えたら画像エディター画面上部の画像から名前を付けて保存...でテクスチャを別名保存します。

あとは、PmxEditorでMMDモデルを開き、顔の材質に設定されているテクスチャを別名保存したテクスチャに置き換えたら完成です。
GIMPで修正する場合
まずはUV展開図をエクスポートします。今回はBlenderでUV展開図をエクスポートしますが、PmxEditorのUV展開図出力プラグインを使ってエクスポートする事もできます。


Blenderで修正する場合を参考に、Layoutタブで首先の面を選択します。


トップバーからUV Editingタブを開き、UVUV配置をエクスポートで首先のUV展開図をエクスポートします。


Layoutタブに戻り、今度は顔のオブジェクトを選択して[TAB]キーから編集モードにして[A]キーですべて選択します。
もう一度、UV Editingタブを開いて先ほどと同様に、UVUV配置をエクスポートで顔のUV展開図をエクスポートします。


GIMPで体のテクスチャと体のUV配置図を読み込みます。
首先の陰影色をスポイトで取得します。


GIMPへ等でテクスチャと頭部のUV配置図を読み込ませ、UV配置図を参考にスポイトで取得して色(体の陰影色)で頭部の付け根をブラシで塗ります。


あとはエクスポートしてPmxEditorで材質にテクスチャを割り当てれば完成です。

テクスチャに書き込まれた乳首などの合成

例えば肌を褐色化したいけれど、乳首(と乳輪)の色まで変わってしまう...という場合の手法です。

※GIMPの旧Ver(2.8.10)と最新Ver(2.10.8)では色を透明度にの仕様が変更されています。(バグ?)
このため、この項目ではレイヤーの合成モードを利用して色を透明色に変換しています。


GIMPでテクスチャを開き、左側のスポイトアイコンをクリックするか、[O]キーを押してスポイト機能を有効にします。
乳輪のすぐ外側の色をスポイトで取得します。


右側のレイヤーウインドウで右クリックメニューから、新しいレイヤーの追加を選択します。
''塗りつぶし色'を描画色にしてOKを選択します。


描画色で塗りつぶされた新しいレイヤーのレイヤー合成モードを色消しゴムに変更します。


上記の方法を繰り返して、色を透明色にして行きます。


レイヤーウインドウで右クリックメニューから新しいレイヤーグループを選択して追加します。
レイヤーグループに上記のレイヤー群を入れ、レイヤーグループの外側の下に褐色化などした改変テクスチャを読み込ませます。

あとはファイル名前を付けてエクスポートでエクスポートして完成です。