ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

いまさら聞けないNCHLShader2の使い方
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

いまさら聞けないNCHLShader2の使い方

2015-07-19 23:32
  • 1

 とかいうよくありそうなハウツー本みたいなタイトルにしてみた訳だが…。需要?なにそれ?おいしいの?NCHLShader2のコンテンツツリー見ても500件以上登録(2015/7/19現在)されているので、みんな普通に使えてるんでしょうな。いやまて、日本に3億人いるという(ニンジャナンデ!?)MMDerからすると、

1. 使いたくてもPCスペックが足りぬorそもそもエフェクトなぞいるか!(約1億人)
2. アニメ調シェーダーの方が好きです、でも象さんはもっと好きです(約2500万人)
3. ニコニコ動画外で活動するYoutuber、好きなことで生きて逝く(約1000万人)
4. NCHLShader2を使っているが、FBIが怖くて作品を公開したことがない(約1000万人)
5. コンテンツツリーに登録すると芋づる式に逮捕される事があるので登録するなとおばあちゃんに昔言われた気がする(3人)
6. MMDerの半分はやさしみで出来ています(約1.5億人)

という分析結果があるので(当社調べ)、残りの方たちからの支持がある!とウチの脳内ワンマン社長が言い出したので書いてみる。なお、次の総会で解職動議が発動される模様。

 まぁなんだ、最近久し振りにMMD立ち上げてみたわけですよ。んで、そこでいろいろ試行錯誤した過程をちょっと書きます。どうも自分の性分として結果より過程が楽しいものでね…。

■NCHLShader2を使うとどんな風になるの?

 こんな風になります。



左:デフォルト 右:NCHLShader2適用
モデル:駆逐艦天津風ver.1.1(つみだんごさん作成)


 フィギュア風とも言われる質感ですが、もうちょっと詳しく言うと、

1. 影の部分の色の階調が増えている
2. 光の当たっている部分の色調もしっとりした感じに
3. 扱える光源が増えた為、より立体的な表現ができるようになった
4. なんかエロくなった気がする

という変化があるでしょうか。1.と2.については、このエフェクトのキモである、ハーフランバートシェーダーの効果ですかね。4.については完全に思い過ごしです。

 エフェクト公開元のnilさんの静画にも作例があります。


 また、タカシアさんという方も使い方を解説して下さっていて、そこにも作例があります。
「NCHLShader2」の使い方 (静画):タカシアさんのブロマガ
http://ch.nicovideo.jp/takashia/blomaga/ar703818

■NCHLShader2はどうやって使うの?

 エフェクトファイル同梱の「説明書.txt」を読めばわかります。
 また、上記タカシアさんの解説記事を参考にすれば使えます。

 以上。
























 …と、いうのも何なので、ほんとに触りの部分だけ書きます。

■NCHLShader2を使う為の下準備 その1:環境を整える

 まずは基本事項。
 エフェクトファイルなので、MMEが使えるMMDが必要です。
 それぞれ最新版を用意しましょう。

●執筆時点でのバージョン
MikuMikuDance Ver9.26
VPVP
http://www.geocities.jp/higuchuu4/index.htm


MikuMikuEffect ver0.37
舞力介入ブロマガ
http://ch.nicovideo.jp/beta183

 こういう初歩でつまづく事も多いので、きちんと確認しましょう。

■NCHLShader2を使う為の下準備 その2:モデルの改造

 次に、スフィアマップなどが設定されているモデルの場合、モデルの改造が必要になります。

 昨今のMMDモデルは、髪の光沢や肌や服の質感を高めるためにスフィアマップファイルやサブテクスチャが設定されているものが多いのですが、NCHLShader2ではサブテクスチャをノーマルマップ(細かな凹凸などの質感を表現)・スペキュラマップ(光沢を表現)として扱う為、そのままではモデルの描画がおかしくなります。

 というか、MMDモデルで設定されているスフィアマップファイルの役割をエフェクトで代用、あるいは光源を計算してより自然な描画になるようにするのがこのエフェクト…なはず。
 NCが何の略か不明ですが(nil custom?)HLはハーフランバートの意でしょう。
 不必要になったスフィアマップファイルの部分に、ノーマルマップ・スペキュラマップを指定してランバート反射を計算させるのが、このエフェクトファイルの本来の使用方法だと思います…、多分。

 とまぁ理屈は置いといて、未改造のモデルにエフェクトを割り当てると、こんな風になります。

 色合いが暗いのはライトの設定が未調整な為ですが、スフィアマップファイルが指定されている材質部分のポリゴンの形が浮き出るなどしてしまっています。

 ですので、最初にスフィアマップを無効化していきます。

 さて、まずはPMXエディタの最新版を用意します。PMXEのバージョンによって操作項目などが変わってくると思うので、「説明の通りにならない!」と嘆く前にこれもきちんと確認しましょう。

●執筆時点でのバージョン
PMXエディタ 0.2.2.2
ダウンロード:とある工房
http://kkhk22.seesaa.net/category/14045227-1.html

 以下、改造の手順です。

1. 改造するモデルのReadMeをよく読んで規約を確認する

2. 改造に制限がなければ、改造したいpmxファイル・pmdファイルをコピー・リネームする

3. PMXエディタに読み込む

4. 材質タブをクリックする

5. 材質リスト内の材質ひとつをクリックして選択状態にする


6. CtrlキーとAキーを同時押しする(Windowsのショートカットキーで全選択になる)

7. テクスチャ/メモ欄のスフィアのBox横のドロップダウンメニューをクリックし、「無効」に設定する。なお、材質リストの先頭の材質が最初から「無効」の場合、ドロップダウンメニューの初期状態も「無効」になっているが、その場合ももう一度「無効」を選択し直す。


8. 改造したモデルを保存してPMXエディタを閉じる

 ね、簡単でしょ?(ボブ並感

 さらにカスタマイズする方法については、エフェクト同梱の「カスタマイズ指南.txt」に詳しく書かれていますので、慣れてきたらToonテクスチャ・セルフシャドウの設定をいじってみるといいでしょう。

■NCHLShader2を使う その1:MMDにファイルを読み込む

 単純なエフェクトならば、モデルにエフェクトを適用させるだけで済みますが、NCHLShader2はMMDに読み込む際にもいろいろと準備が要ります。まぁ、今から書くことのほとんどはエフェクト同梱の「説明書.txt」に書いてる事ですけどね。

1. MikuMikuDanceを起動する
 MMDを立ち上げたらまずは座標軸と地面影を消します。


2. ポストエフェクトおよびコントローラー用オブジェクトを読み込む
 ExcellentShadow.x、HgSAO.x、AmbientController.x、BackLightController.xを読み込みます。AmbientController.xとBackLightController.xは値取得用ダミーなので非表示にします。

 まだ画面上は特に変化はないです。

3. 改造済みモデルを読み込む

 念のためエッジ太さを0にします。まだまだ変化無しです。

4. モデルにエフェクトファイルを適用させる
 MMEのエフェクト割当画面でモデルにNCHLShader2を適用します。

 モデルの描画に変化があり、暗くなりました。

■NCHLShader2を使う その2:光源の設定をする

 さて、ここから光源の設定をしていきます。

 エフェクト同梱の「説明書.txt」には「とりあえずはサンプル画像の値を参考に設定してから,いろいろ弄ってみてください.」と書いてあるのだが、はて?サンプル画像とは?と小一時間ほど悩んだ…。
 何のことはない、同梱の「sample.png」を見てね、という事だった。

上:同梱されているsample.png

 これに載っているパラメータに合わせて設定していきます。

 と、その前にSoftLightA.xとSoftLightB.x、ついでに床影.xをMMDに読み込みます。床影.xは読み込んだらMMDの「アクセサリ操作」パネルで影にチェックを入れて登録します。

 現状の見た目はこんな感じ。MMDから透過非対応の形式で出力しても同様です。
 透過対応の形式(pngやRGBA形式のフォーマットのもの)だと下のようになります。

 「NCHLShader2を使う その1:MMDにファイルを読み込む」の1.で書きましたが、MMDの設定で地面影OFFをしておかないと、エフェクトで描画される床の影が綺麗に表示されません。

 さて、エフェクト同梱の「sample.png」の通りに各パラメーターを設定していきます。設定項目がたくさんありますが、頑張りましょう。

・ExcellentShadow.x
・HgSAO.x
・AmbientController.x
・BackLightController.x
・SoftLightA.x
・SoftLightB.x
・MMDの照明設定
・MMDのセルフシャドウ設定

 一通り設定するとこうなります。



上:jpgで書き出し 下:pngで書き出し
 少し上でも書きましたが、MMDでの見た目はjpgの画像と同じで背景は暗くなっていますが、透過を扱える形式で書き出すとpngの画像のように背景は透過されています(環境や画像ビューアの設定でjpg画像のように背景が暗く見えることもありますが)。

 MMDの画面でも周囲を明るい状態にしたい場合は、SoftLightA.fxとSoftLightB.fxをメモ帳などテキストエディタで開き、36行目の「レンダリングターゲットのクリア値」を
float4 ClearColor = {0,0,0,0};
から
float4 ClearColor = {1,1,1,0};
に書き換えます。
 編集を保存するとすぐさまMMDに反映されて、上記のように周囲が明るい状態になります。

 あとはカメラとモデルのポーズを設定していきます。

    完  成  !

 その他光源の数値のカスタマイズなどは、エフェクト同梱の「説明書.txt」や、最初の方に書いたタカシアさんのブロマガなどを参考にいじってみて下さい。
 NCHLShader2に入っている「プリセット版」フォルダ内のエフェクトファイルを材質ごとに適応するだけでも違いますよ。

上:サブセット展開して金属部分に「Metallic.fx」を適応させたところ

 ただまぁやっぱり本当はノーマルマップ・スペキュラマップを作成・設定してこそ、このエフェクトの真価が発揮されるんでしょうけどね。一応そういう解説っぽい動画も上がっているので、「NCHLShader2」で検索したりして探してみて下さい。

 へばな!
広告
×
「NC=納豆カレーの略」納豆カレー(ハンドルネーム)氏=NCHLShader(初代)を作った方
72ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。