基本はラップフォーマーを使う方法ですが
ただ毎回複製して、反転して、ブレンドシェイプして..というのは面倒なのでabsymmeshを使います。
目次
通常のブレンドシェイプを反転コピーする方法
duplicating the base, scale it -1 in X
apply the blendshape
apply a wrap deformer from the base mesh to the new mesh
turn on the blendshape
set the new mesh scale X to 1 again
スクリプト化したもの(ターゲット選択して、ベース選択してMirrorPolyShape;)
global proc MirrorPolyShape() { string $sel[] = `ls -sl`; string $base = $sel[1]; string $shape = $sel[0]; string $NN = `substitute "L_" $shape "R_"`; string $nShape[] = `duplicate -name $NN $base`; string $temp[] = `duplicate $base`; string $blendName[] = `blendShape -name "tmpBlend" $shape $temp[0]`; setAttr -l 0 ($temp[0] + ".scaleX"); setAttr ($temp[0] + ".scaleX") (-1); string $grp = `group $temp[0] $nShape[0]`; setAttr ($grp + ".s") 50 50 50; select -r $nShape[0] $temp[0]; string $wrapName[] = `doWrapArgList "2" { "1","0","1" }`; setAttr ($blendName[0] + "." + $shape) 1; DeleteHistory; setAttr ($grp + ".s") 1 1 1; parent -w $nShape; delete $grp; }
absymmeshの導入方法
- 下記からスクリプトをダウンロード、scriptフォルダに格納
- MAYAを起動してabSymMesh;とMELを入力。ウインドウを起動します
absymmeshの使い方
- ベースオブジェクト、ターゲット、ターゲットのコピーを用意
- ベースオブジェクトをSelect Base Geometryして登録して、ターゲットのコピーを選択してFlip Selectedで頂点番号をたまったまま反転コピーされます。
うまくいかないときはCheck Symmetyして、ベースオブジェクトを左右対称にしてやります。