眼津さんのMMD ~目指せモーフマスター編~


全年齢向け作品の固めシーンを主食とする眼津さんです
今回は色彩や質感をモーフで調整する方法についての記事です!
これ知るまでは動画を合成して状態変化させてたんですよねぇ
モーフ調整用のモデルを作成する手順についても紹介します


材質ファイルでモーフの値を読み取る


まずは既に読み込んでるモデルのモーフをお借りして試してみましょう
いつも通りMMDを起動してRay-MMDとモデルを準備してください

いつもの

Ray-MMDを準備する過程で「ray_controller.pmx」というモデルも読み込んでるはずです
「ray_controller」は明るさや光源処理を調整するためのモーフを持ってます
その中から「TestMode」というモーフを使ってみます

何に使うモーフなのかイマイチ分かってない

まずは材質ファイルを用意しましょう
テキストエディタで新規のファイルを開いて「○○.fx」として保存します
空の材質ファイルを作成したら以下の文をコピペしてください
※テクスチャのパスと一番下の行は各自の環境に合わせて修正してください


コピペしたらテキストを上書き保存してモデルの材質に割り当てます
この時点では見た目は変わらないはずです
エラーが出ないことを確認したら材質ファイルの1行目に注目してください


これは「どのモデル」の「どのモーフ」を読み取るかを指定する文です
例だとモデル「ray_controller.pmx」のモーフ「TestMode」を指定しています
読み取ったモーフ値は以降の行で「m1」と書くと参照できます
「m1」というのはモーフ値を参照するときのお名前のようなものです
1つ目のモーフなので「m1」としましたが自由な名前を付けることもできます

それでは実際にモーフ値を参照してみましょう
30行目の「反射の強さ」にモーフ値「m1」を反映させます

0.0になってる箇所を...

「m1」に書き換える

修正が完了したらテキストを上書き保存してください
そしてMMDの画面で「TestMode」のバーをいじってみると...

「TestMode」のバーを右に動かす

バーの動きとツヤツヤ具合が連動するようになりました!
バーを動かしてモーフ値を0.0~1.0で指定することができます
このように指定したモデルのモーフに名前を付けて呼び出すことでモーフ値を参照できるようになります
他にもこんなこともできちゃいます!

数値を直接入力してマイナス値や1.0以上を指定する

枠内に数値を入力

1つのモーフ値を複数の項目で参照する

複数のモーフ値を参照する
※お名前が被らないようにしましょう

モーフ値は「#define ~」の形式で指定する項目には使えません
「static const float ~」の形式でのみ利用できると思ってください


モーフ調整用モデルを作成する


自由に使えるモーフを持つモデルがあれば編集作業が便利になります
配布されてるエフェクトやシェーダにも含まれてたりしますね
「○○Controller.pmx」という名前であることが多いです
モーフ用モデルの作成には「PmxEditor」というソフトを使います
※本記事では PmxEditor ver2.0.7.5 を使ってます

モデリングができるソフト「PmxEditor」

PmxEditorを起動するとウィンドウが2つ表示されます
まずは編集ウィンドウからモデル名を付けましょう
これはMMDの画面で表示される名前になります
とりあえず「MaterialController」と名付けます

編集ウィンドウからモデル名を設定

次はViewウィンドウから頂点と面を追加します
面を持ってないとMMD側で不具合が起きたりします
Viewウィンドウの左上のセレクタから「拡張編集」を選択してください

Viewウィンドウで「拡張編集」を選択

「拡張編集」を選択すると拡張編集画面が表示されます
まずは面に適用する材質を新規作成します
「新規材質ボタン」を押下してください

拡張編集画面で「新規材質ボタン」を押下

材質を追加したら「頂点-面作成」を選択してください
その状態でViewウィンドウ上の白い空間をクリックすると頂点が配置されるので適当な場所に3つ追加してください
頂点を配置して「開始ボタン」を押下すると面が作成されます

クリックした場所に小さく「・」が表示される

配置した点を確認してみましょう
編集ウィンドウの頂点タブを開くと先程配置した頂点の座標が表示されてます
このままでも問題ないですが気になる人は位置と法線を整えても良いです

頂点が3つあればOK

見えない部分でもキレイにしておきたい

念のため面が追加されていることも確認しておきます
面タブを開いて面が1つ存在すればOKです
面ができていない場合は頂点追加からやり直してください

面が1つあればOK

次は本来の目的であるモーフを追加していきます
モーフタブを開いたら画面左側の白いエリアを右クリックしてください
「新規モーフ作成」→「頂点/UV」の順に選択するとウィンドウが2つ表示されます

モーフタブから左側のエリアを右クリック

「新規モーフ作成」→「頂点/UV」を選択

Viewウィンドウと似ているSubViewウィンドウは閉じてOKです
モーフの追加にはモーフ編集ウィンドウとViewウィンドウを使います
まずはViewウィンドウの左上のセレクタから「選択/基本編集」を選択してください
次に頂点を直接クリックまたは範囲選択を使って頂点を選択します

頂点を範囲選択したいなら画面上部の「頂」「□」を選択

頂点の位置を原点(0, 0, 0)に調整した場合はこの辺を範囲選択

頂点を選択した状態

頂点を選択したら掴んで動かしたり傾けたりしてください
これはMMDでモーフを操作したときに頂点がどのように動くかを設定するためです
頂点が全く動かないモーフは追加できません
頂点を動かしたら「追加ボタン」を押してください

頂点を掴んで動かしたり傾けたり

モーフを追加したら編集ウィンドウを確認してください
以下のようなモーフがあればOKです

「新規モーフ」が追加されている

続けて「モーフ名」「パネル」を設定しましょう
それぞれ「Morph1」「左上(目)」と設定してみます

「モーフ名」「パネル」を設定

気になる人は「オフセット量」も編集しましょう
オフセット量とはモーフを1.0に動かしたときの頂点の位置のことです

見えない部分でもキレイにしておきたい

これでモーフを1つ追加できました!
1つ作ってしまえば右クリック→「複製」で簡単にコピーできます

複製でどんどん作れちゃう

後はお好みのモーフを用意していきましょう
以下は眼津さんの例です

モーフ名 パネル 用途
Morph1 左上(目) いろんな調整に使う
大体これで済ませる
Morph2 右上(まゆ)
Morph3 左下(リップ)
Morph4 右下(その他)
Alpha1 左上(目) 透明度の調整用
不要なパーツを消したい時とか
Alpha2 右上(まゆ)
Alpha3 左下(リップ)
Alpha4 右下(その他)
R 左上(目) 色や発光色の調整用
G 右上(まゆ)
B 左下(リップ)
Intensity 右下(その他)

こんな感じに

モデルのファイル名とモーフ名は材質ファイル上で指定することになります
日本語で名付けると文字コードの問題でエラーになる場合があるのでよく分からない場合は半角英数で名付けるのがオススメです

モーフを追加したら表示枠を確認しましょう
表示枠とはMMDのタイムラインに表示される内容のことです
タイムラインに表示されないと動画制作の際に色々と大変です

タイムライン(動画制作のときに使う)

表示枠タブの[表情]をクリックするとモーフが表示されます
基本的にはモーフ追加の際に自動で登録されてるはずです
見当たらない場合は右側の「モーフ」から追加しましょう

表示枠にモーフが登録されていることを確認

表示枠まで問題なければモデルの作成は完了です!
「ファイル」から名前を付けて保存しましょう
保存場所はどこでも大丈夫です

それでは作成したモデルをMMDで読み込んでみましょう
追加したモーフが表示されていればOKです!

モーフ用モデル完成!


モーフの読み取りを別ファイルに記載する


作成したモデルのモーフを読み取る手順は先程と同様です
材質ファイルの先頭にモーフを読み取る文を追加するのですが...

ファイルの先頭にずらり...

モーフが多いと行数も増えてちょっと邪魔ですよね
なのでモーフの読み取り部分を別のファイルに記載しましょう

テキストエディタから新規作成して「△△.fx」の形式で保存してください
眼津さんは「ControllerObject.fx」と名付けて材質ファイルと同じ場所に保存してます
ファイルの中身は以下のようにモーフの読み取り部分だけを記載したものです


次は材質ファイルの方を修正します
モーフの読み取り部分は削除してしまいましょう
代わりに1行目に以下の記述を追加します


これで別ファイルで読み取ったモーフ値を材質ファイル側で取得できます
モーフの読み取りを1行で記述できてスッキリしました
あとは材質ファイルとMMD側のモーフをいじって質感が調整できることを確認してみてください


材質ファイルのサンプル集


モーフを使った質感の変化にはやっぱりコツが必要です
特に生身と固めの切り替えには副次色の使い方が重要です
サンプルを見てなんとなくやり方を掴んでもらえればと

Morph1~3とR/G/Bモーフで色と質感を調整する


Morph1モーフだけで生身と固め状態を変化させる




今回の解説は以上です!
ここまでの内容でRay-MMDの基本的な部分は修了となります!
氷漬け用モデルの作成についても後日紹介しますが次回はQ&Aコーナーにしようかと!
不明な点や聞いてみたいことがあれば(分かる範囲で)答えます!
Q&A用にお題箱を開設するのでお気軽に投げてみてください!
ではでは!