# #3 Ray-MMDが怖いって？これを読めば怖くなくなるよ！

こんにちは、最近は暖かい毛布にくるまり昼寝するのが趣味になっているえくりでぃあす([@Eclidiuth](https://twitter.com/Eclidiuth))です。

さて、今回でRay-MMDのチュートリアル記事もついに第3弾となりますね。

これまではSour式鏡音リンを使用して動画を制作していましたが今回はつみ式初音ミクとなります。

流れ的に次はSour式初音ミクが自然かなとは思いましたが、適当にMMD動画を見ているつみ式初音ミクに興味を持ち、色々遊んでいるうちに記事にしたくなったのでこうして公開する運びとなりました。

今回のチュートリアルでは次のような動画を制作しますので、一緒に頑張っていきましょう。

動画が表示されない場合は[こちらのリンク](https://www.youtube.com/watch?v=zzd_y0vW4hQ)からYouTubeでご確認ください。

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

### はじめに

このチュートリアルは**より多くの人が自分の作りたい映像を自由に作れるようになる**ことを目標として執筆されています。

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

制作方法は人それぞれではありますが、一連の手順を通して私なりの手順と方法が皆様の参考になれば幸いです。

#### 当ドキュメントにおける表記

このドキュメントでは内容を理解しやすくするために**太字のテキスト**と`背景付きのテキスト`を用いています。

太字のテキストにしているもの

1. 重要な説明
2. メニューバーの項目名
3. MMDまたはPMXEditor等におけるボタン

背景付きのテキストにしているもの

1. ファイルおよびフォルダ名
2. MMEのエフェクト割り当てウインドウのタブ名
3. MMDの表情操作パネル等の値
4. fxファイル内の項目名
5. fxファイル内の値

#### 注意点

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

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

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

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

#### 誤字・脱字について

誤字脱字には注意しながら書き進めておりますが、そうしたものが存在する場合もあります。

その際は私のTwitterアカウントにリプライまたはメンションでお知らせください。

#### 必要なもの

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

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

(敬称略)

<table data-header-hidden><thead><tr><th width="276.9090909090909"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td>配布物</td><td>制作者</td><td>配布先URL</td></tr><tr><td>MikuMikuDance_v932x64</td><td>樋口M</td><td><a href="https://sites.google.com/view/vpvp/">https://sites.google.com/view/vpvp/</a></td></tr><tr><td>MMEffect_x64_v037</td><td>舞力介入P</td><td><a href="https://www.nicovideo.jp/watch/sm12149815">https://www.nicovideo.jp/watch/sm12149815</a></td></tr><tr><td>PmxEditor_0257</td><td>極北P</td><td><a href="https://kkhk22.seesaa.net/category/14045451-1.html">https://kkhk22.seesaa.net/category/14045451-1.html</a></td></tr><tr><td>選択頂点の法線をZ軸方向に向けます。1.2</td><td>大葉真琴</td><td><a href="https://seiga.nicovideo.jp/seiga/im3688501">https://seiga.nicovideo.jp/seiga/im3688501</a></td></tr><tr><td>ray-mmd-1.5.2</td><td>Rui</td><td><a href="https://github.com/ray-cast/ray-mmd/tree/1.5.2">https://github.com/ray-cast/ray-mmd/tree/1.5.2</a></td></tr><tr><td>OpticalFlares</td><td>Rui</td><td><a href="https://github.com/MikuMikuShaders/OpticalFlares/">https://github.com/MikuMikuShaders/OpticalFlares/</a></td></tr><tr><td>AutoLuminous4</td><td>そぼろ</td><td><a href="https://onedrive.live.com/?id=EF581C37A4524EDA%21108&#x26;cid=EF581C37A4524EDA">https://onedrive.live.com/?id=EF581C37A4524EDA%21108&#x26;cid=EF581C37A4524EDA</a></td></tr><tr><td>つみ式ミクさんv2.1</td><td>つみだんご</td><td><a href="https://www.nicovideo.jp/watch/sm29503530">https://www.nicovideo.jp/watch/sm29503530</a></td></tr><tr><td>ヒバナのモーションデータ</td><td>ゲッツ</td><td><a href="https://www.nicovideo.jp/watch/sm32761473">https://www.nicovideo.jp/watch/sm32761473</a></td></tr><tr><td>ヒバナのリップ</td><td>rink</td><td><a href="https://www.nicovideo.jp/watch/sm32786865">https://www.nicovideo.jp/watch/sm32786865</a></td></tr></tbody></table>

### Step 0 最初の準備

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

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

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

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

<table data-header-hidden><thead><tr><th width="150"></th><th></th><th></th></tr></thead><tbody><tr><td>フォルダ名</td><td>配置しておくもの</td><td>用途</td></tr><tr><td>effects</td><td>ray-mmd-1.5.2, OpticalFlares, AutoLuminous4</td><td>MMEエフェクトを配置する</td></tr><tr><td>exports</td><td>なし</td><td>出力する画像、動画を保存する</td></tr><tr><td>models</td><td>つみ式ミクさんv2.1</td><td>モデルデータを配置する</td></tr><tr><td>motions</td><td>ヒバナのモーションデータ、ヒバナのリップ</td><td>モーションデータを配置する</td></tr><tr><td>music</td><td>ヒバナの音楽(.wav)ファイル</td><td>音源データを配置する</td></tr><tr><td>pmm</td><td>なし</td><td>pmmファイルを保存する</td></tr></tbody></table>

#### モデルの改変

モデルには法線というものが存在し、それの向きが影の描画に影響を与えます。

通常の状態ではあまりにも顔の陰影が目立ちすぎるあまり少々不気味に見えるためそれを解決します。

PMXEditorを起動し自動的に表示されるPmxViewに`つみ式ミクさんv2.1/ミクさん.pmx`を読み込みます。

読み込んだらPmxView左下にある青色の丸とオレンジ色の線のアイコンの2つをクリックして選択解除します。

次にメニューバーのすぐ下にある小窓のセクションにおいて**絞**をクリックして**絞込み表示**ウインドウを表示します。

`頂点/材質`タブを選択した状態で材質のラジオボタンを選択し、隣にある**反**をクリックしてすべての材質を非表示にした後に材質`0: 頭`から`6: 瞳2`までの7つの材質にチェックを入れウインドウを閉じます。

次に顔全体が収まるようにドラッグで範囲指定をし、Pmx編集ウインドウの**表示>プラグイン>User>faceforward1.2>faceforward64**を選択して**選択頂点の法線をZ軸方向に向けます**ウインドウを表示します。

中央に向ける割合の数値は`70`に、バイアスについては全ての値を`0`、Z軸で前を向いているものだけを対象にするにチェックを入れた状態で**実行**をクリックしてnの法線を変更しました(nは変更した法線の数)と出たら**OK**で閉じます。

最後にPmx編集の**ファイル>上書き保存**から`ミクさん.pmx`を上書き保存します。

### Step 1 Skyboxの設定

Step 0にて必要な準備が完了したので、さっそくRay-MMDを読み込んでいきましょう。

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

#### Skyboxの読み込み

今回は背景を朝焼けにしたいので、それを表現できる`Time of day`というSkyboxを使用します。

`ray-mmd-1.5.2/Skybox/Time of day`にある`Time of day.pmx`を読み込みましょう。

デフォルトではSkybox(`Time of day.pmx`)が白っぽくなっているかもしれません。

その際はまず、メニューバー右上にある**MMEffect>エフェクト割当**から**エフェクトファイル割り当て**ウインドウ(以降MMEのウインドウと表記)を開きます。

次に`MaterialMap`タブを選択して`Time of day.pmx`に対し`ray-mmd-1.5.2/Materials`にある`material_skybox.fx`を割り当て、Skyboxが正常に描画されている(白っぽくなっていない)ことを確認します。

![](/files/TJbGeCLcTKoJoI3GEXFc)

Skyboxにはそれ専用の`material_skybox.fx`というfxファイルが`MaterialMap`タブで割り当てられている必要があるので、Skyboxを読み込んだ際は割り当てが正しいか確認するようにしましょう。

最後に、床のグリッドは不要なので画面右上の**座標軸**をクリックして非表示にしましょう。

#### 作業内容の保存

ここまでの作業内容はStep 0で作成した`pmm`フォルダに`project01.step1.pmm`として保存しておきましょう。

Step毎にpmmファイルを保存することで期間が空いても途中から再開することができます。

### Step 2 MMDの照明の調整

`Time of day`というSkyboxはMMDの照明操作パネルの`X`、`Y`、`Z`の３つの値によって背景やライティングが変化します。

ビューポート左下にある**カメラ編**をクリックしてパネルの表示を切り替え、照明操作パネルでYの値をスライダーで変更すると背景が変化していくことが分かりますね。

これを利用して通常の明るい青空から朝焼けあたりの時間帯に見えるようにしてみましょう。

なお、スライダーで値を調整した場合は値が同じでも見た目が異なる場合があるため、変化を確認したい場合を除き直接値を入力する方が良いでしょう。

| 項目名 | 値    |
| --- | ---- |
| X   | -0.5 |
| Y   | -0.1 |
| Z   | +0.5 |

![](/files/DyAbJrbxBFZg8HCqp5ZW)

`X`、`Y`、`Z`それぞれの値を変更したら必ず照明操作パネルにある**登録**をクリックして変更を登録します。

この操作を行わないと変更が保存されず、二度手間になるので忘れないよう注意しましょう。

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step2.pmm`として保存しておきましょう。

### Step 3 モデル読み込みと微調整

Step 0で作成した`models`フォルダ内にある`つみ式ミクさんv2.1`フォルダ内の`ミクさん.pmx`を読み込みます。

読み込んだ初期の状態ではやけに白く、半透明の部分が薄いピンク色になっているのでこれを修正したいですね。

しかしその前にひとつ行わなければならない操作があります。

モデルの読み込みが完了した時点で、先ほど設定した背景が青空に戻ってしまっています。

これはMMDの仕様であり、これを解決するには**表示**から**モデル編集時カメラ・照明追従**を有効にする必要があります。

![](/files/gjDCiFXY5X0ACO0bj4xS)

#### モデルを正しく描画させる

それでは次はモデルが正しく描画されるようにしましょう。

`Main`タブを選択して`ミクさん.pmx`に対し`ray-mmd-1.5.2/Main`にある`main.fx`を割り当てます。

まともな見た目には近づきましたが、前髪やアームカバーについてはまだ薄いピンク色のままですね。

これは`EnvLightmMap`タブでSkyboxに対し適切なfxファイルを割り当てていないためです。

![](/files/zxneDGeb70OZ5oOfazc3)

`EnvLightmMap`タブを選択し`Time of day.pmx`に`ray-mmd-1.5.2/SKybox`にある`skylighting_none.fx`を割り当てます。

これによりモデルが正常に描画されるようになりましたがモデルの一部にしか光が当たっていませんね。

正確には照明操作パネルの`X`、`Y`、`Z`の３つの値で指定した方角の方のみが照らされています。

![](/files/6EMf56FwY4Zq6kh0dzu2)

この状態では後ろからモデルを見たときにモデルの背面が真っ黒になってしまっているのでこれを解決します。

今度は`Time of day.pmx`に`ray-mmd-1.5.2/SKybox/Sky Hemisphere`にある`Sky with lighting.fx`を割り当てます。

このファイルは`Sky Hemisphere`という名前のSkyboxの表情操作パネルの値を使用してライティングを行うようにさせるもので、現在は360度全ての方向から白い光で照らされている状態になります。

![](/files/jhqBXU5yLXAUsb7L5re7)

ここで一部の人は現在使用しているSkyboxは`Time of Day`なのではと疑問に思うかもしれません。

確かに現在は`Time of day.pmx`に`Sky Hemisphere`用のfxファイルを割り当てています。

本来であれば`Time of Day`にはそれ用の`ray-mmd-1.5.2/Skybox/Time of day/Time of lighting.fx`を割り当てるところでしょうし、多くの他のチュートリアルや解説ではそうするように説明されていることでしょう。

しかしそれは少々扱いづらく、実際に割り当て照明操作パネルで**初期化**するとその理由が分かります。

Skyboxは背景の変化に応じてライティングも変化し、青空ではそれに適したものに変化します。

肌の部分を見るとわかりやすいですが、青空の影響を受け見慣れない色になってしまっていますね。

もちろんこの状態から調整していくことも可能ではありますが、それは初心者にとっては大きな手間になります。

![](/files/GInnrpZGjdKmnyxc1voB)

そのため、このチュートリアルではただの白い光(明るさ)だけを提供してくれる`Sky Hemisphere`用のfxファイルを用いることにします。

モデル操作パネルで`Time of day`に切り替えたら`Time of day.pmx`に再び`ray-mmd-1.5.2/Skybox/Sky Hemisphere`にある`Sky with lighting.fx`を割り当てましょう。

#### Skyboxのライティングの調整

少々長くなりましたがこれでライティングについてはほとんど終わりました。

最後にライトの明るさが強く陰影があまり無いので今度はライトの明るさを下げてこれを解決しましょう。

`Time of day`を選択し表情操作パネル右上にあるセレクトボックスで`EnvDiffLight-`を選択し、その値をスライダーあるいは直接値を入力して`0.540`に設定し、すぐ上にある登録ボタンで変更を登録します。

照明操作パネルの時と同様に項目の値を変えたらそれを登録する必要があるのでその操作を忘れずに行いましょう。

![](/files/50r1En5fpcyxAIWXAweZ)

#### 彩度の調整

では次に画面全体の彩度を上げることにしますが、それを行うには`ray_controller.pmx`を読み込む必要があります。

`ray-mmd-1.5.2`にある`ray_controller.pmx`を読み込むと自動的にモデル操作パネルで`ray_controller`が選択されるので、表情操作パネル右下にあるセレクトボックスから`Saturation+`を選択し値を`0.350`にして登録します。

![](/files/fJrnIHAvxjYKhEFcWDv1)

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step3.pmm`として保存しておきましょう。

### Step 4 床と海面の用意

今回は簡単に配布ステージを使用する代わりにRay-MMDに最初からある便利な床を使用することにします。

まずは`ray-mmd-1.5.2/Materials/Programmable/Water`内にある`water.pmx`を読み込みましょう。

それを読み込むとただのグレーの板が足元に追加されることが分かりますね。

この床は表情操作パネル左下の`scale`の値を上げることにより大きくすることができます。

しかしこの床に関しては特に大きくする必要が無いので二枚目の`water.pmx`を読み込みます。

二枚目の`water.pmx`を読み込んだら`scale`の値を`0.700`にして大きくし**登録**します。

![](/files/Txe5I3e1masIhnKNnXbZ)

#### 二枚目の床を海面にする

`MaterialMap`タブを選択し2番目の`water.pmx`に同じフォルダ内にある`material_water.fx`割り当てます。

これにより良さげな海面を表現することができましたが、まだ`main`タブの割り当てが完了していません。

`main`タブを選択し、2つの`water.pmx`に対して`ray-mmd-1.5.2/Main`にある`main.fx`を割り当てましょう。

次に２枚の床は同じ高さに位置しているので海面の床の方を少し下に移動することにします。

モデル操作パネルで2番目の`water`を選択しビューポート下部のYの値を`-0.4`にしボーン操作パネルで登録します。

これで２つの床が重なることはなくなりましたね。

![](/files/VVT1XLpHdqtTed7IucuG)

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step4.pmm`として保存しておきましょう。

### Step 5 マテリアル割り当て

さて、ここからは一番の楽しみであろうマテリアル割り当ての時間です。

前回同様に今回もRay-MMDの**Editor**というものを多用していきますが、プリセットも一部の材質には使用していきます。

ではさっそく髪からマテリアルの割り当てを行っていくことにしましょう。

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

`MaterialMap`タブを選択し`ミクさん.pmx`を右クリックから**サブセット展開**します。

髪の材質は`7: 前髪裏`、`10: 前髪` 、`11: 後髪`、`12: ツインテ`の4つのようなのでCtrlキーで複数選択します。

複数選択した状態で`ray-mmd-1.5.2/Materials/Editor`にある`material_aniso__1.fx`を割り当てましょう。

Editorのfxファイルを割り当てただけでは何も変わらないので次は対応するEditorのコントローラを読み込みます。

`material_aniso__1.fx`に対応するコントローラは同フォルダ内にある`material_aniso_1.pmx`ですから、それを読み込んだら次の表の通りに値を設定し、各項目の値を変更するごとに登録を行ってください。

また、ボーン操作パネルで**選択**が有効になっていると影が描画されないので必ず選択状態を解除してください。

Aniso\_1

| 項目名        | 値     | 効果              |
| ---------- | ----- | --------------- |
| AlbedH     | 0.450 | 色相を変える          |
| AlbedS     | 0.280 | 彩度を上げる          |
| CustomA    | 1.000 | (多分横方向に)つやつやさせる |
| Smoothness | 0.540 | つやつやした感じを表現する   |

![](/files/qjhXO3AGXRryEXbjho5u)

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

今回は簡単に白い上着部分と黒いアームカバーとブーツの２つにマテリアルを設定することにします。

まずは**Cloth**という種類のEditorが2つ必要なので先にコントローラを読み込むことにしましょう。

`ray-mmd-1.5.2/Materials/Editor/Cloth`にある`material_cloth_1.pmx`と`material_cloth_2.pmx`を読み込んだら`MaterialMap`にて次の表の通りにfxファイルを割り当てます。

| ファイル名                   | 材質名                                                  |
| ----------------------- | ---------------------------------------------------- |
| material\_cloth\_\_1.fx | 27: 上着                                               |
| material\_cloth\_\_2.fx | 25: ブーツ、29: スカート、30: アームカバー1、31: アームカバー2、32: アームカバー3 |

次に今割り当てたfxファイルが利用するためのノーマルマップを用意しましょう。

ノーマルマップ(法線マップ)とは服や物体の凹凸を表現するために用いられるもので、Ray-MMDには最初からそれがいくつか付属しているので今回はそれを使用することにします。

`ray-mmd-1.5.2/Materials/_MaterialMap`フォルダ内に`Fabric02_N by 2gou.bmp`という画像ファイルがあるのでそれをコピーして`ray-mmd-1.5.2/Materials/Editor/Cloth`にペーストし`normal.png`とリネームします。

これでノーマルマップを用意できたので今度はfxファイルがそれを使用するように少しだけコードを書き換えます。

お好きなエディタ(筆者はVSCodeを使用)で`material_cloth__1.fx`を開いて31行目を次のように書き換えます。

```
#define NORMAL_MAP_FROM 1 // default 0
```

このようにコードを書き換えることで、34行目で指定した名前の画像を読み込むようになります。

書き換えとノーマルマップの適応に成功したら、同様の手順で`material_cloth__2.fx`も書き換えましょう。

![](/files/iM4E8COy8jOa3DnVY6SB)

#### 服のマテリアル調整

先ほどfxファイルを書き換えたことによりノーマルマップを適応できたので今度はコントローラでその調整を行います。

次の表に従って各項目の値を設定し登録を忘れないようにしてください。

Cloth\_1

| 項目名         | 値     | 効果           |
| ----------- | ----- | ------------ |
| AlbedH      | 0.450 | 色相を変える       |
| AlbedS      | 0.090 | 彩度を僅かに上げる    |
| SpecularV+  | 1.000 | 光沢を強調する      |
| NormalLoops | 0.500 | ノーマルマップを繰り返す |
| Smoothness  | 0.600 | つやつやにする      |

Cloth\_2

| 項目名         | 値     | 効果           |
| ----------- | ----- | ------------ |
| AlbedV      | 0.590 | 明度を下げる       |
| SpecularV+  | 1.000 | 光沢を強調する      |
| NormalLoops | 0.600 | ノーマルマップを繰り返す |
| Smoothness  | 0.490 | つやつやにする      |

![](/files/MpwcOBpwUxjxTVNr4TZ5)

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

せっかくなので髪の赤色のアクセサリを点滅させてみることにしましょう。

今回は特に特徴がないのが特徴な**Standard**という種類のEditorを使用することにします。

まず`ray-mmd-1.5.2/Materials/Editor/Standard`にある`material_editor_1.pmx`を読み込み材質`14: 髪留め2`に対して同フォルダ内にある`material_editor__1.fx`を割り当てましょう。

次の表に従って各項目の値を設定し忘れずに登録を行ってください。

Editor\_1

| 項目名               | 値     | 効果         |
| ----------------- | ----- | ---------- |
| AlbedH            | 0.860 | 色相を変える     |
| AlbedS            | 0.670 | 彩度を上げる     |
| EmissiveR         | 1.000 | 赤色に発光させる   |
| EmissiveG         | 0.430 | 緑色に発光させる   |
| EmissiveB         | 0.540 | 青色に発光させる   |
| EmissiveBlink     | 0.080 | 点滅の間隔を指定する |
| EmissiveIntensity | 1.000 | 発光の強度を指定する |

最後に`EmissiveBlink`で指定した間隔で点滅するように`material_editor__1.fx`を書き換えます。

```
#define EMISSIVE_MAP_APPLY_BLINK 1 // default 0
```

![](/files/me2B8aTH4x2X8XJNTTRM)

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

Editorを使ったマテリアルの調整はこれで最後になります。

今回は**Skin**というEditorを使用するので`ray-mmd-1.5.2/Materials/Editor/Skin`にある`material_skin_1.pmx`を読み込んだら材質`0: 頭`、`1: 顔`、`17: 体1`、`18: 体2`、`19: 体3`、`20: 体4`に同フォルダ内にある`material_skin__1.fx`を割り当てましょう。

次の表に従って各項目の値を設定し忘れずに登録してください。

また、この時点では`CustomA`と`Custom2R`、`Custom2G`、`Custom2B`の値を変更しても変化はありませんが後で説明するので安心して進めてください。

Skin\_1

| 項目名      | 値     | 効果                 |
| -------- | ----- | ------------------ |
| AlbedH   | 0.090 | 色相を変える             |
| AlbedS   | 0.020 | 彩度を上げる             |
| CustomA  | 0.260 | 特殊効果の程度を指定する       |
| Custom2R | 0.820 | 特殊効果の値を指定する(RGBのR) |
| Custom2G | 0.400 | 特殊効果の値を指定する(RGBのG) |
| Custom2B | 0.400 | 特殊効果の値を指定する(RGBのB) |

値を設定したら少しだけfxファイルを書き換える必要があります。

`material_skin__1.fx`の95行目のコードを次のように書き変え保存してください。

```
#define EMISSIVE_ENABLE 0 // default 1
```

`EMISSIVE_ENAVLE`の値を`0`にして無効にすると109行目の`CUSTOM_ENABLE`による特殊効果を有効にすることができます。

`CUSTOM_ENABLE`の値が`1`の時は`ray-mmd-1.5.2/Materials/README.md`の**Shading Model ID**にある通り**PreIntegrated Skin**

としての効果となり、これは肌を表現するために用いることができます。

`CustomA`ではその効果の程度を、3つのCustom2ではRGBの各成分の値を設定することができます。

![](/files/WjcazTz3G3Ui9EklgALL)

#### 残りの材質のマテリアル割り当て

最後に残りの材質にRay-MMDに最初からあるマテリアル用fxファイルを割り当てることにします。

次の表に従い各材質に`ray-mmd-1.5.2/Materials`内にある適切なマテリアル用fxファイルを割り当ててください。

ミクさん.pmx

| 材質名      | fxファイルのパス                                          | 効果       |
| -------- | -------------------------------------------------- | -------- |
| 02: 01   | Metallic/Flat ingot roughmaterial\_rough\_metal.fx | メタリックにする |
| 26: ブーツ2 | Metallic/Flat ingot roughmaterial\_rough\_metal.fx | メタリックにする |
| 28: ネクタイ | Metallic/Flat ingot roughmaterial\_rough\_metal.fx | メタリックにする |

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step5.pmm`として保存しておきましょう。

### Step 6 目の影を改善する

Step 5にてマテリアル割り当てが完了しましたが目の部分が黒くなっており不気味に感じてしまいますね。

これは特定の材質を非表示に、`SSAO`タブで影を作らないようにすることで解決することができます。

#### 不要な材質の非表示

まずは手始めに不要な材質を非表示にすることにしましょう。

`MaterialMap`にて材質`8: 目影`と`9: 顔影`のチェックボックスを外します。

次に`Main`でも同様に材質`8: 目影`と`9: 顔影`のチェックボックスを外すことで材質を非表示にできます。

#### SSAOによる影を消す

Ray-MMDではSSAOというものにより自身に影ができるようになっています。

通常であればモデルに陰影を与える便利な機能にはなりますが今回のようにSSAOにより表示が変になることもあります。

仕様通りではあるのですが、目に関しては不要なのでSSAOによる影を非表示にします。

`SSAOMap`タブを選択し材質`3: 白目`、`4: 黒目`、`5: 瞳`、`8: 目影`に対し`ray-mmd-1.5.2/Shadow`にある`SSAO visibility 0.0.fx`を割り当てることでSSAOによる影の濃度を0にすることができます。

これで白目と目影部分にできていた黒い影をなくし、黒目、瞳を明るくすることができましたね。

#### 顔の影を薄くする

これは個人の好みによるので必ずしも行う必要はありませんが、顔の影を薄くしたい場合もあるでしょう。

その際は`SSAOMap`にて材質`0: 頭`に対し`SSAO visibility 0.5.fx`を割り当ててあげると良いでしょう。

数値が低いほど影は薄くなり、逆に数値が大きいほど影が濃くなります。

今回は`SSAO visibility 0.5.fx`を割り当てることにしました。

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step6.pmm`として保存しておきましょう。

### Step 7 AutoLuminousでの調整

Step 6にて目の影を消すことに成功したものの、まだ少し暗い気がするので明るく見えるようにします。

`AutoLuminous`というエフェクトを利用することで任意の材質を明るく表示させることができます。

まずはStep 0で作成した`effects`フォルダ内に存在する`AutoLuminous4/AutoLuminous.x`を読み込みましょう。

読み込んだ時点では何ら変化はありませんが、これは当然のことでPMXEで少し調整を行う必要があります。

一度ここまでの作業内容を`pmm`フォルダに`project01.step7.pmm`として保存しMMDを終了します。

PMXEditorを起動し`ミクさん.pmx`を読み込んだらPmx編集ウインドウの`材質`タブにて材質`3: 白目`から`6: 瞳2`までの4つの材質をCtrlで複数選択し反射強度の値を110に変更します。

一度他の材質を選択してもう一度反射強度の値を変更した材質を選択し値が変更されていることを確認しましょう。

確認が完了したら上書き保存を行いPMXEditorは終了しMMDで`project01.step7.pmm`をロードします。

この時に目の部分がすごく明るくなっていたら成功です。

あまりにも明るすぎるためアクセサリ操作パネルで`AutoLuminous.x`を選択し`Si`の値を`0.1000`に、`Tr`の値を`0`にして明るさを抑え、光が周囲へ拡散しないように変更し**登録**を行います。

次にメニューバーの**表示>アクセサリ編集から**`AutoLiminous.x`、`ray.x`の順番に並び替えてAutoLuminousで目を明るくした後にRay-MMDでのシェーディングが行われるように変更しましょう。

![](/files/ajxUvzBsGi4CZgXQMXVp)

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step7.pmm`として保存しておきましょう。

### Step 8 床にモデルを反射させる

Ray-MMDには**Screen Space Reflection**というスクリーン上に映っているものを任意の材質に反射させられます。

しかしその性質上スクリーンに映っていない部分は反射しないので、他にいいものがあればそれを使うと良いでしょう。

#### SSRを有効にする

SSRを有効にするには`ray-mmd-1.5.2`にある`ray.conf`を書き換える必要があります。

その前に一度現在の内容を`pmm`フォルダに`project01.step8.pmm`として保存しておきましょう。

`ray.conf`を開いたら58行目にある`#define SSR_QUALIT`の値を`3`に変更し上書き保存を行います。

完了したら**MME>すべて更新**から全てのエフェクトの再読み込みを行います。

この時点では何ら変化がないので床にモデルが反射するようなマテリアルを割り当てることにします。

`MaterialMap`にて海面でない方の`water.pmx`に`ray-mmd-1.5.2/Materials/ClearCoat`にある`material_black.fx`を割り当てます。

カメラを動かしてみて床にミクさんが反射していれば成功です。

また、FPSが下がって重い場合は反射の精度は下がりますが値を`1`に変えて負荷を下げると良いでしょう。

![](/files/Vn6CzHCf3BQ1QckQrvzf)

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step8.pmm`として保存しておきましょう。

### Step 9 最後の仕上げ

現在の状態でも十分見栄えは良いように思えますが、もう少し影が濃いと陰影がはっきりして良いかなと思います。

`ray_controller`を選択したら`SunShadowV-`と`SSAO+`の値を共に`0.200`に変更しそれぞれ登録を行います。

これによりMMDの照明によってできる影を暗くし、SSAOによってできる影も濃くすることができました。

![](/files/zsGUG1pv3EQaKhahpync)

#### 背景のぼかし

Ray-MMDでは`ray.conf`の設定を変えることで背景のぼかし(Bokeh)が利用可能になります。

一度`project01.step9.pmm`として保存したら`ray.conf`を開き73行目を次のように書き換えましょう。

ファイルを書き換えたらpmmファイルを読み込み直すかMMEffectから**全て更新**を行い背景を確認します。

```
#define BOKEH_QUALITY 1 // default 0
```

![](/files/bjamruvZVsWfAtLJ12gQ)

#### OpticalFlaresでレンズフレアを描画する

せっかくなので**OpticalFlares**というエフェクトを使ってレンズフレアを描画させましょう。

今回は簡単に`OpticalFlares-master/Sun Flare Circle Bokeh 1`にある`OpticalFlares by Sun.x`をロードします。

このxファイルでは太陽のある方向から自動的に計算していい感じのレンズフレアを描画してくれます。

![](/files/0l6PTBBTdG733VYTwmq1)

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step9.pmm`として保存しておきましょう。

### Step 10 モーションと音源の読み込み

最後にモデルのモーションと表情を読み込みましょう。

モデル操作パネルで`つみ式ミクさん`を選択し`Hibana/Hibana.vmd`を読み込みます。

ロードが完了し、画面左側のパネルにキーフレームが追加されたことを確認したら再生パネルで**再生**を行います。

何ら問題ないようであれば次は`ヒバナ（カメラ・表情・リップ）`にある`カメラ.vmd`、`リップ(あ－いや).vmd`、`リップ(ななな).vmd`、`表情リップメイン.vmd`、`目線.vmd`の5つのvmdファイルを読み込みます。

`カメラ.vmd`は`カメラ・照明・アクセサリ`を選択した状態で、他の4つは`つみ式ミクさん`を選択してから読み込みます。

全てのvmdファイルを読み込みもう一度再生してみて何ら問題なさそうであれば次に進みます。

![](/files/Pg0nVFEd6UNAyhbLbNqk)

#### ぼかしの調整

`5795`フレームから`6015`フレームまでの間を確認するとモデルにぼかしがかかっているので`ray_controller`で調整します。

`0`フレームに移動し`FocalRegion+`の値を`0.280`にし登録したら`5795`フレームに移動して確認します。

![](/files/dybta3IhYYC10xg87Azj)

#### 音源の読み込み

Step 0にて作成した`music`フォルダにある`wav`形式の音声ファイルを読み込みます。

画面左のフレーム操作パネル上部に音声の波形が表示されていれば読み込めています。

#### 作業内容の保存

ここまでの作業内容を`pmm`フォルダに`project01.step10.pmm`として保存しておきましょう。

### Step 11 映像出力

ついにこのチュートリアルにおける最後の作業となります。

あともう少しなのであと一息頑張りましょう！

MMDでは`avi`形式で映像を出力でき、個人的に**UtVideo**というビデオ圧縮コーデックがおすすめです。

他のものと具体的な数値を比較してはいませんが、私の環境では高速で出力が完了するため気に入っています。

こちらのページから**exe installer**をダウンロードしインストールを行ってください。

2021年12月28日時点では23.0.0が最新のようですが、新しいものがあればそちらを使うのが良いでしょう。

インストールが完了したらMMDを閉じた後にもう一度開き、**ファイル>AVIファイルに出力**を選択します。

保存場所はStep 0で作成した`exports`内にし名前は適当に`project01.step11`とでもしておきましょう。

指定が完了すると**AVI出力設定**ウインドウが表示されるのでフレームレートは30や60などお好きなものを指定しましょう。

このあたりは個人のマシンスペックによると思います。

次に録画フレームについてですがこれには`0`と最終フレームである`6193`を指定します。

WAVE出力にチェックを入れ、ビデオ圧縮コーデックには`UtVideo YUV420 BT.709 DMO`を指定します。

最後に**OK**をクリックすると映像出力が始まるので完了するのを待ちます。

映像出力が完了したらaviファイルを再生するか、重い場合は一度mp4に変換した後に再生して問題がないか確認しましょう。

もし大丈夫そうであればこれにてチュートリアルは完了です、お疲れ様でした！！！

### おわりに

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

普段無気力な私からしたら最後までこの記事を読むことができたあなたは尊敬に値します。

一連の手順を通して多少はRay-MMDの扱い方が分かったかと思います。

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

また、YouTubeチャンネルの方を登録、コメントで応援いただけるとつい嬉しくなって少しだけ記事の執筆が早くなるかもしれませんね...!

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://eclidiuth.gitbook.io/ec-ray-mmd-tutorials/there-is-no-need-to-be-afraid-of-ray-mmd.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
