【MMEの作り方】諸注意・目次・序文
▼諸注意
本記事のシリーズは、MikuMikuDanceの拡張ツールであるMikuMikuEffectで使われるfxファイルのコーディング方法について解説していきます。
(以後『MikuMikuDance』は『MMD』、『MikuMikuEffect』は『MME』と呼称します)
記事シリーズのタイトルは『MMEの作り方』とありますが、正確には『MMEで使用されるfxファイルの作り方』です。
当たり前ですがMME本体をリバースエンジニアリングして云々とかいう話でないのであしからず。
(流石にそんな勘違いする人はいないと信じたいですが、インターネットは広大ゆえ稀に強火な人もいるので一応予防線をば)
作例として書いたコードやfxファイルに関してはその利用に関し商用・非商用に関わらず自由に応用して頂いて構いません。
ただし、本シリーズの記事、あるいはサンプルコードの類を利用して生じたトラブルや不利益に関して制作者は一体の責任を負わないものとします。
いわゆる『自己責任で取り扱って下さい』というやつです。
本ページは各記事のホームとなる目次の表記を主な役割とします。
一応、目次を挟んでコラム的な序文(散文?)も書いてありますが、まあ、そちらはヒマなときの箸休めくらいに捉えてもらって構いません。
ではでは、本記事シリーズがMMDerの皆様のお役に立てば幸いです。
▼目次
■はじめに編
◎諸注意・目次・序文(※この記事のことです)
■シェーダーエフェクト編
01:fxファイルの使い方と基本構成
02:照明の影響で明暗をつける
03:テクスチャの呼び出し方
04:ノイズの作り方の基礎
05:レイマーチングなる手法
■オブジェクトエフェクト編
01:Xファイルの作り方
02:オブジェクトのビルボード化とパーティクル
03:MMD内でのパラメータ調整を可能にする
■ポストエフェクト編
01:ポストエフェクトの基本原理
02:ガウスぼかし
03:深度バッファ
▼序文①:そもそも何故いまさらMME解説を書いているのか
この記事を書いているのは、2025年の年末頃になります。
そうです、令和も7年目となり平成もそろそろ過去の年号となりつつあるご時世です。
そんな中で「今更MMEの話をするの?」という疑問も湧いてきそうですが、ええ、解説するのです。
元々私はMMD方面の制作活動はキャラモデルや背景モデルをメインに作っていた層なのですが、時折エフェクトも自作してみたいと考える事がありまして。
とはいえ、MMEに関しては導入方法や既存のエフェクト作品の使い方の解説は相当数あれど、『作り方』となると極端に数が少なくなります。
元々はもしかしたらニコニコのブロマガにMME方面の記事もたくさんあったのかもですが、ブロマガに関しては既にサービス終了してますし。
素人がMME用のファイルを作ろうにも、そもそも何から始めればいいのか分かりづらい。
当方はMME用ファイル作りの初学者ではありますが、一方でUnityシェーダーは(これも嗜む程度にですが)作ったことがある人間です。
UnityシェーダーもMME用のfxファイルも、どちらもHLSL言語で書かれております。
ってことは「ワンチャンUnityシェーダー制作で学んだことがfxファイルでも役に立つんじゃね?」とか浅学ながら思った次第です。
というより、今のうちに誰かがMME用のfxファイル制作の基礎をまとめておかないと、今後更に時を経たときにfxファイルがロストテクノロジーになる可能性。
というわけで、今更感はあれどfxファイル制作の基礎をまとめておく意義はあるでしょう! きっと! 多分! もしかしたら、ひょっとして。
とか書くと『今日日MMD使わなくても3D動画つくれるのでは?』という別のツッコミというかそもそも論が出て来そうでもあります。
遺憾ながらワイトもそう思います。
今日日VTuber文化の流行もありVRMモデルが主流だしな~。
なんだったらAスタンスのMMDモデルより、TスタンスのVRM形式モデルの方がUnityやVRChatと相性が良いし。
今の時代、Unityやアンリアルエンジンやった方が旨み豊かな可能性は一概に否定できません(そっちの方が商用利用と相性が良いしネ!)
でーすーがー。
まず単純に、モデルやモーションをドラック&ドロップでモデルを動かせるのはMMDの魅力ですね。
これがUnityだと『インポートしたモデルのボーンをヒューマノイド型にしてアニメーションコントローラーを設定し適切なトランザクションを……』みたいな話になります。
言葉だけ聞いていると宇宙猫の画像が脳裏によぎる……。
加えて、今後MMD界隈がどうなっていくかはさておき、これまで(主に2010年代)の国内のキャラクター系の3Dモデルの文化・技術の基盤とはなっておりました。
というわけで、今後インターネット史や3D関連の技術史を考えていくときに、流石にMMDに関する知見が残っていた方が良いでしょう。
ゲーム機に例えると、今やデータ量をビットではなくギガバイトでカウントするような時代となってもファミコンの歴史的意義が失われるわけでないと似たようなものです。
3DCGの技術も日進月歩な技術的事柄なのでいつまでも過去のシステムに拘泥するのは問題ではあります。
とはいえ、歴史的な事柄に敬意を払わない文化は割と根腐れを起しやすいかと考えます。
というわけで、そこら辺も本記事を書く意義として良いでしょう。
あとまあ、3Dモデルに流し込みでダンス躍らせれると何やかんやで『MMDみたいなもの』という感じに代名詞的な言われ方するので、技術的に云々は置いておいて言葉や文化としては重みあると思いますよ。
そこら辺は親世代がテレビゲーム機が大雑把に『ファミコン』と呼ばれる的な話かも知れない。……と思ったけど、そんな言い回しするのは最早親世代と言うよりは祖父母世代なのでは?
ホラーとかの常套句で「人間の方が怖い」ってあるけど時の流れの早さの方がよっぽど怖い(年寄りの考え)
▼序文②:実はコーディングにChatGPTも薄っすらと使っています
あと、今回の記事シリーズを作るにあたって実験的に昨今流行りのChatGPTを使ってみた部分があるにはあります。
ええ『あるにはある』です。
ビミョーな言い回しですが、AIが書いたコードは出来栄えにムラがあり「これどこまで使えるの?」という見極めが必要だったからです。
要は『こういうプログラムを書いて!』とChatGPTとお願いしても、基本的にAIが書いたコードの丸コピではfxファイルをMMEに割り当ててもエラーを吐きます。
あと、エラーを吐かないコードを生成したけれど思った通りの挙動にならなかったり。
前述の序文①にもあるようにMMEの作り方の記事がネット上に少ないので、学習データがそもそも足りてない可能性ありけり(素人目に見ているだけなので反証はあるかもですが)
例えば、MMEでは『RENDERDEPTHSTENCILTARGET』で生成したテクスチャはレンダリング後に参照できないのにAI君は「これで深度バッファを取得できます!」とか言ってきたりトカ。
そもそも出来ないことを解決策として提示してきたのに気付かずに結構な時間沼りました。
とはいえ、ChatGPTを一から十まで批判たいわけではないです。
コードの一部(セマンティクスやアノテーション)について、「これはどういう意味ですか?」的な質問をすると有用な回答が帰ってくる可能性が高い!
あと、AIが書いたを丸々使えなくてもMME用の書式に修正したり、あるいはコードの一部だけなら流用可能とかもあります。
AI君(2025年現在)は、大きめな文脈は苦手でも各論撃破やプログラムの基本材料制作は得意な子です! そこは素直に称えるべき!
そうです、AIにコードを書いてもらってちゃんと使いこなすには、そもそもAIの利用者側にもそのコードの可食部を見極める能力が求められるのです。
某氏が『嘘を嘘と見抜けない奴はインターネットを使うべきでない』と言ったそうですが、その言葉をパロディにすれば『嘘を嘘と見抜けない奴はAIを使うべきでない』という感じでしょうか。
これからの時代、プログラミングでAIが今以上に活用されていくのだろうとは思います。
しかしながら、AIを活用するコーディングでも基礎知識は必要であり、今回MME用のfxファイルについての基礎を書く意義はそこら辺にもあると考えています。
