//****************************************************************************** // // 版权所有: 玉溪时光科技有限公司 // 联系邮箱: q.100@qq.com // 开发日期: 2023/08/08 // //****************************************************************************** global proc SGBlendShapeMirrorTarget (int $direction, int $axis, int $targetIds[], string $blendShape){ if(!`objExists $blendShape`) { warning -n ("No Exists BlendShape:" + $blendShape); return; } int $originalSymmetry = `symmetricModelling -q -s`; string $symmetrySpace, $symmetryAxis; if ($originalSymmetry) { $symmetrySpace = `symmetricModelling -q -about`; if ($symmetrySpace == "topo") $symmetryAxis = blendShapeGetTopoSymmetryEdge(); else $symmetryAxis = `symmetricModelling -q -axis`; } int $geometryIndices[] = `blendShape -q -gi $blendShape`; string $cmd; for($geometry in $geometryIndices) { $cmd += "blendShape -e "; for($targetId in $targetIds) { $cmd += "-mt " + $geometry + " " + $targetId + " "; } $cmd += "-md " + $direction + " "; if ($axis == 4) { $cmd += "-ss 0 "; } else { $cmd += "-ss 1 "; if ($axis == 1) $cmd += "-sa x "; else if ($axis == 2) $cmd += "-sa y "; else if ($axis == 3) $cmd += "-sa z "; } $cmd += $blendShape + "; "; } if (!$originalSymmetry || size($symmetryAxis) == 0) $cmd += "eval -ue 0 \"symmetricModelling -s 0\";"; else if ($symmetrySpace == "topo") $cmd += "eval -ue 0 \"symmetricModelling -e -about " + $symmetrySpace + " -s 1 " + $symmetryAxis + "\";"; else $cmd += "eval -ue 0 \"symmetricModelling -e -about " + $symmetrySpace + " -axis " + $symmetryAxis + " -s 1\";"; eval($cmd); }