読者です 読者をやめる 読者になる 読者になる

CGメソッド

CG制作に関してのヒント

MENU

【Maya】ブレンドシェイプを反転コピーするスクリプト

Maya Maya-Script

follow us in feedly

f:id:min0124:20160828115923p:plain

基本ははラップフォーマーを使う方法ですが

ただ毎回複製して、反転して、ブレンドシェイプして..というのは面倒なので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フォルダに格納

Supercrumbly : 3d

  • MAYAを起動してabSymMesh;とMELを入力。ウインドウを起動します

absymmeshの使い方

f:id:min0124:20170319142743p:plain

  • ベースオブジェクト、ターゲット、ターゲットのコピーを用意

f:id:min0124:20170319142809p:plain

  • ベースオブジェクトをSelect Base Geometryして登録して、ターゲットのコピーを選択してFlip Selectedで頂点番号をたまったまま反転コピーされます。

うまくいかないときはCheck Symmetyして、ベースオブジェクトを左右対称にしてやります。