ねこさんなのです

本日は法線マップについて学んでみましたのですよ
|`ヮ´)<法線演習は砲戦演習のシャレなのでスルーで


katasou01









↑うわーなんか髪の毛固そうな白雪たちですにゃー

髪の毛固そうといきなりいわれても困るので、比較画像も
みてみましょうです

katasou02









↑(左)ノーマルの髪の毛 (右)陰影を強調した髪の毛

今週はリアルっぽい表現を検討するため「ray-cast」という
物理ベースレンダリングをMMD上でテスト開始しています

左は「ray-cast」に標準で入ってた「material_hair_sss.fx」
であり、太陽があたってる感じが強いですが多少髪がのっぺり
している感じなのですよ

今回、髪の毛に陰影をつけることにより、髪が固そうに
みせたりするにはどうするかを説明しようという方向で
進めます


 


MMDモデルの改造は必ずバックアップをとってから
MMDモデルの改造は必ずバックアップをとってから


d(`ヮ´)<だいじなことなので

ノーマルマップに関する改造をすると、対応したシェーダー
を使わないような通常の使用には適さないモデル
なってしまう可能性があるので別名で保存せざるを
得ないとあらかじめ断っておきます



(1)ためした ray-cast のばーじょん

https://github.com/ray-cast/ray-mmd/releases
↑(ray-cast)物理ベースレンダリング

現在4種類のリリース版が公開されていますが
本記事の内容については 1.3.1 と 1.3.0 で動作を確認して
おきました

なお 1.2.x では書式が違いますのでご注意くださいです

基本的には、ねこぽんぽんはだいたいどんなソフトでも
開発中バージョンは使わずリリース版を使っています

ただし 1.2.x にしか含まれてないブツもありますので
リリース版はすべて落として展開しておくのがセオリーです

(2)gimp で gimp-normalmap を導入

画像処理ソフトの gimp のプラグインが公開されていますので
それを導入しておきましょうです

https://code.google.com/archive/p/gimp-normalmap/
↑ 「gimp-normalmap」

Downloads から「gimp-normalmap-win64-1.2.3.zip」を
もってくる(いちおう zip ファイルを右クリして
ブロックの解除をするのがセオリーです)

展開すると exe が1こと dll が3こできますが、
標準では
 exe → C:Program Files\GIMP 2\lib\gimp\2.0\plug-ins
 dll → C:Program Files\GIMP 2\bin
にそれぞれコピーまたは移動すれば完了です

余談ですが「Notepad++」という、ノートパッドの
えらいソフトを(入れてなければ)入れることを推奨です

https://notepad-plus-plus.org/
↑(Notepad++)

今回は npp.7.4.2.Installer.x64.exe を導入しています


(3)テクスチャの読み込みとノーマルマップ化

改造したいMMDモデルの髪の毛のテクスチャを読んでください
(例:吹雪 hair_49F.png みたいなアレ)

正常にコピーできてれば「フィルター」「マップ」
「Normalmap」でノーマルマップ化の変換ができます

(水色とピンクのサイケな画像省略)

パラメータがいくつかありますが「Scale」は「10」~「100」
ていどで調整するといいです(これが陰影の深さに相当します)

また「InvertY」というチェックもありますが「これは凹凸が
逆だろう」というケースではチェックして反転してください

他の(ray-cast 以外)で使いたいとかいうケースもあるでしょう
からここでは何らかの設定の推奨は行わいません

ここでは tnormal/ というフォルダ以下に元テクスチャと同名で
各ノーマルマップを作成・保存したということで以下進めます

(4)材質のスフィアの「サブTex」にノーマルマップを指定

katasou03









↑上記は磯波の髪だけのモデルですが・・

材質名「hair_rear」に対してデフォではスフィアが
「s_hair_79.png」が「加算スフィア」と設定されてますが
ここを今回作ったノーマルマップに置き換えてみることに
してみました



katasou04









↑「スフィア」及びその右の設定を「サブTex」に変更しています

このようにしてすべての髪材質でテクスチャ変換と
スフィアの設定変更を行いました

(吹雪型セットの吹雪白雪初雪深雪磯波浦波の
 hair_xxX.png がテクスチャとなってる全材質を対象に作業)

実行後になんか髪の毛が半透明っぽくなると思いますが省略


(5)マテリアルの加筆修正

ray-cast の「\Materials\Hair」フォルダの下の
「material_hair_sss.fx」を下記のように書き替えて
「material_hair_sss_NM.fx」という別名で保存しました

(`ヮ´)<だいじなことしょうりゃく

(※)他の fx ファイルを使ってる場合はファイル名を
置き換えて以下作業するようにお願いします
書き換える部分は同じです


(修正前)

#define NORMAL_MAP_FROM 0

(修正後)

#define NORMAL_MAP_FROM 4

↑ごごごご・・

あとは ray-cast を入れて髪の毛の材質で「Material」に
「material_hair_sss.fx」でなく「material_hair_sss_NM.fx」
にしてやれば、記事冒頭などのスクショのようにわりと
強烈な違いが出るかと思います


 ・・・


○動作例

katasou05








↑(左)見慣れた白雪 (右)法線マップで髪固そう白雪

katasou06








↑回れ右させて後頭部やおさげも確認しておきましょうです
 (左が通常、右が法線マップ対応版)


 ・・・


○前髪の透明材質が白くなる件について

吹雪型、特に吹雪白雪初雪深雪については髪テクスチャに
透明部分が含まれており、この種のシェーダーを使うと
髪に白いものが含まれる現象が散見されることがあります


katasou07












↑妹達の世話による気苦労で前髪に白いものが混じった吹雪
 スカイドーム(怪獣対若大将P)
 グリッドフロア(Kizck)




katasou08














↑いっぽうロシアは眼球に放射光材質を当てて目を光らせた

白いのを目立たせなくするという点については、
目を光らせると実は問題の一部は解決します
(`ヮ´)<誰も要求してないような解決法きたにゃー

さらに「MME」のタブで「PSSM」というのが影を
つけてるところなのでそこで前髪の材質を「解除」を
すると、前髪から影が消えて白く濁る部分もわりと
目立ちにくくなります

上記のスクショは前髪の材質の「PSSM」を解除したものです

あくまでもここで述べたいのは髪影が消えて眼球が光ってると
前髪の白い部分が目立ちにくくなるという意見であって、
透過部分の白い部分を本当に消す手法については識者に
委ねたいと思います

なお「PSSM」というのは「Pretty Soldier Sailor Moon」
即ち「美少女戦士セーラームーン」のことであるのは
極めて良く世間で知られていますので、ここのブログに
書くまでもありませんから省略します
ヽ(`ヮ´)ノ


 ・・・


○問題は長髪の末端部分の透過部分

前髪は影がなくても実際それほど不自然ではありませんが
後髪の影を消してしまうと、地面影がハゲになり特に長髪の
女モデルの動画としては致命的といわざるを得ません


katasou09








↑初雪(中央の水着)の後ろ髪を直線にカット

今回は5秒間の熟慮の結果、半透明材質問題を解決するのは
時期尚早と判断して髪の末端のUVを縦に縮め、
透明部分のテクスチャを使わない(外見的には後ろ髪の
末端の透明部分を削除する)ということにしておきました

髪の末端の部分が直線になってしまいましたが、これにより
髪の透明材質の白いものがまじることはなくなります



 ・・・


○さいごに動画など

髪の毛の陰影をつけるために、法線マップをテクスチャから
作成する一手法について今回説明させていただきました

服に(特に水着などに)身体の凹凸を浮かべたいとか、
あるいは肌に汗などを載せたいとかもあるかもです

今回は髪の毛の例でしたが、ぐぐってみますと世間では
各種ノーマルマップを公開配布している方もいるので
それらに今回の手法を応用することが可能だと思われます





↑モーション:一騎当千(moka)


↑別の fx ファイルからこぴぺしてしまったので修正しました

katasou10








↑大自然の中で法線・・いえ法線演習する吹雪型

法線マップは ray-cast 以外でも比較的重要な技術と
思われますが、実はいままで法線マップを自前で用意した
ことがなく ray-cast がわりと高速に動作することを今週
ようやく知って初めて着手してみた事案でした


○モデル
・とらはぜ式153A
 髪のみ:吹雪型V3.1より
○アクセ・背景
・ray-cast 1.3.1  https://github.com/ray-cast/ray-mmd/releases
・実写背景 http://www.hdrlabs.com/sibl/archive.html
 ArboretumInBloom

ずさーc(っ`ヮ´)っー!