MMDモデル作るよ!~41~ モデルに鏡を組み込むよ! | JOY志士式MMDモデル置き場

JOY志士式MMDモデル置き場

自作モデルの作成状況、モデル・ステージの配布など。
ジャンル:銀魂・和風  

ちゃお(*^・ェ・)ノ ♪

 

今回作っていたパトカー、鏡(MirrorWF)の組み込みにすごく試行錯誤したのでその覚書です

専門用語っぽいものが出てくるので初心者向きではありません

モデリングをやり始めて、鏡の組み込みに上手く行かないな、という事態になった時に思い出していただければな、と思います

 

 

当初の上手く行ってなかった状態から説明すると、ミラーエフェクトを適用したいサイドミラー・バックミラーのxファイルを、サイドミラー・バックミラーの位置に置いていました

関連付けるボーンが「x=0、y=0、z=0」にあれば位置を変えずに済むし、ちゃんとミラーは鏡像を映してくれると思ってたからです

 

結論から言うと、↑の状態だと

 

 

z=0 の位置から見た鏡像しか映してくれませんでした

まるでサイドミラーが↑この辺に付いてるかのごとく

(ピンクの線が入ってるのがz=0です)

 

何故ならミラーエフェクトの「ローカル座標系における鏡面上の任意の座標(アクセ頂点座標の一点)」のデフォルトは「0.0, 0.0, 0.0」だからです!!!

 

そしてサイドミラーは初期値がz軸マイナス座標上にあるからです

ということに気付くまでに二~三日かかりました_:(´ཀ`」 ∠):_ ...

 

これで理解できた方はこれ以上読む必要はないです

 

鏡を設置する場所が一箇所(もしくは複数でもz軸の座標が同じである)の場合、オブジェクトの位置とか接続用ボーン位置を調整する方がクッソメンドくさいので、「ローカル座標系における鏡面上の任意の座標」をいじった方が早いです

 

例えば↑のパトカーにバックミラーは付けずにサイドミラーだけを付けるなら、MWF_Object.fxsubファイルを開いて、

 

float3 MirrorPos = float3( 0.0, 0.0, 0.0 );

ってなってるとこを、

float3 MirrorPos = float3( 0.0, 0.0, -1.1 );

 

って入れとけば提灯が描画されましたorz

 

が、これだとバックミラーのz軸座標が違うので、やっぱり車の場合はそういう訳にはいかないです

 

鏡を設置する場所が複数、しかもz軸座標がズレているオブジェクトの場合

 

まずはxファイルの中心位置を大体 x=0、y=0、z=0に持っていきます

多少ズレていてもこの後のボーン位置調整でどうとでもなります

大体でいいです

 

そしたらxファイルでエクスポートします

 

次に本体のモデルに接続用ボーンを取り付けます

 

 

大体鏡の来て欲しいとこに。

あとはMMDで表示を確認しながら接続用ボーンの微調整をします

元のオブジェクトの座標差を出してその中心点にすればいいので、計算の方が早い方はそれで。

私は計算やだよう派なのでチマチマいじりましたw

 

これで映り方に満足すれば完成ですヽ(*´∀`)ノ

 

 

ちなみに、バックミラーは元々がx軸に対して斜めになっているため、ゼロ距離部分を描画してしまうと不要な部分が映り込んでしまうので、少しだけz軸マイナス方向に移動しています

 

 

あと、今回は鏡像描画がz軸方向だけでしたが、x軸やy軸方向の鏡像描画もしたいオブジェクトがある場合はもうちょっといじる箇所が増えます(というかfxsubファイルが増えることになると思います。まだ実験してないけど)

 

こんな説明で分かるかなー?

 

あ、ミラーエフェクトの適用できる前提で書いてるな…

うん、ここまで読もうと思った人はエフェクト割り当てはできるに違いないからいいやwww

 

よく分かんないよ!という方は症状をスクショの上で直接聞いてもらえれば、ある程度のことには答えられるんじゃないかな!私も完全に理解したわけじゃないけど!

 

(´∀`*)ノシ ほな!