> For the complete documentation index, see [llms.txt](https://eclidiuth.gitbook.io/ec-ray-mmd-tutorials/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eclidiuth.gitbook.io/ec-ray-mmd-tutorials/it-is-too-early-to-give-up.md).

# #2 Ray-MMDに苦闘中のそこの君、諦めるにはまだ早いぞ

こんにちは、えくりでぃあす([@Eclidiuth](https://twitter.com/Eclidiuth))です。

[前回](https://eclidiuth.gitbook.io/ec-ray-mmd-tutorials/articles-for-those-who-give-up-ray-mmd)から大分期間が空いてしまいましたが、ついにRay-MMDのチュートリアル第二弾が登場です！

今回は次のような動画を制作しますので、一緒に頑張っていきましょう😊

{% embed url="<https://www.youtube.com/watch?v=xzB4uFlez9E>" %}

### ​​はじめに

このチュートリアルは、より多くの人が**自分の作りたいものを自由に作れるようになると良いな**と思ったことをきっかけに執筆が開始されました。

この記事を読んだだけで綺麗な映像を作れるようになるわけではありませんが、Ray-MMDの基礎習得の一助にはなるかと思われます。

制作方法は人それぞれではありますが、一連の手順を通して、私がどのような手順と方法を用いているのかを学んで頂けると嬉しいです。

#### 注意点

このチュートリアルでは「視覚的にどう見えるか」という点を重点において解説を進めていきます。

そのため、実際には異なる効果であったり、意味を持っている可能性も大いに存在します。

これは私自身が3DCGに関する専門的な知識を有していないためであり、実際に正しい情報であることは担保できかねます。

可能な限り正確性を高める努力はしていますが、どうしても至らない点はありますので、ご了承ください。

また、誤字脱字を発見した際は私のTwitterアカウントまでリプライやメンションでお知らせください。

#### 必要なもの

このチュートリアルでは次のものが必要なので、事前にダウンロードおよび導入を行ってください。

また、各配布物における規約を記した**READMEは必ず目を通す**ようお願いいたします。

(敬称略)

| 配布物                    | 制作者      | 配布先URL                                                                      |
| ---------------------- | -------- | --------------------------------------------------------------------------- |
| MikuMikuDance\_v932x64 | 樋口M      | <https://sites.google.com/view/vpvp/>                                       |
| MMEffect\_x64\_v037    | 舞力介入P    | <https://www.nicovideo.jp/watch/sm12149815>                                 |
| PmxEditor\_0257        | 極北P      | <https://kkhk22.seesaa.net/category/14045451-1.html>                        |
| 選択頂点の法線をZ軸方向に向けます。1.2  | 大葉真琴     | <https://seiga.nicovideo.jp/seiga/im3688501>                                |
| ray-mmd-1.5.2          | Rui      | <https://github.com/ray-cast/ray-mmd/tree/1.5.2>                            |
| ColorGrading-master    | Rui      | <https://github.com/MikuMikuShaders/ColorGrading/tree/master>               |
| AutoLuminous4          | そぼろ      | <https://onedrive.live.com/?id=EF581C37A4524EDA%21108&cid=EF581C37A4524EDA> |
| Sour式鏡音リンVer.2.01      | Sour暄    | <https://bowlroll.net/file/155105>                                          |
| イラスト風瞳テクスチャ2           | ミコト      | <https://seiga.nicovideo.jp/seiga/im7669809>                                |
| 【明度下げ版】ガラス反射スフィアマップ    | roz      | <https://seiga.nicovideo.jp/seiga/im4076063>                                |
| エゴロックのモーションデータ         | 粉吹きスティック | <https://www.nicovideo.jp/watch/sm34070074>                                 |
| さる式お米ステージver1.0        | さるる～     | <https://seiga.nicovideo.jp/seiga/im9227783>                                |

###

### Step 0 最初の準備

今回も前回と同様に、最初にチュートリアル用フォルダと整理用のフォルダを作成することにします。

このステップは必須ではありませんが、行ったことを前提に解説を進めていきますので作成しない場合は適宜保存場所を読み替えてください。

デスクトップに`RayMMDTutorials`フォルダを作成しその中に`Tutorial2`フォルダを作成します。

`Tutorial2`フォルダの中に次の6つのフォルダを作成してください。

| フォルダ名   | 配置しておくもの                                          | 用途             |
| ------- | ------------------------------------------------- | -------------- |
| effects | ray-mmd-1.5.2, ColorGrading-master, AutoLuminous4 | MMEエフェクトを配置する  |
| exports | なし                                                | 出力する画像、動画を保存する |
| models  | Sour式鏡音リンVer.2.01                                 | モデルデータを配置する    |
| motions | エゴロックのモーションデータ                                    | モーションデータを配置する  |
| music   | エゴロックの音楽(.wav)ファイル                                | 音源データを配置する     |
| pmm     | なし                                                | pmmファイルを保存する   |
| stages  | さる式お米ステージver1.0                                   | ステージのファイルを配置する |

###

### Step 1 モデルの改変

#### 瞳のテクスチャの改変

自分の見ている動画の多くでは、Sour式鏡音リンの瞳のテクスチャは改変されています。

私自身その瞳が好みなので、PMXEditorの使用方法の学習も兼ねて改変してみることにしましょう。

最初に`Models/Sour式鏡音リンVer.2.01`の中に`イラスト風瞳テクスチャ2`のフォルダを配置しておきます。

お好きな画像編集ソフトを用いて`eye.png`の瞳の部分を`イラスト風瞳テクスチャ2`の`14.png`に置き換えてください。

![](/files/-Ml5L69hsQFGdrPzvgkf)

次にPMXEditorを開き`Sour式鏡音リンVer.2.01/Black.pmx`を読み込みます。

Pmx編集ウインドウで`材質`タブを選択した状態で、リストにある`2: 目`, `3: 目白`, `4: 瞳` ,`5: HL`, `8: グル目`, `23: 涙`をCtrlキーを押しながらクリックして複数選択を行い、Texと表記されているラベル右の水色のボタンをクリックしてTexViewウインドウを開きます。

TexViewのメニューバーのファイルからテクスチャ読み込みを選択し`Sour式鏡音リンVer.2.01/tex/eye.png`を開きます。

メニューバーのファイルから現在のテクスチャへ変更を選択し確認ではいをクリックします。

次にテクスチャが改変されたことを確認しますが、もしこの時点でPmxViewウインドウ(以降PmxViewと表記)が表示されていない場合はPmx編集ウインドウのメニューバーの表示>モデル表示を有効にしてPmxViewを開いてください。

多分最初はボーンが表示されているので、PmxView左下の水色の丸アイコンをクリックしてボーンを非表示にしましょう。

PmxViewで変更が反映されていることを確認し、Pmx編集ウインドウで`Black.pmx`を上書きしてください。

![](/files/-Ml5L69gW7Et-Em_35Hn)

####

#### パーツの分割

もともとのデータでは手のグローブとソックスは材質`14: Black`として一緒になっていますが、それぞれを異なる見た目にしたい(異なるマテリアルを割り当てたい)ので少し手間ではありますが、それらを２つの材質に分割することとします。

PmxViewのメニューバー下にある絞をクリックし、絞込み表示(マスキング)ウインドウを開いて`頂点/材質`タブを選択した状態でラジオボタンの材質を選択し、右にある反ボタンをクリックしてすべての材質を非表示にし、`14: Black`にだけチェックを入れます。

![](/files/-Ml5L69ff2OhIOdxq1Bo)

PmxViewでメニューバー下にある頂と面を選択した状態で、左側のグローブだけが収まるようにカーソルをドラッグして範囲選択を行います。

PmxViewのメニューバーの編集>選択面から新規材質へ取り出しを選択し確認ではいをクリックします。

Pmx編集ウインドウで`材質`タブを選択し左側にあるリストを最下部までスクロールすると、`新規材質1`を見つけることができるので、同様の手順を踏んで画面右側のグローブ`新規材質2`、左右のソックスを`新規材質3`として取り出しましょう。

左右のグローブは別の材質である必要はないので、ひとつの材質にまとめてしまいましょう。

PmxViewで`材質`タブのリストにある`新規材質1`と`新規材質2`をCtrlキーで複数選択し、右クリックメニューから材質の結合を行います。

PmxViewで絞込み表示(マスキング)ウインドウで`新規材質1`にのみチェックを入れると左右のグローブだけが表示されるので確認してみましょう。

次に新規材質という名前では何の材質か分からないので名前を変更します。

Pmx編集ウインドウで`材質`タブを選択し、リストで`新規材質1`を選択した状態で材質名とあるラベル隣のフォームに`Black3`と入力します。

一度他の材質を選択すると表記が切り替わるので、同様の手順を踏んで`新規材質3`を`Black4`と変更しましょう。

名前を変更したらリストの下にある矢印ボタンを使って材質の順番を`Black`, `Black2`, `Black3`, `Black4`にしましょう。

![](/files/-Ml5L69e1CUveZwKwwTc)

####

#### 顔の法線の編集

私自身あまり理解できていないため説明はできませんが、法線というものが存在します。

簡単に言えば法線には向きがあり、その向きを変えることで影の付き方を調整することができます。

Ray-MMDを少し触った方なら、顔の影のせいでモデルが不気味に見えてしまった経験があるのではないでしょうか？

今回は`選択頂点の法線をZ軸方向に向けます。`というPMXEditorのプラグインを用いてその問題を解決することにします。

**プラグインの導入**

プラグインを使用するにはまず導入を行う必要がありますが、これは非常に簡単です。

`faceforward1.2.zip`を解凍したら`PmxEditor_0257/_plugin/User`にフォルダごと移動します。

Pmx編集ウインドウのメニューバーにて、編集>プラグイン>Userに`faceforword1.2`が表示されていれば成功です。

**プラグインを使用する**

プラグインを導入したらPmxViewのメニューバー下にある絞をクリックし、絞込み表示(マスキング)ウインドウを開いて`頂点/材質`タブを選択した状態で材質のラジオボタンにチェックを入れ、すべての材質のチェックボックスのチェックを外して非表示にします。

`0:face`にのみチェックを入れ、ウインドウ左下にある赤い三角アイコンの右２つをクリックして法線と選択した法線を表示するようにします。

PMXView内で顔全体が収まるようカーソルをドラッグすると、法線の色が変化し範囲選択されたことが分かります。

その状態でPmx編集ウインドウのメニューバーにある編集からプラグイン>User>faceforward1.2>faceforward64を選択します。

ウインドウにて中央に向ける割合を`80%`に変更し、`バイアスY`を`0`にし、Z軸で前を向いているものだけ対象にするにチェックを入れた状態で実行ボタンをクリックし、完了したらメニューバーのファイルから名前を付けて保存します。

後で80%法線を変更したと分かるよう`Black.normal.fixed.80.pmx`という名前にすると良いでしょう。

####

#### ステージのサイズ縮小

簡単な背景としてさる式お米ステージver1.0を使用しますが、もともとのサイズが少々大きいので小さくします。

PMXEditorを起動して、Pmx編集ウインドウのメニューバーのファイル>インポートから`さる式お米ステージver1.0/さる式ごま塩ステージ.pmx`を選択、あるいはpmxファイルをPmxViewに直接ドラッグ&ドロップすることで、読み込み時に追加選択/サイズ調整ウインドウが表示されます。

このウインドウ内のサイズのグループにおいて`任意`とあるラジオボタンを選択し隣のフォームに`0.5`と入力しOKをクリックします。

カメラを引いてみてRiceの後ろの白い背景部分がグリッドに収まるぐらいのサイズになっていれば大丈夫です。

ファイルから名前を付けて保存を選択し、`さる式ごま塩ステージ.halfsize.pmx`という名前で保存しておきましょう。

![](/files/-Ml5L69i7izaskrs5Hej)

###

### Step 2 Ray-MMDのセットアップ

Step 1にて必要なモデルの改変を行ったので、さっそくRay-MMDを使った制作の準備を進めていくことにしましょう。

まずはMMDを起動して`ray-mmd-1.5.2`フォルダの中にある`ray.x`をドラッグ&ドロップで読み込み画面が黒くなるのを待ち、黒くなったらメニューバーの`表示`より`アンチエイリアス`をオフにして背景を白に戻します。

![](/files/-Ml5L69_OO6X5zZbH0hC)

今回は夜空を背景にしたいので`ray-mmd-1.5.2/Skybox/Time of night`にある`Time of night.pmx`を読み込みます。

> この`Time of Night.pmx`は背景や光源としての役割を果たす`Skybox`のひとつで、これの他には`Sky Hemisphere`や`Time of day`といったものがあり、それぞれ異なった特徴を持ちますが長くなるので今回は割愛させて頂きます。

次にMMDのウインドウ右上にある`MMEffect`から`エフェクトファイル割当`を選択し、エフェクトファイル割り当てウインドウ(今後はMMEのウインドウと表記)を表示したら`MaterialMap`タブを選択します。

初期状態では`Time of night.pmx`に`` `material2.0.fx ``というファイルが割り当てられていまが、Skyboxにはそれ用のfxファイルを割り当てなければ正常に描画されません。

そのため`Time of night.pmx`には`ray-mmd-1.5.2/Materials`にある`material_skybox.fx`を割り当てます。

![](/files/-Ml5L69ZUpCxn8KUwLHf)

####

#### MMEのウインドウの注意点

fxファイルを割り当てた後に何の操作もせずMMEのウインドウを閉じると変更が保存されず元の状態に戻ってしまいます。

こうした事態を避けるためにも、**割り当てを変更したら右下の更新ボタンをクリックして変更を保存**するようにしましょう。

更新ボタンはfxファイルの割り当てを変更するとクリック可能になり、最新の状態、つまりは最後の更新から変更が無い場合は無効になります。

OKボタンも更新と同様に変更を保存しますが、こちらはMMEのウインドウを閉じてしまいます。

再度開くのも面倒なため、私は基本的に更新ボタンを使用しMMEのウインドウは常に表示させています。

####

#### モデルの読み込み

背景となるSkyboxを読み込み適切なfxファイルを割り当てたので、次はモデルを読み込むことにしましょう。

`Sour式鏡音リンVer.2.01/Black.normal.fixed.80.pmx`を読み込みます。

モデルを読み込むと自動的にボーン操作パネルの選択ボタンが選択された状態になりますが、ボーンが邪魔でモデルがよく見えないので選択解除します。

読み込んだ初期の状態では全体的に白っぽく、前髪の描画もおかしいのでまずはこの問題を解決します。

MMEのウインドウで`Main`タブを選択し、`Black.normal.fixed.80.pmx`に対して`ray-mmd-1.5.2/Main`にある`main.fx`を割り当てます。

![](/files/-Ml5L69Yw2ap5dIVe3UZ)

全体的には正しく描画されるようになりましたが、まだ前髪と目のあたりがおかしいですね。

この問題は`EnvLightMap` タブで`Time of night.pmx` に対し`ray-mmd-1.5.2/Skybox`にある`skylighting_none.fx`を割り当てると解決できます。

![](/files/-Ml5L69X_jPkLoJSUBfq)

####

#### 一度ぐらいはやるであろうミス

初期状態では`EnvLightMap`タブの`Time of day.pmx`には何のfxファイルも割り当てられておらず、`(none)`になっているかと思います。

試しにこの状態でチェックを付けてみるとモデルがすごくピンクになるわけですが、多分一度ぐらいはこのミスをやらかすのでこうした状況に陥ったら`EnvLightMap`を確認するようにしましょう。

![](/files/-Ml5L69bxdXJgA-Brqbu)

ちなみに既に`skylighting_none.fx`を割り当てていた場合は左下の解除ボタンで割り当てを解除できます。

####

#### Skyboxでモデルを照らす

現在はMMDの照明操作パネルで操作できるライトが当たっている正面部分以外が真っ黒になってしまっています。

![](/files/-Ml5L69WrGMQKPWPq-Ve)

これは他に光源が存在しないことが原因なので、モデル全体を照らしてくれる光源が欲しいところですね。

ここで思い出してほしいのが先ほど背景として読み込んだ`Time of night`で、先述した通り光源としても機能します。

今回はこれを光源として用いることにし、そのためにライティング用のfxファイルを割り当てましょう。

`EnvLightMap`タブで`Time of night.pmx`に対して`ray-mmd-1.5.2/Skybox/Time of night`にある`Time of lighting.fx`を割り当てます。

すると先ほどとは一転して明るくなり後ろから見ても真っ黒ではなくなりましたね。

しかしながら、私個人としては`Time of night`の`Time of lighting.fx`はあまり好みではありません。

というのもTime of nightに限らず光源はモデルに対し光源の色の影響を大い与え、今回の場合は全体的に青白くなってしまうからです。

現実において何かしらの物を赤い光で照らせば赤く、青い光で照らせば青く見えるのと同じで腕の肌の色を見ればそれが分かるでしょう。

どのSkyboxも表情操作パネルの各項目で色味等を調整できますが、それは私にとってはとても面倒なことでした。

少なくとも今の段階では単に明るさを提供してくれればよいので、今回は異なるSkyboxのfxファイルを利用します。

`EnvLightMap`で`Time of night.pmx`に対し`ray-mmd-1.5.2/Skybox/Sky Hemisphere`にある`Sky with lighting.fx`を割り当てます。

![](/files/-Ml5L69VPYivD2aQMMFr)

今割り当てた`Sky with lighting.fx`は`Sky Hemisphere`という単純な白い背景のSkyboxのためのライティング用fxファイルですが、このように異なるSkyboxのものを利用することもでき、現在は先ほどとは違って白い光で照らされている状態にあります。

**fxファイルを割り当てたら必ず更新ボタン等で変更を保存**することを絶対に忘れないようにしてください。

####

#### ファイルの保存

ここまでが今回のチュートリアルで必要となるRay-MMDのセットアップ作業になります。

慣れればすぐに終わらせることができますが、最初はやり直すのも大変でしょうのでここで一度保存しておきましょう。

Step 0で作成した`pmm`フォルダ内に`project01.step2.pmm`という名前で保存してください。

###

### Step 3 細かい調整とライティングの設定

セットアップが終わったので次はライティングの設定を行いたい所ですが、その前にいくつかやることがあります。

まず、床のグリッドは不要なのでこれを消してしまいましょう。

メニューバーの**表示**から**座標軸表示**をクリックすると消えますね。

では次に、全体的に彩度が低いようなのでそれを調整することにしましょう。

####

#### 彩度を上げる

`ray-mmd-1.5.2`フォルダ内にある`ray_controller.pmx`を読み込みます。

読み込むと自動的にボーン操作パネルの選択ボタンが選択された状態になりますがこれを選択解除します。

Step 2では単にボーンの表示が邪魔だったから消したわけですが、今回は理由が異なります。

選択ボタンをクリックして選択と解除を繰り返すと選択された状態では影が付かないことに気が付きますね。

このように、**選択された状態では本来とは異なる表示になるので常に解除す**ることを忘れないでください。

モデルを読み込んだり切り替えると勝手に選択状態になりますが、その度に必ず解除してください。

前置きが長くなりましたが本題に入ることにします。

表情操作パネル右下で`Saturation+`を選択しスライダーを操作するか直接値を入力してからEnterで値を`0.350`にします。

![](/files/-Ml5L69U7YKDl63OzVrL)

彩度が上がったことを確認したら**セレクトボックスの上にある登録ボタンをクリックして変更を登録**します。

この操作を行わないと変更が保存されず、フレームを移動した際に変更前の状態戻ってしまうので注意してください。

この操作は基本であり、今後はあまり書かないので値を変更したら自身で適切に登録を行ってください。

####

#### Skyboxで遊んでみる

今回カメラは使用せずに正面固定とし、背景用にステージを読み込むのでSkyboxは完全に隠れてしまいます。

ただ、`Time of night`といったSkyboxの面白さを知るいい機会なので、一項目だけ値を変えてみましょう。

`Time of night`を選択し、表情操作パネル左上にある`RayleighHeight-`の値を`0.470`にしてみます。

![](/files/-Ml5L69TxcFlYlhf5RXt)

これだとなんだか宇宙にいる感じがして素敵ですね！

`Time of day`と`Time of night`の2つについては空をシミュレーションするSkyboxのようなので、時間や気力に余裕のある人はこのチュートリアルを終えた後に、いろいろと値を変えて遊んでみると楽しいかもしれませんね。

では、ここでこれ以上語ることは無いのでセレクトボックス上の登録ボタンで登録して次に進みましょう。

####

#### 後光を設定する

後ろからの明るい光によって綺麗に輝いている動画を目にしたことはありませんか？

それを実現する方法はいくつもありますが、今回は簡単にMMDの照明を使って実現することにしましょう。

まず、次の表に従って照明操作パネルの各項目の値を設定してください。

| 項目名 | 値    |
| --- | ---- |
| 赤   | 154  |
| 緑   | 154  |
| 青   | 154  |
| X   | 0.3  |
| Y   | -1.0 |
| Z   | -0.7 |

Zの値を変更したところで背景に流れ星が見えるようになりましたがこのように角度で背景が変化するSkyboxもあります。

設定できたらカメラを動かして後ろからモデルを見てみると、正面と比べ背面の方が若干明るいことがわかりますね。

![](/files/-Ml5L69Ksa60qv7dsQ5f)

しかし、まだまだ明るさ不足なのでそれを調整していきたいところです。

ただその前に表情操作の時と同じく**照明操作パネル下部にある登録ボタンをクリックして登録**しておく必要があります。

登録したら`ray_controller`を選択し視点パネルの正面ボタンを使って正面視点にします。

おかしいですね？

先ほど照明の角度を調整したにも関わらず、最初と同じ角度で照らされ背景の流れ星もなくなってしまいました。

これはメニューバーの**表示**にある**モデル編集時カメラ・照明追従**が無効になっているためなので、クリックして有効化します。

これでモデル操作パネルで何かモデルを選択しているときでも、先ほど設定した角度通りにライトが当たるようになりました。

![](/files/-Ml5L69S61bwfjaLv1IF)

####

#### ブルームをかける

`ray_controller`で表情操作左上にある`SunLight+`の値を`1.000`にしてみましょう。

これはMMDの照明の明るさを上げるもので背面を見ると効果がよく分かりますね。

![](/files/-Ml5L69RxpBgVCt70yTV)

次に左下にある`BloomThreshold`の値を`0.350`にすると、ブルームがかかってそれとなく綺麗な感じになりました。

![](/files/-Ml5L69Q0OWXMZBfzUka)

`BloomThreshold`はブルームがかかるしきい値を決めるもので、値が大きいほどかかりやすくなります。

彩度を上げた際にも書きましたが、値を変更したら必ずセレクトボックス上にある登録ボタンをクリックしましょう。

今回の場合は左上と左下の両方でクリックする必要があります。

矢印キーでフレーム0と1を行き来して表示が変わらなければちゃんと登録できています。

また、現在のフレームが１になっている場合はちゃんと0に戻しておきましょう。

####

#### DirectionalLight

後ろから見るとブルームがかかるようになりましたが正面は全然ですね。

明るさが不足しているので追加のライトを正面から当てることにしましょう。

`ray-mmd-1.5.2/Lighting`にある`DirectionalLight.pmx`を読み込みます。

同フォルダ内にある様々なpmxファイルを見れば分かるように、Ray-MMDには様々なライトが存在します。

それぞれ異なった性質や特徴を持ちますが、それの話はまた別の機会にしましょう。

今回使用する`DirectionalLight`は**位置に関係なく向きのみによってライトの当たり方が変わる**という性質があるので、これはMMDの照明操作の照明と同じようなものと考えても良いかもしれません。

`DirectinalLight`を選択し、次の表の通りに値を設定します。

| 項目名        | 値     | 効果                  |
| ---------- | ----- | ------------------- |
| R+         | 0.200 | ライトのRGB成分のうちR成分を上げる |
| G+         | 0.200 | ライトのRGB成分のうちG成分を上げる |
| B+         | 0.200 | ライトのRGB成分のうちB成分を上げる |
| Intensity+ | 0.140 | ライトの明るさ(強度)を上げる     |

![](/files/-Ml5L69PBe9rM4q5Ajt2)

値を変更したら登録する必要があるので、今回は上下左右で4つの登録ボタンをクリックする必要がありますね。

次にボーン操作パネルで選択ボタンをクリックして有効化し、ビューポートにおいて`DirectionalLight`の`光源位置`を選択した状態で角度`X`のフォームの値を`14.9`に設定して、ボーン操作パネルで登録をクリックしてください。

**不要な球を非表示にする**

DirectionalLightの実体は足元にある球なわけですが、これが見えている必要はありませんね。

MMEのウインドウで`Main`と`MaterialMap`タブの両方で`DirectionalLight.pmx`のチェックを外すと非表示にできます。

非表示にしたら、しっかりと更新をクリックして変更を保存しておきましょう。

####

#### Skyboxのさらなる調整

`DirectionalLight`を追加したことで明るくなったものの白っぽくなってしまいました。

また、Skyboxの光(EnvDiffLight)は肌の影を消してしまいがちなので、これらの問題を解決します。

モデル操作パネルで`Time of night`を選択し、表情操作パネル右上の`EnvDiffLight-`の値を`0.630`にします。

![](/files/-Ml5L69ORCx43xhfj5NG)

これで全体的に白っぽいのと、肌の陰影の消失を解消することができましたね。

####

#### ray\_controllerでの調整

先ほど`EnvDiffLight-`で調整したもののまだ全体的に明るいのでもう少し暗くしたいですね。

モデル操作パネルで`ray_controller`を選択しパネル左上の`SunShadowV-`の値を`0.340`にするといい感じになります。

`SunShadowV-`にはMMDの照明によってできる影の明度を下げる効果があります。

![](/files/-Ml5L69NQ3onGFeXipol)

####

#### DirectionalLightの影

これは気づきにくいですが、`DirectionalLight`の光は正面斜め上から当たっているのでその角度的にスカートの下の脚や髪などの光が遮られている部分には影ができるはずですね。

初期状態では影が付かないのでそれが付くようにし、自然な見た目にしてみます。

MMEのウインドウで`LightMap`タブを選択し`DirectionalLight.pmx`に対し`ray-mmd-1.5.2/Lighting/DirectionalLight/Default`にある`directional_lighting_with_shadow.fx`を割り当てます。

この時、ボーン操作パネルの選択ボタンが選択状態になっていたらそれをクリックして選択解除してください。

![](/files/-Ml5L69MSuB47HEa7-Dc)

fxファイルを割り当てたことにより影が描画されるようになりましたが、何だかギザギザしていますね。

これはステージを読み込むことによって解決することができます。

`stages/さる式お米ステージver1.0`にある`さる式ごま塩ステージ.halfsize.pmx`を読み込みましょう。

![](/files/-Ml5L69LVQP3Kkgc5Sbg)

####

#### 保存

ここまでにそれなりの作業を行ってきたので、しっかりと保存しておきましょう。

名前は`project01.step3.pmm`としておきましょう。

###

### Step 4 ステージの設定

Step 3の最後で背景用のステージを読み込むついでに`DirectionalLight`の変なギザギザした影を直すことができました。

Step 4では`ray_controller`の`BloomThreshold`で設定したブルームのせいで床が眩しいので、それを解決します。

今回は少しfxファイルを書き換える必要がありますが、１行だけで済むので安心してください。

`ray-mmd-1.5.2/Materials`にある`material_2.0.fx`を同フォルダ内に複製して、名前を`stage.fx`に変更しましょう。

MMEのウインドウで`MatrialMap`タブを選択し`さる式ごま塩ステージ.halfsize.pmx`を選択した状態で右クリックからサブセット展開を行い材質`2: 布`に対して先ほど作成した`stage.fx`ファイルを割り当てます。

次にfxファイルを開き80行目のコードを次のように変更して保存します。

80行目(編集前)

```
const float occlusion = 1.0;
```

80行目(編集後)

```
const float occlusion = 0.35;
```

![](/files/-Ml5L8s0H1NRN4R-KW5X)

どうにも`occlusion`は光を吸収する性質でも持つのか、明るさを抑えることができるようですね。

本来の効果や使い方とは異なるかもしれないので気になる方は後でぜひ調べてみてください。

それでは、これで無駄に明るい問題を解決できたので次は不要な壁を非表示にすることにします。

`Main`タブと`MaterialMap`タブの両方で`0: 壁`のチェックを外すと非表示にできます。

ただ、ステージの壁はカメラを引かないと見えないと思うのでカメラを引いて確認すると良いでしょう。

> 忘れずに更新ボタンをクリックしましたか？

#### ray\_controllerで影を調整する

スカートの下の脚には影があるわけですが、この影がもう少し暗いと自然な見た目になるような気がします。

これは`ray_controller`で左上の`SSAO+`の値を`0.330`にすることで実現できます。

SSAOはモデルにそれっぽい影を作ってくれるもので、`SSAO+`の数値を上げることにより影を濃くすることができます。

![](/files/-Ml5L69JnMEFVoNdCii7)

####

#### 保存

Step 4での作業内容は少ないですが、クラッシュによるデータ喪失を回避するためにもこまめな保存は大切です。

`project01.step4.pmm`という名前で保存しておきましょう。

###

### Step 5 モデルの設定

このステップでは目のハイライトを光らせ、瞳に光沢を表現するスフィアを適応してみます。

まずは次の表を参考に`Sour_Rin_Black`の右下にある3つの項目の値を変更し、変更するごとに登録してください。

| 項目名   | 値     |
| ----- | ----- |
| 瞳1off | 1.000 |
| 瞳2off | 1.000 |
| HL2   | 1.000 |

![](/files/-Ml5L69IAXALUyzmZIJT)

####

#### 目のハイライト

目のハイライトはいくらか光っていると見栄えが良いように感じますね。

`MaterialMap`タブで`Black.fixed.80.pmx`を選択してサブセット展開を行い材質`5: HL`に`ray-mmd-1.5.2/Materials/Emissive/Fixed Color x4`にある`material_albedo_x4.fx`を割り当てます。

![](/files/-Ml5L69HD7fl3o-6bzbn)

`ray-mmd-1.5.2/Materials/Emissive`内の各フォルダにあるfxファイルは発光を表現するためのもので、末尾の数字が大きいほど明るくなります。

また、この`material_albedo_x4.fx`は材質の色と同じ色で発光させているように見せるためのものです。

完全に白く光らせたい場合は`material_white_x4.fx`を使用するとできますが、私は前者の方が好きなので今回はそちらを使用します。

![](/files/-Ml5L69GaeRLh9lXKRxE)

####

#### 瞳のスフィア

スフィアは光沢や反射を表現するために用いられるもので、角度によって見え方が変化します。

準備として`【明度下げ版】ガラス反射スフィアマップ`を`4076063.png`という名前で`ray-mmd-1.5.2/Main`に保存します。

ではさっそく、瞳にスフィアを適応するためのfxファイルを簡単に作成していきましょう。

同フォルダ内にある`main.fx`を複製し`main_ex_with_sphmap_eye.fx`という名前に変更します。

そして次のようにコードを書き換えてください。

30行目

```
#define MATCAP_MAP_FROM 1
```

32行目

```
#define MATCAP_MAP_FILE "4076063.png"
```

保存が完了したらMMEのウインドウの`Main`タブで`4: 瞳`に`main_ex_with_sphmap_eye.fx`を割り当てます。

次の画像の通りになっていれば成功です。

![](/files/-Ml5L69FfY6P8m2-t_cc)

####

#### 保存

この少女の瞳の輝きは、失わせるにはあまりにも惜しいので`prject01.step5.pmm`という名前で保存しておきましょう。

###

### Step 6 マテリアルの割り当て

これを書き始めた当初は、最初にマテリアルの割り当てを行う方が楽しくて良いかと思ったのですが、自分が制作したときはライティングの設定をした後にマテリアルを割り当て、そこからさらにライティングの微調整をしていたことを思い出しました。

また、Step 2の最後に書いた通りライトはモデルの色に影響を与えるので先にライトの調整をすると修正が減ると思います。

こうしたこともあり今の順番になっているわけですが、そのせいで一番の楽しみをお待たせしてしまいましたね。

ようやく皆様が待ち望んでいたであろうマテリアル割り当ての時間です！

各材質に様々なマテリアルを割り当てることで、発光や反射に滑らかさ等々を表現できることがRay-MMDの最大の楽しみと言えるでしょう。

Ray-MMDには初めから用意されているfxファイルが数多くあるので、それを使用したり改変する場合が多いかと思います。

しかし`ray-mmd-1.5.2/Materials/Editor`フォルダ内には様々な種類の**Editor**があり、それを利用することもできます。

Editorはそれのためのfxファイルとpmxファイルの2つを組み合わせて使用し、用途に応じて使い分けます。

最も一般的な**Standard**を例にすると、`material_editor_1.pmx`と`material_editor__1.fx`の2つを組み合わせて使用します。

説明を聞くよりも実際に使ってみた方が早いので、さっそく試していきましょう。

####

#### 髪のマテリアル割り当て

まずは髪のマテリアル割り当てから始めることにしましょう。

今回は**Anisotropic**という種類のEditorを使用します。

MMEのウインドウで`13: hair`に対して`ray-mmd-1.5.2/Materials/Editor/Anisotropic`にある`material_aniso__1.fx`を割り当てます。

すると髪の色がほんのわずかに暗くなった気がしますが、正直よくわかりませんね。

今度は値を調整するために`material_aniso__1.fx`に対応するpmxファイルを読み込みます。

**Editorのfxファイルに対応するpmxファイルは同じフォルダに入っている**ので、見つけるのは容易でしょう。

今回は`ray-mmd-1.5.2/Materials/Editor/Anisotropic`にある`material_aniso_1.pmx`を読み込むことになります。

Editorのpmxファイルを読み込むと、表情操作パネルにてfxファイル内の値を設定できます。

少し具体的に話すとEditorのfxファイルは対応するpmxファイルの表情操作の値を参照します。

そのことを確認するためにも`Aniso_1`を選択した状態で次の表に従って値を設定してみましょう。

| 項目名        | 値    | 効果       |
| ---------- | ---- | -------- |
| AlbedS     | 0.07 | 彩度を上げる   |
| Smoothness | 0.55 | 滑らかさを上げる |

![](/files/-Ml5L69EAE8Pjw-XRQYu)

**Editorのfxファイルの書き換え**

先述したようにEditorには様々な種類が存在し、それぞれ特徴が異なるので用途に応じて使い分けることになります。

表情操作パネル左下の`CustomA`を含めた6つの項目については少々特殊なものになっていて、同じ`CustomA`という名前でもEditorの種類によって効果が異なり視覚的な差異も生じます。

今回使用した**Anisotropic**では`Smoothness`の値を`0.55`に設定し、カメラを顔に近づけた状態で`CustomA`の値を変化させると、数値が`1.000`に近づくにつれ若干光の反射の仕方が変わります。

このチュートリアル記事を書こうと決める前は単にこの変化を楽しんでいただけなのですが、ある時fxファイルを間違えたときに面白いことができることに気が付きました。

`CustomA`の値を`0.000`にし登録したら、次のように`material_aniso__1.fx`を書き換え保存してみてください。

95行目

```
#define EMISSIVE_ENABLE 0
```

121行目

```
#define CUSTOM_B_MAP_FROM 1
```

125行目

```
#define CUSTOM_B_MAP_FILE "../../_MaterialMap/shift2.png"
```

ファイルを書き換えて保存すると髪に若干線が入るようになったことに気が付くと思います。

![](/files/-Ml5L69DjZoe-h_K_toT)

モデル操作パネルで`Aniso_1`を選択し左下の`CustomBLoops`の値をスライダーを動かし`0.800`にしてみましょう。

数値が上がるにつれて線が細かくなり本物の髪のようになりましたがあまり目立たなくなってしまいましたね。

![](/files/-Ml5L69CwSEYmwBjcsm1)

ここで`CustomA`の値を同じくスライダーを動かして`1.000`にしてみるとはっきりと分かるようになりました。

![](/files/-Ml5L69BU-G8fyTfhZwr)

ただ、少々主張が強すぎる気がするので`0.900`に下げるといい感じになるかと思います。

![](/files/-Ml5L69APdz-XAWyE6Vf)

これは`Anistropic`というEditorの性質であり、次のステップで服に割り当てる`Cloth`というEditorでは同様の結果にはなりません。

そのため、自分が何をしたいのかといった目的から適切なものを選択する必要があります。

> 簡単に`Anistropic`だからと説明しましたが、実際には`ray-mmd-1.5.2/Materials/Editor/Anisotropic`内の各fxファイルの `109行目`の`#define CUSTOM_ENABLE`の値が`3`であるためです。
>
> `CUSTOM_ENABLE`にはいくつかの値を設定でき、指定した値によって効果が変化します。

####

#### 服のマテリアル割り当て

今度は服に`Cloth`という名前のEditorのfxファイルを割り当てて調整していきましょう。

まずは次の表の通りにEditorのfxファイルを割り当ててから対応するEditorのpmxファイルを読み込みます。

読み込むpmxファイルは`ray-mmd-1.5.2/Materials/Editor/Cloth`にある`material_cloth_1.pmx`から`material_cloth_5.pmx`までの5つです。

| 材質名     | ファイル                                           |
| ------- | ---------------------------------------------- |
| Black   | Materials/Editor/Cloth/material\_cloth\_\_1.fx |
| Black2  | Materials/Editor/Cloth/material\_cloth\_\_1.fx |
| Black3  | Materials/Editor/Cloth/material\_cloth\_\_2.fx |
| Black4  | Materials/Editor/Cloth/material\_cloth\_\_3.fx |
| Yellow  | Materials/Editor/Cloth/material\_cloth\_\_4.fx |
| Yellow2 | Materials/Editor/Cloth/material\_cloth\_\_4.fx |
| Yellow3 | Materials/Editor/Cloth/material\_cloth\_\_4.fx |
| pants   | Materials/Editor/Cloth/material\_cloth\_\_5.fx |

**fxファイルの書き換え**

初期状態ではfxファイルを割り当てても、凹凸を表現し立体的に見せるための`ノーマルマップ`というものを読み込むようになっていません。

そのため少し大変ではありますが、`material_cloth__1.fx`から`material_cloth__5.fx`までのfxファイル5つを書き換える必要があります。

次のように書き換えてください。

31行目(編集前)

```
#define NORMAL_MAP_FROM 0
```

31行目(編集後)

```
#define NORMAL_MAP_FROM 1
```

34行目(編集前)

```
#define NORMAL_MAP_FILE "normal.png"
```

34行目(編集後)

```
#define NORMAL_MAP_FILE "_MaterialMap/normal.png"
```

`31行目`と`34行目`を書き換えてから保存すると、次のようなエラーが表示されることでしょう。

![](/files/-Ml5L69cVlJgRWXVb0uC)

これは当然のことで、そもそも読み込むように指定したファイルがまだ存在しないのです。

なぜ先にファイルを用意しないのかというと、指定したファイル名を間違えたり、指定したファイルがそもそも無いがためにこうしたエラーを起こすことは度々あり、そうした場合の対処法を知ってもらいたかったためです。

エラーメッセージを読むと`_MaterialMap/`フォルダ内の`normal.png`というファイルを読み込むのに失敗したとありますね。

確かにエクスプローラーを見ても`material_cloth__1.fx`があるフォルダには画像どころかフォルダすらありません。

これは単に用意すれば解決でき、Ray-MMDにはノーマルマップがいくつか同梱されているのでそれを利用しましょう。

`ray-mmd-1.5.2/Materials`に`_MaterialMap`という名前のフォルダがあるので、そのフォルダをコピーして`ray-mmd-1.5.2/Materials/Editor/Cloth`にペーストします。

次に、ペーストした`_MaterialMap`フォルダ内にある`Fabric02_N by 2gou.bmp`を複製して`normal.png`という名前で保存します。

これでファイルをもう一度保存して服に薄っすら模様のようなものができていれば読み込みは成功です！

![](/files/-Ml5L699pjrmfVLP5XR6)

引き続き残りの4つのfxファイルも書き換えてください。

**各Editorの値の設定**

先ほどノーマルマップを読み込むようfxファイルを書き換えたので、今度は表情操作パネルで値を設定していきましょう。

見出しはモデル操作パネルにおける各pmxファイルの表示名と同じです。

既に何度か書いていますが、必ず**各項目を変更するごとに登録ボタンをクリック**してください。

**Cloth\_1**

| 項目名         | 値     | 効果        |
| ----------- | ----- | --------- |
| AlbedV      | 0.450 | 明度を下げる    |
| NormalLoops | 0.500 | 布をきめ細かくする |
| Smoothness  | 0.440 | つやつやにする   |
| SpecularV+  | 1.000 | 光の反射の強調   |

**Cloth\_2**

| 項目名         | 値     | 効果        |
| ----------- | ----- | --------- |
| AlbedV      | 0.450 | 明度を下げる    |
| NormalLoops | 0.500 | 布をきめ細かくする |
| Smoothness  | 0.400 | つやつやにする   |

**Cloth\_3**

| 項目名         | 値     | 効果        |
| ----------- | ----- | --------- |
| AlbedV      | 0.450 | 明度を下げる    |
| NormalLoops | 0.500 | 布をきめ細かくする |
| Smoothness  | 0.400 | つやつやにする   |
| SpecularV+  | 1.000 | 光の反射の強調   |

**Cloth\_4**

| 項目名         | 値     | 効果        |
| ----------- | ----- | --------- |
| AlbedV      | 0.170 | 明度を下げる    |
| NormalLoops | 0.500 | 布をきめ細かくする |
| Smoothness  | 0.400 | つやつやにする   |

**Cloth\_5**

| 項目名         | 値     | 効果        |
| ----------- | ----- | --------- |
| AlbedH      | 0.820 | 色相を変える    |
| AlbedS      | 0.180 | 彩度を上げる    |
| AlbedV      | 0.970 | 明度を下げる    |
| NormalLoops | 1.000 | 布をきめ細かくする |
| Smoothness  | 0.430 | つやつやにする   |

![](/files/-Ml5L698z96J51mExcv8)

####

#### Editorの3つの利点

fxファイルは一度作成、改変すれば後は割り当てるだけでいくらでも使いまわせるので非常に便利です。

しかし一方で、ファイル内で直接値を指定している以上どのフレームにおいても値は同じです。

今回のチュートリアルでは使用していませんが、`ray-mmd-1.5.2/Materials/Emissive/Fixed Color x1`にある`material_white_x1.fx`という、材質を白く発光させているように見せるfxファイルでは`103`行目において、光の強さを指定する`emissiveIntensity`の値を`1.0`と指定しています。

103行目

```
const float  emissiveIntensity = 1.0;
```

それに対してEditorは表情操作の値を使用する仕組みになっていて、表情操作の値はフレームごとに登録できるため、0から100フレームまでの値は`0.5`だが101から200フレームまでの値は`0.75`にするといった調整が可能です。

Step 5では目のハイライトためにEditorではなく`material_albedo_x4.fx`を使用しましたが、これは途中で発光の強さの値を変更する必要が無いためです。

このような場合はfxファイルを使用した方が楽ですが、フレームごとに変化させたい場合はEditorにしましょう。

Emissive(発光)はほとんどのEditorで設定できるのでシーンに応じて瞳のハイライトの値を変化させ、感情の揺れ動きの表現もできそうですね。

これがEditorの利点の１つであり、最も大きな利点となるでしょう。

残る２つについて話をすると、ひとつが表情操作パネルで値を調整ができるのでエディタを開く必要が無く、MMD内で完結させられるという点で、あとひとつは他のプロジェクトに影響を与えずに済むという点です。

前者は簡単に理解できると思いますが、後者の方は少し説明した方が良さそうですね。

まず、Step 4で作成した`stage.fx`というファイルを他のプロジェクト(pmmファイル)でも利用すると仮定しましょう。

このチュートリアルにおける`stage.fx`の`occulusion`の値は`0.35`ですが、値を下げた分本来よりも暗くなってしまうので値を`0.75`に上げたとします。

そして久しぶりにこのチュートリアルのpmmファイルを開いてみると、床が眩しくなっていることに気が付きます。

複数のプロジェクトで同一のfxファイルを使用している時に値を書き換えてしまうとこのような事態が発生します。

単にfxファイルを複製すれば回避できる問題ではありますが、私にとってテキストエディタを開くのは面倒なことであり、MMD内で完結できるという点から好んでEditorを使用しています。

ただ、Editorの場合は表情操作パネルで毎回値を指定する必要があるので似たような値の場合は面倒ですけどね。

どちらを使用するべきかは経験を積んでいけば自然と分かるようになるので、着実に学んでいきましょう。

####

#### 保存

これだけの数の値の設定をやり直すのは面倒なので`project01.step6.pmm`という名前で保存しておきましょう。

###

### Step 7 肌の調整

肌の調整は**Skin**というEditorで大まかな色を設定した後に**AutoLuminous**というエフェクトを使って明度の調整を行います。

AutoLuminousは**物体を発光させているように見せる**エフェクトではありますが上記のような使い方も可能です。

####

#### 肌のマテリアル割り当て

MMEのウインドウを開き材質`0: face`と`11: skin`に対して`ray-mmd-1.5.2/Materials/Editor/Skin`にある`material_skin__1.fx`を割り当てます。

同フォルダにある`material_skin_1.pmx`を読み込んだら、次の表を参考に各項目の値を設定しましょう。

また、設定が終わったら一度`project01.step07.pmm`という名前で保存しておきます。

**Skin1**

| 項目名    | 値     | 意味     |
| ------ | ----- | ------ |
| AlbedH | 0.130 | 色相を変える |
| AlbedS | 0.170 | 彩度を上げる |

![](/files/-Ml5L697Dnjs5FKLQC2C)

####

#### AutoLuminousでの調整

AutoLuminousを使用するには少し準備が必要になるのでまずはそれを行うことにします。

私の環境ではMMDを開いた状態でも問題ありませんでしたが、念のためMMDは一度閉じておくことにしましょう。

MMDを閉じたらPMXEditorを開いて`Black.normal.fixed.80.pmx`を読み込みます。

Pmx編集ウインドウで材質タブを選択し、`0:face`と`11: skin`の２つをCtrlキー押しながら複数選択します。

材質色グループの右側にある反射強度の値を`110`に設定したら、メニューバーから上書き保存をします。

MMDを開き`effects/AutoLuminous4`にある`AutoLuminous.x`を読み込むと肌がすごく光ると思います。

![](/files/-Ml5L696axtLyVoD47Tn)

彼女の肌が輝くぐらいに美しいことに間違いはないものの、我々人類には眩しすぎるので視認できる程度に調整します。

アクセサリ操作パネルのSiの値で発光の強度を調整できるので`0.04`と入力しEnterします。

![](/files/-Ml5L695LoZjrPkyvZ3V)

これぐらいの肌の明るさがちょうどよい感じがしますね。

アクセサリ操作パネルでも値を変更したら登録ボタンをクリックしておく必要があります。

####

#### Editorでの微調整

AutoLuminousで肌の色の明度を上げられましたが少し彩度が低くなってしまった気がしますね。

`Skin_1`の表情操作パネル右下にある`Melanin`で肌の色を濃くできるので値を`0.25`に設定し調整してみましょう。

![](/files/-Ml5L694O55T4LNXB_6_)

####

#### EditorのSkinを使用する理由

今回は肌に対してSkinというEditorを用いたものの、これは特徴が無い標準的なStandardと何ら変わりありません。

強いて言えば`material_skin__1.fx`と`material_editor__1.fx`の２つでは`109行目`の`CUSTOM_ENABLE`の値が異なるぐらいですが、この`CUSTOM_ENABLE`の値が効果と見た目を大きく変化させ、各Editorを区別する最大の要因となります。

とはいえ`CUSTOM_ENABLE`で指定した効果の度合いを調整する`CustomA`の値を`0.000`から変えなければ`Anisotropic`のようにあまり変化しないことも多々あります。

加えて今回はSkinの特徴を活かすわけでもないので、それならStandardでいいじゃないかという話になりますよね。

それでも`Skin`を使用する理由としては、Editorを目的ごとに使い分けることで後で分かりやすくなるといった点が挙げられます。

人間の記憶力には限界がありますし、自分の場合はそれがかなり弱いので全部Standardにしてしまうと日が経ってまた制作しようとMMDを開きモデル操作パネルを見ても、どれがどの材質のためのものなのか絶対に分かりません。

MMEのウインドウを見ればわかることではありますが、自分はめんどくさがり屋なのでいちいち確認するのは嫌です。

そうしたこともあり全部Standardにせず肌ならSkinと目的に応じて使い分けているわけですね。

ただ、材質`0: face`と`11: skin`のために`Skin_1`と`Skin_2`を読み込んだ場合はどちらがどの材質のためのものか分からない場合もあります。

この際の対処法として、私はモデルを上から下に見た順番に従って割り当てるというやり方をしています。

適切な説明が分かりませんが、今回の場合は`0: face`が`11: Skin`より上に見える(存在する)ので、それぞれに`Skin1`、`Skin2`の順番で割り当てます。

服の黒い部分も同様で、服の`Black1`、`Black2`、グローブの`Black3`、ソックスの`Black4`といったような順番になります。

MMEのウインドウにおける材質順と同じにすることも良い方法ですが、このあたりは自分にとってやりやすい方法でを選択すれば良いでしょう。

####

#### 保存

`project01.step7.pmm`という名前で保存しておきましょう。

###

### Step 8 服のラインとスフィア強度の設定方法

MMEのウインドウで`MaterialMap`タブを選択し、材質`20: Yellow3`と`21: Blue`のチェックを外すとこれら２つが服のラインだと分かりますね。

Step 5ででは瞳ににスフィアを割り当てましたが、今度はスフィアの強度の設定方法について学んでみることにしましょう。

服のラインのためにわざわざ別のスフィアを用意するのも面倒ですので、Step 5で作成したfxファイルを流用し改変することにします。

`ray-mmd-1.5.2/Main`にある`main_ex_with_sphmap_eye.fx`を複製し、`main_ex_with_sphmap_metal.fx`にします。

MMEのウインドウで`Main`タブを選択し、材質`20: Yellow3`と`21: Blue`に対して`main_ex_with_sphmap_metal.fx`を割り当てます。

モデルのラインのかなり近くでカメラを左右に動かしてみると、スフィアが適応されていることが分かりますね。

![](/files/-Ml5L693AbMVJbVP3je_)

ただ正直なところ少し分からづらい気がするので、スフィアの強度を上げてみることにします。

テキストエディタで`main_ex_with_sphmap_metal.fx`を開いて、`34行目`を次のように書き換えて保存します。

34行目(編集前)

```
const float matCapScale = 1.0;
```

34行目(編集後)

```
const float matCapScale = 2.0;
```

![](/files/-Ml5L692G_6E7wOLLnyW)

`34行目`における`matCapScale`がスフィアの強度を表していて、試しに値を`10.0`にしてみるとかなり光ります。

![](/files/-Ml5L69adprSBrYZWw-j)

瞳用の`main_ex_with_sphmap_eye.fx`も同様に、値を変えることで強度を調整することができます。

視点パネルにて正面ボタンをクリックするとカメラの距離が`45.00`になるわけですが、瞳の方のfxファイルである`main_ex_with_sphmap_eye.fx`の`matCapScale`の値を`2.0`にすると遠くからでも瞳のスフィアの効果が分かるので、遠くからでも分かるようにしたい場合は値を大きめに調整するとよいでしょう。

ただ、今回はスフィア強度の変更方法を知ることが目的なので、瞳用のfxファイルの値は`1.0`に戻し上書き保存しておきましょう。

####

#### 保存

`project01.step8.pmm`という名前で保存しておきましょう。

###

### Step 9 ColorGradingを用いた色味の調整

Step 7において肌色の調整はほとんど終わりましたがもう少しこう、RGBのR成分が高くて、つまりはオレンジっぽい色だといいですね。

今回はRay-MMDの拡張機能であるExtensionsのひとつであるColorGradingというエフェクトを用いることにしましょう。

> 拡張機能といってもRay-MMDの有無にかかわらず使えるので、実際はただのポストエフェクトだと思います。
>
> そのためかRay-MMDのExtensionsフォルダには中身の無いフォルダだけ含まれていて各自が自分でダウンロードする形になっています。

`effects/ColorGrading-master`にある`ColorGrading.x`と`ColorGradingControllerPlus.pmx`を読み込みます。

xファイルがエフェクト本体でpmxは数値を調整するためもの、つまりはコントローラーとなります。

`ColorGrading.x`を読み込んだ時点で多分画面が真っ黒になってしまうので、この問題を解決しましょう。

メニューバーの背景>アクセサリ編集を選択し、`ColorGrading.x`を順番を並び替えたらOKボタンをクリックします。

では、モデル操作パネルで`ColorGrading+`を選択し表情操作パネル左下の`SaturationHighR+`の値を`0.8`にしてみましょう。

これは彩度の高い部分のRGB成分のうちR成分を上げるものであり、実際に肌や髪の色のR成分が増していることと思います。

![](/files/-Ml5L691ZCHGPcvRFXIi)

何が変わったのかよく分からないかもしれないので、違いを比較してみることにします。

アクセサリ操作パネルで`ColorGrading.x`を選択した隣にある表示のチェックを外すとエフェクトを無効にできます。

チェック入れた状態と外した状態を比べてみると違いが簡単にわかっていいですね。

####

#### ColorGradingでできること

ColorGradingではコントラスとや彩度等が低い部分、中程度の部分、高い部分のRGB各成分の値を調整することができます。

数値を上げたい場合は`ColorGradingControllerPlus.pmx`を読み込み、逆に下げたい場合は`ColorGradingControllerMinus.pmx`を使用します。

ColorGradingの詳しい使い方の解説は今回のチュートリアルの目的ではないので割愛します。

####

#### 保存

`project01.step9.pmm`という名前で保存しておきましょう。

###

### Step 10 背景をぼかす

映像において最も見てほしいものは`Sour_Rin_Black`なので、自然と彼女に目が向くようにしたいですね。

Ray-MMDは設定ファイルである`ray.conf`を編集することで背景をぼかせるのでそれの機能を利用してみましょう。

テキストエディタで`ray-mmd-1.5.2`にある`ray.conf`を開き、`73行目`を次のように書き換えて保存します。

73行目(編集前)

```
#define BOKEH_QUALITY 0
```

73行目(編集後)

```
#define BOKEH_QUALITY 1
```

`Main`タブや`MaterialMap`タブに割り当てたfxファイルは内容を書き換えて保存すると自動的にMMDの方で更新されるのですが、`ray.conf`の場合はそうでないのでMMDのメニューバー右上にあるMMEffectの全て更新をクリックしましょう。

再びエフェクトを読み込むのでしばらく時間がかかりますが、無事終われば背景にぼかしがかかっていることでしょう。

もしMMDが落ちたりしてしまった場合は、`project01.step9.pmm`を読み込んでみてください。

![](/files/-Ml5L690Bq5H3raMnzos)

`ray.conf`で`BOKEH_QUALITY`の値を`1`にして有効にすると`ray_controller`右上の10項目で色々と調整できます。

今回は特に調整するべき項目はないので保存だけして次に進むことにします。

####

#### 保存

`project01.step10.pmm`という名前で保存しておきましょう。

###

### Step 11 不要な影の非表示

`Sour_Rin_Black`の足元をよく見ると、非表示にしたDirectionalLightの影が表示されてしまっています。

これは不自然であるので、MMEのウインドウにて影を非表示にするようにしましょう。

MMEのウインドウを開き`SSAOMap`タブの右隣にある`PSSM1`から`PSMM4`までの`DirectionalLight`のチェックを外します。

![](/files/-Ml5L69-9LHWpPHplRot)

`PSSM1`で外しただけでは少し遠くから見た時にまた影が表示されてしまうので、全てのタブで外すのが良さそうです。

![](/files/-Ml5L68z7bC1GWsFqGbE)

`PSSM1`から`PSSM4`タブは`AL_EmitterRT`の左右両方に存在しますが、左がMMDの照明によってできる影のためのもので右が追加したDirectionalLightのための影のためのものです。

また、PSSMというのは平行分割シャドウマップ(Parallel Split Shadow Map)という影を描画するための技術のようです。

####

#### 保存

`project01.step11.pmm`という名前で保存しておきましょう。

###

### Step 12 モーションと音楽の読み込み

このステップで行うことはとても簡単です。

モデル操作パネルで`Sour_Rin_Black`を選択したら、メニューバーのファイルからモーションデータ読み込みをクリックして`motions/egorock`にある`egorock_miku.vmd`を読み込みましょう。

次にメニューバーのWavファイル読み込みを選択して、`music`フォルダ内に準備しておいたwavファイルを読み込みます。

再生パネルで再生ボタンをクリックして、モーションと音楽の両方が再生されていれば問題ありません。

![](/files/-Ml5L8s-P8cXPkQxYnUY)

####

#### 保存

`project01.step12.pmm`という名前で保存しておきましょう。

###

### Step 13 モデルの並び順の変更と割り当ての確認

Step 12でモーションと音楽を読み込んだのでさっそく映像出力の準備をしていきたいところです。

しかし今後何か編集する時のこと考えるとモデル操作パネルのモデルの順番は変えた方が良さそうです。

というのも今後SpotLightや他のEditorを追加するとColorGrading+の下に並ぶので順番がめちゃくちゃです。

なのでライトはライト、EditorはEditorといったように同じようなものはまとめてしまうと後々楽になりますね。

それと聞くところによればどうにもSkybox, 背景, モデルといったように奥から手前の順番にすると良いそうです。

というわけなのでさっそく並び替えていきましょう。

メニューバーの**背景**にある**モデル描画順**と**モデル計算順**の両方で次の画像と同じ順番にします。

![](/files/-Ml5L69jdGww-e7LuPR8)

####

#### 保存

名前は`project01.step13.pmm`としておきます。

###

### Step 14 動画出力とビデオ圧縮コーデックの準備

このステップでは動画出力を行うための準備を行います。

メニューバーのファイル>AVIファイルに保存で適当に保存場所と名前を指定するとAVI出力設定ウインドウが表示されます。

デフォルトでは未圧縮の他に5つほど選択肢があると思いますが、私は出力が非常に速い`UtVideo YUV420 BT.709 DMO`を好んで使用しています。

ただ、それを使用するには`UtVideo`をインストールする必要があるので[こちらのページ](http://umezawa.dyndns.info/wordpress/?p=7802)を開きます。

2021年10月03日時点では22.6.0が最新のようなのでexe installerというリンクからインストーラーをダウンロードし実行してください。

####

#### 動画の出力サイズの設定

メニューバーの表示>出力サイズを選択し幅と高さ、つまりは解像度を指定します。

解像度については個人の好きなように指定すれば良いのですが、私は普段2560x1440(WQHD画質)で出力しています。

通常は1920x1080もあれば十分だと思いますが、マシンスペックや容量に余裕があるのなら4Kでも良いでしょう。

####

#### アンチエイリアスの設定

Step 2では`ray.x`を読み込んだ時に背景が真っ暗になってしまうのでそれを解決するためにオフにしました。

ただオンにしている方がMMDの照明による影の付き方が自然な感じがしたので今回はオンにすることにします。

####

#### 視野角とカメラ距離の設定

モデル操作パネルで`カメラ・照明・アクセサリ`を選択し視点パネルで正面ボタンをクリックして正面視点にします。

カメラ操作パネルでは視野角を設定でき、通常は`30`になっていると思いますがこれの値を`23`に変更します。

![](/files/-Ml5L8rzV6rbxdT8YTU0)

この時ビューポート下部の距離の値が`45.0`になっていると思いますが、少し見切れているので`51.00`に変更します。

![](/files/-Ml5L8ryWmwquU-QVNMB)

最後にカメラ操作パネルの登録ボタンをクリックして変更を登録します。

####

#### 保存

同じ操作をやり直すのは何かと面倒なので`project01.step14.pmm`という名前で保存しておきましょう。

###

### Step 15 動画出力

ついに最後のステップです！

このステップでは動画出力を行うことにします。

画面左上のフレーム操作パネルで最も左にあるボタンをクリックして最終フレームに移動します。

最後のキーフレームが打たれているフレームに移動するので、1800という数値を覚えておきます。

次にファイル>AVIファイルに出力を選択し`exports`フォルダ内に`project01.step15.avi`という名前で保存します。

録画サイズが自身が指定した解像度になっていることを確認したらフレームレートに`60`と入力します。

録画フレームでは開始から終了フレームまでの2つの数値を入力し、今回は0と1800になりますね。

WAVE出力にはチェックを付けて出力される動画ファイルに音楽が含まれるようにします。

最後にビデオ圧縮コーデックで**UtVideo YUV420 BT.709 DMO**を選択しOKボタンをクリックします。

するとMMDの画面が消失し代わりにNフレーム録画中(Nフレームまで)というウインドウが表示されます。

出力が完了したら`exports`フォルダに`project01.step15.avi`が存在し、再生可能であることを確認します。

####

#### 保存

このステップでの変更は特にありませんが、完了したことを示すために`project01.step15.pmm`と保存しておきましょう。

###

### Congratulations!

よくやたらと長いこの記事を最後まで読むことができましたね！

これでRay-MMDの使い方と制作手順について多少は分かったのではないかと思います。

説明不足な点もあるかもしれませんが、その際はTwitterまでご連絡いただければ可能な限りお答えします。

ともかく、私のこのチュートリアル記事が皆様のRay-MMDの学習の助けとなれば幸いです。

それでは良きRay-MMDライフを！

私はあなたが**自分の作りたいものを自由に作れる**ようになることを応援しています🥳
