新しくNULLを作って、選択していたオブジェクトのコンストレイントを引き継ぐ(多分全て)
[Softimage Script]
使えるかわかんないけど書いてみた。
全部のケースを試してないし、エラーチェックもしてないので上手く動かないケースもあると思います。
■使い方
- オブジェクトを選択
- 実行
- シーンルート以下に新しいヌルが出来てコンストレイントの状態がコピーされてる
var oSel = Selection; for(var i = 0; i < oSel.count; i++){ var newNull = ActiveSceneRoot.AddNull(oSel(i).name + "_copy") //ストレインオブジェクトを取得 var cnslist = oSel(i).Kinematics.Constraints; for(var j =0; j < cnslist.count; j++){ //同じコンストレイントを張る var ConsType = cnslist(j).name.split(" Cns")[0].replace(/[ ]*/g, ""); var newCons = newNull.Kinematics.AddConstraint(ConsType ,cnslist(j).Constraining); //パラメータの状態をコピー for(var k = 0; k < newCons.Parameters.count; k++){ newCons.Parameters(k).value = cnslist(j).Parameters(k).value; } //めんどくさいのでコピペ CopyAnimation(cnslist(j)) PasteAnimation(newCons) } }