70 lines
1.7 KiB
Plaintext
70 lines
1.7 KiB
Plaintext
|
//******************************************************************************
|
|||
|
//
|
|||
|
// <20><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>: <20><>Ϫʱ<CFAA><CAB1><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
|||
|
// <20><>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>: q.100@qq.com
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 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);
|
|||
|
|
|||
|
}
|
|||
|
|