ポイント位置のリストを受け取りカーブを作成
選択がTransformを継承しているオブジェクトだったらその下に、そうでなければ新しいオブジェクトを作ってその下にカーブシェイプを作る
import maya.OpenMaya as om pntPoss = [ (0, 0, -1.0), (-1, 0, 0.5), (1, -0, 0.5), (0, 0, -1.0), ] def getMPoints(pntPoss): pnts = om.MPointArray() for pntPos in pntPoss: pnts.append(om.MPoint(*pntPos)) return pnts def getSelection(): sl = om.MSelectionList() om.MGlobal.getActiveSelectionList(sl) if not sl.length(): return dagPath = om.MDagPath() sl.getDagPath(0, dagPath) if not dagPath.hasFn(om.MFn.kTransform): return node = dagPath.node() return node def createCurve(pntPoss): crv = om.MFnNurbsCurve() pnts = getMPoints(pntPoss) deg = 1 span = pnts.length() - deg knotCnt = span + 2 * deg -1 knots = om.MDoubleArray() for i in range(knotCnt): knots.append(i) sl = getSelection() if not sl: sl = om.MObject() crv.create(pnts, knots, deg, om.MFnNurbsCurve.kOpen, False, False, sl) createCurve(pntPoss)
0 件のコメント:
コメントを投稿