見出し画像

【COM3D2】NPRシェーダーのUIを使用してMOD化せずに反射・Emissionを適用する方法


※MOD環境構築済み、NPRShader.Plugin導入済みの前提で話を進めます。

はじめに

このnoteでは、MOD化せずに反射・Emissionを効かせる方法を説明します。要するにオダメ上で完結する簡易NPR化みたいなものです。NPRShader.pluginは、UIが実装されたためオダメ上でのNPR用AlwaysColorChangeEx.pluginのような役割を果たしています。
これにより、オダメ上だけで簡易的にNPR化出来ますが、出来る事の範囲には限りがあります。
このnoteを読んで出来る事と出来ない事については、先に列挙しておきます。

このnoteの内容で出来る事
・金属、鏡面系マテリアルへの一時的な変更
・Emissionを付加し、SCプラグインEmissionエフェクトで一時的に光らせる

このnoteの内容では出来ない事
・Matcapの適用(ヌルテカには出来ない)
・Normalmapの適用(凹凸を加える効果は与えられない)
・同一マテリアル内での反射やEmissionなどの塗り分け
 (マテリアルが1つの時、アイテム全てに反射、Emisisonが効いてしまう)
・その他、発光アニメーション

この辺りはNPR用のtexを用意し、menu、mateを記述してMOD化するしかありません。

また、NPRShaderにはいくつものShaderがあり、透過反射Shaderなどもありますが今回は割愛させていただきます。ACCexで透過への変更なんかに慣れている場合はこのnoteの内容を下敷きにすぐに応用できるのではないかなとは思いますが。

それでは、次の項から実際の作業を解説していきます。


1.モデル選択

まずは、NPR化する対象を決めます。
対象とするアイテムですが、まずは金属部のみのアイテムや金属とその他の部分のマテリアルが分かれているものが扱いやすいです。慣れてきたら服の質感をちょっと変えるみたいな応用もできたりします。

ここでは、柄と刀身マテリアルが分かれていてちょうど良いので
嫁イド鑑定団の景品、名刀/抜き身・白を例に説明していきます。
例としては。デフォルトに有るアイテムの方か良いのですけど、例として良いものが無かったのですんません。

画像1



2.NPRのUIを起動しマテリアル選択

まず、NPRShaderのUIを立ち上げ、NPR化するアイテムを装着しているメイドさんを選択します。ここでは一人しか呼び出していないので1人しかいませんが複数人呼び出していればそこから対象のメイドさんを選択することになります。

画像2


メイドを選択したら装着してるアイテムのカテゴリ一覧が出てきます。
名刀/抜き身はアクセサリー腕なのでaccudeを選択します。
選択するとマテリアルが2つ表示されます。

画像3


このアイテムでは、下側1番のマテリアルが刀身を担当しているので1番を選択します。選択するとマテリアルの調整項目が表示されます。

画像5


3.シェーダー変更

今回は、映り込みを反映していくため反射系のShaderを使用しますが、
ここでは、ShaderをNPRToonV2_Reflectionに変更していきます。
Shader CM3D2/~~~~~~(defalt)の項目をクリックすると
Shaderの一覧がプルダウンメニューに表示されます。
今回使いたいのは、NPRToonV2_Reflection_なのですが画面外に見切れて選択できなくなっています。これは、変更するカテゴリーが下の方だと良く起こります。

画像6

このままだとShaderが選択できないので、ちょっとした小技を使って対処します。どのでもShaderでも良いので、プルダウンメニューの中からNPRのshaderに変更します。するとスクロールすることのできる範囲が広がるので、全体を上の方にスクロール移動させておきます。

画像7



その後、改めてShaderのプルダウンを選択すると一番下までスクロールできる様になり見切れていたShaderが選択できるようになります。
ここで、目的のNPRToonV2_Reflection_を選択しておきます。

画像8



4.反射シェーダーのパラメーターを調整する

ここから、各パラメーターの値を調整して質感を変更していきます。
ここであらかじめ注意点を言っておきますと

SS撮影に反射NPRを使う場合、パラメータの調整は背景を決めてから行った方が良い

理由については、後で詳しく説明します。

この、noteにて主に調整するパラメータは、MetallicとSmoothです。調整について説明する前に少しだけ各パラメータについて説明します。

・Metallic
表面がどれだけ金属的かを調整するパラメーター
0で非金属、1で金属です
なんのこっちゃだと思いますが、凄くざっくり言うと表面上の色を環境光から制御するパラメータです。Smoothnessと同時に調整することが多いパラメータです。

Smoothness
表面の滑らかさを調整するパラメータ
0から1に近づくにつれて滑らかな表面として表現され1で完全な鏡面です。
こちらは、単体で調整されることもあります。(ツルッとした樹脂の表現とか)

各パラメータの変化例をしめしておきます。

画像9


それでは、MetallicとSmoothnnessを調整していきます。
日本刀の刀身は反射の強い金属なのでまずは、MetallicvalueとSmoothnessvalueの両方を0から1へ変更してみます。
MetallicvalueとSmoothnessvalueの両者が1の時は鏡面金属となりますので、周囲の環境を写し込んでいる鏡面の質感になっています。

画像16

画像17


ここで、背景を変更してみると背景の色によって見え方がいろいろと変化するのがわかります。

画像12

SS撮影に反射NPRを使う場合、パラメータの調整は背景を決めてから行った方が良いと述べた理由はここに有ります。反射を効かせた場合、環境の影響を強く受けます。MODを作成しているなら別ですが、今回のように一時的にSS撮影用に質感を調整するといった場合は、その時使う背景に合わせて調整した方が二度手間にならずに済みます。

それでは、更に調整を続けていきます。
日本刀の質感を観察してみると、金属ですが完全鏡面という訳ではないのでSmoothnessvalue0.9程度に変更して少し粗い面としてみます。

画像14

画像13


この段階では、劇場の赤、黒テクスチャに周囲を囲まれているためその色が強く出てちょっと見にくくなっている状態です。これは、Metalicの設定による影響が大きいのですが、NPRshaderのMetallicについての解説を読むと以下の様に記述されていて金属は1で良いとされています。

・金属(Metallic)
※基本的には金属なら白(1.0)、非金属なら黒(0.0)で塗り分ければよい。中間色グレー(値: 0.5等)を使用することは殆ど無い。

ただ、現在調整している劇場では暗くなりすぎと感じるので、意図的にMetallicvalueの値を下げて環境の影響を少なくしてみます。

画像16

まだまだ、暗さが残るかなといった印象はありますがここでは、Metallicvalueを0.8としてみます。
背景を決めてから行った調整した方が良いと言った手前アレなんですが、他の背景でも確認してみると詰め代はあるものの悪くはないかなと言った質感です。

画像16


ただ、劇場や夜のロータリーで使うとなると暗さがあります。
強引な方法ですが、ここでは少し明るさを乗せる小技としてEmissionを効かせるという手を使います。Emissionは、_EmissionMapと_EmissionColorのRGBを乗算した値をモデルの色に加算するパラメーターです。オダメ上だけで簡易NPR化する場合、_EmissionMapは持っていないので_EmissionColorだけが加算される状態になります。
加算とは何かとあると思いますが、ものすごく乱暴に説明しますと加算は重ねたレイヤーによって明るくなるデジタル処理の事と思っておいてください。

作業としては、まずEmissionColorのダイアログボックスを開きRGBを全て255とします。Color設定次第で色を乗せることも可能です。

画像17


EmissionColorを設定したらEmissonValueの値を大きくしていきます。すると、EmissionColorの値が加算され見た目を明るくすることができます。

画像18


もうちょっと明るくしたいなという場合には、EmissonPowerの値と小さくしていきます。今回はこれで調整を終えてみます。
まぁ、それっぽくはなったんじゃないでしょうか。

画像19


ここで、Emissionを使って明るさ調整した時の注意点ですが、SceneCapture.PluginのEmissionやブルームを使用した時に、意図せず発光してしまうという現象が起きますので注意してください。

ここまでが、反射Shaderの設定方法となります。反射Shaderは、元のテクスチャの色や背景でどういった調整をするかが異なるのでこの記事内容を元に各自いろいろ弄って遊んでみてください。


余談
ここから先パラメーター調整の追い込みは一種の沼です。各パラメーターは相互に関係しているので、明るさ上げたならもうちょっと滑らかな面として扱って、もう少し金属感だして、など拘っていくと調整のループを繰り返しすことになります。最後は、実物を参考にするなりして各自お好みで調整してください…



5.Emissionの効かせ方

最後にSceneCapturePluginのEmissionエフェクトで発光させるための方法を説明していきます。まぁ、Emissionの方は簡単です。

ここでは、まず紫色に光らせてみます。
EmissionColorのダイアログボックスを開きRとBを255、Gを0とてEmissionValueを1とします。
前項の設定が残っているかもしれませんがここでは、デフォルト値に戻して調整していきます。

デフォルト値参考
Metallicvalue 0.0
Smoothnessvalue 0.0
EmissionValue 0.0
EmissionPower 1.0

画像21


設定したらNPRShaderのUIを残したままにしてSceneCaptureのUIを表示し、Emissionのエフェクトをオンにします。この時点でうっすらと発光しています。

画像21


発光の度合いは、以下の項目で変化します。

SCのEmissionエフェクト
敷居、ソフトニー、半径、強度

NPRのEmission関連項目
EmissionColor 、EmissionValue、EmissionPower、EmissionHDRExposure、EmissionCustomBlend

この辺りの関係性は私も完全に把握できていないのでいくつかエフェクトを掛けた例を載せておきます。
EmissionColorは一番変化が大きい項目だと思いますが、明度を高めの方が、エフェクトがかかりやすいようです。

画像22

画像23

画像24


MetallicvalueとSmoothnessvalueを大きく設定していると、Emissionの効果の中に埋もれてしまうことがあります。こんな時は、MetallicvalueとSmoothnessvalueの値を下げる方法もありますし、Rimlightを調整して白くしてしまうという手もあります。

画像25

画像26


基本的に、NPRのEmissionValueを 1.0としたらあとは、SCプラグインのEmissionエフェクト設定項目を弄って発光のさせ方を調整するのが良いかと思います。

ただ、Emissionのかかったアイテムが複数呼び出した場合は、それぞれのEmission設定の違いから、あちらを立てればこちらが立たずといった状況になることもあるかと思います。そういった時は、NPRのEmission関連項目を調整してやる必要があります。

画像28


6.おわりに

ここまで、読んで頂きありがとうございます。
今回のnoteの内容は以上です。
かなり冗長な内容になってしまったので、そのうち分割、修正していこうかなとは思っています。このnoteを読んで何かわからないことが有れば、Twitterのしだもんまでどうぞ。わかる範囲でお答えします。
それでは




(おまけ)マテリアルの見分け方

どのマテリアルが何を受け持ってるのか分からんとなった時に調べる方法を書いておきます。手っ取り早いのはColorを弄って色が変化する部分を観察することです。

ここでは、0番のマテリアルを選択しColorのRGBを全て0にしてみました。
刀身以外の部分が黒く変化したので0番は刀身以外の部分を受け持ったマテリアル、1番が刀身のマテリアルと分かります。
この辺りは、ACCexに慣れてるならACCexで調べた方が早かったりはします。

画像4


(おまけ)反射系マテリアルについて

反射系Shaderは次の4つが用意されています。
・アウトライン無し _NPRMAT_NPRToonV2_Reflection_
・アウトライン有り _NPRMAT_NPRToonV2_Reflection_OutlineTex_
・透過 _NPRMAT_NPRToonV2_Reflection_Trans_
・カットアウト _NPRMAT_NPRToonV2_Reflection_CutoutAtC_

アウトライン有り無しは、非透過の反射体でアウトラインが必要かどうかでどちらを使うか決めていきます。透過とカットアウトは、どちらも半透明だったりレースのようなものを表現するのに使います。ただ、透過とカットアウトは、仕組みが違ったりしましてカットアウトはアンチエイリアス設定が効いてないと透過しないとかあります。長くなるので、詳しい説明は割愛しちゃいますけど、半透明の物を反射させたいと思ったら透過かカットアウトを選択して、Color項目内のA:アルファの値を弄って試してみてください。

(おまけ)MetallicとSmoothnessの変化例

・Metallic
 Smoothnessは0で統一

画像29

画像30

Smoothness
 Metalicは0で統一

画像31


(おまけ)反射shaderを使ったMOD作成時の確認とか

完全に余談なんですが、NPRの反射shaderを使ったMODを作る場合、パラメータの値によって一部の環境で極端に見えにくくなったりすることがありますので、複数の背景で確認しながらmateを記述していく必要があります。私は、劇場での調整がやりにくいのでロータリー背景なんかを基準として使うことが多いです。

画像27


この記事が気に入ったらサポートをしてみませんか?