81 lines
2.3 KiB
Plaintext
81 lines
2.3 KiB
Plaintext
//******************************************************************************
|
|
//
|
|
// 版权所有: 玉溪时光科技有限公司
|
|
// 联系邮箱: q.100@qq.com
|
|
// 开发日期: 2024/04/17
|
|
//
|
|
//******************************************************************************
|
|
|
|
global proc SGPose(string $pose){
|
|
|
|
string $axis = `upAxis -q -ax`;
|
|
|
|
string $poseJoints[] = {
|
|
"clavicle_r","clavicle_l",
|
|
"upperarm_r","upperarm_l",
|
|
"lowerarm_r","lowerarm_l",
|
|
"hand_r","hand_l",
|
|
"index_metacarpal_r","index_metacarpal_l",
|
|
"index_01_r","index_01_l",
|
|
"index_02_r","index_02_l",
|
|
"middle_metacarpal_r","middle_metacarpal_l",
|
|
"middle_01_r","middle_01_l",
|
|
"middle_02_r","middle_02_l",
|
|
"ring_metacarpal_r","ring_metacarpal_l",
|
|
"ring_01_r","ring_01_l",
|
|
"ring_02_r","ring_02_l",
|
|
"pinky_metacarpal_r","pinky_metacarpal_l",
|
|
"pinky_01_r","pinky_01_l",
|
|
"pinky_02_r","pinky_02_l"};
|
|
|
|
string $locator = "MetaHumanLocatorTemp";
|
|
if(!`objExists $locator`){
|
|
spaceLocator -n $locator;
|
|
}
|
|
string $locatorGrp = "MetaHumanLocatorGrpTemp";
|
|
if(!`objExists $locatorGrp`){
|
|
group -em -n $locatorGrp;
|
|
parent $locator $locatorGrp;
|
|
}
|
|
|
|
string $jsonFile = `getenv "SG_PATH"` + "files/data/BodyJoints.json";
|
|
string $object[] =`SGReadJson -f $jsonFile -t "object"`;
|
|
for($i=0; $i<size($object); $i++){
|
|
string $jointName[] = `SGReadJson -d $object[$i] -k "joint" -t "string"`;
|
|
if(stringArrayContains($jointName[0], $poseJoints)){
|
|
float $pos[] = `SGReadJson -d $object[$i] -k $pose -t "double"`;
|
|
string $joint_drv = $jointName[0] + "_drv";
|
|
delete`parentConstraint -skipRotate x -skipRotate y -skipRotate z -weight 1 $joint_drv $locator`;
|
|
if($axis == "y"){
|
|
rotate -ws $pos[0] $pos[1] $pos[2] $locator;
|
|
}
|
|
else if($axis == "z"){
|
|
setAttr -type float3 ($locatorGrp + ".r") -90 0 0;
|
|
rotate -ws $pos[0] $pos[1] $pos[2] $locator;
|
|
setAttr -type float3 ($locatorGrp + ".r") 0 0 0;
|
|
}
|
|
delete`parentConstraint -skipTranslate x -skipTranslate y -skipTranslate z -weight 1 $locator $joint_drv`;
|
|
|
|
}
|
|
}
|
|
|
|
delete $locator;
|
|
delete $locatorGrp;
|
|
|
|
refresh;
|
|
string $meshs[];
|
|
int $meshIndex[] = {0,9,18,26,33,38,42,46,50,51,52,53};
|
|
for($i=0; $i<size($meshIndex); $i++){
|
|
string $mesh = `SGGetMeshes -m $meshIndex[$i]`;
|
|
if(`objExists $mesh`){
|
|
$meshs[(size($meshs))] = $mesh;
|
|
}
|
|
}
|
|
//SGMainAmendAxisPose;
|
|
SGSkinAmendAxis;
|
|
SGBindPoseReset $meshs;
|
|
}
|
|
|
|
|
|
|