myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | mSeparate 1.3 update ・共有UVをローカルにする

今日はミゲルさんからコメントを頂きました。

ミゲルさんは、俺のmSeparateを使っていたけど、切り離す時にUV共有になってしまい、UVアニメーションも共有されていました。

mSeparateはSoftimageのDuplicateをデフォルト設定を使うことが原因です。

Softimageではデフォルト設定のままで何かを複製すると、新しく出来たオブジェクトのUVは元のオブジェクトと共有になってしまいます。これは場合によって便利ですが、そうだない場合も結構あります。


なので、Softimageの設定を取得して、ユーザーの複製コマンドの設定で動くように変更しました。リンクは同じです:

mSeparate 1.3 (前回は1.3って書きましたが、間違えでした。前回は1.2でした)

DOWNLOAD

この複製オプションは右側のEDITメニューの「Duplicate, Instanciate Options」の「Texture Supports」オプションに「Freeze Projections」にすると複製してもローカルなUVになります。そして、mSeparateはここの設定を読んで実行します。

DupOptions.gif



この共有UVをローカルなUVにする方法はありません。
少なくても、俺は知りません。知っている人がいらっしゃるなら教えて下さい。

なので、この無理矢理なやりかたしか思い浮かばない:
もう一度複製することですが、今度はFreeze Projectionsというオプションで。

これをスクリプトにするとこうなります:


// JScript

// 選択されているオブジェクト(複数OK)のUVをローカルに変換。(複製コマンドを利用して)
// This converts Shared UV to Local UV by brute force (duplicate, reparent and rename)

for ( var i=0, a = Selection.Count; i < a; i++ ) {
var oSouObj = Selection(i), SouName = oSouObj.name
var oDupObj = GetValue( Duplicate(oSouObj, null, null, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 3) )
DeleteObj(oSouObj);
oDupObj.name = SouName;
}


これしかないのかな?