ニコニコ
ユーザーブロマガは2021年10月7日をもちましてサービスを終了いたしました。
このページは皆さまから投票いただいた記事を保存したものです。

ぱっつん伊織研究所(仮)

【MMD】擬似的な瞳の映り込みと合わせ鏡的表現について【MME】

2016-02-16 20:28:30
MMD杯に投稿しました。




もともと予選逃げ動画の本選用映像を組み合わせたものです。
本当はもっと作ってあってそれも利用するつもりだったのですが・・・
合作動画の〆切と重なってしまっていてここまでで精一杯でした。

杯に登録するかも迷ったのですが、まあせっかくの機会なので。
前に投稿したのがちょうど2年前ですか・・・

A.瞳の映り込み表現

1.APNGシェーダー+M4Layer

瞳の映り込みは前の動画でもしてましたが、APNGシェーダーです。
今回使ったのは以下をベースに改変しました。



APNGはアニメーション用のPNG形式の画像で一部編集ソフトで取り扱えます。
MMDではAGIF形式も使えますが、APNGの方がだいぶサイズが軽いみたい。
今回使ったAPNGはAviUtlのプラグインで作成しています。



実はAPNGはテクスチャだけでなくスフィアにも適用できます。
ただしスフィアのアニメはいろいろと扱いが難しいので労力は見合わないかも?
特に絵を2枚重ね合わせた時の強さの調整が少し難しいんですよね。。。
一応スフィアの濃度はモーフで調整可能ですが・・・乗算加算の2種類しかないので。

映り込み用の合成はスクリーン合成が向いていると思います。
前回杯では瞳の位置に映像を重ね合わせる形でスクリーン合成していました。
今回もいろいろ試していたのですが結局その方法が一番手軽に綺麗でした。
・・・と、ここでスクリーン合成するならM4Layerでもいいんですね。

というわけでAPNGシェーダーを当てた材質をM4Layerでスクリーン合成してます。
M4Layerを使う場合は瞳以外の材質をマスクしないと瞳がまぶたをはみ出します。
今回の場合はM4Layer同梱のInvisibleMask.fxを顔に当てています。

シェーダーを直接書き換える場合はCaeruさんの以下ののツイートが参考になります。

apngの簡単な張り付け方

https://twitter.com/Caeru_Odin/status/554621670770499584



2.スフィアの調整

スフィアアニメーションをやめたのは瞳に他のスフィアを使いたかったからです。
今回はロズさんが配布しているガラススフィアを瞳に使っています。



スフィア同士を合成することも可能ですが、分けておくと別に調整できます。
スフィアの濃度は材質モーフで、テクスチャはM4Layerで濃度をいじれます。
ついでにPAToonを使うとスフィア独自で出る方向を動かせたりします。
それぞれを別に動かすことで多層的な光の表現が可能になる・・・はず。

瞳にスフィアを直接適用する場合に問題になるのが瞳の形状です。

平面の板状の瞳の場合、スフィアが綺麗に出ません。
スフィアマップは円形の画像で、前から見た球面の向きに割り当てることを想定しています。
つまり起伏がないとスフィアマップが綺麗に反映されないのです・・・
(ちなみに完全に球面ならスフィアマップ通りの模様が出る)

愛升式モデルは瞳が板状なのでそのままでは板に光を当てたような光沢になります。
仕組み的に形状は変えられないけど、面の向きを変えたい・・・そこで法線の登場です。

愛升式モデルには黒目凸という瞳を球状に変形するモーフがあります。
ただ、モーフだと法線が変化しないのでスフィア的に無意味です。。(胸モーフも同じ)
TransformViewで変形してから形状保存(モーフリバースプラグインの方が簡単)、
さらにその後で法線を「選択法線の平均面法線設定」する必要があります。

プラグインを使える場合は法線を直接いじってしまう方法もあります。



今回の動画ではこのプラグインで法線開花を行ってます。
千早のVi衣装の電飾なんかにも使うと効果的かもしれません。
(私が動画で使ってるモデルは形状をすでにいじってますが)

そういえばスフィア映像をリアルに作りたい場合は出力時に魚眼設定しないとダメです。
Caeruさんのドーム映像作成用のエフェクトで可能です。



もちろん使うことを考えていたのですが、
今回使った過去の映像は昔すぎて出力し直せなかったんです・・・
(アニメ調の場合そこまでリアルにするかという問題も)

ちなみに瞳のハイライトはモデルを改造してボーン操作してます。
そこまではいつもしていたのですが、今回はテクスチャも少し書き換えました。
と言ってもハイライトの縁にα値でグラデーションを入れただけですね。

テクスチャはそのまま差し替えようと思ったのですが解像度の問題で、
結局、ハイライトだけUV展開し直しました。(平面なので展開自体は簡単)

材質モーフを入れてアップにした時に少し全体を透過させてます。
アイマスモデルにリアルシェーダーをかけた時の違和感の1つがハイライトかなと・・・
でも瞳のテクスチャの描き方も絵柄に合わせる必要があるかも?



3.合わせ鏡

合わせ鏡は反応がイマイチというか課題が大きかったです。
今回使っているのはWorkingFloorとアクセ材質に貼ってるscreen.bmpです。
WorkingFloorは鏡のように描画しますが、鏡に映ったものを鏡には映せません。
(本気で書き換えれば可能なのかもしれないけど)

screen.bmpはデフォのステージにも使われている描画方法で、
MMDのカメラ方向の映像をそのままスクリーンに投影します。

今回の擬似合わせ鏡はWorkingFloorを左右に二枚並べて
さらにそれをscreen.bmpに投影することで無限に複写してます。
向き合ってるモデル? ・・・それはPMXEで左右を鏡像化したモデルです。
(モデル鏡像化はローカル軸方向やIKの制限確度が反転しないので要注意)

ただこの方法だとカメラ方向をあまり大きく動かせないのです・・・
スクリーンは平面なので正面方向でないとカメラ方向に対する反射になりません。

あとWorkingFloorなど鏡系統のMMEの場合、
エフェクト内の描画方法を書き換えないとシェーダーが適用されません。
今回はノーシェーダーで使っていますが折鶴Pがシェーダー対応してますね。

https://bowlroll.net/user/3157

現在対応しているのはNCHLShader2とG_Shaderの2つ。
あとSSAO系統のシェーディングをするポストエフェクトも同様です。

HAToon2をWorkingFloorに組み込むことも試したことがあったのですが、
わりとうまくいかず途中でめんどくさくなって投げ出したまま・・・
まあ鏡系のエフェクトは本当に光学的な反射を計算しているわけではないので、
エフェクトを正確に反映すると反射率が高すぎて鏡っぽく見えないかも(負け惜しみ)

鏡に映っているモデルの一部にAutoLuminousが反映されてないのは私のミスです。
でもなぜかそれをスクリーンに映してる方には反映されているような・・・?

あらかじめAviファイルで反射する映像をすべて用意しておけば、
カメラ角度によってボロが出ない映像を作ることも可能だと思いますが・・・
1カット内で反射方向が変わるのを全部用意するのは地獄ですよね・・・


4.動画の内容的な話

というわけでいろいろ課題は多かったわけですが技術的な解説でした。
動画で使った音源はWunder(ヴンダー?)というドイツの昔のエレクトロニカ曲です。
サンプリングされてる歌声はさらに昔のジャズ(ビリー・ホリデイ?)だったと思います。

「Look Out For Yourself」という一節は、
直訳すると「あなた自身のために配慮して」とかそういう感じ?
自分自身を見つめる、それが私の作ろうとしていた動画のテーマだったし、
千早に必要なことだったと同時に千早自身の枷でもあったと思います。

動画が完成しなかったのは私自身も自分を見つめる時間が足りなかったのか、
それとも見つめすぎてしまったのか・・・よくわかりません。

眠り姫本編はいずれ作り直したいですが、今回のももう少しだけ作り直すかもしれません。
だいたいそんなところです、杯には・・・向いてなかったかな・・・




投稿者:

P.I.P

プロフィールページ