MMDマクロでの条件判定の方法

MMDマクロにで条件判定して命令を実行する話です。

 

すでに配布しているリップファイルの中に組み込まれているのですが、

その説明になります。

pip-mmd.hatenablog.com

 

例としては以下の箇所。

 

;判定計算用の定数
var(man, 10000)

;歌い出しが0.5以上の場合0.5にする
;リップモーフの変形量を取得
get(face_mouth_input, LipStart)

;変形量が0.5以上か判定する
calc(LipStart, -, 0.5, LipJudge)
calc(man, +, LipJudge, LipJudge)
calc(LipJudge,/,man)

;判定値を切り捨てる
calc(LipJudge, floor)

;判定値が1の場合、以下のファイルを実行する(0の場合は無視される)
loop(\ループ用\モーフ量調整.txt, LipJudge)

 

これはモーフから取得した値が0.5以上の場合は0.5に収めるという処理です。

0~0.5の入力値はそのままで0.5~1.0の入力値は0.5に丸められます。

 

MMDマクロではloopという命令で

他のテキストのマクロの回数を指定して実行できます。

実行回数が0回なら無視、1回以上なら実行されるのでそれを判定に使うわけ。

 

取得したモーフ入力値と判定値0.5の差分を取り、

それを定数10000に足し引きした後に1/10000して、

小数点以下を切り捨てることで1か0かの判定をしてるわけです。

 

仕組みは分かってしまえば簡単ですが、

命令や整数と小数の変換に多少慣れが必要なようです。

 

最初に判定計算用の定数10000をmanという変数に代入してますが、

後で計算式のcalcに使うための処理になります。

calc(man, +, LipJudge, LipJudge)

この箇所でcalcの冒頭が変数(man)ではなく数値(10000)は使えない様子。

 

上の場合、足し算なので逆にすれば実は変数を使わなくても大丈夫なんですが、

0.5以上~の判定ではなく、0.5以下~の判定の場合はこの順にしないとダメ。

というわけで使い回しが利くようにこの順になっています。

 

ちなみに定数に10000を使っていますが、

これはMMDで数値を使う場合に10000以上の数値を使うことがあまりないからです。

たぶんもう1~2桁は増やせると思うんですが精確な確認はしてません。

上の処理はモーフなのでこんなに桁数いらないですね。

ボーンで使うかどうかしょうか。

 

配布しているマクロではさらにもう1つ、

キーフレームの間隔を見てフレームをずらす判定式が組み込まれています。

 

というわけで上のような処理を行えば

入力数値を取得して判定値を元に追加処理を行うかどうかができます。

モデルに特定の名前のボーンやモーフがあるかみたいな判定はできません。

 

ここまでして使う人がいるかはよく分からないけれど

参考になればと思いますです。

 

 

リップ作業用MMDマクロの配布と説明

リップの作業を楽にするMMDマクロの配布と説明です。

bowlroll.net

以前から公開してたのですが、今回条件判定を付けて更新しました。

条件判定のやり方は後日、別の記事にでもまとめます。

興味がある人はマクロファイルを見れば分かるかもしれません。

 

MMDマクロ本体をダウンロードして「macro」フォルダに入れて使ってください。

https://mmdm.z5i.net/

 

「リップpip」フォルダの中に6つのマクロが入っています。

1.リップオフセット

2.リップオフセットB(上書き)

3.リップ延長

4.リップ延長(ビブラート)

5.リップ登録

6.リップ初期化

 

1.リップオフセット

実行すると現在フレームの前後に選択中のリップのキーフレーム登録をします。

f:id:PIP_MMD:20220317202831p:plain

320フレーム目でマクロを実行すると上の画像のようになります。

4つのキーフレームの入力値は左から順に 0.0 → 1.0 → 0.8 → 0.0 です。

       f:id:PIP_MMD:20220317203313p:plain

MMMで見るとこのような山型表示になります。

 

音源に合わせてリップを作る場合、タイムラインをカーソルで送りながら

あいうえおの母音が聞こえたところでマクロを実行していけばリップが作成できます。

 

前後にキーフレームが被った場合、

マクロの方で判定して山がいい感じになるように処理してくれます。

f:id:PIP_MMD:20220317204605p:plain

  f:id:PIP_MMD:20220317204705p:plain

326フレーム目で続けて実行するとこのようなキーフレームになります。

単純に追加上書きするのではなく、繋がるように処理されています。

 

条件判定は2つあるのですが説明がめんどくさいので

326フレームの前後2フレームで実行するとどうなるかを下の画像で確認してください。

 

325フレーム目で実行

f:id:PIP_MMD:20220317205418p:plain

    f:id:PIP_MMD:20220317205700p:plain

 

324フレーム目で実行

f:id:PIP_MMD:20220317210500p:plain

       f:id:PIP_MMD:20220317210855p:plain

 

327フレーム目で実行

 f:id:PIP_MMD:20220317213524p:plain

f:id:PIP_MMD:20220317213533p:plain

 

328フレーム目で実行

   f:id:PIP_MMD:20220317213601p:plain

f:id:PIP_MMD:20220317213609p:plain

 

上の場合、329フレーム目以降で実行すると入力値は0がスタートになります。

もっと音を伸ばしたい場合は「リップ延長」のマクロを使います。

 

2.リップオフセットB(上書き)

マ行、パ行、バ行の子音で始まる場合は唇が一度閉じます。

それをするために上書きして最初を閉じるようにするマクロがこちらになります。

f:id:PIP_MMD:20220317214518p:plain

上の画像のようなキーフレームになります。

実際には上書きプラスアルファの処理なのですが説明は省略します。

 

3.リップ延長

f:id:PIP_MMD:20220317215428p:plain

                   f:id:PIP_MMD:20220317215312p:plain

                f:id:PIP_MMD:20220317215322p:plain

オフセットで打ったキーフレームを後ろに引き伸ばします。

ここまで伸ばしたいと思ったキーフレームで実行します。

 

上の画像は331フレーム目で実行した場合。

声が聞こえなくなったな~というところで実行するとだいたいOKかと。

 

4.リップ延長(ビブラート)

f:id:PIP_MMD:20220317220048p:plain

                    f:id:PIP_MMD:20220317220057p:plain

                    f:id:PIP_MMD:20220317220301p:plain

リップを延長するついでにもう一つ山を作ります。

今回お試しで追加した機能で、キーフレームをだいたい3等分して作られます。

 

5.リップ登録

選択中のリップを1.0にして登録します。

ありがたみはあまりないですが、ホットキー登録すれば使い道はあるかも。

 

6.リップ初期化

選択中のリップを0.0にして登録します。

ありがたみがあまりないのは5のリップ登録と同じ

 

【ホットキーの追加について】

MMDマクロのマクロファイルはキーボードに登録することができます。

ダウンロードしてきたMMDマクロに入っている「hotkey.txt」を「hotkey.ini」に書き替えてから、メモ帳で開いてキーボード登録をします。

 

[Lip_set]
key=@
file=macro\リップpip\11_リップ登録.txt

[Lip_reset]
key=[
file=macro\リップpip\12_リップ初期化.txt

[Lip_offset]
key=;
file=macro\リップpip\01_リップオフセット.txt

[Lip_offset_b]
key=:
file=macro\リップpip\02_リップオフセットB(上書き).txt

[Lip_extend]
key=]
file=macro\リップpip\03_リップ延長.txt

 

たとえばこんな感じに書き加えればいいです。

「key=」の後に自分が使いたいキーボードを登録して、

「file」の方に使いたいマクロがあるフォルダパスを書き込みます。

 

配布しているマクロファイルにも「hotkeys.ini」を同梱しているので、

それを「mmdm.exe」があるフォルダにコピペしても有効になります。

 

連続作業をする場合はホットキー登録をすることでかなり楽になります。

音源を元にリップを作成する場合は、タイムラインをカーソルで送りながら、表示枠からモーフの「あいうえお」をマウスで選択して、キーボードを押していくだけでかなり高速で大雑把なリップが作れるようになります。

ダンス動画での歌唱リップならわりとそれだけで大丈夫です。

 

より丁寧なリップを作りたいならそれをベースにしてもいいです。

その場合はモーフ編集しやすいMMMやFace&Lipsをおススメします。

 

最初からMMMを使えば?と思わなくもないですが、

シンプルなものはこのMMDマクロで作った方が速いです。

タイムラインを行ったり来たりする必要がほぼないので

 

長くなりましたが説明は以上です。

MMDマクロを使った条件判定の注意点はまた別の記事にします。

 

 

MMDマクロでボーンを選択する方法【MMDMacro】

皆さん、MMDマクロ使ってますか?

 

いろいろ便利なMMDマクロですが、

表示枠からボーン選択することができないと思っていたけど実はできました。

 

というわけでピンポイントにそれだけのまとめ。

 

;未登録ボーンの登録
click(bone_sel_unreg)

;ボーン登録を押す
click(bone_reg)
;未登録を押して選択を外す
click(bone_sel_unreg)

;vpdを読み込む
menu(1, 9)
;ダイアログ開始確認
dialogOpen(ポーズデータ読込)
dialogSetStr(Edit1,右足IK初期化.vpd)
;開くボタン押下
dialogClick(Button1)
;ダイアログを閉じて終了確認
dialogClose()

;アンドゥしてポーズをキャンセルする
click(undo)
;コピペでボーンの数値を表示する
click(bone_copy)
click(bone_paste)

 

命令としてはこういう感じになります。

ボーン1つだけのポーズを記録したvpdを読み込むことでボーンを選択するわけ。

 

その前後にどういう意味があるかが以下説明です。

 

まず「未登録選」を押して現在選択しているボーン選択を外します。

その前にボーン登録を押しておくことで未登録ボーンをなくしておきます。

 

次にメニューからvpdの読み込み。

vpdは選択するボーン1つだけの情報にします。

選択に使うだけなのでポーズはどうでもいいのですが、

初期化するvpdを作っておくのが汎用性高そうです。

 

vpdはMMDの「UserFile」内の「Pose」フォルダに入れておきます。

メニューからの読み込みなので UserFile/Pose/ 以降のフォルダしか指定できません。

「デフォルトフォルダを前回位置~」にチェックが入ってると読み込めなくなるので要注意。

 

vpdを読み込んだ後に「やり直し」を押してポーズをキャンセルします。

vpdを読み込みで姿勢が変わらなくてもvpd読み込み動作がアンドゥ対象になります。

 

その後にボーン操作の「コピー」「ペースト」を続けて押します。

意味のない動作に見えますが、これをすることでボーン入力欄に数値が表示されます。

それをしないとボーン位置 X 「-----」みたいになってしまって、

マクロ側からボーンの入力数値を取得して扱うことができなくなります。

 

f:id:PIP_MMD:20220315194628p:plain

(ボーンが選択できているけど入力数値が表示されていない例)

 

以上、MMDマクロでボーン選択する方法でしたが、

マクロでボーン選択して何をするのかはその人次第ですのでまあ・・・

 

連続操作する時に足IKの回転だけゼロ化するとかそういう感じかなあ

 

ネガイボシのモーション投稿について

ブロマガを移転したけどアナウンスもしてませんでした。
もともと細かいメモが多くてアナウンスするのも違和感あったり。

f:id:PIP_MMD:20211126172305p:plain



とりあえず直近のネガイボシモーション投稿についてです。

www.nicovideo.jp

 

【曲について】

曲は市瀬るぽさん、振付け~踊ってみたはかずはさん。

 

ドラムンベースはビートが細かいからかダンスは少なめのような気がしまする。

ネガイボシはメロディも正統的なポップだと思うんですけどね。

 

かずはさんのダンスが気に入ったという方の投稿を見かけてトレースたんですが、

個人的には昔のWAVEFILEとか思い出したり、見てて楽しくなるダンスです。

www.nicovideo.jp

www.nicovideo.jp

 

 

【モーションについて】

1分30秒を10日前後、動画まで含めて2週間程度で上げてますが、

わりととんでもないスピードなのであまり参考にはしないでください。

 

トレースが速いのはモーションの打ち方がある程度決まっているからです。

キーフレームも全体に少なめですが、出来は割といいと思います。

 

私はMMMを使う場合、補間曲線は手調整せず、プラグイン任せです。

補間曲線をさらに調整したい場合は、曲線を手で直接いじるのではなく、

キーフレーム側を修正してプラグインが綺麗に掛かりやすいようにしてます。

f:id:PIP_MMD:20211126164016p:plain

 

f:id:PIP_MMD:20211126163904p:plain

 

そういえば今回作業してて思ったのですが、

MMMはキーフレームの作業中のコマ送りがモーフ入力で遅くなるようです。

まばたきやリップの入力が1つでもあるとコマ送りが体感1.5倍くらい遅くなります。

無表情を我慢してモーフとボーンの作業は分けた方がイライラしなさそう。

 

 

【動画について】

背景が3Dスクロールする効果を狙ってやってみました。

モーション動画にカメラや余計な演出はいらないという人もいますけど、

たまにはこういうのも気分転換ですね。

 

背景のスクロールは移動ループシェーダーをこしらえて当てています。

最初はMMDエンジンも試してたんですけど、シェーダーの方が便利でした。

立体マップが手軽に流れてくると楽しいんですがそう都合よくはいかないかなあ。

 

移動シェーダーもシンプルなものなので公開してもいいけど

需要があるのかはよく分からないのでした。

 

MME的には508式リンちゃんのスカートにPAToonの影傾向マップ当ててますが

まあその辺も言われないと分からないという感じですよね。

 

=========================

今回はここまで。

それぞれ一から書くといくらでも長くなるけど

動画で何を書いたらいいのかみたいなのは意外と難しいですね。

動画にも気軽にコメントしてくだされたしです。

【MMD】PMDE/PMXEで捩りボーンが壊れる現象の対策と原因【2021まとめ】

※ブロマガを移転しようかと思ったのですが、
 いろいろ情報が古いので整理して書き足しています。

PMDEやPMXEを使っていると腕捩・手捩ボーンが壊れる現象を時々見かけます。


以前は直接ボーン操作する時にしか関係なかったのですが、
MMDVer9.18以降ではモーションの流し込みでも問題が出ます。※1

※1 腕の角度が違うモデル綺麗に動かすために軸制限値を参照するようになっています

【治し方】

1.プラグインで直す

捩りボーン軸制限修正プラグイン(PMXE)
https://bowlroll.net/file/91825

一応、過去に作ったのでPMXEに入れて使うとだいたい直ります。
捩りボーンの構造が特殊だとエラーの出る場合があるかもしれません。


2.手動で直す
PMXEで捩りボーンを選択します。

表示先の欄にある「<<」ボタンを押すと
「腕捩」の場合は「ひじ」、「手捩」の場合は「手首」が指定されます。
(特殊な構造の場合は違うかもしれないので要確認)

指定した後でボーンの「軸制限」の横の「<」ボタンを押すと軸制限値が正常化します。



ボーン先表示が嫌な人はボーンを「相対」にするのですが、



(捩りボーンが相対先になってない場合の表示)

・・・が、ボーン先を残した方が軸制限値は壊れなくなります
詳しくは下の【仕組みと対策】を見てください。

※腕ボーンが腕の中心を通ってない場合は自分で軸の方向を作ってやらないとダメです。


【仕組みと対策】

壊れた捩りボーンはボーンの軸制限値がおかしくなっています。
壊れた軸制限値の軸方向は原点を向いています。


(壊れた軸制限値を相対先にコピペすると原点方向を向いているのが分かる)

何らかの理由でPMDE/PMXE側で軸制限値の再計算処理が行われ、
ボーン先を原点基準で再計算することで軸制限値が壊れてしまうのです。

つまり捩りボーンを相対にしないでボーン先を指定していれば、
軸制限値が狂って捩りボーンが壊れることはなくなる・・・わけです。

捩りボーンが相対じゃないとつい気持ち悪く感じてしまうのですが、
セットアップ中に頻発する場合は相対ボーンをやめた方がいいと思います。

【再計算が入る条件】

PMDE/PMXEで再計算処理が入る条件のすべては把握していませんが、

1.pmd形式/pmx形式の変換が絡む場合
2.プラグインを使った後に軸制限が壊れる場合がある

の2点は注意しておきたいところです。

もともとpmd形式には相対先が存在しません。
捩りボーンの軸制限値は指定されているボーン先から自動計算しています。

pmx形式とpmd形式の変換が絡む場合に
存在しないボーン先(原点)で再計算した結果、捩りボーンが壊れるわけです。

たとえばPMDE(≠PMXE)のPmx編集モードは危ないです。※2
また古いプラグインの中にはpmd専用のものがありますが、
内部処理でpmd変換の計算が絡むので捩りボーンが壊れます。※3

たとえば曲面自動設定プラグインにはpmx用とpmd用の両方がありますが、
pmd用を使うと軸制限ボーンが壊れます。
今回の画像ではpmd用のIKMakerを使って軸制限値を壊しています。
先に書いたように捩りボーンのボーン先が指定してある場合は壊れません。

捩りがよく壊れる人はよく使うプラグインを確認すれば特定できると思います。
古いプラグインを使う方は要注意です。

※2 PMDEditorはPMXEditorの2.5以降の更新と共に配布を終了しています

ヴィランモーション配布と感想とか

動画投稿しました。



カリム君(by切な顔P)で足太ぺんたさんのヴィランをトレースさせていただきました。

 

前もぺんたさんでしたが前のトレース中にチェックしてました。
たまにはキレキレ系のダンスということでやってみようと思ったわけ。
よく考えたらそこそこやってるけどストリートダンスっぽいのが多いんですね、私。

あと男性モデルでトレースも久々です。(初めてと思ったけど違った
こちらはカリム君の袖の感じがいいなあと思ってチェックしてたんですけど。

表情ももっとヴィラン顔全開いきてえとちょっと思ってたんだけど、
そこそこの範囲でやめました。モデルに合わせてもっと頑張ってもよくってよ

**************************************************************
〇感想

今回やってみた感想として、
体をくねらせるのをうまく見せるのはそれなりに技術だなというか、
キーフレームの並びまで意識してないとなかなか綺麗にいきませんね。

肩は標準位置からあまり下げないようにする癖があるのですが、
もうちょっと標準位置から下げた方が見せやすかったかなあとも思います。
(肩回りはモデルごとの差が大きいところなのでどうかなというのも少しあります)

あとはセンターZ軸+体幹X軸
少し猫背気味な姿勢を多用してるので他のモデルではどうかなと思いましたが、
女性モデルでもそこそこ綺麗に動くようです。
姿勢は最初の方で重力のニュアンスを出したくてトレースとしては屈ませすぎたかも。

試行錯誤してるとモーション付けるのは遅くなっていくもので、
このモーションはなんだかんだで1分を1ヶ月近くやってたような気がしますね。
前作が正味10日~2週間くらいで1分半なのでコスパ悪く感じます。

***************************************************************
〇サイジング

今回の配布では身長が違うモデル用にということで幾つかモーションを同梱してます。
モデルに合わせて適当に倍率補正してるだけなのですが、
この手の作業は最近ではモデルサイジングツールがやってくれるようになりました。

サイジングの調整は完璧なのでいいのですが1点だけ、
身長低めのモデルは破綻しない限り動き大きめに調整した方が見映えがいいです。
子供は動き大袈裟な方がかわいいとか、動き小さいと目立たないとかそういう感じ。

大きなところはサイジングに任せた後に、
移動倍率を個別に少しいじってみるとよく見える場合もあるんじゃないかなと。
特定のカットだけやってみるという手もあるので試してみるといいかも。

サイズが合わないモーションは足首がぐりんと回りやすい傾向がありますが、
今回のモーションは足~ひざ~足首をFKでだいたい付けてるので回りにくいと思います。

絶対ではないけどそういうところでもモーションの汎用性は変わるはずです。

***************************************************************

そういえばここ半年でショート仕様で幾つかモーションをトレースしてます。

 

ショートなのは、
①短期間に集中してないと作業に飽きるから
②動画見る側として短い尺がわりと好きだから
などなど。

もともとMMDの流し込み的な二次~三次創作の動画は、
元曲・元ダンス・元モデルの宣伝=推し的な要素もあるので、
全編は本家でと思ったり思わなかったり(何が正しいというわけでもないので)

1番と2番で同じ振りが多いならコピペからわりとすぐにロングになりますが、
ヴィランは元が即興でそういう感じでもないので厳しいかもですね。

本当は作業中にしてた技術ツイートをまとめようと思ったのですが、
それをやり出すと細かい話になってまとまらない気もしてきました。

使用エフェクトは動画内クレジットにありますが、
イヤリングなどの金属パーツはPostRimlightToonに入ってるfxsubを少し改変して、
AutoLuminousのタブに適用して材質のスフィアの光沢部分だけを光らせてます
影に入ると光らなくなるのはPostRimlightToonの仕様だったり。
スフィアも発光用にもっと調整するとより複雑な光らせ方できると思います。

改変の仕方がよく分からなかったら、
ikenoさんのラメエフェクトあたりをAutoLuminousと併用するのもいいと思います。

というわけで今回はここまで。
モーションを楽しんでお使いくださればと思います。









PAToon2.98_MMMの使い方 その3

目次
その1 基本的な使い方
    A【準備】
    B【適用方法】
    C【コントローラー1/影の方向】
    D【コントローラー2/色調】

その2 PAToonの種類
    【PAToon(無印) / PAToonKey / PAToonLite】
    【~_シェーダー / ~_モデル】
    【その他】
    【HAToon2設定例】

その3 その他の機能について
    A【スフィア追従】
    B【法線球面化】
    C【法線Y値ゼロ】
    D【影傾向テクスチャ】
    E【ノーマルマップ】
    F【拡張ExcellentShadow/拡張HgShadow】

+++++++++++++++++++++++++++++++++++++++++++++++++


PAToonはなんかいろいろできるらしいという情報になっていきます。

A【スフィア追従機能】
これはデフォルトで組み込まれています。
頭ボーンのカメラに対してのZ軸回転の方向にスフィアが追従します。
髪の毛の天使の輪が崩れないための対策です。
モーフでオフにすることも可能ですが、あまり必要ないと思います。

(画面はMMDですが、効果は同じです)

B【法線球面化】
反射強度に~.039設定してる材質の法線を指定ボーンを中心に球面状にします。
ボーンの中心は頭ボーンの少し後ろに置いた方がいいようです。
モーフを操作しないと球面化しませんが、
モーフを1にして完全に球面化するよりは0.5くらいで様子を見た方がいいようです。


左・球法線化オン、右・球法線化オフ(オフで差がわかりやすい照明方向にしてます)

球面化すると鼻の凹凸などが無視されるため影方向によっては不自然に見えます。
SD体型のねんどろいどのようなモデルは球面化デフォルメした方が可愛く見えやすいです。
(そもそも影がいらないという説あり)





C【法線Y値ゼロ化】
法線を球面ではなく円筒状にするような感じです。(厳密には少し違う)

(球法線のイメージ)


(円筒型の法線のイメージ、実際には上下の影はなくなるけど鼻の横の影は消えない)

顔の上向き下向きの法線が水平になるのでまぶたの下などに影が出にくくなります。
これもモーフを操作しないと動きませんが、0.5くらいで様子を見るといいかもしれません。


(左がY値ゼロ、右が通常、ゼロにすると目の下の影が消える)

法線が水平になるので俯いたり上を向いたりするときに顔が一気に影になったりします。


D【影傾向テクスチャ】
UVマップを元に影情報を書くことで影になりやすい/なりにくい部分を設定します。
テクスチャの基本は灰色(0.5,0.5,0.5)で黒(0,0,0)に近づくほど影になりやすく、
白(1,1,1)に近づくほど影になりにくくなります。


(UVマップ上で黒い部分は影になり、白い部分は影にならない)


(実際にモデル全体に当ててみた例、マップはモデルに合わせて自分で作りましょう)

法線の計算しかしないのでセルフ影(物に遮られて出る影)には無効です
一番需要があるのは首の影などでしょうか。
スカートのひだなどに設定してもいいかもしれません。
モデルのテクスチャにあらかじめ書いてもいいのですが、
影の色が重なるのが嫌な人は影傾向テクスチャを使って見ましょう。

影傾向テクスチャを使うはfxmの内部で指定するか、
モデル材質のサブテクスチャかトゥーンテクスチャに設定することができます。
fxmに設定するとその材質専用のシェーダーになります。




※使いたい設定の「#define」の前の「//」を削除して有効にしてください

サブテクスチャを使う場合はPMXEで材質側に以下のフラグを立てる必要があります

サブテクスチャを使う場合   照明色Gの小数点3位以下を~.0039にする
               スフィア欄を「無効」か「サブtex」に指定する
               fxm内部のフラグを有効にする(//を取る)

※フラグが複数あるのは誤作動を防ぐための安全弁です。


(スフィア欄の「無効」設定。「サブTex」でも可ですがエフェクトなしの見た目が変わる)





E【ノーマルマップ】

PAToonではノーマルマップを使うこともできます。
ノーマルマップを使う場合はfxmの内部で指定するか、
モデル材質のサブテクスチャかトゥーンテクスチャに設定することができます。
fxmに設定するとその材質専用のシェーダーになります。



※使いたい設定の「#define」の前の「//」を削除して有効にしてください

影傾向マップと同じく、サブテクスチャを使う場合は、
PMXEで材質側にフラグを立てる必要があります。

サブテクスチャを使う場合   照明色Gの小数点3位以下を~.0049にする
               スフィア欄を「無効」かサブTexに指定する
               fxm内部のフラグを有効にする(//を取る)

※フラグが複数あるのは誤作動を防ぐための安全弁です。





F【拡張ExcellentShadow/拡張HgShadow】

PAToonはExcellentShadowにデフォルトで対応しています。
ExcellentShadowには標準描画の影マップを綺麗にする効果もありますが、
MMMはシャドウバッファを設定できるので実はあまり使う必要はありません。

(数値は2の累乗が基本です)


しかし、PAToonに同梱されているExcellentShadowとHgShadowは
影の方向をMMMのデフォルトは別の方向に変えることができます。

その場合は同梱の影方向調整用のボーンを読み込んで使います。
XYZの移動で動かすようにしているので少し操作に戸惑うかもしれません。

PAToonを読み込んでから拡張ExcllentShadowを読み込んだ場合、
嘘影設定をしている以外の材質の影方向を拡張ExtShadowでいじることができます。

PAToonKeyに加えて拡張ExShadowを読み込んだ場合の影の方向はこうなります。
反射強度~.039  LocalShadowの影方向
それ以外     拡張ExcellentShadowの影方向

ここにExcellentShadowに対応してないシェーダーを読み込めば
標準照明方向と合わせて3方向の影を使えることになります。

同じく拡張HgShadowも使えば4方向の影を使えることになります。
ただしそれぞれ重量級のエフェクトなので読み込むほどに重くなるのを覚悟してください

人物モデルの顔の嘘影を複数作りたいだけならPAToonを複数読み込めば使えるし、
そちらの方が軽量で操作も容易なので無理に拡張ExShadowを使う必要はありません。
1モデルの中で複数の影方向をどうしても使いたい場合だけでいいと思います。

PAToonのデフォルトの設定では、
ExcellentShadowとHgShadowを両方読み込んだ場合はHgShadowが優先されます
どちらかの専用にしたい場合はfxmを開いてどちらかのフラグをオフにしてください。
(上に書いた4方向使いたい場合などは必須の作業になります)

と、とりあえず急ぎ足でしたが、一通りの使い方の説明は以上です。
細かく設定を組み合わせていけば工夫次第でいろいろできると思うので頑張ってください。

現時点で幾つか対応していない拡張機能がありますが、
現行版のバグがないようなら、それらも随時対応させていくつもりです。

未対応機能一覧
PAToonRT(外部コントローラーのみのPAToon、操作が少しめんどくさい)
HAToon2設定例の一部(プラ、グラデ、メタリック)
PAToonβの拡張版(嘘パース、嘘視野角、絶対壁、WorkingFloorなど)