//****************************************************************************** // // 版权所有: 玉溪时光科技有限公司 // 联系邮箱: q.100@qq.com // 开发日期: 2023/08/08 // //****************************************************************************** global proc SGBlendShapeFlipTarget (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`; } string $cmd; int $geometryIndices[] = `blendShape -q -gi $blendShape`; for($geometry in $geometryIndices) { $cmd += "blendShape -e "; for($targetId in $targetIds) { $cmd += "-ft " + $geometry + " " + $targetId + " "; } 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); }