383 lines
11 KiB
Plaintext
383 lines
11 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
|
|||
|
//
|
|||
|
//******************************************************************************
|
|||
|
|
|||
|
//==========DAZ<41><5A>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>===========//
|
|||
|
global proc SGMesheDetach (string $topology){
|
|||
|
if($topology == "DAZG8F"){
|
|||
|
SGDAZG8FDetach;
|
|||
|
}
|
|||
|
else if($topology == "DAZG8M"){
|
|||
|
SGDAZG8MDetach;
|
|||
|
}
|
|||
|
else if($topology == "DAZG9"){
|
|||
|
SGDAZG9Detach;
|
|||
|
}
|
|||
|
else if($topology == "CC3"){
|
|||
|
SGCC3Detach;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
global proc SGDAZG8FDetach (){
|
|||
|
|
|||
|
string $sel[]=`ls -sl`;
|
|||
|
|
|||
|
string $shapeA[]=`listRelatives -s $sel[0]`;
|
|||
|
|
|||
|
int $edgesA[] = {
|
|||
|
52019,52021,53274,53278,54011,54013,54034,54037,54252,54256,
|
|||
|
54289,54291,54600,54602,54624,54626,54648,54650,54674,54676,
|
|||
|
54690,54692,54715,54717,54725,54727,57874,57881,58328,58330,
|
|||
|
58363,58365,59260,59264,59265,59267,59307,59308,59311,59312,
|
|||
|
59332,59344,59348,61354,61355,61385,61387,61395,61396,61397,
|
|||
|
63352,63354,64601,64609,65323,65325,65344,65349,65561,65565,
|
|||
|
65599,65601,65906,65908,65930,65932,65954,65956,65979,65981,
|
|||
|
65995,65997,66024,66026,66033,66035,69124,69127,69540,69542,
|
|||
|
69572,69574,70459,70464,70466,70467,70504,70505,70508,70509,
|
|||
|
70530,70543,70549,72515,72516,72544,72546,72554,72560,72561};
|
|||
|
|
|||
|
int $edgesB[] = {
|
|||
|
24644,24648,25049,25051,25127,25129,25139,25141,25144,25148,
|
|||
|
25663,25665,25671,25673,25677,25683,25695,25697,25701,25705,
|
|||
|
25798,25800,25814,25816,25822,25824,25828,25830,25847,25851,
|
|||
|
26130,26132,27410,27412,27417,27419,28237,28243,28246,28248,
|
|||
|
28250,28251,28304,28306,28604,28611,28996,28998,29066,29068,
|
|||
|
29076,29078,29083,29089,29554,29556,29562,29564,29568,29572,
|
|||
|
29586,29588,29590,29594,29688,29690,29706,29708,29714,29716,
|
|||
|
29723,29725,29734,29738,30012,30014,31292,31294,31298,31300,
|
|||
|
32066,32070,32076,32079,32080,32082,32137,32139};
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($e in $edgesA){
|
|||
|
select -add ($sel[0]+".e["+$e+"]");
|
|||
|
}
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($i=2;$i<size($cuuttingA)-4;$i++){
|
|||
|
select -add $cuuttingA[$i];
|
|||
|
}
|
|||
|
polyUnite -n "DAZ_G8F_TeethA" -ch 0;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[34];
|
|||
|
select -add $cuuttingA[36];
|
|||
|
polyUnite -n "DAZ_G8F_EyeLeft" -ch 0;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[35];
|
|||
|
select -add $cuuttingA[37];
|
|||
|
polyUnite -n "DAZ_G8F_EyeRight" -ch 0;
|
|||
|
|
|||
|
rename $cuuttingA[0] "DAZ_G8F_Body";
|
|||
|
rename $cuuttingA[1] "DAZ_G8F_HeadA";
|
|||
|
|
|||
|
string $shapeB[]=`listRelatives -s "DAZ_G8F_HeadA"`;
|
|||
|
select -cl;
|
|||
|
for($e in $edgesB){
|
|||
|
select -add ("DAZ_G8F_HeadA.e["+$e+"]");
|
|||
|
}
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingB[]=`polySeparate -ch 0 $shapeB[0]`;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add "DAZ_G8F_TeethA";
|
|||
|
select -add $cuuttingB[1];
|
|||
|
polyUnite -n "DAZ_G8F_Teeth" -ch 0;
|
|||
|
|
|||
|
rename $cuuttingB[0] "DAZ_G8F_Head";
|
|||
|
|
|||
|
catchQuiet (`parent -w "DAZ_G8F_Body"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8F_Head"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8F_Teeth"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8F_EyeLeft"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8F_EyeRight"`);
|
|||
|
|
|||
|
delete $sel[0];
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
global proc SGDAZG8MDetach (){
|
|||
|
|
|||
|
string $sel[]=`ls -sl`;
|
|||
|
|
|||
|
string $shapeA[]=`listRelatives -s $sel[0]`;
|
|||
|
|
|||
|
int $edgesA[] = {
|
|||
|
50883,50885,51704,51708,52433,52435,52456,52459,52674,52678,
|
|||
|
56450,56452,56485,56487,57038,57042,57043,57045,57085,57086,
|
|||
|
57089,57090,57110,57122,57126,58900,58901,58931,58933,58941,
|
|||
|
58942,58943,60178,60180,60993,61001,61707,61709,61728,61733,
|
|||
|
61945,61949,65640,65642,65672,65674,66223,66228,66230,66231,
|
|||
|
66268,66269,66272,66273,66294,66307,66313,68047,68048,68076,
|
|||
|
68078,68086,68092,68093,106855,106857,106902,106904,106926,106928,
|
|||
|
106948,106950,106972,106974,106988,106990,107011,107013,107021,107023,
|
|||
|
107058,107065,107647,107649,107689,107691,107713,107715,107736,107738,
|
|||
|
107759,107761,107775,107777,107802,107804,107811,107813,107844,107847};
|
|||
|
|
|||
|
int $edgesB[] = {
|
|||
|
24301,24396,24400,24801,24803,24879,24881,24891,24893,24896,
|
|||
|
24900,25415,25417,25423,25425,25429,25435,25447,25449,25453,
|
|||
|
25457,25550,25552,25566,25568,25574,25576,25580,25582,25599,
|
|||
|
25603,25882,25884,27162,27164,27169,27171,27989,27995,27998,
|
|||
|
28000,28002,28003,28056,28058,28265,28356,28363,28748,28750,
|
|||
|
28818,28820,28828,28830,28835,28841,29306,29308,29314,29316,
|
|||
|
29320,29324,29338,29340,29342,29346,29440,29442,29458,29460,
|
|||
|
29466,29468,29475,29477,29486,29490,29764,29766,31044,31046,
|
|||
|
31050,31052,31818,31822,31828,31831,31832,31834,31889,31891};
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($e in $edgesA){
|
|||
|
select -add ($sel[0]+".e["+$e+"]");
|
|||
|
}
|
|||
|
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($i=1;$i<size($cuuttingA)-5;$i++){
|
|||
|
select -add $cuuttingA[$i];
|
|||
|
}
|
|||
|
polyUnite -n "DAZ_G8M_TeethA" -ch 0;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[34];
|
|||
|
select -add $cuuttingA[36];
|
|||
|
polyUnite -n "DAZ_G8M_EyeLeft" -ch 0;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[35];
|
|||
|
select -add $cuuttingA[37];
|
|||
|
polyUnite -n "DAZ_G8M_EyeRight" -ch 0;
|
|||
|
|
|||
|
rename $cuuttingA[0] "DAZ_G8M_HeadA";
|
|||
|
rename $cuuttingA[33] "DAZ_G8M_Body";
|
|||
|
|
|||
|
string $shapeB[]=`listRelatives -s "DAZ_G8M_HeadA"`;
|
|||
|
select -cl;
|
|||
|
for($e in $edgesB){
|
|||
|
select -add ("DAZ_G8M_HeadA.e["+$e+"]");
|
|||
|
}
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingB[]=`polySeparate -ch 0 $shapeB[0]`;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add "DAZ_G8M_TeethA";
|
|||
|
select -add $cuuttingB[1];
|
|||
|
polyUnite -n "DAZ_G8M_Teeth" -ch 0;
|
|||
|
|
|||
|
rename $cuuttingB[0] "DAZ_G8M_Head";
|
|||
|
|
|||
|
catchQuiet (`parent -w "DAZ_G8M_Body"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8M_Head"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8M_Teeth"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8M_EyeLeft"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G8M_EyeRight"`);
|
|||
|
|
|||
|
delete $sel[0];
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
global proc SGDAZG9Detach (){
|
|||
|
|
|||
|
string $sel[]=`ls -sl`;
|
|||
|
|
|||
|
for($i=0; $i<size($sel); $i++){
|
|||
|
|
|||
|
string $shapeA[]=`listRelatives -s $sel[$i]`;
|
|||
|
|
|||
|
int $vertex[] = `polyEvaluate -v $shapeA[0]`;
|
|||
|
|
|||
|
if($vertex[0] == 2120){
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[0];
|
|||
|
select -add $cuuttingA[2];
|
|||
|
polyUnite -n "DAZ_G9_EyeLeft" -ch 0;
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[1];
|
|||
|
select -add $cuuttingA[3];
|
|||
|
polyUnite -n "DAZ_G9_EyeRight" -ch 0;
|
|||
|
|
|||
|
catchQuiet (`parent -w "DAZ_G9_EyeLeft"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G9_EyeRight"`);
|
|||
|
|
|||
|
//delete $sel[0];
|
|||
|
}
|
|||
|
else if($vertex[0] == 100676){
|
|||
|
int $edgesA[] = {
|
|||
|
168825,168827,168837,168839,168849,168851,168856,168860,168869,168873,
|
|||
|
168909,168913,168925,168929,169041,169045,169052,169054,169058,169063,
|
|||
|
169365,169373,169399,169401,169404,169409,169559,169561,169566,169569,
|
|||
|
169589,169595,169676,169683,169699,169701,169956,169960,170016,170020,
|
|||
|
175159,175167,175207,175211,175232,175234,175236,175239,175424,175426,
|
|||
|
175430,175435,175465,175467,175473,175475,178682,178684,178686,178689,
|
|||
|
178903,178905,179014,179016,179018,179021,180696,180698,180708,180710,
|
|||
|
180720,180722,180727,180733,180734,180738,180774,180778,180790,180793,
|
|||
|
180898,180902,180911,180913,180916,180919,181218,181222,181251,181253,
|
|||
|
181258,181261,181419,181421,181424,181431,181442,181446,181530,181533,
|
|||
|
181554,181556,181815,181823,181875,181879,186950,186954,186998,187002,
|
|||
|
187025,187027,187032,187039,187214,187216,187220,187223,187248,187250,
|
|||
|
187257,187259,190435,190437,190444,190449,190658,190660,190769,190771,
|
|||
|
190776,190781};
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($e in $edgesA){
|
|||
|
select -add ($sel[0]+".e["+$e+"]");
|
|||
|
}
|
|||
|
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
|
|||
|
rename $cuuttingA[1] "DAZ_G9_Head";
|
|||
|
rename $cuuttingA[0] "DAZ_G9_Body";
|
|||
|
|
|||
|
catchQuiet (`parent -w "DAZ_G9_Head"`);
|
|||
|
catchQuiet (`parent -w "DAZ_G9_Body"`);
|
|||
|
|
|||
|
delete $sel[$i];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
global proc SGCC3Detach (){
|
|||
|
|
|||
|
string $sel[]=`ls -sl`;
|
|||
|
|
|||
|
for($i=0; $i<size($sel); $i++){
|
|||
|
|
|||
|
string $shapeA[]=`listRelatives -s $sel[$i]`;
|
|||
|
|
|||
|
int $vertex[] = `polyEvaluate -v $shapeA[0]`;
|
|||
|
|
|||
|
if($vertex[0] == 2568){
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[0];
|
|||
|
select -add $cuuttingA[1];
|
|||
|
polyUnite -n "CC3_EyeLeft" -ch 0;
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[2];
|
|||
|
select -add $cuuttingA[3];
|
|||
|
polyUnite -n "CC3_EyeRight" -ch 0;
|
|||
|
|
|||
|
catchQuiet (`parent -w "CC3_EyeLeft"`);
|
|||
|
catchQuiet (`parent -w "CC3_EyeRight"`);
|
|||
|
|
|||
|
//delete $sel[0];
|
|||
|
}
|
|||
|
else if($vertex[0] == 56412){
|
|||
|
int $edgesA[] = {
|
|||
|
34694,34698,35734,35738,35750,35752,36218,36222,36419,36425,
|
|||
|
36757,36759,36988,36990,36996,36998,37004,37006,37018,37020,
|
|||
|
37026,37028,37183,37185,37232,37234,40736,40738,42575,42581,
|
|||
|
43613,43617,43622,43624,44091,44095,44280,44284,44618,44620,
|
|||
|
44850,44852,44859,44861,44867,44869,44881,44883,44889,44891,
|
|||
|
45032,45034,45081,45083,48507,48509,50556,50560,50562,50563,
|
|||
|
51182,51186,51308,51310,51394,51398,51420,51423,51624,51626,
|
|||
|
65632,65635,65666,65668,65675,65677,67329,67332,67334,67335,
|
|||
|
67957,67965,68078,68080,68168,68170,68194,68196,68394,68396,
|
|||
|
82406,82409,82439,82441,82444,82446};
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($e in $edgesA){
|
|||
|
select -add ($sel[0]+".e["+$e+"]");
|
|||
|
}
|
|||
|
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
|
|||
|
rename $cuuttingA[0] "CC3_Head";
|
|||
|
rename $cuuttingA[3] "CC3_Body";
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[4];
|
|||
|
select -add $cuuttingA[5];
|
|||
|
select -add $cuuttingA[6];
|
|||
|
select -add $cuuttingA[7];
|
|||
|
polyUnite -n "CC3_Eyelashes" -ch 0;
|
|||
|
|
|||
|
catchQuiet (`parent -w "CC3_Head"`);
|
|||
|
catchQuiet (`parent -w "CC3_Body"`);
|
|||
|
catchQuiet (`parent -w "CC3_Eyelashes"`);
|
|||
|
catchQuiet (`parent -w $cuuttingA[1]`);
|
|||
|
catchQuiet (`parent -w $cuuttingA[2]`);
|
|||
|
|
|||
|
delete $sel[$i];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
global proc SGCC3Detach (){
|
|||
|
|
|||
|
string $sel[]=`ls -sl`;
|
|||
|
|
|||
|
for($i=0; $i<size($sel); $i++){
|
|||
|
|
|||
|
string $shapeA[]=`listRelatives -s $sel[$i]`;
|
|||
|
|
|||
|
int $vertex[] = `polyEvaluate -v $shapeA[0]`;
|
|||
|
|
|||
|
if($vertex[0] == 56412){
|
|||
|
string $shapeA[]=`listRelatives -s $sel[$i]`;
|
|||
|
string $obj = $sel[$i];
|
|||
|
int $edgesA[] = {
|
|||
|
34694,34698,35734,35738,35750,35752,36218,36222,36419,36425,
|
|||
|
36757,36759,36988,36990,36996,36998,37004,37006,37018,37020,
|
|||
|
37026,37028,37183,37185,37232,37234,40736,40738,42575,42581,
|
|||
|
43613,43617,43622,43624,44091,44095,44280,44284,44618,44620,
|
|||
|
44850,44852,44859,44861,44867,44869,44881,44883,44889,44891,
|
|||
|
45032,45034,45081,45083,48507,48509,50556,50560,50562,50563,
|
|||
|
51182,51186,51308,51310,51394,51398,51420,51423,51624,51626,
|
|||
|
65632,65635,65666,65668,65675,65677,67329,67332,67334,67335,
|
|||
|
67957,67965,68078,68080,68168,68170,68194,68196,68394,68396,
|
|||
|
82406,82409,82439,82441,82444,82446};
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($e in $edgesA){
|
|||
|
select -add ($sel[$i]+".e["+$e+"]");
|
|||
|
}
|
|||
|
DetachComponent;
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($j=0;$j<3;$j++){
|
|||
|
select -add $cuuttingA[$j];
|
|||
|
}
|
|||
|
polyUnite -n "CC_Base_Head_Mesh" -ch 0;
|
|||
|
|
|||
|
select -cl;
|
|||
|
for($j=4;$j<8;$j++){
|
|||
|
select -add $cuuttingA[$j];
|
|||
|
}
|
|||
|
polyUnite -n "CC_Base_Eyelash_Mesh" -ch 0;
|
|||
|
|
|||
|
rename $cuuttingA[3] "CC_Base_Body_Mesh";
|
|||
|
|
|||
|
parent -w "CC_Base_Body_Mesh";
|
|||
|
|
|||
|
delete $obj;
|
|||
|
}
|
|||
|
else if($vertex[0] == 2568){
|
|||
|
|
|||
|
select -cl;
|
|||
|
string $cuuttingA[]=`polySeparate -ch 0 $shapeA[0]`;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[0];
|
|||
|
select -add $cuuttingA[1];
|
|||
|
polyUnite -n "CC_Base_Eye_Right_Mesh" -ch 0;
|
|||
|
|
|||
|
select -cl;
|
|||
|
select -add $cuuttingA[2];
|
|||
|
select -add $cuuttingA[3];
|
|||
|
polyUnite -n "CC_Base_Eye_Left_Mesh" -ch 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|