CGらぼ

広く浅くCGを勉強していきます。

頂点にボックスを配置するスクリプトをpythonで書いてみた!!

頂点に配置するスクリプトです。

f:id:foreverLab:20151108182202j:plain

 

import maya.cmds as mc;
import random;

mc.polySphere(r=3,sx=16,sy=16);

vtxNum = mc.polyEvaluate(v=True);

vtxList = range(0,vtxNum);
vtxRanNum = random.sample(vtxList,vtxNum);
vtxRanStr = map(str,vtxRanNum);

for a in vtxRanStr:
    A1 = 'pSphere1.vtx[000]'
    A2 = A1.replace("000",a)
    for b in A2:
        ver = mc.select(A2)
        tvf = mc.polyListComponentConversion(ver,fv=True,tvf=True)
        mc.filterExpand(tvf,sm=70,ex=True)
        normal = mc.polyNormalPerVertex(q=True,xyz=1)
        position = mc.xform(q=True,ws=True,t=True)
    
        box = mc.polyCube(ax=[normal[0],normal[1],normal[2]],w=0.1,h=0.1,d=0.1)
        mc.move(position[0],position[1],position[2],box)
        mc.rotate(normal[0],normal[1],normal[2],box,ws=True) 

 

勉強中ですので、修正した方が良い箇所などございましたら、コメントいただけると助かります。

 

あと、出来れば赤ライン上にあるボックスのように、その他のボックスも回転を揃えたいのですが、現状のスクリプトでは上手くいっておりません。。。(法線情報でいけると思ったんだけどな。。。)

こっちの解決策も教えていただけると助かります。

f:id:foreverLab:20151108182510j:plain