忘備録でーす



プリティウェイトレスを作りたい

いおりんに着せたくなったので。

折角なので前に作ったハイスクールメイトとは違う作りかたでやってみます。
いわゆるテクスチャ書き換えだけで作るってやつです。
っていう辺りの個人的まとめ。

MODリンク

・Classic Maid Top
https://twitter.com/kouryaku2
今回のトップスのベースにさせていただいております。

・MaterialEditor
https://www.patreon.com/posts/materialeditor-27881027
今回大活躍します。

・Illusion Overlay Mods(KK_OverlayMods)
https://github.com/ManlyMarco/Illusion-Overlay-Mods/releases
作業中のデータ読み込みとチェック柄を乗せる所で使います。

・ABMX(KKABMX)
https://github.com/ManlyMarco/ABMX/releases
スカートの形状を変更するのに使います。

服の改造の仕方の違い

じゃあ早速…と行く前に。

上にも書いた通り、服のMODは色々作り方があります。
大きくは2つ。

服データごとスタンドアロン化するパターン

【メリット】
・Blenderとかで形状(メッシュ)を編集できる
・カラーマップ(どこに色1~3を乗せるか)を編集できる
・キャラメイクのパーツ選択画面に登録できる
・追加のテクスチャ無しなので軽い

【デメリット】
・セーブデータのほかにMODデータファイルが必要
・本体へのインポート/エクスポート作業が発生

これはハイスクールメイトの時のですね。
スタンドアロン化するので自由度は各段にこっちが上。
ただコイカツ本体で読み込ませるためのインポート作業とか結構難易度高いです。

オーバーレイとテクスチャ編集だけのパターン

【メリット】
・正常ロードに必要なのはベースの服データとセーブデータだけで管理が楽
・インポート・エクスポート作業がコイカツ本体+MOD内で完結できる
・簡単(簡単とは言ってない)

【デメリット】
・元データを読み込んだ上で追加で読み込むのでちょっと重い
・形状(メッシュ)を編集出来ない(一部消すことはできる)
・カラーマップを編集できない ※
・服データに追加テクスチャ・画像を読み込むので重くなる

服系のシェーダーではカラーマップ編集不可
(アクセ系のシェーダーに変えればいける)

元とするデータがバニラだったりHFなどのみんなの所持率が高いMODだと
服データの配布はセーブデータだけで良いのも楽でイイですね。

重くなるのはあまり感じにくいですが、
高解像度のテクスチャ使っていて重いスタジオとかで読み込むと実感できます。

今回はこのオーバーレイとテクスチャ編集でやりまーす。

だって…メッシュ改変とかインポート作業とか…めんどいし…

メインテクスチャのインポート方法の違い

さて、メインテクスチャのインポートには2種類やり方があって

  1. Material EditorでMainTexにインポート
  2. Overlay Modsでインポート

の2パターンがあります。どっちが良いかは一長一短です。

Mateiral EditorでMainTexを上書き

【メリット】
・高解像度のテクスチャデータが使える(1024x1024px以上が可能)

【デメリット】
・まるっとテクスチャを上書きするので後から色変更などができない
・インターフェース的に何を適用しているのか分かりづらい

KK_OverlayModsで上書き

【メリット】
・ベースのテクスチャ+上書きテクスチャの組み合わせができる(ので色変更とかもできる)
※まるっと上書きタイプもできる
・GUIでサムネ表示されるので分かりやすい

【デメリット】
・テクスチャサイズが標準の1024x1024固定なのでちょっと低解像度


さて、今回は色変更できるようにしたいので

・上書き部分(グレースケールのタータンチェックのとこ)はOverlayMods
・AlphaMaskその他はMaterial Editor (※後述)

でいきます。これなら色変更できるはず。

ですが作業時はOverlayModsだけでやっていきます。面倒だし。

Material Editorの項目まとめ

で、ここから実際に作っていくんですが制作順に書いてもとっ散らかるだけなので
今回ゴリゴリに使うMaterial Editor(ME)の各項目について自分用に大雑把にまとめ。

Renderer



メッシュ全体の情報です。
服の場合は大体2個メッシュが入っていて、1個目は通常、2個目は半脱ぎです。
特殊なのはもういくつかメッシュが格納されてたりします

Enabled

メッシュ全体の表示・非表示を制御できます。
オフれば何やっても表示されなくなりますので基本オフにはしないですが
衣装作ってる時とかに設定だけ残して一時的にオフにしたい時に使います。

Shadow Casting Mode

このオブジェクトが生成する影を制御できます。
本体は非表示で影オンリーとかもできる。
主にスタジオで弄りますが髪をアクセで作る時に影が邪魔って時とかにも使えます。

Receive Shadows

他のオブジェクトが作った影をこのオブジェクトに反映させるかを制御できます。
これも上と同様な感じの使い方。
※一部のシェーダーは影そのものを表示しない仕様とかもある

Material



このオブジェクトの描画方法・設定項目です。
これ自体を弄ればもっと自由な描画が出来るらしいですがやったことないです

Shader

オブジェクトの描画方法設定になってる…らしい。
確かにシェーダーを変えると全然描画方法変わりますね。




宇宙…!

他にも設定できるマスクや項目が増えたり減ったりします。

Render Queue

レンダリングする順番です。
スタジオで時々起こるんですが位置関係から考えて変な見え方する場合は大体こいつが原因。
覚えてないけど数値が小さい順にレンダリングされるんじゃなかったかな。

AlphaMask

一部を非表示にしたり半透明にする事が出来るマスク(画像)です。
服のシェーダーでは設定可、アクセ系シェーダーでは不可。

AnotherRamp

メタリックを表現する時に使うツヤ画像を入れる場所です。




こんな感じ。
AnotherRampFullという数値で強度を変えられます。

DetailMask

2D的な陰影の濃さを表現するマスクです。




自分もそんなに分かってないんですが

・黒→元の色
・緑→濃い程暗くなる
・赤→濃い程白くなる
・青→何か効果あるけどわかんね

となっているようです。

光の影響を受け、AnotherRampFullやSpecularの設定も影響するので、
上のAnotherRampとセットで主に赤をメタリック表現に使うこともあるようです(多分)

LineMask

実はよく分かってない。

・DetailMaiskに近い挙動
・緑の部分ほど暗くなり、アウトラインの濃さの設定の影響を受ける

っぽいです。
(この後よく分かってないまま使う)

liquidmask

水滴表現(意味深)用のマスクです
(弄った事は)ないです。

MainTex

特殊な使い方はしない、いわゆるテクスチャ画像です。
基本的にはここに入れた画像はそのまま出力されます。

上のアルファマスクとは別で、ここに設定した画像のアルファ値も
そのままオブジェクトにも反映されるので
シースルーな感じや、消したい部分とかもこれで表現できます。

NormalMap

法線マップ、あるいはバンプマップと呼ばれるやつです。
後述します。

Texture2 & Texture3

これもお汁の表現用だったっけかな。
使ったこと無い。

ColorMask

服用のシェーダーでは設定できませんがアクセ系のシェーダーなら設定できます。
色1~3をどこに塗るかの設定です。
詳しくはハイスクールメイト時参照。

その他数値設定

弄ってれば分かると思うので解説はスルー。

・アクセのシェーダーの場合、LineWidthsでアウトラインの太さを設定できます

この辺踏まえていざ実践。

トップスを作ろう

ようやく作業開始。
まずは元モデルを参考に既存の服データでそれっぽいのを作ります。



セレブコンビですわよ。

長袖がアレですがベースとしては既に良い感じ。
テクスチャだけの改造方式の場合、改造元でどれだけ寄せられるかが鍵ですね。

では早速Material Editorで作業に必要なデータを抜き出します。

トップスからMaterial Editorを起動して
UVマップと、MainTexからテクスチャをエクスポートします。






これで改造用の元データと参考用のデータが出てきました。
(ついでに見やすくする為にツインテに髪型変更(かわいい))

次にいつものテクスチャがどこにどう当たってるかを確認するため、
マッピング確認用テクスチャをMainTexにインポートしてみます。



テクスチャ画像のどこがモデルのどこに貼られるのか大体わかる。

今度は上3つをGIMPでレイヤーに重ねていきます。

ちなみにUVは4096 x 4096で出力されますが、テクスチャは基本1024 x 1024です。
なので編集時はUVを25%に縮小が必要。
(高解像度のテクスチャ作るなら別)


わかりにくーい…
けどこれで必要な情報が全部揃ってるのでレイヤーON/OFFしながら作業します

服の一部削除とボディアルファマスク

さて、まずは一番差異のある長袖を消しちゃいましょう。

上にある展開図から袖を探していきます。
確認用テクスチャで黄色枠で…袖っぽい形…


これかな。


UVマップの範囲を選んでテクスチャを削除しちゃいます。
で、これをPNG画像にエクスポート(1024x1024)

早速この改造テクスチャをインポート。
テスト段階なのでOverlay Modで元のテクスチャごと読み込みます。


アルファ込みで丸ごとテクスチャを上書きしますのでHide base textureをチェックします。

この設定は既に敷かれているテクスチャに、テクスチャを乗せる形で追加するか、
ベースのテクスチャを無視してまるごと上書きするかどうかの制御です。

本番では早速インポートします。

が…



いおりん…腕が!(ドン!)

どうやらただ消すだけでは駄目だったようです。

さて原因は何かと言うと…ボディマスクです。

体の上に着せる服という構造上、服が無い部分は当然、体を表示しなくてはならんわけで、
その体の一部分を消したり表示したりを制御するのがボディマスクってわけですね。

今回の服で言うと長袖の下は表示する必要がないのでボディマスクで消してる状態。
その長袖を消したんなら当然、腕も消えたままってことですね。

と言うわけで、今度はボディマスクの編集。

Body alpha mask の Dump original textureから今のボディマスクを出力して…


次にそれっぽい半袖の服からボディマスクを出力。


ついでに体型設定からMaterial EditorでボディのUVマップを出力。
それぞれ参考にしながらマスクを弄って、ボディマスクにインポートっと。


半袖になりましたー!

これで衣装ベースが出来ました。

上書き用テクスチャの作成

ここからはテクスチャの改変です。
戦場をInkscapeに移します。

上のUV+確認テクスチャ+メインテクスチャの3点セットをInkscapeでも作って…
今回はチェック柄のラインを作っていきます。

UV見ながら何となくこのラインかなって部分を塗っていきます。



修正→エクスポート→OverlayModsで読み込み→修正 の繰り返し。

ちなみにOverlayModsもMaterial Editorも一度読み込んでそのままにしておけば、
ファイルを更新した際に自動で再読み込みしてくれます。


出来上がったのがこちらです。
まあまあ良い感じっぽいので、ここから本番用の環境に作り替えます。


まずは上でやった長袖の部分だけで消した画像を作成します。

1024x1024の真っ白な画像で、消したい部分だけ削除したデータになります。

次に上書き用テクスチャの作成。
これも1024x1024で、上記の色を塗ったラインの部分だけのデータを用意。


アルファマスクはMaterial Editorでインポート。
上書きテクスチャはOverlayModsでインポート。
(今回は上書きなのでHide base Textureの設定はオフ)


長袖が消えて、色も変えられて、オーバーレイテクスチャも表示されました。
良い感じゃないっすか。

さてラスト!
最後にチェック柄を塗っていきます。


こんなチェック柄を用意して、上書きテクスチャの黒を塗ります。
チェック柄の作り方は色々やり方あるんで省略。


塗りました! が…

うーん…若干ハリボテ感がありますね…
何か足りない…

足りないもの…実はうすうす心当たりがあるんですが…

Normal MapとDetail Maskです(多分)

Normal Map・Detail Maskの改変

上にも軽く書いてますが改めてNormalMap と DetailMaskってなんやいね。

NormalMapについて

NormalMapとはメッシュ(ポリゴン)にライトが当たる際に
疑似的に凹凸を表現できるようにする為のデータです。
これを使えば平面な3Dデータでもある程度立体的な質感が得られます。
今回弄るのは初です

DetailMaskについて

こっちは髪弄りの時にも触りましたが、
DetailMaskとは、アニメ的表現をする為に追加する2D陰影です。
NormalMapが立体感を出す影ならこっちは2D的表現な影…でいいのかな?

立体感の表現にはこの両方が重要で、どっちも弄らないとだめ…かも?
よく分からん。

DetailMaskの修正

こっちは前もやったのでぱぱっと

Material EditorでオリジナルからDetail Maskをエクスポートしたものに
さっき作ったテクスチャ用データにアウトラインを乗せて緑に塗ったものと合成。
(Inkscapeならその辺はかんたん)


こんなの。

NormalMapの修正

こっちは触ったことないので…さてどうしたものか…

NormalMapって


こんな風に半透明でうっすいデータなんですね。
(背景の市松模様は透明を表してるだけ)

こんなもんどうやって作るのか…
まあ分からないなりに頑張ってみましょう。

とりあえず調べてみるとGIMPには法線マッププラグインがあるらしいです。

https://code.google.com/archive/p/gimp-normalmap/downloads

これを使ってみますか。


こんな風に黒く塗って、弱めにぼかし入れて…


GIMP2に持っていき

フィルター→汎用→法線マップ



プラグインの設定を弄ってで良い感じに立体感出します。

出来たら彩度を下げてグレースケールに。


後はレイヤーの不透明度やレイヤーの合成モードなどを弄って周りに溶け込ませて完成。

あとはインポートです。


どやろか。


おっ、何か少し馴染んだかも。
比較確認してみますかね。


左がDetailとNormalMap弄る前で右が作ったやつ。
うーむ…まあまあ?

まあ良しとしましょうか。

とりあえず上半身は完了ってことで。

長くなったので終わり。