面倒くさいけど、Mayaでモデリングするよりマシです。
まだ完璧じゃないけど、Crosswalkは結構良いツールになってきたから、大体データは持っていけます。
Rigはちょっと難しいけど。
ところで、MayaのグループをXSIに持っていくと、Nullになってしまいす。
MayaのグループはXSIのModelのようなものですね。
でもXSIのModelをMayaに持っていくと、 Locator (XSIのNullと同じ)になってしまいます。
XSIでは「Transform Group」という機能があって、単純にNullを親にする機能です。
これもMayaに持っていくと、もちろんNull(MayaでいうLocator)になります。
無論、NullになってしまったグループをMayaに戻してもLocatorになります。
XSIのGroupは全然違う物で、Mayaに持っていくとGroupが無視されて消えてしまいます。
今までは別に気にしていなかったけど、今回はクライアントにグループを使ってくださいと突っ込まれてしまった。
理由は分からんけど、そういう指示なので仕方ない。
これから毎回グループにして、名前を直すのはちょっと面倒なので、このLocatorをGroupにしてくれるmelを作ってみました:
使い方:子持ちのLocatorを選んで、実行。
注意:Locatorであることを確認なんかしません。
Mel
global proc mLocator2Group()
{
string $selected[] = `ls -sl`;
string $current = "";
string $object = "";
if ($selected[0] != "")
{
for ($current in $selected)
{
// Test current selection for transform objects
string $children[] = `listRelatives -c -pa -typ transform $current`;
if ($children[0] != "")
{
$parent = `listRelatives -p $current`;
if (`size$parent` > 0)
{
string $grp = `group -n ($current + "_temp") -p $parent $children`;
delete ($current);
rename $grp ($current);
}
else
{
rename $current ($current +"_temp");
group -n $current -world $children;
delete ($current + "_temp");
}
}
else
{
error "No objects under this selection";
}
}
}
else
{
error "Nothing selected.";
};
}
mLocator2Group;
メモ:
XSI と 違って、Mayaでは Scene Root がないから、Rootにあるオブジェクトの親を取得しようとすると、何も出ません。なので、sizeを使って、その親が空(0)でしたら world にします。worldというオプションはXSIのRootと似たような意味です。因みにsizeはjscriptのCountと似たようなものです。