Softimage用のMMDで使うscriptです。
MMDの出力時には不要なShadowRigのRootを削除して親子関係を直します。
汎用性はないかなーと思います。自分専用。
softimageで作ってる方ってあんまり多くないので参考にもならんかも
というか先駆者はもっとちゃんとやり方構築されてますよねorz
で、結局これってマクロなんですよね。
やってることってモデルの中から"*root"を検索して
見つかったrootの親と子を取得して親子関係を付け直して
取得したものは消すっていうことやってます。
というてもこれが結構回数行うのでずっと似たようなもの作ろうと考えてました。
本当はもっと処理楽にしたところあるんですけどとりあえずですね。
いっぺんにやると失敗するのです
コメントはかなり細かく書くので慣れてる人からするとうっとおしいくらい書いてます。自分が後で見て分かるよう。たまにしか書かないからね。
ParentObjって子の方は複数含まれてるデータでも一気にやってくれるんですねぇ、最初はループして一個ずつ読ませてたわ。
//---------------------こっからscript--------------------------------------
//モデルを選んで実行
//親子の関係をぶった切りおじいちゃんと親子の関係を結びなおす
//なお親は世界に放り出される模様
var oCondition = "*root*"//******条件この列を書き換えてください******
var oSel = Selection(0)
var oType = oSel.Type
if (oType == "#model"){Run( );}
else{x="Modelを選択しやがれですよ";}
function Run( )//実行命令
{
var oChildren = oSel.FindChildren(oCondition,"")//名前に*rootを含む子を取得
for(var i = 0 ; i < oChildren.count ;i++){
var oRoot = oChildren(i)//root取得
var oRParent = oRoot.Parent//rootの親取得
var oRChildren = oRoot.Children//rootの子取得(複数)
ParentObj( oRParent , oRChildren);//親子関係をつける、子は複数もいけるっぽい
CutObj(oRoot);//rootを親から外す、家族の近いを切るなんてそんな って人はこめんとあうつ
DeleteObj(oChildren);//削除、消すなんてそんなって人はコメントあうつ!
}
}