ミラー愚弄ばるPosX。 対称配置スクリプト。
いやー ほんとどうでもいい小物なんですがね、ミラー愚弄ばるPosX というどうでもいいスクリプトを、スクリプト墓場 Graveyard に埋葬しました。
http://homepage3.nifty.com/jjj/XSIFiles/Plugin/JJJ_XSI_Plugins.html

画像の通りなんですがね、Aを選択し、次にBを選択し、実行すると、BがAのグローバルX対称位置に移動するというだけなんですがね。
キャラクタのリグを組んでいたんですよね。インチキ筋肉デフォーメーションをやってみたくて、エンベロープのデフォーマとして大量の null を仕込んだんですが、上手くデフォーメーションするためには何度もデフォーマ null の位置調整をしなければいけないわけですよ。で、シンメトリな体だから片側を調整したらもう片側も対称に配置し直さなければいけないじゃないですか。1つや2つなら手で数値でも入れてやるけど、20個30個だとシャレになりません。ブチ切れて1分か2分で投げやりにスクリプト書いたら、意外とその後も使うようになったのでね。まあ、それなりに便利かなと思いましてね。
アフォみたいに単純なスクリプトなので、ソース丸ごと載せてみます。
try
{
var oMaster = Selection(0);
var oSlave = Selection(1);
oSlave.Kinematics.Global.posx.value = oMaster.Kinematics.Global.posx.value * -1;
oSlave.Kinematics.Global.posy.value = oMaster.Kinematics.Global.posy.value;
oSlave.Kinematics.Global.posz.value = oMaster.Kinematics.Global.posz.value;
}
catch(e)
{
Logmessage('なんかエラーです。',siError);
}
こんだけ。
エラー処理もせず、無駄にオブジェクトを代入したりもせずに書けば、
Selection(1).Kinematics.Global.posx.value = Selection(0).Kinematics.Global.posx.value * -1;
Selection(1).Kinematics.Global.posy.value = Selection(0).Kinematics.Global.posy.value;
Selection(1).Kinematics.Global.posz.value = Selection(0).Kinematics.Global.posz.value;
この3行で十分ですわな。
まあそんだけです。
ところでこういう刹那的スクリプトを野良スクリプト (c)りんぷる と呼んでいますが、最近野良スクリプトがいっぱい溜まってきて整理する気力もない。どっかにまとめておけばいいのにその仕事用のフォルダの片隅に放置されていたりするもんだから、存在を忘れているものも多い。 なんか使い捨てっぽくて嫌ですね。エコじゃないですね。 まあいいけど。
.
| 固定リンク | コメント (0) | トラックバック (0)









最近のコメント