Created
September 9, 2018 14:28
-
-
Save deathponta/100c69c657e3c481f3612ec50c565d08 to your computer and use it in GitHub Desktop.
シェイプノードを置き換える
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
1番目にに選択したオブジェクトのシェイプノードを、 | |
2番目以降に選択したオブジェクトのシェイプノードに置き換える。 | |
■ 用途 | |
・リグの形状を途中で変更したいが、既存のトランスフォーム消したくない | |
・アニメーションを崩さずシェイプノードだけ差し替えたい | |
・現在のトランスフォームを保持したまま、モデルデータを差し替えたい | |
*/ | |
proc RShapeNode_Exec( string $_mode ){ | |
string $sel[] = `ls -sl -l`; | |
// はじめに選択したノードのシェイプを取得 | |
$shape = `listRelatives -s $sel[0]`; | |
for( $i=1;$i<size($sel);$i++ ){ | |
// 既存のリグからシェイプを削除 | |
delete `listRelatives -s -f $sel[$i]`; | |
if( $_mode == "copy" ){ | |
// _FP == フルパス | |
// ターゲットオブジェクトを複製し、シェイプだけを取り出す | |
$newObj_FP = ls( "-l" , duplicate($sel[0]) ); | |
$tempShape_FP = `listRelatives -s -f $newObj_FP`; | |
// ターゲットTMの子にする | |
$newShapeName = parent("-r" , "-s" , $tempShape_FP , $sel[$i] ); | |
// シェイプノードの名前を修正 | |
$nameBKUP = ls( $sel[$i] ); | |
$temp_FP = rename( $sel[$i] , ls($newShapeName) ); | |
rename( $temp_FP , $nameBKUP ); | |
// 空のトランスフォームを削除 | |
delete $newObj_FP; | |
}else{ | |
// 最初に選択したカーブを、2番めに選択したトランスフォームのシェイプノードへとインスタンス | |
parent -add -s $shape $sel[$i]; | |
} | |
} | |
} | |
proc ReplaceShapeNode(){ | |
string $window = "ReplaceShapeNode"; | |
if(`window -exists $window`)deleteUI $window; | |
window -title "ReplaceShapeNode" -width 300 -toolbox true $window; | |
columnLayout -columnAttach "both" 5 -rowSpacing 10 -columnWidth 250; | |
text -l "2つ以上のオブジェクトを選択して実行。\n2番目以降のオブジェクトのシェイプを置き換え。"; | |
button -label "コピー として置き換え" -c "RShapeNode_Exec(\"copy\")" -ann "オリジナルのシェイプになります。"; | |
button -label "インスタンス として置き換え" -c "RShapeNode_Exec(\"instance\")" -ann "1つのシェイプを修正すると他のオブジェクトのシェイプも変更されます。"; | |
showWindow $window; | |
} | |
ReplaceShapeNode(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment