＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊

ソフト名称： 『MikuMikuEffect』 Ver0.28
  　作成者： 舞力介入P
  動作環境： WinXP/Vista/7
  転載条件： MikuMikuEffect本体の転載は、非商用に限り連絡不要です。
  使用条件： MikuMikuEffectを使用することや、使用して作成した作品を配信・頒布等することについては、
  　　　　　 商用・非商用を問わず、制限はありません。連絡も不要です。
　　連絡先： beta183.nico@gmail.com
　　　　　　（メールでのサポート依頼・不具合報告等には対応しません）

＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊

●インストール方法
　d3d9.dll, MMHack.dll, MMEffect.dllを、MikuMikuDance.exeと同じフォルダにコピーしてください。
　正しくインストールされていれば、MMDのメニュー右側に、「MMEffect」という欄が追加されます。


●エフェクトファイル使用方法
(1) ファイル名で指定する方法
　エフェクトファイルを以下のように、モデルファイル(*.pmd,*.x)と同じフォルダ・同じ名前で格納してください。

　　UserFile\Model\初音ミク.pmd
　　UserFile\Model\初音ミク.fx    ←エフェクトファイル

　　UserFile\Accessory\negi.x
　　UserFile\Accessory\negi.fx    ←エフェクトファイル
　
　もしくは、以下のように、モデルファイル名にエフェクトファイルを埋め込んでください。
　
　　UserFile\Model\初音ミク[effect.fx].pmd
　　UserFile\Model\effect.fx    ←エフェクトファイル

　　UserFile\Accessory\negi[effect.fx].x
　　UserFile\Accessory\effect.fx    ←エフェクトファイル
　
　MMD上で、このモデルファイルを読み込むと、自動的に認識され、エフェクトファイルが適用されます。
　なお、エフェクトファイルの無いモデルファイルを読み込んだ場合、従来どおりに表示されます。

(2) GUI上で指定する方法
　[MMEffect]メニューの[エフェクト割当]からダイアログを開き、
　オブジェクトごとにエフェクトファイルを指定してください。
　
　○エフェクトファイルを指定するには
　　対象オブジェクトを選択した後、リストをダブルクリック、
　　もしくは左下の[ファイル選択]ボタンまたは右クリックメニューの[ファイル選択]をクリックし、
　　表示されたダイアログでファイルを選択してください。
　
　○エフェクトファイルを解除するには
　　対象オブジェクトを選択した後、左下の[解除]ボタンまたは右クリックメニューの[解除]を
　　クリックしてください。
　　エフェクトファイルを指定していない状態に戻ります。
　　ダイアログ上では、"(none)"と表示されます。
　
　○オブジェクトを非表示にするには
　　対象オブジェクトを選択した後、左下の[非表示]ボタンまたは右クリックメニューの[非表示]を
　　クリックしてください。
　　指定したいオブジェクトは描画されなくなります。
　　ダイアログ上では、"(hide)"と表示されます。
　
　○default設定について
　　新規にオブジェクトを読み込んだ際、(1)の方法でエフェクトファイルが指定されていれば、
　　その指定に基づいてエフェクトファイルが自動的に割り当てられますが、
　　そのような指定が無いオブジェクトについては、default設定に基づいて、
　　エフェクトファイルが自動的に割り当てられます。
　　default設定を変更するには、ダイアログ上で"(default)"と表示されている行の設定を変更してください。
　
　　エフェクトファイル割り当て状態を、手動でdefault設定にリセットするには、
　　対象オブジェクトを選択した後、右クリックメニューの[default設定でリセット]を選択してください。
　
　○材質（サブセット）毎にエフェクトを指定するには
　　対象オブジェクトを選択した後、右クリックメニューの[サブセット展開]を選択してください。
　　リストが展開し、サブセット毎にエフェクトファイルが指定できるようになります。
　
　○割り当てをファイルに保存するには
　　[ファイル]メニューの[設定を保存]で、割り当て状態をファイル（*.emm）に保存できます。
　　保存した割り当て状態を読込には、[ファイル]メニューの[設定を読込]を実行し、
　　ダイアログで読み込むemmファイルを指定してください。
　　また、[MMEffect]メニューの[割当ファイル自動保存]をONにすると、
　　pmmファイル保存時に、自動的に保存されるようになります。
　　保存したemmファイルは、pmmファイル読み込み時に自動的に読込まれます。
　
　○オフスクリーンレンダリングについて
　　オフスクリーンレンダリング設定を持つエフェクトファイルをオブジェクトに割り当てると、
　　自動的にダイアログ上でタグが増え、
　　オフスクリーンレンダリング使用するるエフェクトファイルの一覧が表示されます。
　　これは、メインスクリーンとは別の設定で、
　　バックグラウンドでオブジェクトの描画が行われていることを表しています。
　　この設定を編集することで、オフスクリーンレンダリングで使用するエフェクトファイルを変更できます。


●不具合情報
・ver1.3以前のfull.fxをベースに作成されたエフェクトでは、
　スフィアマップを使用する材質を描画する際、α値が正しく描画できない不具合が見つかっています。
　不具合を修正するには、エフェクトファイルをメモ帳等で開き、以下のように書き換えてください。
　
書き換え前：
    if(spadd) Color += tex2D(ObjSphareSampler,IN.SpTex);
    else      Color *= tex2D(ObjSphareSampler,IN.SpTex);
書き換え後：
    if(spadd) Color.rgb += tex2D(ObjSphareSampler,IN.SpTex).rgb;
    else      Color.rgb *= tex2D(ObjSphareSampler,IN.SpTex).rgb;
    
書き換え前：
    if(spadd) {
        Color += TexColor;
        ShadowColor += TexColor;
    } else {
        Color *= TexColor;
        ShadowColor *= TexColor;
    }
書き換え後：
    if(spadd) {
        Color.rgb += TexColor.rgb;
        ShadowColor.rgb += TexColor.rgb;
    } else {
        Color.rgb *= TexColor.rgb;
        ShadowColor.rgb *= TexColor.rgb;
    }


●開発者向け情報
・認識可能なエフェクトファイルのフォーマットについては、REFERENCE.txtを参照ください。
　全て目を通すのは無理でも、Tipsくらいには目を通しておいたほうがいいと思います。

・エフェクトファイルをMMD上で使用中に、そのエフェクトファイルを編集して保存すると、
　自動的に再読み込みされて、結果がMMD上に反映されます。
　この機能をOFFにするには、メニュー上で「自動更新」をOFFにしてください。


●注意事項
・プリエフェクト、ポストエフェクトを使用する場合には、
　描画順序が通常オブジェクトよりも先になるように設定してください。

・本ツールは、プラグインというよりは、MODツールに近いもので、
　MMDの内部実装に強く依存しているため、
　MMDをバージョンアップしただけで動かなくなる場合があります。

・MME用以外のエフェクトファイルをそのまま読みこませても、まず動きません。


●制限事項
・MMD ver7.23以前では正しく動作しません。
・NVIDIA 3D Vision,3D Vision Discover使用時、
　ポストエフェクトおよびオフスクリーンレンダリングは正しくステレオ表示されません。
・オフスクリーンレンダリング設定を持つエフェクトは、
　別のオフスクリーンレンダリング用のエフェクトとして使用することはできません。
　また、サブセット単位のエフェクトとして割り当てることも出来ません。
・ダミーボーン.pmdなどのように、頂点を一つも持たないオブジェクトに対して、
　エフェクトファイルを割り当てることはできません。


●お断り
樋口M、その他権利を有する方からクレームがあった場合には、
本ツールの公開を中止する場合があります。


●免責事項
本ツールを実行したことによって損害・不利益・事故等が
発生した場合でも、当方は一切の責任を負いません。


●更新履歴
　0.10 (2010/9/18) 初版
　　・MMD ver7.08で動作確認
　
　0.11 (2010/9/25)
　　・一部の環境で、ポストエフェクト使用時に、AVI出力がおかしくなる不具合を修正
　　・一時的にエフェクトをOFFにする機能を追加
　　・MMD ver7.08で動作確認
　
　0.20 (2010/12/12)
　　・MMD ver7.23で動作確認。
　　・MMDのエクスポート関数に対応
　　・フルスクリーン表示＆画面解像度以上のAVI出力に対応
　　・NVIDIA 3D Visionで動作確認
　　　（ただし、ポストエフェクトおよびオフスクリーンレンダリングは正しく動作しません）
　　
　　・GUIによるエフェクト割り当て（メニュー[MMEffect]→[エフェクト割当]）
　　　GUI上でエフェクトファイルの割り当ての変更が可能になりました。
　　　また、割り当て状態をファイル（.emm）に保存＆読込できるようになりました。
　　
　　・材質（サブセット）単位でのエフェクト割り当てに対応
　　　（GUI上の右クリックメニュー[サブセット展開]）
　　・オフスクリーンレンダリングに対応
　　
　　・ポストエフェクトの描画順序の制約を撤廃
　　　従来は、ポストエフェクトの描画順序は通常オブジェクトよりも先になければなりませんでしたが、
　　　その制約を撤廃し、任意の描画順序で使用できるようになりました。
　　
　　・エフェクトファイル仕様更新
　　　- OFFSCREENRENDERTARGETセマンティクス追加
　　　- CONTROLOBJECTセマンティクスで取得できる情報の追加
　　　　　(1)PMDモデルの各表情の値および各ボーンの座標
　　　　　(2)アクセサリの操作パネル上の各値（X〜Z,Rx〜Rz,Si,Tr）
　　　　また、情報値をオブジェクトの非表示中でも取得できるようになりました。
　　　- CONTROLOBJECTセマンティクスが参照するオブジェクトの描画順序の制約を緩和
　　　- EDGECOLORセマンティクス追加（輪郭色取得）
　　
　　・実行速度改善
　　・エラーチェック強化
　　・色々バグ修正

　0.21 (2010/12/13)
　　・MMD ver7.23で動作確認。
　　・sharedなレンダリングターゲットを使用した際に、間違ったエラーが出る不具合を修正

　0.22 (2010/12/16)
　　・MMD ver7.23で動作確認。
　　・エフェクト使用をOFFにした場合のポストエフェクトの不具合を修正
　　・輪郭描画用テクニックの不具合に対処
　　・エフェクト割当ダイアログへのファイルのD&Dに対応
　　・RENDERCOLORTARGET, OFFSCREENRENDERTARGETでのミップマップ対応を改善

　0.23 (2010/12/20)
　　・MMD ver7.23で動作確認。
　　・emmファイルのパスに日本語を使用すると、読込・保存が出来ない不具合を修正
　　・一部のエフェクトファイル使用時に、オブジェクトが割り当てダイアログから消える不具合を修正
　　・CONTROLOBJECTセマンティクスでオブジェクトの表示/非表示を正しく取得できない不具合を修正
　　・EDGECOLORセマンティクスの値の取得方法を修正
　　・"#include"の参照先がカレントディレクトリに依存してしまう不具合を修正

　0.24 (2011/02/09)
　　・エフェクト割当の一覧にポストエフェクトを表示するように変更
　　・オフスクリーンレンダリングでのプリ／ポストエフェクトに対応
　　　ただし、オフスクリーンレンダリングを使用しないエフェクトに限ります。
　　・エフェクト割当ダイアログで、オブジェクトの表示／非表示をチェックボックスで操作するように変更
　　・モデル単位でのエフェクト割当をファイル（*.emd)に保存・読込する機能を追加
　　　なお、emdファイルをモデル・アクセサリと同じ名前で保存しておくと、
　　　fxファイルと同様、使用時に自動的に読み込まれます。
　　・TEXTUREVALUEセマンティクスを追加
　　・CONTROLOBJECTセマンティクスに指定できる特殊オブジェクト名に"(self)"を追加
　　・CONTROLOBJECTセマンティクスに指定したオブジェクトが複数存在する場合に、
　　　表示順を変更しても正しく反映されない不具合を修正
　　・画像出力時に、TIMEセマンティクスの値が正しく取得できない不具合を修正

　0.25 (2011/02/10)
　　・emm, emdファイル内の相対パス表記の先頭に'\'がついてしまう不具合を修正

　0.26 (2011/02/21)
　　・ドライバの設定でアンチエイリアスを強制ONにした場合の挙動を修正

　0.27 (2011/05/22)
　　・PMXにとりあえず対応
　　・エフェクト使用のON/OFFを行うショートカットキー（Ctrl+Shift+E）追加
　　・アンチエイリアス時のビデオメモリの確保にバグがあったため修正。
　　・_INDEXセマンティクスの追加
　　・VertexCountパラメータおよびSubsetCountパラメータを追加
　　・opaddパラメータの追加
　　・開発者向けに、エフェクトの逆アセンブル結果を表示する機能を追加
　　　（エフェクトファイル割り当てダイアログで、[ツール]-[エフェクトを逆アセンブル]

　0.28 (2012/03/26)
　　・PMMファイルに連動した、EMMファイルの自動読込・保存に対応
　　　（自動保存は、メニューの[MMEffect]-[割当ファイル自動保存]をONすると有効になります）
　　・割当ダイアログをサイズ可変に変更
　　・ポストエフェクトでWorldMatrixが正しく取得できない不具合を修正
　　・CONTROLOBJECTで"Rx"の値が正しく取得できない不具合を修正
　　・別窓表示時に最小化すると、ポストエフェクト等でエラーになる不具合を修正
　　・SwiftShaderがTOONCOLOR取得時に落ちる不具合を修正
　　・転載条件・使用条件の文面を、誤解の無いように修正

●謝辞
MikuMikuDanceというすばらしいソフト開発された樋口Mに深く感謝いたします
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
