MV「すみれ」のメイキング

お久しぶりです!ヤクモレオです。
SUMIRE1222さんの楽曲「すみれ」のMVを制作させて頂きました。


今回はそのメイキング的な記事を書きたいと思います。
具体的にはanimaを使ったモブ(群衆)の話や、Marvelous Designerの話などです。

通算6曲目のMV作品

SUMIRE1222さんのMVを3DCGで制作させて頂くのは

未発表作品分も含めて今回で6作目になります。

MVのクオリティも、劇的な成長はないかもしれませんが
ツールの進化のおかげもあって地道なスキルアップは出来ているかなと感じています。

さて、今回の「すみれ」では「これまで逃げてきた2つの表現」に向き合いました。
それは
・「表情をつけられる群衆(モブ)」
・「クロスシミュレーションを含む人物同士の接触」
です。

表情をつけられる群衆(モブ)を作りたい。

まず、群衆を作るツールと言えば、私にとっては「anima」です。

anima5

しかし、最近はBlenderでも群衆アドオンがいくつかリリースされたおかげで作りやすくなりました。

Procedural Crowds(Blenderアドオン)

Population – Crowd Simulation(Blenderアドオン)

ただ、やはりどのツールもデフォルトで用意されているモデルは外国人のリアルな雰囲気のものですし、
任意の表情も付けることが出来ません。

今作「すみれ」の場合、必要なモブは
・「同じ教室内にいるクラスメイト」
・「駅にいる同じ学校に通う生徒」
です。

これをもしデフォルトのモデルで行うと以下のような感じに…。

そこで、今回はanima」にVRoidモデルを読み込んで使う事にしました。

おおまかな流れとしては

①VRoid Studioでモデルを作成
②Blenderに読み込んでAutoRig(Blenderアドオン)を設定。FBXで書き出す。
③animaでFBXを読み込み、ボーンの変換などを行う。
④animaで配置とモーション付けを行う。
⑤animaからFBXでエクスポートしてBlenderに戻す。
⑥Blenderでマテリアルを付け直す。
Blenderのジオメトリノードで髪や衣装を揺らす。

…といった感じです。また、animaは
mixamoなど他で用意したモーションを読み込ませて使う事も出来るので、その点でも使い勝手が良いです。


加えて、歩きモーションや走りモーションでモブ同士が自動的に衝突を避けてくれるのも助かります。

詳細に解説すると大変なので、
ここでは今回、自分が躓いたところを少し書きたいと思います。

animaでマテリアル(テクスチャ)が反映されない。

私が使っているのが「anima Pro3.5」という古いバージョンだから…なのかは分かりませんが、
animaにモデルを読み込むとマテリアル(テクスチャ)が反映されません。

試行錯誤するも解決出来ず。そこで発想を変えました。
「別にanimaでマテリアルが反映されなくてもいいだろう」と。

最終的にはマテリアルはトゥーンシェーダーのBlender専用のものを使います。
どのみち差し替えが必要になるわけです。

そして、Blenderには「マテリアルのリンク機能」があります。

animaから持ってきた群衆モデルの内、同種の一体だけマテリアルを設定しておけば
後は複数選択し、最後にマテリアルを設定したモデルを選択して
「オブジェクト」→「データのリンク/転送」→「マテリアルをリンク」を行うと、
スッピン状態の群衆も一気に最終的なマテリアルが付けられた状態に出来ます。

今回は制服のモブ達なので、男女それぞれ一人ずつマテリアルを反映させれば
後は全員リンク機能でマテリアル設定が済むというわけです。

スカート他が貫通するのをなんとかしたい

私が「anima」から持ってきたモデルのスカートには
ウェイトはありますがボーンはありません。
おおむね問題は無いのですが、座りモーションなどでは時々貫通が発生します。
それが目立つ場面では誤魔化し…修正が必要になります。

この問題は「シェイプキー」で解決出来ました。
つまり座りポーズに合わせてスカートのメッシュをスカルプト機能などで変形させちゃうわけです。
力技!

表情を変えたい

笑っているモーションでも、怒っているモーションでも、
お喋りしているモーションでも
群衆の表情が変わらない…。

遠景ならまだしも、中景や近景では違和感があります。
Blenderの群衆アドオンでもこの問題は解決出来ません。

しかし、この問題もBlender側で解決すれば良いわけです。

そもそもVRoidモデルは顔のメッシュが分けられている仕様です。
animaから戻したモデルは顔のシェイプキーがなくなっていますが、
animaに持っていく前の顔のメッシュと差し替えれば、
シェイプキーを使ってサクッとどんな表情にも変えられるモブに仕上がります。

髪型を替えたい、メガネを作りたい

これも顔オブジェクトと同じです。

VRoid Studioで髪を書き出しておき、
Blenderで読み込み、アセットとして保存しておく。
あとはanimaで配置したモデルの髪と差し替えればいいわけです。

余談ですが、VRoid Studioを使ったメガネの制作は
笑っちゃうぐらい簡単に色んなパターンのメガネが作れるのでオススメです。

モブの髪の毛や衣装を揺らしたい

Blenderには物理シミュレーションを用いて
髪の毛や衣装を簡単に揺らすアドオンがいくつもあります。

…しかし、モブ全員の髪の毛や衣装を物理シミュレーションさせるのはなかなか厳しいです。
そもそも、私がanimaから持ってきたモデルの髪や衣装にはボーンがありません。

そこで、今回は「Simple Wind」というジオメトリノードを使いました。
購入先(9.99ドル)→こちら

「Simple Wind」擬似的な風揺れをメッシュに与えるジオメトリノードです。
例えば旗や草木などを簡単に揺らすことが出来ます。
揺れはウェイトで制御出来るので、どこをどれだけ揺らすかは自由に調整出来ます。

■SimpleWindのテスト動画1「草と旗」

このジオメトリノードを髪の毛や衣装に使うことで、モブには擬似的な風揺れを設定しました。
※下記動画では実際よりも分かりやすく揺らしてあります。

■SimpleWindのテスト動画2「衣装と髪の毛」

モブ一体一体に設定していくのは大変ですが、
髪は前述の通りに事前に「髪揺れ込み」で作っておけば差し替えて終わりですし、
衣装も事前に「Simple Wind」を設定しておいた衣装からウェイト転送を行う事で省力化出来ます。

勿論、風揺れがあったところで目立つのは近景のモブぐらいなので、全員にやる必要もありません。
手間ではありますが、揺れの有無は「生きてる感」に差が出る様に感じました。

…とまあ、そんな感じで
「表情と髪型とメガネの変更が可能で、負荷を抑えて衣装と髪が揺れるモブ達」が出来たわけです。

最終的に作ったテスト動画はこんな感じ。


もっとこだわりたい気持ちはありましたが、あくまでモブなのだから…と割り切りました。

クロスシミュレーションを含む人物同士の接触

私はsumire1222さんの4作目のMVから、
Marvelous Designer (MD)を使い始めました。

MDを使うと、
・クロスシミュレーションを利用することで衣装のボーンやウェイトの設定をせずに済む
・衣装のバリエーションに困らずに済む
・ポーズやモーションに合わせてリアルな動きやシワが付けられる
というメリットがあります。

MV内の衣装が最初から最後まで一種類であれば良いのですが、
季節違いや回想シーンなどで衣装が次々に変わるMVでは
「一瞬だけ着用しているシーンの為に衣装を用意してウェイト調整を行う…」というのはツライです。
なので、MDの導入は正解だったと思っています。

さて、自分の場合
「Alembicで書き出したオブジェクト」にMDで衣装を着せてクロスシミュレーションを行うのですが、
今回は人物Aと人物Bが「抱きしめる」「抱き合ってキスする」といった場面があった為、考慮が必要でした。
何も考えずに行うと、互いの衣装が貫通しあうからです。

結果的には
「人物AまたはB」を衝突対象としてalembicに含んだ状態でクロスシミュレーションを行う事で解決出来ました。


とは言え、今回は
「一方は衣装を着た状態、一方は素っ裸でのクロスシミュレーション」なので、
まだまだ改善の余地はありそうです。
(というか…私が知らないだけで、もっといい方法があるのかもしれません)

※ちなみにキスモーションはMixamoのものを調整して使っています。

後付け被写界深度で遊ぶ

また、今回は被写界深度で遊びました。
端的に言えば「動画の中のどこをボカしてどこをクッキリさせるか設定する」…という作業ですね。

最近のアニメだと、「葬送のフリーレン」では
被写界深度の演出が分かりやすく使われている印象があります。

私はこれまでは背景と人物を別々に書き出してAeで合成していたので、
それぞれLenscare(AfterEffects用プラグイン)」や「ブラー」でボカしたりしていました。


が、今回はレンダリング時に人物と背景は分けず
Blenderから「レンダリング結果」「深度画像」を同時に書き出し
Lenscareで場面毎に後付けで被写界深度を調整する…という方法を取りました。

■Blenderで深度画像を書き出す基本的なコンポジット設定(Pencil+は考慮していないもの)

ちなみに、Blenderはカメラ設定で被写界深度を付けてレンダリングする事も出来ます。
勿論それでも良いのですが、
私の場合は線画に「Pencil+4」アドオンを使っているのでそれが難しかったのです。
(※Pencil+の線画はBlenderのコンポジットで後付けされるので、線画だけボケない状態になってしまう)

深度画像を使った方法だと線画を含めて被写界深度を付ける事が出来ます。
どこからどこまでボカす…といった設定も
Aeの「レベル補正」エフェクトとの組み合わせなどで後から自由自在に変更できるので楽しかったです。

また、「Pencil+4で線画も含めてぼかす手法」としては
コンポジットノードでライン出力画像にぼかしを加えるという方法もあります。

トゥーンシェーダーの変更

これまでは
Blender用トゥーンシェーダーの「Lightning Boy Shader(LBS)」のお世話になっておりましたが、
今作では「ParaNormal Toon Shader(PNTS)」に変更しています。

ParaNormal Toon Shader

理由は色々ですが、一番大きいのは
LBSが「Blender4.0以降は事実上サポートしない」と発表した事です。
(元々、正式なサポートはBlender3.4までで、3.5や3.6でもなんとか使える…という状態でした)

また、LBSは仮想ライトのシェーダーなのですが、PNTSはライト駆動のシェーダーです。
なので、例えばPNTSの場合は夕日の場面では夕日の影響を受け、
太陽が沈むと真っ黒になる…といった光源の変化をマテリアルが反映することが出来ます。



しかしその反面、
光の影響を受けるという事はそれを考慮して色を調整しなければならないので、
納得出来る環境を作るまでは結構大変でした。

そんな中で本命ともいえる新たなトゥーンシェーダーが登場

そんな思いをしつつ、次回はまた違うシェーダーを使うと思います。

Pencil+4の開発元であるPSOFTさんがBlender用のトゥーンシェーダー
Pencil+4 Material for Blenderをリリースしたからです。

Pencil+4 Material for Blender


早速触ってみたところ、
「今までの苦労はなんだったんだ?」という使いやすさと完成度でした。

こちらのシェーダーの場合、ライトの影響を受けることも無視することも気軽に設定出来ます。
私は今後、こちらを使っていこうと思っています。

これからBlenderでトゥーンシェーダーを使いたい!という人にも
「Pencil+ 4 Material for Blender」をお勧めします。
一番高価ではありますが…(汗)

…が、レンダラーがCyclesメインの方は前述のPNTSを検討してみても良いかもしれません。
PNTSだけがCyclesとEeveeの両方に対応しているからです。

今回の制作での反省点

多々ありますが、あげるとしたら「表情」「モーション」ですね。

過去作ではiFacial Mocapというソフトで
自分の表情をキャプチャーして反映させていました。
非常に優秀なソフトで使いやすいのですが、
後処理がなかなか大変だったりするので、今回の表情は全て手打ちで行いました。

その為、大きな破綻はないものの幅がない結果になってしまった…と思っています。
また、モーションも一部ぎこちないところが残ってしまいました。
ここは勉強中のモーション制作ソフト、Cascadeurを本格導入して改善していけたらと考えています。

締めの挨拶とお願い

さて、つらつらと書いてしまいましたが
ニッチな内容ながら、誰かの参考になれたなら幸いです。

もしよろしければご視聴頂き、高評価ボタンを押して貰えたら嬉しい限りです。

どうぞよろしくお願いいたします!

映像、イラスト、漫画などの制作、画像加工を承っております!→こちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)