myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

Isolate Object + Joints

今作っているキャラはMayaでウェイト入れなきゃいけないけど、面倒くさいからXSIにしました。
Mayaって不便だよな~、使えば使うほどXSIの良さが分かってきて一刻も早くXSIで作業したくなります。

イライラするから、とりあえずXSIへ。

今回は普段作っているキャラクターと違って、オブジェクトと骨が多くてビューポートがめちゃくちゃになってしまうため、オブジェクトとそのジョイントだけを表示したくて、出来れば1クリックでやりたいと思ったからこのスクリプトを書いてみました。

簡単なスクリプトですけど、ちょっと役に立つ:

http://blog-imgs-48.fc2.com/m/y/a/myara/mIsoObjJoints.js

JScript

if (selection.count>0)
{
// 選択されているオブジェクトからウェイト付きのオブジェクトだけのCollection作成
ObjCol = XSIFactory.CreateObject( 'XSI.Collection' ) 
for (var i=0; i<selection.count; i++)
{
if (selection(i).Envelopes.Item(0))
{ObjCol.Add (selection(i))}
}
// 空コレクション作成(ジョイント用)
DefCol = XSIFactory.CreateObject( 'XSI.Collection' ) 
DefCol.Unique = true;
// オブジェクトのCollectionをループして、ジョイントを取得して、コレクションに追加
for (var i=0; i<ObjCol.count; i++)
{
SelectDeformersFromEnvelope(ObjCol(i));
for (var j=0;j <selection.count; j++)
{DefCol.Add(selection(j))}
}
// ジョイントとオブジェクトを選択してIsolate
SelectObj(DefCol);
AddToSelection (ObjCol)
IsolateSelected(null, null);
}


Comments

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/16-0a314ae4
Use trackback on this entry.