ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.

概要

curve( string , [append=boolean], [bezier=boolean], [degree=float], [editPoint=[linear, linear, linear]], [knot=float], [objectSpace=boolean], [periodic=boolean], [point=[linear, linear, linear]], [pointWeight=[linear, linear, linear, float]], [replace=boolean], [worldSpace=boolean])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

curve は、取り消し可能、照会不可能、および編集不可能です。

curve コマンドを使うと、コントロール頂点(CV)のリストから新規カーブを作成できます。新規作成されたカーブへのパス名を含む文字列が返されます。ワールド座標空間またはオブジェクト(ローカル)空間において、ウェイトを使ってまたは使わずに、ポイントからカーブを作成できます。「-r/replace」フラグを使用すると、既存のカーブを置き換えることができます。「-a/append」フラグを使用すると、ポイントを既存のカーブにアペンドできます。

カーブ オンサーフェスを作成するには、curveOnSurface コマンドを使用します。

カーブの次数を変更するには、rebuildCurve コマンドを使用します。

カーブのパラメータ範囲を変更するには、rebuildCurve コマンドを使用します。

戻り値

string新しいカーブまたは置き換えたカーブへのパス

関連

curveOnSurface

フラグ

append, bezier, degree, editPoint, knot, objectSpace, periodic, point, pointWeight, replace, worldSpace
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
append(a) boolean create
既存のカーブの端にポイントをアペンドします。このフラグを使用する場合、アペンドするカーブの名前をコマンドの最後に指定する必要があります (以下の例を参照)。
bezier(bez) boolean create
ベジェ カーブが作成されます。
degree(d) float create
新規カーブの次数。既定は 3 です。目に見えるカーブ スパンを作成するには、次数に 1 を足した数のカーブ ポイントが必要です。たとえば、3 次カーブには、4 個のポイントを配置する必要があります。
editPoint(ep) [linear, linear, linear] createmultiuse
エディット ポイントの x、y、z の位置。「linear」は、このフラグで単位を伴う値を取ることができることを意味します。このフラグは、-point フラグまたは -pointWeight フラグとは使用できません。
knot(k) float createmultiuse
ノット ベクトルにあるノットの値。ノット値ごとに 1 フラグ。(numberOfPoints + degree - 1)個のノットが必要で、ノット ベクトルは非減少型である必要があります。
objectSpace(os) boolean create
ポイントはオブジェクト内または「ローカル」空間にあります。これは既定です。コマンド内で「-os」と「-ws」を同時に指定することはできません。
periodic(per) boolean create
オンの場合、周期的なカーブを作成します。既定はオフです。
point(p) [linear, linear, linear] createmultiuse
ポイントの x、y、z の位置。「linear」は、このフラグで単位を伴う値を取ることができることを意味します。
pointWeight(pw) [linear, linear, linear, float] createmultiuse
ポイントの x、y、z、w の値。w はウェイト値です。このフラグを使うと、有理カーブが作成されます。「linear」は、このフラグで単位を伴う値を取ることができることを意味します。
replace(r) boolean create
既存のカーブ全体を置き換えます。このフラグを使用する場合、置き換えるカーブの名前をコマンドの最後に指定する必要があります(以下の例を参照)。
worldSpace(ws) boolean create
ポイントはワールド空間にあります。既定は「-os」です。コマンド内で「-os」と「-ws」を同時に指定することはできません。

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

import maya.cmds as cmds

# These commands create curves with four control vertices.
# The first one is created without weights.  The third command
# shows how you can use units to specify position.
cmds.curve( p=[(0, 0, 0), (3, 5, 6), (5, 6, 7), (9, 9, 9)] )
cmds.curve( pw=[(0, 0, 0, 1), (3, 5, 6, 1), (5, 6, 7, 1), (9, 9, 9, 1)] )
cmds.curve( p=[('0cm', '0cm', '0cm'), ('3in', '5in', '6in'), ('5ft', '6ft', '7ft'), (9, 9, 9)] )

# This command replaces an existing curve, curve1, with the given points.
# Do not use this flag on a curve that is a result of a construction
# history operation.
cmds.curve( 'curve1', r=True, p=[(0, 0, 0), (3, 5, 6), (10, 12, 14), (9, 9, 9)] )

# This command adds two CVs to an existing curve, curve1.
# The "-ws" flag can be used if the specified CVs are in world space.
# Do not use this flag on a curve that is a result of a construction
# history operation.
cmds.curve( 'curve1', a=True, p=[(13, 13, 13), (13, 15, 16)] )

# This command creates a curve with five control vertices,
# with a knot vector. Notice that there must be
# (number of CVs + degree - 1) knots and that the knot
# vector must be non-decreasing.
cmds.curve( p=[(0, 0, 0), (3, 5, 6), (5, 6, 7), (9, 9, 9), (12, 10, 2)], k=[0,0,0,1,2,2,2] )

# This command creates a closed (or "periodic") curve with
# four distinct CVs. You must specify a knot vector when the
# "-per" flag is used. Notice that the first "degree" points
# are the same as the last "degree" points (ie. the first three
# points are the same as the last three points). Notice also
# that the knot spacing between the first "degree" knots must
# be the same as the spacing between the last "degree" knots
# (ie. the space between the 1st and 2nd knots is the same as
# the space between the 7th and 8th knots, and the space between
# the 2nd and 3rd knots is the same as the space between the
# 8th and 9th knots). There must be space between the first
# "degree" knots, unlike the previous example, where the first
# "degree" knots are the same.
cmds.curve( per=True, p=[(0, 0, 0), (3, 5, 6), (5, 6, 7), (9, 9, 9), (0, 0, 0), (3, 5, 6), (5, 6, 7)], k=[-2,-1,0,1,2,3,4,5,6] )

# How to query curve properties:

# This returns the degree of the curve.  Note that the
# number of CVs = degree + spans.
cmds.getAttr( 'curve1.degree' )

# This returns the number of spans in the curve.  Note that the
# number of CVs = degree + spans.
cmds.getAttr( 'curve1.spans' )

# This returns the curve form.
cmds.getAttr( 'curve1.form' )

# This returns the minimum parameter value on the curve.
cmds.getAttr( 'curve1.minValue' )

# This returns the maximum parameter value on the curve.
cmds.getAttr( 'curve1.maxValue' )

# This returns the local x,y,z of the 1st CV.  Use a curve info node if
# the curve is a result of a construction history operation.
cmds.getAttr( 'curve1.cv[0]' )

# This returns the local x,y,z of the 1st three CVs.  Use a curve info
# node if the curve is a result of a construction history operation.
cmds.getAttr( 'curve1.cv[*]' )

# This returns the local x,y,z of all CVs.  Use a curve info node if
# the curve is a result of a construction history operation.
cmds.getAttr( 'curve1.cv[0:2]' )

# This returns the arc length of the curve.  Use "-ch" flag with
# the arclen command to get a curve info node that constantly updates
# to the current arc length.
cmds.arclen( 'curve1' )

# This sequence creates a curve info node, connects the info node to the
# curve and queries the knot vector of the curve using the curve info node.
# You can use the curve info node to query other attributes such as
# world space CV values and arc length.
cmds.createNode( 'curveInfo' )
cmds.connectAttr( 'curveShape1.worldSpace', 'curveInfo1.inputCurve' )
cmds.getAttr( 'curveInfo1.knots[*]' )