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

たんさま!

頂点モーフを利用して、法線を任意にコントロールする方法について。

2014-01-05 05:05:16
こんばんわ。
今日も寒いですね。

こちらは、身内が相次いで風邪をひいたらしく、
いつ自分も発症するか、という、恐怖との中で書いております!



さてさて。

今回は、ちびでこさんが、ご自身のブロマガ( ar116150 )で触れられた、
顔面の法線を任意にコントロールする方法について、少し、説明をさせていただきます。


この記事の中で、顔面のポリゴン形状・向きからくる、
顔面の陰について、法線を好みの方向に向けることで、解消する、ということを、さらっと書いてありました。

この画像で触れられていることですね。

左が加工前、右が加工後です。

左のような状況は、キャラクターモデルで、よく問題になります。
実際に、ポリゴンの向きから言うと、これは理屈上、正しいのですが・・・
右のようになっているほうが、キャラクターイラストとしては、より理想的です。

多くの場合、顔面の材質設定を調整し、陰を落とさないようにした上で、テクスチャの塗りで、それっぽくして対処しています。
それはそれで、ひとつの対処法ではあるのですが、顔面の陰は全く動かないし、陰の色などを調整するのも難しいことになります。

聞くところによると、MAXでは、陰の表示に関して、ポリゴン形状とは関係なく、別の形状にできる陰を、そのまま描画させる方法があるのだとか。
つまり、キャラクターモデルの顔面ポリゴンにできる陰が、そのままだと、やはり都合が悪い、ということですよね。

ああ、やっぱりそうなんだ。。。と思いました。




さて。
ではこれを、MMD用のモデルで、どう実現するか。

エフェクトの扱いに慣れている人の場合、シェーダを工夫して、顔面の光源を、環境光とは別のものとして、個別に設ける場合もあります。(レフ板を使うのと同じ様なものです)し、光の影響をコントロールするサブテクスチャを使うことも考えられますが、今回はこれに頼ることなく、

モデルデータ上の「法線」を工夫することで、対処することを考えました。

MMDの場合、シェーダを重複させて扱うことが不自由で、なおかつ、配布モデルデータには、レンダリングをされる方が設定する、様々なシェーディングに対する汎用性、自由度が求められる、という側面もありますが・・・いちばんの要因は、シェーディングを扱うためのノウハウが、自分たちにあまり無いから、ということですかね。

まあ、できりゃいいんです。できりゃ。



今更、"法線"って何?という人はいないとは思いますが。。。
端的に言うと、その頂点の向きを設定してる情報、というところですね。

例えばですね、このようなテストピースを用意してみました。

なんのこともない、簡易プリミティブでできる円柱を、半分に切っただけのものです。

法線がわかりやすいように、わざと大きめにしてひょうじさせてあります。頂点から伸びる、赤くて細い線が、それです。

この赤くて細い線が示しているのは、頂点の真上が、この方向を向いているよ、ということです。

この場合、面は円弧状に配置されているので、その真上は、放射状になっていますね。

真横から見ると、こうなります。

面の向きなのか、頂点の向きなのか、文章が悪くてわかりにくいと思われそうなのですが。。。再度説明すると、これはつまり、その頂点に対してつながっている面のカド、の情報なのです。

書いていてわかりにくいだろうな、とは思うのですが、面の場合、必ず3つのカドがあるわけで、それぞれが別の方向を向いていても、計算で、その面の中間にグラデーションをかけるなどの情報になるので、むしろそのほうが都合がいいわけです。

実際、上のテストピースでも、中央付近で、光と陰の境目が、面の途中でグラデーションで表現されていますよね。


さてしかし、ここからが重要です。

このテストピースに対して、頂点モーフを作成してみましょう。


そのまんま、ぺたっと潰して、平面状にしてみました。こんな感じになります。

おわかりでしょうか?ポリゴンとしては、平面形状なのですが、法線は、円弧のときのまま、です。

これによって、どんなことが起こっているかと言うと、円弧のときにできる筈の陰が、そのまま平面に描画されているのです。

平面状のポリゴンでは、通常はあり得ないことです。これによって、ポリゴンの形状と、陰の描画を、関係なく設定できる、ということが、証明されました。


少し話が逸れたかもしれませんが、今は頂点モーフを設定している最中です。
ちょっと意地悪をして、こんなふうに、法線の向きを、わざとハチャメチャな方向に向けて設定してみましょう。

そうして、TransformViewで、動かしながら、法線がどの様に変かするか、よくよく見てみましょう。



おわかりだろうか・・・
ハチャメチャに設定したはずの法線は、一切無視されました。
円弧のときの法線情報を、一切変化させることなく、頂点の座標のみが変化したのです。

つまりは、頂点モーフには、法線をコントロールする機能が無いのです。
実際には方法があるのかもしれませんが。。。少なくとも、PMXEでの頂点モーフ作成では、法線をコントロールすることは、できません。



これらの検証により、次の2点が、重要な要素としてわかりました。
  1. ポリゴンの形状と、陰の描画を、関係なく設定できる
  2. 頂点モーフには、法線をコントロールする機能が無い
この性質と、メタセコイアからのキーノート出力を利用すれば。。。ひょっとしたら!!!
顔面のより多くの法線を、合理的にコントロールできるのではないか?という思いつきで、実際にやってみたわけです。

おなじみの、あにまさ式ミクVer.2さんです。

今回は陰の効果をわかりやすくするために、肌のtoonシェーディング設定を、陰色の濃いものに変えてみました。

何をやらせても安定の軍曹さんですから、この程度のことでは、その印象が揺らぐことはありませんでした。まあいいでしょう。肝心なのはここからです。。。


こちらが、軍曹さんの顔面の法線です。
凹凸が比較的緩やかで、目・鼻・口の位置関係なども、以外な程現代的ではあります。
このあたりが安定の秘訣でしょうか?

まあそれはさておき。光と陰の境界線は、面が下を向き始める、頬骨のいちばん高いところから下に、できていますね。このあたりは、軍曹さんに限らず、ごく普通の挙動と言えます。

ではこの肌材質をエクスポートして、メタセコで開きます。


開いてまず最初にやることは、オブジェクトレイヤーをそのまま複製して、モーフ適用後の状態に設定です。そして、デフォルト状態を、このようにがんがん変形させちゃいます。


流石の軍曹さんも、ここまでやると、ちょっとすごいことになっていますね。。。
このとき、上に向ける面、下に向けて陰とする面を、しっかりと考えながら変形させます。

形状が出来上がったら、キーノート上で、モーフとして機能するかどうか、確かめましょう。

→(モーフ動作)→

ここで重要なのは、モーフ適用前が変形させたポリゴン、適用後が最終的に欲しい形状、というのを間違えないことです。多少、生理的に違和感を覚えることかもしれませんが。こうでないと、この作業自体が全く意味をなさないので。。。絶対に間違えないで下さいよ。

さてそれでは、PMDに書きだしまして、PMXEで開きます。


メタセコで変形させた形状そのまんまです。あたりまえですが。。。
で、TransformViewで、モーフ動作させてみます。

→(モーフ動作)→

そして、このモーフ動作状態で、形状変化保存をします。
こうして得られたポリゴンは、もとのモデルと、頂点座標は変わってない筈ですから、もとモデルに追加読み込みして、ウエイトやモーフのデータを転写するなどして、もとモデルのポリゴンと入れ替えます。

このあたりは、PMDデータをマスターデータとして、PMDE←→メタセコの間でモデルを編集するためのノウハウなんで、従来からよく行われていることですし、細かくは説明を省かせていただきますよ。

-----------

と、ここで余談ですが。

この場合、追加したポリゴンにモーフなりウエイトなりの情報を転写するのには、いろいろとリスクが伴います。なんらかの原因で、情報の転写がうまくいかないケースが頻発するからです。

ですから、可能ならば、もとのモデルの頂点のほうに、法線情報のみを転写したほうが無難と言えます。
但しこの場合でも、転写のために、双方を関連付ける情報は、頂点の座標でやったほうがいいと思います。頂点の順番なんて、なんかのキッカケですぐに変わってしまうし。。。

----------

さて。どうでしょう、できましたかな?


ちょっとだけキリっとした軍曹さんになりました。
まあ軍曹さんなんでね。わざわざこんな、まわりくどい方法使わなくても、頂点の数自体は多いほうではないですし、そもそもこんな加工自体、必要ないのかもしれませんが。
まあ説明のためなんで。

法線はこのようになりました。


ちょっとわかりにくいですね。説明用に色をかえてみましょう。


頬骨の下側も平均的に上を向き、あごのラインで下向きに変化しています。
これにより、光と陰の境界線は、実際のポリゴン形状通りではなく、任意の位置にコントロールできています。鼻・唇などの部分も、よりはっきりと、陰を設けてあります。


toon設定などももとに戻し、無改造のあにまさ式Ver2さんと比較してみました。変わったような、変わってないような?w

因みに、髪からおちる影、顔のポリゴン自身からおちる影などは、法線のコントロールでは対処できません。

気になる場合は、影を落としている材質の設定を見直す必要があります。



さてさて、一気に説明してみました。
この方法、シェーディングに頼らないので、ここから更に、効果を付与する場合にも、全部に効いてきます。これが良く影響するか、悪く影響するかは、一概にはわかりません。

モデル作成・調整のためのTipsとして参考になればいいなと思います。

しえら

投稿者:

愛のしえらたん様

プロフィールページ