これでふんぎり。
2010年08月09日(Mon)
ぱいそん飽きてきたと言いつつ、やっぱり消化不良というか、そもそも自分で使う用途で作り始めたんだから配付用途に難があろうが実用のカタチにするべきじゃないか、みたいな葛藤が少しあったりなんかして。
モーフを対称コピーするスクリプトの話。
やっぱり既存の値が入ってる(=移動量がゼロでない)モーフ値に別の値を入れようとするのが上手くいかないみたいで。空のモーフを作成して上書きすれば入れ替えもコピーも問題なくできることがわかった。

ただ、この方法だと現在の移動量を取得するのにもう一つ余分にモーフターゲットを作ることになる。ワールド座標からパーツにかかっているワールド変換の影響を省いて、ジオメトリの座標との差分を取って……というのも考えたんだけど、面倒くさいし上手くいくと思えなかったし、自分で使う分には毎回ダミーモーフを削除するぐらいなんてことないんで、簡単な方法でいくことに。
スクリプトを実行すると、メニューリストが表示される。普通はX軸のコピーか入れ替えしか使わないと思う。敷居値(Threshold)は対称地点にある頂点を探すときに、どれだけ誤差を許容するか、の値。一応初期値はPoser単位で0.00001(約0.026ミリ)。上げすぎると誤判定が増えてヘンな結果になってしまう。テストに使ったM3RRなら、とりあえず初期値で問題ない。

対象は小道具でもフィギュアのパートでも可。マグネットが選択されているときは、自動的に適用先のアクターを選択状態にする。実行後は新しいモーフが二つ作成されている。処理時間は自分の環境でM3RRの頭部(約一万頂点)で30秒ぐらい。

Dummyと名前のついたモーフはさっくり削除。
実行対象がフィギュアで左右のパートがある場合、X軸のコピーは選択した反対側のパートに作成される。入れ替えは意味がないのでメニューからは省略。

そんなわけで一応ちゃんと動くものができたんだけど、ダミーモーフができてしまうという欠陥があるので、正式な配付はしないことに。β版だけ転がしておくので、既存のMorph Mirrorなどのスクリプトが動作しない人や、専用ソフトを使えない人で需要のある人は試してみて頂けるといいんじゃないかなと思う。

で、今は気分転換に小物製作。