Subdivision Surface

作り方

Subdivision Surface が使用できないMaya Complete などでのSubdivision Surface もどきの作り方。

  1. 以下のMELスクリプトを作る。
    global proc makeSubdivPoly()
    {
    	string $poly1[] = `polyCube`;
    	string $poly2[] = `polyCube`;
    	move 0 1 0;
    
    	string $spoly2[] = `listRelatives -c $poly2[0]`;
    	disconnectAttr ($poly2[1] + ".output") ($spoly2[0] + ".inMesh");
    
    	select -r $poly1[0];
    	polyDuplicateAndConnect;
    
    	string $spoly1[] = `listRelatives -c $poly1`;
    	string $psface[] = `listConnections -d true -s false -t shape $spoly1[0]`;
    	string $poly3[] = `listRelatives -c $psface[0]`;
    	polySmooth  -dv 1 -c 1 -kb 1 -ksb 1 -ch 1 ($poly3[0] + ".f[0:5]");
    	string $psf[] = `listConnections -d true -s false $spoly1[0]`;
    	setAttr ($psf[1] + ".inputComponents") -type "componentList" 1 "f[*]";
    
    	string $isgAttr[] = `listConnections -d true -s false -p true ($spoly1[0] + ".instObjGroups[0]")`;
    	disconnectAttr ($spoly1[0] + ".instObjGroups[0]") $isgAttr;
    	hide $poly2;
    }
    
  2. 上記のMELスクリプトをMayaに読み込み、実行する。
    makeSubdivPolyの実行結果
    Hypergraphの表示
  3. 外側のキューブのフェースを選択し、Edit Polygons → Extrude Face などで押し出して変形してゆく。
    押し出しの実行結果
  4. キューブのフェースをEdit Polygons → Split Polygon Tool などで分割しても良い。
    Split Polygonの実行結果
  5. polySmoothで作られているpolySmoothFace1などのDivisionsアトリビュートを変更すれば分割数を変えることができる。
    Divisonsアトリビュートを2にした結果

Home | Contents
Mail