MikuMikuMoving のエフェクト メモ(1)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

MikuMikuMoving のエフェクト メモ(1)

2016-03-06 12:46
    MikuMikuMoving のエフェクトのメモ書き(1)

    MMD の MME向けのエフェクトをMMM向けに修正しようと思ってる

    基本情報は、MikuMikuMovingMMEからの変換 に書かれていますし、
    MikuMikuMoving (以下、MMMと呼ぶ)に同梱されている "Shader\SampleBase.fxm" にコメント付きで情報があったりします

    ---
    それは、さておき

    MMMのエフェクトで、チェックボックスやスライダーを出す場合は、エフェクトファイルのパラメータの記述を下記のように修正します
    ※下っ腹PさんのG_Shader_Ver3.1をサンプルとしていじっています

    ・チェックボックス
     《元の記述》
    bool Skinmode = 0; // スキンモード

    《MMM向けの記述》
    bool Skinmode //スキンモード
    < // ← こーゆー風にする
    string UIName = "Skinmode"; // ← MMMのエフェクトのパラメータ表示名 漢字でも可
    bool UIVisible = true; // ← チェックすると"1"の値にするという意味
    > = 0; // ← デフォルト値

    ・スライダー
    《元の記述》
    float ShadowPow =0.90;

    《MMM向けの記述》
    float ShadowPow
    < // ← こーゆー風にする
    string UIName = "ShadowPow"; // ← MMMのエフェクトのパラメータ表示名 漢字でも可
    string UIWidget = "Slider"; // ← 可変値のスライダー表示
    bool UIVisible = true;
    float UIMin = 0.00; // ← パラメータの最小値
    float UIMax = 1.00; // ← パラメータの最大値
    > =0.90; // ← デフォルト値

    というようにテキストエディタで編集してください

    cygwin等のUNIX環境をお持ちの方は、下記のawkスクリプトを参考に適宜修正することで、上記の編集の操作をスクリプトを実行することで行うことができます
    適当なスクリプトファイル名にしてください(ex: xxxx.awk)

    #!/usr/bin/gawk

    BEGIN {
    }

    {
    if ($2 == "ShadowPow") {
    printf("// %s\n",$0)
    printf("float ShadowPow\n")
    printf("<\n")
    printf("\tstring UIName = \"%s\";\n", $2)
    printf("\tstring UIWidget = \"Slider\";\n")
    printf("\tbool UIVisible = true;\n")
    printf("\tfloat UIMin = 0.00;\n")
    printf("\tfloat UIMax = 1.00;\n")
    printf("> %s\n", $3)
    }
    else if ($2 == "Skinmode") {
    printf("// %s\n",$0)
    printf("bool Skinmode\n")
    printf("<\n")
    printf("\tstring UIName = \"%s\";\n", $2)
    printf("\tbool UIVisible = true;\n")
    printf("> %s%s\n", $3,$4)
    }
    else if ($2 == "HiLightPow") {
    printf("// %s\n",$0)
    printf("float HiLightPow\n")
    printf("<\n")
    printf("\tstring UIName = \"%s\";\n", $2)
    printf("\tstring UIWidget = \"Slider\";\n")
    printf("\tbool UIVisible = true;\n")
    printf("\tfloat UIMin = 0.00;\n")
    printf("\tfloat UIMax = 1.00;\n")
    printf("> %s%s\n", $3,$4)
    }
    else if ($2 == "HiLightSize") {
    printf("// %s\n",$0)
    printf("float HiLightSize\n")
    printf("<\n")
    printf("\tstring UIName = \"%s\";\n", $2)
    printf("\tstring UIWidget = \"Slider\";\n")
    printf("\tbool UIVisible = true;\n")
    printf("\tfloat UIMin = 0.0;\n")
    printf("\tfloat UIMax = 100.0;\n")
    printf("> %s%s\n", $3,$4)
    }
    else if ($2 == "MainFresnelPow") {
    printf("// %s\n",$0)
    printf("float MainFresnelPow\n")
    printf("<\n")
    printf("\tstring UIName = \"%s\";\n", $2)
    printf("\tstring UIWidget = \"Slider\";\n")
    printf("\tbool UIVisible = true;\n")
    printf("\tfloat UIMin = 0.00;\n")
    printf("\tfloat UIMax = 1.00;\n")
    printf("> %s%s\n", $3,$4)
    }
    else if ($2 == "AmbientFresnelPow") {
    printf("// %s\n",$0)
    printf("float AmbientFresnelPow\n")
    printf("<\n")
    printf("\tstring UIName = \"%s\";\n", $2)
    printf("\tstring UIWidget = \"Slider\";\n")
    printf("\tbool UIVisible = true;\n")
    printf("\tfloat UIMin = 0.00;\n")
    printf("\tfloat UIMax = 1.00;\n")
    printf("> %s%s\n", $3,$4)
    }
    else {
    print $0
    }

    }

    awkスクリプトの実行
    $ awk -f xxxx.awk (元のEffectファイル名.fx) > (生成するEffectファイル名.fxm) (Enter)

    実行例
    $ awk -f ../../../go_mmm_fxm.awk GS_00_M1S1.fx > GS_00_MxSx.fxm

    この .fxm をMMMで読み込みと、下記のように表示されます



    これで、値を微調整しつつ、キーフレーム登録が可能となります



    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。