global proc VertexColorToNormalCommand(int $num) { if($num == 1) { string $colorSetsMenuItems[] = `optionMenu -q -ill VertexColorToNormalCurrentColorSet_optionMenu1`; if(size($colorSetsMenuItems)) { deleteUI $colorSetsMenuItems; } string $allColorSets[] = `polyColorSet -q -acs`; if(size($allColorSets)>0) { for($name in $allColorSets) { menuItem -label $name -p VertexColorToNormalCurrentColorSet_optionMenu1 ; } } string $CurrentColorSets[] = `polyColorSet -q -ccs`; if(size($CurrentColorSets)) { optionMenu -e -v $CurrentColorSets[0] VertexColorToNormalCurrentColorSet_optionMenu1; } } if($num == 2) { string $setName = `textField -q -tx VertexColorToNormalCreateColorSet_textField1`; if(size($setName)) { polyColorSet -cr -cla 0 -rpt RGBA -cs $setName; } else { polyColorSet -cr -cla 0 -rpt RGBA -cs "colorSet" ; } VertexColorToNormalCommand 1; } if($num == 3) { string $currentVtxColorSet = `optionMenu -q -v VertexColorToNormalCurrentColorSet_optionMenu1`; if(size($currentVtxColorSet)) { polyColorSet -delete -colorSet $currentVtxColorSet; VertexColorToNormalCommand 1; } } if($num == 4) { if(size(`ls -sl`)) { PolySelectConvert 3; } string $selVtx[] = `ls -sl -fl`; progressWindow -t "执行进度:" -pr 0 -st "当前进度: 0%" -ii 1 -max (size($selVtx)); //for($name in $selVtx) for($i=0;$i= (size($selVtx)) ) break; float $vtxColor[] = `polyColorPerVertex -q -rgb $selVtx[$i]`; polyNormalPerVertex -xyz $vtxColor[0] $vtxColor[1] $vtxColor[2] $selVtx[$i]; progressWindow -e -pr $i -st ("当前进度: "+($i/(size($selVtx)))+"%"); } progressWindow -ep; } if($num == 5) { if(size(`ls -sl`)) { PolySelectConvert 3; } string $selVtx[] = `ls -sl -fl`; progressWindow -t "执行进度:" -pr 0 -st "当前进度: 0%" -ii 1 -max (size($selVtx)); //for($name in $selVtx) for($i=0;$i= (size($selVtx)) ) break; float $vtxVector[] = `polyNormalPerVertex -q -xyz $selVtx[$i]`; polyColorPerVertex -rgb $vtxVector[0] $vtxVector[1] $vtxVector[2] $selVtx[$i]; progressWindow -e -pr $i -st ("当前进度: "+($i/(size($selVtx)))+"%"); } progressWindow -ep; } } /* global proc smoothNomalCommand() { if(size(`ls -sl`)) { PolySelectConvert 3; } string $selvtx[] = `ls -sl -fl`; float $smoothNum = `floatSliderGrp -q -v nomalSmoothSet_floatSliderGrp1`; for($i=0;$i= (size($selvtx)) ) break; select -r $selvtx[$i]; polySelectConstraint -pp 1 -t 0x0001; string $result[] = `ls -sl -fl`; float $interimVector[]; for($ii=0;$ii= (size($sel)) ) break; float $pointPossition[] = `pointPosition -w $sel[$i]`; float $bigVector[],$SpherizeVector[]; $bigVector[0] = $pointPossition[0] - $worldPossition[0]; $bigVector[1] = $pointPossition[1] - $worldPossition[1]; $bigVector[2] = $pointPossition[2] - $worldPossition[2]; float $max; if(abs($bigVector[0])>abs($bigVector[1])) { $max = abs($bigVector[0]); } else { $max = abs($bigVector[1]); } if($max= (size($sel)) ) break; float $pointPossition[] = `pointPosition -w $sel[$i]`; float $bigVector[],$SpherizeVector[]; $bigVector[0] = $pointPossition[0] - $worldPossition[0]; $bigVector[1] = $pointPossition[1] - $worldPossition[1]; $bigVector[2] = $pointPossition[2] - $worldPossition[2]; float $max; if(abs($bigVector[0])>abs($bigVector[1])) { $max = abs($bigVector[0]); } else { $max = abs($bigVector[1]); } if($max= (size($sel)) ) break; if(`match ".vtx" $sel[$i]`!=".vtx") { warning -n "===需要选择模型点再进行操作==="; break; } float $lkdasfljasdfje[] = `polyNormalPerVertex -q -xyz $sel[$i]`; if($EditMode == 1) { polyNormalPerVertex -xyz ($lkdasfljasdfje[0] + $EditValue) $lkdasfljasdfje[1] $lkdasfljasdfje[2] $sel[$i]; } else if($EditMode == 2) { polyNormalPerVertex -xyz ($lkdasfljasdfje[0] * (1+$EditValue)) $lkdasfljasdfje[1] $lkdasfljasdfje[2] $sel[$i]; } progressWindow -e -pr $i -st ("当前进度: "+($i/(size($sel)))+"%"); } progressWindow -ep; } else if($num == 2) { progressWindow -t "执行进度:" -pr 0 -st "当前进度: 0%" -ii 1 -max (size($sel)); for($i=0;$i= (size($sel)) ) break; if(`match ".vtx" $sel[$i]`!=".vtx") { warning -n "===需要选择模型点再进行操作==="; break; } float $lkdasfljasdfje[] = `polyNormalPerVertex -q -xyz $sel[$i]`; if($EditMode == 1) { polyNormalPerVertex -xyz $lkdasfljasdfje[0] ($lkdasfljasdfje[1] + $EditValue) $lkdasfljasdfje[2] $sel[$i]; } else if($EditMode == 2) { polyNormalPerVertex -xyz $lkdasfljasdfje[0] ($lkdasfljasdfje[1] * (1+$EditValue)) $lkdasfljasdfje[2] $sel[$i]; } progressWindow -e -pr $i -st ("当前进度: "+($i/(size($sel)))+"%"); } progressWindow -ep; } else if($num == 3) { progressWindow -t "执行进度:" -pr 0 -st "当前进度: 0%" -ii 1 -max (size($sel)); for($i=0;$i= (size($sel)) ) break; if(`match ".vtx" $sel[$i]`!=".vtx") { warning -n "===需要选择模型点再进行操作==="; break; } float $lkdasfljasdfje[] = `polyNormalPerVertex -q -xyz $sel[$i]`; if($EditMode == 1) { polyNormalPerVertex -xyz $lkdasfljasdfje[0] $lkdasfljasdfje[1] ($lkdasfljasdfje[2] + $EditValue) $sel[$i]; } else if($EditMode == 2) { polyNormalPerVertex -xyz $lkdasfljasdfje[0] $lkdasfljasdfje[1] ($lkdasfljasdfje[2] * (1+$EditValue)) $sel[$i]; } progressWindow -e -pr $i -st ("当前进度: "+($i/(size($sel)))+"%"); } progressWindow -ep; } } global proc EditVertixNomalUI() { if(`window -ex EditVertixNomalWin`) { deleteUI EditVertixNomalWin; } window -t "舞之动画法线编辑工具V1.0" EditVertixNomalWin; window -e -wh 400 646 EditVertixNomalWin; columnLayout -adj 1 -bgc 0.18 0.18 0.18 EditVertixNomalMain_columnLayout1; separator -h 10 EditVertixNomal_separator0; text -l "法线偏移" -bgc 0 0 0 nomalOffset_text1; separator -h 10 EditVertixNomal_separator1; formLayout -nd 100 nomalOffset_formLayout1; radioButtonGrp -nrb 2 -l "算法" -la2 "加" "乘" -cal 1 "center" -sl 1 nomalOffset_radioButtonGrp1; floatSliderGrp -l "幅度:" -f true -cal 1 "center" -min -1.0 -max 1.0 -fmn -10.0 -fmx 10.0 -v 0.2 -s 0.01 nomalOffsetNum_floatSliderGrp1; button -l "X" -c "nomalOffsetxyzCommand 1;" nomalOffsetx_button1; button -l "Y" -c "nomalOffsetxyzCommand 2;" nomalOffsety_button1; button -l "Z" -c "nomalOffsetxyzCommand 3;" nomalOffsetz_button1; formLayout -e -af nomalOffset_radioButtonGrp1 "left" 1 -af nomalOffset_radioButtonGrp1 "right" 1 -af nomalOffsetNum_floatSliderGrp1 "left" 1 -af nomalOffsetNum_floatSliderGrp1 "right" 1 -ac nomalOffsetNum_floatSliderGrp1 "top" 5 nomalOffset_radioButtonGrp1 -af nomalOffsetx_button1 "left" 1 -ap nomalOffsetx_button1 "right" 3 33 -ac nomalOffsetx_button1 "top" 5 nomalOffsetNum_floatSliderGrp1 -ac nomalOffsety_button1 "left" 3 nomalOffsetx_button1 -ap nomalOffsety_button1 "right" 3 66 -ac nomalOffsety_button1 "top" 5 nomalOffsetNum_floatSliderGrp1 -ac nomalOffsetz_button1 "left" 3 nomalOffsety_button1 -af nomalOffsetz_button1 "right" 1 -ac nomalOffsetz_button1 "top" 5 nomalOffsetNum_floatSliderGrp1 nomalOffset_formLayout1; setParent EditVertixNomalMain_columnLayout1; separator -h 10 EditVertixNomal_separator2; text -l "辐射法线" -bgc 0 0 0 nomalOffsetSpherize_text1; separator -h 10 EditVertixNomal_separator3; formLayout -nd 100 nomalOffsetSpherize_formLayout1; button -l "创建中心物体" -c "nomalOffsetSpherizeCommand 1" -ann "创建一个作为球心定位的定位器" createNormalCenter_button1; button -l "删除中心物体" -c "nomalOffsetSpherizeCommand 11" deleteNormalCenter_button1; floatSliderGrp -l "幅度:" -f true -cal 1 "center" -min 0 -max 1.0 -fmn 0 -fmx 1 -v 0.2 -s 0.01 nomalOffsetSpherizeNum_floatSliderGrp1; button -l "放射" -c "nomalOffsetSpherizeCommand 2" aggregationVertixNomal_button1; button -l "聚拢" -c "nomalOffsetSpherizeCommand 3" dispersedVertixNomal_button1; formLayout -e -af createNormalCenter_button1 "left" 1 -ap createNormalCenter_button1 "right" 3 50 -ac deleteNormalCenter_button1 "left" 3 createNormalCenter_button1 -af deleteNormalCenter_button1 "right" 1 -af nomalOffsetSpherizeNum_floatSliderGrp1 "left" 1 -af nomalOffsetSpherizeNum_floatSliderGrp1 "right" 1 -ac nomalOffsetSpherizeNum_floatSliderGrp1 "top" 1 createNormalCenter_button1 -af aggregationVertixNomal_button1 "left" 1 -ap aggregationVertixNomal_button1 "right" 3 50 -ac aggregationVertixNomal_button1 "top" 1 nomalOffsetSpherizeNum_floatSliderGrp1 -ac dispersedVertixNomal_button1 "left" 3 aggregationVertixNomal_button1 -af dispersedVertixNomal_button1 "right" 1 -ac dispersedVertixNomal_button1 "top" 1 nomalOffsetSpherizeNum_floatSliderGrp1 nomalOffsetSpherize_formLayout1; setParent EditVertixNomalMain_columnLayout1; separator -h 10 EditVertixNomal_separator4; text -l "平滑法线" -bgc 0 0 0 nomalSmoothSet_text1; separator -h 10 EditVertixNomal_separator5; formLayout -nd 100 nomalSmoothSet_formLayout1; floatSliderGrp -l "幅度:" -f true -cal 1 "center" -min 0 -max 1.0 -fmn 0 -fmx 1 -v 0.2 -s 0.01 nomalSmoothSet_floatSliderGrp1; button -l "平滑法线" -c "smoothNomalCommand" nomalSmoothSet_button1; formLayout -e -af nomalSmoothSet_floatSliderGrp1 "left" 1 -af nomalSmoothSet_floatSliderGrp1 "right" 1 -af nomalSmoothSet_button1 "left" 1 -af nomalSmoothSet_button1 "right" 1 -ac nomalSmoothSet_button1 "top" 5 nomalSmoothSet_floatSliderGrp1 nomalSmoothSet_formLayout1; setParent EditVertixNomalMain_columnLayout1; separator -h 10 EditVertixNomal_separator6; formLayout -nd 100 nomalOffsetReset_formLayout1; button -l "重置" -c "polySetToFaceNormal" nomalOffsetReset_button1; button -l "软化" -c "polyAverageNormal -d 0" nomalOffsetSmooth_button1; button -l "显示法线" -c "polyOptions -dn 1 -pt" disPlayNormal_button1; button -l "隐藏法线" -c "polyOptions -dn 0 -pt" hideNormal_button1; floatSliderGrp -l "法线长度:" -f true -cal 1 "center" -min 0 -max 10.0 -fmn 0 -fmx 10 -v 0.3 -s 0.01 -cc ("polyOptions -activeObjects -sizeNormal `floatSliderGrp -q -v nomalSizeSet_floatSliderGrp1`") nomalSizeSet_floatSliderGrp1; formLayout -e -af nomalOffsetReset_button1 "left" 1 -ap nomalOffsetReset_button1 "right" 3 50 -ac nomalOffsetSmooth_button1 "left" 3 nomalOffsetReset_button1 -af nomalOffsetSmooth_button1 "right" 1 -af nomalSizeSet_floatSliderGrp1 "left" 1 -af nomalSizeSet_floatSliderGrp1 "right" 1 -ac nomalSizeSet_floatSliderGrp1 "top" 3 nomalOffsetSmooth_button1 -af disPlayNormal_button1 "left" 1 -ap disPlayNormal_button1 "right" 3 50 -ac disPlayNormal_button1 "top" 3 nomalSizeSet_floatSliderGrp1 -ac hideNormal_button1 "left" 3 disPlayNormal_button1 -af hideNormal_button1 "right" 1 -ac hideNormal_button1 "top" 3 nomalSizeSet_floatSliderGrp1 nomalOffsetReset_formLayout1; setParent EditVertixNomalMain_columnLayout1; separator -h 10 EditVertixNomal_separator7; text -l "顶点色 <=> 法线" -bgc 0 0 0 VertexColorToNormal_text1; formLayout -nd 100 VertexColorToNormal_formLayout1; separator -h 10 VertexColorToNormalCurrentColorSet_separator1; optionMenu -l "当前色集" -cc ("polyColorSet -ccs -cs `optionMenu -q -v VertexColorToNormalCurrentColorSet_optionMenu1`") VertexColorToNormalCurrentColorSet_optionMenu1; button -l "刷新" -c "VertexColorToNormalCommand 1" VertexColorToNormalRefreshColorSet_button1; text -l "名称" VertexColorToNormalCreateColorSet_text1; textField -text "" VertexColorToNormalCreateColorSet_textField1; button -l "新建色集" -c "VertexColorToNormalCommand 2" VertexColorToNormalCreateColorSet_button1; button -l "删除当前色集" -c "VertexColorToNormalCommand 3" VertexColorToNormalDeleteColorSet_button1; separator -h 10 VertexColorToNormalCurrentColorSet_separator2; button -l "绘制顶点色" -c "PaintVertexColorTool" VertexColorToNormalDrawVertexColor_button1; button -l "绘制设置" -c "toolPropertyWindow" VertexColorToNormalDrawVertexToolSet_button1; button -l "顶点色=>法线" -c "VertexColorToNormalCommand 4" VertexColorToNormalConvertToNormal_button1; button -l "法线=>顶点色" -c "VertexColorToNormalCommand 5" VertexColorToNormalConvertToVertexColor_button1; separator -h 10 VertexColorToNormalCurrentColorSet_separator3; formLayout -e -af VertexColorToNormalCurrentColorSet_separator1 "left" 1 -af VertexColorToNormalCurrentColorSet_separator1 "right" 1 -af VertexColorToNormalCurrentColorSet_optionMenu1 "left" 1 -af VertexColorToNormalCurrentColorSet_optionMenu1 "right" 100 -ac VertexColorToNormalCurrentColorSet_optionMenu1 "top" 5 VertexColorToNormalCurrentColorSet_separator1 -ac VertexColorToNormalRefreshColorSet_button1 "left" 3 VertexColorToNormalCurrentColorSet_optionMenu1 -af VertexColorToNormalRefreshColorSet_button1 "right" 1 -ac VertexColorToNormalRefreshColorSet_button1 "top" 5 VertexColorToNormalCurrentColorSet_separator1 -af VertexColorToNormalCreateColorSet_textField1 "left" 55 -af VertexColorToNormalCreateColorSet_textField1 "right" 100 -ac VertexColorToNormalCreateColorSet_textField1 "top" 5 VertexColorToNormalCurrentColorSet_optionMenu1 -af VertexColorToNormalCreateColorSet_text1 "left" 1 -ac VertexColorToNormalCreateColorSet_text1 "right" 3 VertexColorToNormalCreateColorSet_textField1 -ac VertexColorToNormalCreateColorSet_text1 "top" 5 VertexColorToNormalCurrentColorSet_optionMenu1 -ac VertexColorToNormalCreateColorSet_button1 "left" 3 VertexColorToNormalCreateColorSet_textField1 -af VertexColorToNormalCreateColorSet_button1 "right" 1 -ac VertexColorToNormalCreateColorSet_button1 "top" 5 VertexColorToNormalCurrentColorSet_optionMenu1 -af VertexColorToNormalDeleteColorSet_button1 "left" 1 -af VertexColorToNormalDeleteColorSet_button1 "right" 1 -ac VertexColorToNormalDeleteColorSet_button1 "top" 5 VertexColorToNormalCreateColorSet_button1 -af VertexColorToNormalCurrentColorSet_separator2 "left" 1 -af VertexColorToNormalCurrentColorSet_separator2 "right" 1 -ac VertexColorToNormalCurrentColorSet_separator2 "top" 1 VertexColorToNormalDeleteColorSet_button1 -af VertexColorToNormalDrawVertexColor_button1 "left" 1 -ap VertexColorToNormalDrawVertexColor_button1 "right" 3 50 -ac VertexColorToNormalDrawVertexColor_button1 "top" 5 VertexColorToNormalCurrentColorSet_separator2 -ac VertexColorToNormalDrawVertexToolSet_button1 "left" 3 VertexColorToNormalDrawVertexColor_button1 -af VertexColorToNormalDrawVertexToolSet_button1 "right" 1 -ac VertexColorToNormalDrawVertexToolSet_button1 "top" 5 VertexColorToNormalCurrentColorSet_separator2 -af VertexColorToNormalConvertToNormal_button1 "left" 1 -ap VertexColorToNormalConvertToNormal_button1 "right" 3 50 -ac VertexColorToNormalConvertToNormal_button1 "top" 5 VertexColorToNormalDrawVertexToolSet_button1 -ac VertexColorToNormalConvertToVertexColor_button1 "left" 3 VertexColorToNormalConvertToNormal_button1 -af VertexColorToNormalConvertToVertexColor_button1 "right" 1 -ac VertexColorToNormalConvertToVertexColor_button1 "top" 5 VertexColorToNormalDrawVertexToolSet_button1 -af VertexColorToNormalCurrentColorSet_separator3 "left" 1 -af VertexColorToNormalCurrentColorSet_separator3 "right" 1 -ac VertexColorToNormalCurrentColorSet_separator3 "top" 1 VertexColorToNormalConvertToVertexColor_button1 VertexColorToNormal_formLayout1; showWindow EditVertixNomalWin; VertexColorToNormalCommand 1; } EditVertixNomalUI;