見出し画像

blenderとMMD◆A10.ray-MMD

本記事では、MMEのひとつであるray-MMDの使い方について、個人的に理解した内容を記載します。
使いこなせているわけではないため、誤った記載をしていたら申し訳ありません。

ray-MMDは「光や影の表現がとてもリアルできれい」で「複雑で難しそう」だとよく言われるイメージです。
自分は最初勘違いしていたのですが、ray-MMDはシェーダー、光源、スカイドーム、その他エフェクト等、すべて同梱された状態で公開されています。
リアルな表現をするためにそれら一式が必要だからなのだと思いますが、つまりいつものように、有志の方の配布物をあちこちから借りて来る必要はないということです。

導入手順(簡易メモレベル)

ray-MMDの導入手順をごく簡単にまとめました。
製作者さんのGitHubからダウンロード、解凍しておく
②「ray.x」を読み込み、MMDの「表示」-「アンチエイリアス」をオフ
③任意のSkyboxを読み込み、MMEの「EnvLightMap」で対応.fxを割り当て
④ステージ/モデルを読み込み、MMEの「Main」で「main.fx」を割り当て
⑤「ray_controller.pmx」を読み込み

以降、これらの手順について詳しく記載していきます。

導入手順(詳細レベル)

MMEのエフェクトというのはそもそも、HLSLというプログラミング言語で書かれた.fxファイルが本体となります。舞力介入Pさん作成のMMEは、それらの.fxファイルを読み込めるようにするためのものということです。
MMD上に読み込んだ.pmx/.xファイルに対して、.fxファイルの内容でMMD描画処理に干渉することがおおよそのMMEの挙動概要と理解しています。

なので一般的にMMEエフェクトの利用方法としては、
・.pmx/.xファイルに対してMME画面から.fxファイルを割り当てる
・.fxファイルと同梱されている.pmx/.xファイルを読み込む(自動で.fxが割り当たるようになっている)
のいずれかです。

ray-MMDも、複雑そうには見えても基本的に同じです。
決められたとおりに.pmx/.xファイルを読み込んだり、.fxファイルを割り当てたりするだけです。

①~②:
ray-MMDをzipでダウンロードし、解凍します。
MMDを起動して「ray.x」を読み込み、「表示」-「アンチエイリアス」をオフにします。
先述した通りray.fxがray-MMD本体であり、「ray.x」を読み込むことで自動でray.fxが割り当たっています。

③:
Skybox(スカイドームのようなもの)を読み込んで明るくします。
Skyboxフォルダの中から好きなもので良いのですが、今回は「Time of day.pmx」を読み込みます。
割り当てる.fxファイルは同ファイルの中から、「Time of lighting.fx」とします。MME画面の「EnvLightMap」タブから割り当ててください。

④:
任意のステージやモデルを読み込みます。
MME画面からMainフォルダの「main.fx」を割り当てます。

⑤:
「ray_controller.pmx」を読み込みます。これでray-MMDの基本的な導入は完了です。(座標軸表示はオフにしました)


操作tips

ray-MMDではMMD標準照明が太陽/月になる

文字通りです。照明位置を傾ければ朝っぽくなったり夕方っぽくなったりします。(▼基本的な導入+標準照明の修正のみ)
ちなみにray_controller.pmxの「SunLight+/-」がこれと対応しています。

材質変更は「MaterialMap」タブから

「Material」フォルダの中に色々な.fxファイルが用意されています。
MME画面の「MaterialMap」から色々割り当てを試してみてください。
必要に応じて、既存の.fxファイルの中身を書き換えて使用もします。

照明追加は「Lightning」フォルダから

「Lighting」フォルダの中の任意のpmxを読み込むことで照明が追加できます。種類がありますので好きなものを読み込んで、位置や色などを調整して使用します。ライト本体はMME画面の各タブ(おそらくLightMap以外のすべて)でチェックを外すことで見えなくなります。

照明は、部屋の明かりのように定位置に置いておくか、キャラクターの動きに合わせて動かすかの大きく2パターンあると思います。後者の場合は、照明の「モデル操作」-「外」から、外部親設定をしましょう。

▼外部親有無の違い(①と②)、他角度からの照明の追加(②と③)など、あれこれ試してみると良いと思います。

ray-MMDでスフィアマップを使いたい

ray-MMDはデフォルトだとスフィアマップが適用されません。「Main.fx」でそのように定義されているからです。
スフィアマップを使うには、Main.fxを編集します(既存のものを複製してカスタム版のMain.fxを用意した方が良いです)。

「MATCAP_FROM」を1にすれば「MATCAP_MAP_FILE」のものが使用されます。4にすれば元々モデルのマテリアルに設定されているものが使用されます。

ray-MMDでエッジを出したい

ray-MMDはデフォルトだとエッジが表示されません。「ray.conf」でそのように定義されているからです。
エッジを出すには、ray.confを編集します(既存のものを複製してバックアップとして保存しておいた方が良いです)。

「OUTLINE_QUALITY」を1にすればエッジが表示されるはずです。

ray-MMDにおけるDOF(被写界深度)

ray-MMDで遠い所や近い所をボケさせるには、まず「ray.conf」の「BOKEH_QUALITY」を1に編集します。(既存のray.confはバックアップしておいてください)

どこをどれくらいボケさせるかは、MMDに読み込んだray_controller.pmxのパラメータによって調整します。
細かいパラメータについて自分はよくわかっていないのですが、ビームマンPさんのキラキラエフェクトとDOFを組み合わせると、六角形の形にボケるようです。(有志の方のポストが参考になるかもしれません)

参考URL

ray-MMDはできることが多い分、パラメータもたくさんあります。
以下有志の方の非公式日本語wikiは一つ一つのパラメータによる違いが分かりやすく、困ったときはまずここで情報を探すと良いです。
とても勉強になります。
https://github.com/gaj-cg/ray-mmd-docs-ja/wiki

いいなと思ったら応援しよう!