「MikuMikuEffect」(以下MME)とは、2010年09月18日に「舞力介入P」によって公開された「MikuMikuDance」(以下MMD)に付随するツールである。
なお、「舞力介入P」は「MikuMikuTransborder」の作者でもある。
概要
DirectX用の機能であるエフェクトを、MMDでも使用可能にするツールである。
このツールによってエフェクトファイル(fx形式)を適用することで、光源などコントラストや質感の表現、ブラーのようなレンズ効果の表現、更にそれらを空間座標によりコントロールできる等、視覚効果の表現力を、従来のMMDに比べ飛躍的に向上させることができる。
技術的には、同じ「舞力介入P」の「MikuMikuTransborder」同様、「API Hook」の技術を応用しているものと思われる。
ただMMEでは、介入の対象となるソフトをMMDに限定した事などから、あたかもMMDの機能の一部であるかのように設計され、扱いが格段に容易になった。
但し、エフェクトファイルによる表現は、基本的にグラフィックボードの性能依存であり、使用しているグラフィックボードが対応していなかった場合、想定通りの結果にならなかったりMMDが強制終了することがある(2010年9月現在)。
尚、MMEの作成者「舞力介入P」と、MMDの作成者「樋口M」の間で、したらば掲示板を通じ連絡がとられ、MMD側からも、MMEに対し、情報伝達手段を整備する等、機能的アプローチが加えられるようである。
但し、MMEはあくまで追加要素としての存在であり、MMD自体への組み込みは無いとしている(2010年9月末現在)。
ツールに同梱されているエフェクトファイルはAMD RenderMonkeyに同梱されているサンプルデータを元に改造されており、「舞力介入P」の動画説明文によれば
エフェクトファイルについて補足しますと、これはつまるところ、
シェーダ用のプログラムコードであって、作成にはプログラマとしての技能が必要です。
現在、モデルデータやアクセサリが多数配布されているのと同じように、
様々なエフェクトファイルが作成&配布されるようになるのが、理想形だと思っています。
とのことである。
導入
MMEをダウンロードし、付属テキストファイルを参照、所定の手順を踏むことで、MMDの操作画面に機能が追加される。(2011年9月22日現在、MMDver7.39(MMD最終バージョン)に対応)
初期状態で同梱されているエフェクトファイルは、RenderMonkeyに付属されているものをMMDにあわせて調整したものであり、添付テキストに記載されている手順を踏むことで使用することができる。
必須環境(MMEに最低限必要な環境)
SM2.0(DirectX9.0)対応ビデオカード
(RADEONなら9500~X850、GeForceなら5シリーズ以降)
推奨環境(MMEの機能をフルに使用できる(はずの)環境。処理速度は無考慮)
SM3.0(DirectX9.0c)対応ビデオカード(要VTF対応)
(RADEONならHD2000以降、GeForceなら6シリーズ以降)
配布場所 2011年5月22日現在の最新バージョンはver0.27
エフェクトの追加
エフェクトは、エフェクトファイル(fx形式)というプログラムコードで、エフェクト効果ごとに単品で作成されているのが普通である。
このエフェクトファイルを別途追加することにより、初期同梱以外の様々なエフェクトを使うことが出来るようになる。
追加用エフェクトファイルは、ユーザーが作成・編集することができ、他のMMD用データ同様に配布されているケースが多い。
こうして配布されたエフェクトファイルは、ディフュージョン効果、フォグ、特定色発光、点光源、被写体深度ブラー等、これまでMMDでは得られなかった表現を可能にした。
エフェクトファイルの公開はユーザーにより逐次行われており、全てを網羅することは困難であるため、入手に当たっては各自、VPVPwikiやタグ検索および、外部リンク記載の参考URL等で対処されたい。
- 関連タグ検索結果:
また、2011年9月12日より「MME一周年記念」として、エフェクトファイル作者・MMEの誕生日を祝う人々などによる大量のエフェクト公開および祝賀が行われた。 → MME一周年記念タグ検索結果
エフェクトの編集
エフェクトファイルそのものは、fxファイルをメモ帳などのテキストエディタで開き、内に記載されているパラメータを変更することで、様々な改造が出来る。
しかしこの方法は、様々な事が出来る反面、プログラムコード(HLSL)をそのまま扱うことしかできず、ある程度の知識を必要とするため、少々高度である。
MME用GUI操作ツール
「アヘハクP」により、エフェクトをGUI操作可能なツールが作成・公開された。 これにより、プログラミング知識無しでも、パラメータを変更して、エフェクトを編集することが可能になった。
尚、動画では、炎エフェクトを操作するツールが紹介されているが、同氏のサイトでは既に、ディフューション、フォグのエフェクトを操作するツールを作成している事が報告されている(2010年9月末現在)。
より高度なエフェクトの編集と作成
無料で企業から公開されているグラフィックシェーダ用ユーティリティを使って、新たにエフェクトファイルを作成することも出来る。
以下はエフェクトファイルを編集出来るユーティリティである(非常に高度なプログラムおよびグラフィックシェーダの知識を必要とするため、素人がすぐに簡単に使いこなせるものではないことに留意)。
現在のところ、
また、エフェクトに使用されているテクスチャデータであるDDSファイルは別途DirectX SDKを入手することで編集可能になる。
DirectX SDK入手後は、DDSを扱えて、かつ環境マッピングをサポートしている画像ソフトが必要になる。
パラメータ
最も使用頻度が高いと思われる「FireParticleSystem.fx」を例に取って解説する。
当たり前のことだが、エフェクトファイルの変更は自己責任で、改造前のものをバックアップとして保存することをお忘れなく。
- particleSystemShape = 形状
- particleSpread = 拡散範囲
- particleSpeed = 速度
- particleSystemHeight = 発生位置高さ
- particleSize = 大きさ
パーティクルの各パラメータ名は以上の通りで、float ( nn )の太字斜体部分を書き換えることで容易に変更可能である。
これらの変更はMMD上にMME用エフェクトを読み込んだ状態で、テキストエディタでfxファイルを開き編集・保存すると即座にMMD上に反映される。
また、下記例文中の「UIMin, UIMax」は各パラメータの設定数値の最小値・最大値では無い。(ユーティリティの仕様上、自動付加されるもので、あくまで目安であり必須ではない)。
float time_0_X : Time;
float particleSystemShape
<
string UIName = "particleSystemShape";
string UIWidget = "Numeric";
bool UIVisible = true;
float UIMin = 0.00;
float UIMax = 2.00;
> = float( 1.00 );
float particleSpread
<
string UIName = "particleSpread";
string UIWidget = "Numeric";
bool UIVisible = true;
float UIMin = 0.00;
float UIMax = 50.00;
> = float( 20.00 );
float particleSpeed
<
string UIName = "particleSpeed";
string UIWidget = "Numeric";
bool UIVisible = true;
float UIMin = 0.00;
float UIMax = 2.00;
> = float( 0.48 );
float particleSystemHeight
<
string UIName = "particleSystemHeight";
string UIWidget = "Numeric";
bool UIVisible = true;
float UIMin = 0.00;
float UIMax = 160.00;
> = float( 80.00 );
float particleSize
<
string UIName = "particleSize";
string UIWidget = "Numeric";
bool UIVisible = true;
float UIMin = 0.00;
float UIMax = 20.00;
> = float( 7.80 );
その下、「VS_OUTPUT Out;」以下のpos.nの計算式を変更することでパーティクルの重力の向きを変えられ、sin, cos, tanの三角関数部分の角度数値を変えることにより時間軸を制御出来、パーティクルの生成角度を変更出来る。
また、同フォルダ内の「flame.tga」で炎の色を決めており、これの色を好みに書き換えることにより、煙、雲、水流などに変更することが出来る。
SRCBLEND=ONE;
DESTBLEND=ONE;
のONEをZEROに変更すると黒っぽいエフェクトに変化するなど、使い方はさまざまである。
その他、TRUEをFALSE、またはその逆を書き換えることなどでも形状変化する。
関連コミュニティ
関連項目
外部リンク
- vpvp wiki
- 舞力介入PによるHLSL入門
-
MMEをよく公開しているP:
- ビームマンP → ビームマンのエフェクト置き場

- 針金P → 針金のブログ

- Furia → Furiaの小物入れ

- そぼろ → SkyDrive

- データP
- ビームマンP → ビームマンのエフェクト置き場
- MME支援ツール作者:
- CodeZine - MME使い方解説 (筆者:ビームマンP)
http://dic.nicomoba.jp/k/a/mikumikueffect


ページ番号: 4466868
リビジョン番号: 1325619
読み:ミクミクエフェクト
初版作成日: 10/09/20 15:07 ◆ 最終更新日: 11/10/20 09:11
編集内容についての説明/コメント: +codezine
記事編集 / 編集履歴を閲覧 / Twitterで紹介





JASRAC許諾番号: 9011622001Y31015
ヘッダー:固定
ヘッダー:追従