为什么我的maya里没有这个图标??? |
2010-11-20 51自学网 |
|
最近在看一个maya教程!那个人总在说“修改top结构”什么的(也可能不是top,他的英文好烂,老不知道他在说哪个单词),然后选中一条edge,点击这个图标转动线条,可是我找不到这个图标在哪啊…帮帮忙,我maya刚学,还很差劲。
这个是mel脚本,不是maya自带的,你的教程资料里可能提供有,还有你可能是阅读的建模资料,如果是的话,我猜测是“修改拓扑结构”就是修改一下模型的布线,刚才说到的那个mel也就是实现这个目的的一个工具global proc SplitFace(int $SplitEdgeANum , int $SplitEdgeAVal , int $SplitEdgeBNum, int $SplitEdgeBVal, string $MergedFaceVtxs[]){polySplit -ep $SplitEdgeANum $SplitEdgeAVal -ep $SplitEdgeBNum $SplitEdgeBVal;print ("Splitted edges " + $SplitEdgeANum + " and " + $SplitEdgeBNum);print "/n";string $newFaces[] = `polyListComponentConversion -fv -tf -in $MergedFaceVtxs`;select $newFaces;}global proc spinFaces(){//storing the starting componentsstring $selFaces[] = `ls -sl -fl`;//checking for errosstring $TypeCheck = whatComponent($selFaces[0]);if ($TypeCheck != "f")error "You must select at least and max 2 quads !!";if (($selFaces[0] == "")||($selFaces[2]!= "")||(size($selFaces)<2))error "You must select at least and max 2 quads !!";// go on...string $SharedEdge[] = unfilterComponents(`polyListComponentConversion -ff -te -in $selFaces`);string $SharedEdgeVtxs[] = unfilterComponents(`polyListComponentConversion -fe -tv $SharedEdge`);string $selFacesVtxs[] = unfilterComponents(`polyListComponentConversion -ff -tv $selFaces`);//deleting SharedEdgepolyDelEdge $SharedEdge[0];//storin resultant face string $MergedFace[] = unfilterComponents(`polyListComponentConversion -fv -tf -in $selFacesVtxs`);//getting the vertices of MergedFace counter-clockwisestring $MergedFaceVtxFaces[] = unfilterComponents(`polyListComponentConversion -ff -tvf $MergedFace`);int $i=0;string $MergedFaceVtxs[];for ($i=0; $i<size($MergedFaceVtxFaces); $i++) { string $currentVtx[] = `polyListComponentConversion -fvf -tv $MergedFaceVtxFaces[$i]`; $MergedFaceVtxs[$i] = $currentVtx[0]; }//finding next vertex in line with the first vertex of SharedEdgeint $nextVtxAindex = matchItem($SharedEdgeVtxs[0],$MergedFaceVtxs);string $nextVtxsA;if ($nextVtxAindex+1<size($MergedFaceVtxs))$nextVtxA = $MergedFaceVtxs[$nextVtxAindex+1];else$nextVtxA = $MergedFaceVtxs[0];//finding next vertex in line with the first vertex of SharedEdgeint $nextVtxBindex = matchItem($SharedEdgeVtxs[1],$MergedFaceVtxs);string $nextVtxsB;if ($nextVtxBindex+1<size($MergedFaceVtxs))$nextVtxB = $MergedFaceVtxs[$nextVtxBindex+1];else$nextVtxB = $MergedFaceVtxs[0];//getting SplitEdgeA and relative num from verticesstring $SplitEdgeA[] = `polyListComponentConversion -fv -te -in $SharedEdgeVtxs[0] $nextVtxA`;int $SplitEdgeANum = convert2Num($SplitEdgeA[0]);//getting SplitEdgeB and relative num from verticesstring $SplitEdgeB[] = `polyListComponentConversion -fv -te -in $SharedEdgeVtxs[1] $nextVtxB`;int $SplitEdgeBNum = convert2Num($SplitEdgeB[0]);//getting the SplitEdgeAValstring $infoVtxs[] = polyInfo("-ev", $SplitEdgeA);string $infoVtxsToked[]; tokenize($infoVtxs[0], " ", $infoVtxsToked);string $infoVtxsCheck[];$infoVtxsCheck[0] = $infoVtxsToked[2];$infoVtxsCheck[1] = $infoVtxsToked[3];int $SplitEdgeAVal = matchItem(convert2Num($nextVtxA),$infoVtxsCheck);//getting the SplitEdgeBValstring $infoVtxs[] = polyInfo("-ev", $SplitEdgeB);string $infoVtxsToked[]; tokenize($infoVtxs[0], " ", $infoVtxsToked);string $infoVtxsCheck[];$infoVtxsCheck[0] = $infoVtxsToked[2];$infoVtxsCheck[1] = $infoVtxsToked[3];int $SplitEdgeBVal = matchItem(convert2Num($nextVtxB),$infoVtxsCheck);SplitFace($SplitEdgeANum, $SplitEdgeAVal,$SplitEdgeBNum,$SplitEdgeBVal,$MergedFaceVtxs);}//variouse procedures to have easier life...//match an item into a string and gives the index value (it is supposed that the match, if exists,//happen only onceglobal proc int matchItem (string $what , string $where[]){int $i=0;for ($i=0; $i<size($where); $i++) { if ($what == $where[$i]) { return $i; } }return -1;}//get the component numberglobal proc int convert2Num(string $what){ string $Num[]; tokenize($what, "[]", $Num); return int($Num[1]);}//global proc int convert2Num (string $what)////{//string $Num[];//$Num[0] = `match "[0-9]+" $what`;//return int($Num[0]);//}// checking components typeglobal proc string whatComponent (string $whatisthis){string $thisis[]; tokenize($whatisthis, ".[", $thisis); return $thisis[1]; }//get the fully unfiltered components (this works only for vtxs, edges, faces, faceVtxsglobal proc string[] unfilterComponents (string $filtered[]){int $mask;if (whatComponent($filtered[0])=="vtx")$mask=31;else if (whatComponent($filtered[0])=="e")$mask=32;else if (whatComponent($filtered[0])=="f")$mask=34;else if (whatComponent($filtered[0])=="vtxFace")$mask=70;string $unfiltered[] = `filterExpand -sm $mask $filtered`;return $unfiltered;}spinFaces;选择两个相临面,试着在脚本编辑器里运行这些代码就知道了 |
|
|
|
|