移動先: 概要 戻り値 関連項目. フラグ. Python 例.

概要

setAttr( attribute Any [Any...] , [alteredValue=boolean], [caching=boolean], [channelBox=boolean], [clamp=boolean], [keyable=boolean], [lock=boolean], [size=uint], [type=string])

注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。

setAttr は 「元に戻す」が可能、「照会」が可能、「編集」が可能 です。

ディペンデンシー ノードのアトリビュートの値を設定します。-l/-k/-s フラグを使用しているときは、アトリビュートの値を設定する必要はありません。 -type フラグは、非数値型のアトリビュートを設定するときのみに必要となります。

下記の表は、非数値データ型に対する setAttr の構文をおおまかに示したものです。

下の

この例を実行する場合は、最初にこれらのコマンドを実行して、 サンプル アトリビュート タイプを作成します。

sphere -n node;
addAttr -ln short2Attr -at short2;
addAttr -ln short2a -p short2Attr -at short;
addAttr -ln short2b -p short2Attr -at short;
addAttr -ln short3Attr -at short3;
addAttr -ln short3a -p short3Attr -at short;
addAttr -ln short3b -p short3Attr -at short;
addAttr -ln short3c -p short3Attr -at short;
addAttr -ln long2Attr -at long2;
addAttr -ln long2a -p long2Attr -at long;
addAttr -ln long2b -p long2Attr -at long;
addAttr -ln long3Attr -at long3;
addAttr -ln long3a -p long3Attr -at long;
addAttr -ln long3b -p long3Attr -at long;
addAttr -ln long3c -p long3Attr -at long;
addAttr -ln float2Attr -at float2;
addAttr -ln float2a -p float2Attr -at "float";
addAttr -ln float2b -p float2Attr -at "float";
addAttr -ln float3Attr -at float3;
addAttr -ln float3a -p float3Attr -at "float";
addAttr -ln float3b -p float3Attr -at "float";
addAttr -ln float3c -p float3Attr -at "float";
addAttr -ln double2Attr -at double2;
addAttr -ln double2a -p double2Attr -at double;
addAttr -ln double2b -p double2Attr -at double;
addAttr -ln double3Attr -at double3;
addAttr -ln double3a -p double3Attr -at double;
addAttr -ln double3b -p double3Attr -at double;
addAttr -ln double3c -p double3Attr -at double;
addAttr -ln int32ArrayAttr -dt Int32Array;
addAttr -ln doubleArrayAttr -dt doubleArray;
addAttr -ln pointArrayAttr -dt pointArray;
addAttr -ln vectorArrayAttr -dt vectorArray;
addAttr -ln stringArrayAttr -dt stringArray;
addAttr -ln stringAttr -dt "string";
addAttr -ln matrixAttr -dt "matrix";
addAttr -ln sphereAttr -dt sphere;
addAttr -ln coneAttr -dt cone;
addAttr -ln meshAttr -dt mesh;
addAttr -ln latticeAttr -dt lattice;
addAttr -ln spectrumRGBAttr -dt spectrumRGB;
addAttr -ln reflectanceRGBAttr -dt reflectanceRGB;
addAttr -ln componentListAttr -dt componentList;
addAttr -ln attrAliasAttr -dt attributeAlias;
addAttr -ln curveAttr -dt nurbsCurve;
addAttr -ln surfaceAttr -dt nurbsSurface;
addAttr -ln trimFaceAttr -dt nurbsTrimface;
addAttr -ln polyFaceAttr -dt polyFaces;

-type short2
2 つの短整数の配列
値の構文 short short
値の意味 value1 value2
setAttr node.short2Attr -type short2 1 2;
-type short3
3 つの短整数の配列
値の構文 short short short
値の意味 value1 value2 value3
setAttr node.short3Attr -type short3 1 2 3;
-type long2
2 つの長整数の配列
値の構文 long long
値の意味 value1 value2
setAttr node.long2Attr -type long2 1000000 2000000;
-type long3
3 つの長整数の配列
値の構文 long long long
値の意味 value1 value2 value3
setAttr node.long3Attr -type long3 1000000 2000000 3000000;
-type int32Array
長整数の可変長配列
値の構文 int {int}
値の意味 numberOfArrayValues {arrayValue}
setAttr node.int32ArrayAttr -type Int32Array 2 12 75;
-type float2
2 つの浮動小数点数の配列
値の構文 float float
値の意味 value1 value2
setAttr node.float2Attr -type float2 1.1 2.2;
-type float3
3 つの浮動小数点数の配列
値の構文 float float float
値の意味 value1 value2 value3
setAttr node.float3Attr -type float3 1.1 2.2 3.3;
-type double2
2 つの倍精度浮動小数点数の配列
値の構文 double double
値の意味 value1 value2
setAttr node.double2Attr -type double2 1.1 2.2;
-type double3
3 つの倍精度浮動小数点数の配列
値の構文 double double double
値の意味 value1 value2 value3
setAttr node.double3Attr -type double3 1.1 2.2 3.3;
-type doubleArray
倍精度浮動小数点数の可変長配列
値の構文 int {double}
値の意味 numberOfArrayValues {arrayValue}
setAttr node.doubleArrayAttr -type doubleArray 2 3.14159 2.782;
-type matrix
倍精度浮動小数点数の 4x4 行列
値の構文 double double double double
double double double double
double double double double
double double double double
値の意味 row1col1 row1col2 row1col3 row1col4
row2col1 row2col2 row2col3 row2col4
row3col1 row3col2 row3col3 row3col4
row4col1 row4col2 row4col3 row4col4
代替構文 string double double double
double double double
integer
double double double
double double double
double double double
double double double
double double double
double double double
double double double double
double double double double
double double double
boolean
代替構文の値の意味 xform scaleX scaleY scaleZ
rotateX rotateY rotateZ
rotationOrder (0=XYZ, 1=YZX, 2=ZXY, 3=XZY, 4=YXZ, 5=ZYX)
translateX translateY translateZ
shearXY shearXZ shearYZ
scalePivotX scalePivotY scalePivotZ
scaleTranslationX scaleTranslationY scaleTranslationZ
rotatePivotX rotatePivotY rotatePivotZ
rotateTranslationX rotateTranslationY rotateTranslationZ
rotateOrientW rotateOrientX rotateOrientY rotateOrientZ
jointOrientW jointOrientX jointOrientY jointOrientZ
inverseParentScaleX inverseParentScaleY inverseParentScaleZ
compensateForParentScale
setAttr node.matrixAttr -type "matrix" 1 0 0 0 0 1 0 0 0 0 1 0 2 3 4 1;
setAttr node.matrixAttr -type "matrix" "xform" 1 1 1 0 0 0 0 2 3 4 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 false;
-type pointArray
ポイントの可変長配列
値の構文 int {double double double double}
値の意味 numberOfArrayValues {xValue yValue zValue wValue}
setAttr node.pointArrayAttr -type pointArray 2 1 1 1 1 2 2 2 1;
-type vectorArray
ベクトルの可変長配列
値の構文 int {double double double}
値の意味 numberOfArrayValues {xValue yValue zValue}
setAttr node.vectorArrayAttr -type vectorArray 2 1 1 1 2 2 2;
-type "string"
キャラクタ文字列
値の構文 文字列
値の意味 characterStringValue
setAttr node.stringAttr -type "string" "blarg";
-type stringArray
文字列の可変長配列
値の構文 int {string}
値の意味 numberOfArrayValues {arrayValue}
setAttr node.stringArrayAttr -type stringArray 3 "a" "b" "c";
-type sphere
球体データ
値の構文 double
値の意味 sphereRadius
setAttr node.sphereAttr -type sphere 5.0;
-type cone
コーン データ
値の構文 double double
値の意味 coneAngle coneCap
setAttr node.coneAttr -type cone 45.0 5.0;
-type reflectanceRGB
反射率データ
値の構文 double double double
値の意味 redReflect greenReflect blueReflect
setAttr node.reflectanceRGBAttr -type reflectanceRGB 0.5 0.5 0.1;
-type spectrumRGB
スペクトラム データ
値の構文 double double double
値の意味 redSpectrum greenSpectrum blueSpectrum
setAttr node.spectrumRGBAttr -type spectrumRGB 0.5 0.5 0.1;
-type componentList
コンポーネントの可変長配列
値の構文 int {string}
値の意味 numberOfComponents {componentName}
setAttr node.componentListAttr -type componentList 3 cv[1] cv[12] cv[3];
-type attributeAlias
文字列のエイリアス データ
値の構文 string string
値の意味 newAlias currentName
setAttr node.attrAliasAttr -type attributeAlias
{"GoUp", "translateY", "Go"Left"", "translateX"};
-type nurbsCurve
NURBS カーブ データ
値の構文 int int int bool int int {double}
int {double double double}
値の意味 degree spans form isRational dimension knotCount {knotValue}
cvCount {xCVValue yCVValue [zCVValue] [wCVValue]}
// degree はカーブの次数(1 ~ 7)
// spans はスパン数
// form は open (0)、closed (1)、periodic (2)
// dimension は 2 または 3(カーブの次元に依存)
// isRational カーブの CV に有理コンポーネントが含まれる場合に true
// knotCount はノット リストのサイズ
// knotValue はノット リストの単一エントリ
// cvCount はカーブの CV 数
// xCVValue、yCVValue、[zCVValue] [wCVValue] は単一の CV
// zCVValue が存在するのは次元が 3 の場合のみ
// wCVValue が存在するのは isRational が true の場合のみ
//
setAttr node.curveAttr -type nurbsCurve 3 1 0 no 3
6 0 0 0 1 1 1
4 -2 3 0 -2 1 0 -2 -1 0 -2 -3 0;
-type nurbsSurface
NURBS サーフェス データ
値の構文 int int int int bool
int {double}
int {double}
[string] int {double double double}
値の意味 uDegree vDegree uForm vForm isRational
uKnotCount {uKnotValue}
vKnotCount {vKnotValue} ["TRIM"|"NOTRIM"] cvCount {xCVValue yCVValue zCVValue [wCVValue]}
// uDegree は U 方向のサーフェスの次数(範囲 1 ~ 7)
// vDegree は V 方向のサーフェスの次数(範囲 1 ~ 7)
// uForm は U 方向での open (0)、closed (1)、periodic (2)
// vForm は V 方向での open (0)、closed (1)、periodic (2)
// isRational はサーフェスの CV に有理コンポーネントが含まれるに true
// uKnotCount は U ノット リストのサイズ
// uKnotValue は U ノット リストの単一エントリ
// vKnotCount は V ノット リストのサイズ
// vKnotValue は V ノット リストの単一エントリ
// "TRIM" を指定する場合は、トリム情報が必要
// "NOTRIM" を指定すると、サーフェスはトリムされない
// cvCount はサーフェスの CV 数
// xCVValue、yCVValue、zCVValue [wCVValue] は単一の CV
// zCVValue が存在するのは次元が 3 の場合のみ
// wCVValue が存在するのは isRational が true
の場合のみ //
setAttr node.surfaceAttr -type nurbsSurface 3 3 0 0 no
6 0 0 0 1 1 1
6 0 0 0 1 1 1
16 -2 3 0 -2 1 0 -2 -1 0 -2 -3 0
-1 3 0 -1 1 0 -1 -1 0 -1 -3 0
1 3 0 1 1 0 1 -1 0 1 -3 0
3 3 0 3 1 0 3 -1 0 3 -3 0;
-type nurbsTrimface
NURBS トリムフェース データ
値の構文 bool int {int {int {int int int} int {int int}}}
値の意味 flipNormal boundaryCount {boundaryType tedgeCountOnBoundary
{splineCountOnEdge {edgeTolerance isEdgeReversed geometricContinuity}
{splineCountOnPedge {isMonotone pedgeTolerance}}}
// flipNormal は true の場合にサーフェスを反転させる
// boundaryCount: 境界の数
// boundaryType:
// tedgeCountOnBoundary : 境界のエッジ数
// splineCountOnEdge : エッジのスプライン数
// edgeTolerance : 3D エッジを構築する際に使用する許容値
// isEdgeReversed : true の場合、エッジは逆向きになる
// geometricContinuity : true の場合、エッジは接線連続性を持つ
// splineCountOnPedge : 2D エッジのスプライン数
// isMonotone : true の場合、曲率は単調になる
// pedgeTolerance : 2D エッジの許容値
//
-type polyFace
ポリゴン フェース データ
値の構文 {"f" int {int}}
{"h" int {int}}
{"mf" int {int}}
{"mh" int {int}}
{"mu" int int {int}}
{"fc" int {int}}
値の意味 {"f" faceEdgeCount {edgeIdValue}}
{"h" holeEdgeCount {edgeIdValue}}
{"mf" faceUVCount {uvIdValue}}
{"mh" holeUVCount {uvIdValue}}
{"mu" uvSet faceUVCount {uvIdValue}}
{"fc" faceColorCount {colorIndexValue}}
// このデータ型(polyFace)は頂点の位置配列、エッジ接続配列 // (および対応する開始頂点と終了頂点)、テクスチャ座標配列、 // カラー配列に関する setAttrs が書き出された後の
// ファイルの読み取りや書き出しで // 使用するたものものです。


このデータ型は以前の型で // 作成された ID を使用してすべてのデータを参照します。

//
// "f" はフェースを構成するエッジの ID を指定 -
// フェースでエッジが反転する場合は負の値
// "h" は穴を構成するエッジの ID を指定 -
// フェースでエッジが反転する場合は負の値
// "mf" はフェースのテクスチャ座標(UV)の ID を指定
// このデータ型はバージョン 3.0 で廃止されており、代わりに "mu" が使用されています。
// "mh" は穴のテクスチャ座標(UV)を指定
// このデータ型はバージョン 3.0 で廃止されており、代わりに "mu" が使用されています。
// "mu" 最初の引数は UV セットです。これはゼロから始まる
// 整数値です。2 番目の引数は有効な UV 値を持つフェース上の
// 頂点の数です。最後の値はフェースの // テクスチャ座標(UV)の UV ID です。
これらのインデックスは
// "mf" や "mh" を指定する際に使用するものです。
// "mu" は複数指定することもできます(固有の UV セットごとに 1 つ)。
// "fc" はフェースのカラー インデックス値を指定します。
//
setAttr node.polyFaceAttr -type polyFaces "f" 3 1 2 3 "fc" 3 4 4 6;
-type mesh
ポリゴン メッシュ
値の構文 {string [int {double double double}]}
{string [int {double double double}]}
[{string [int {double double}]}]
{string [int {double double string}]}
値の意味 "v" [vertexCount {vertexX vertexY vertexZ}]
"vn" [normalCount {normalX normalY normalZ}]
["vt" [uvCount {uValue vValue}]]
"e" [edgeCount {startVertex endVertex "smooth"|"hard"}]
// "v" はポリゴン メッシュ
の頂点を指定 // "vn" は各頂点の法線を指定
// "vt" はオプションで、各頂点の U,V テクスチャ座標を指定
// "e" は頂点間のエッジの接続情報を指定
//
setAttr node.meshAttr -type mesh "v" 3 0 0 0 0 1 0 0 0 1
"vn" 3 1 0 0 1 0 0 1 0 0
"vt" 3 0 0 0 1 1 0
"e" 3 0 1 "hard" 1 2 "hard" 2 0 "hard";
-type lattice
ラティス データ
値の構文 int int int int {double double double}
値の意味 sDivisionCount tDivisionCount uDivisionCount
pointCount {pointX pointY pointZ}
// sDivisionCount は水平方向のラティス分割数
// tDivisionCount は垂直方向のラティス分割数
// uDivisionCount はデプスのラティス分割数
// pointCount はラティス ポイント
の総数 // pointX、pointY、pointZ は単一のラティス ポイントこのリストは
// S、T、U の順に異なる値を使用して指定されるため
// 最初の 2 つのエントリは (S=0,T=0,U=0) (s=1,T=0,U=0)
となる //
setAttr node.latticeAttr -type lattice 2 5 2 20
-2 -2 -2 2 -2 -2 -2 -1 -2 2 -1 -2 -2 0 -2
2 0 -2 -2 1 -2 2 1 -2 -2 2 -2 2 2 -2
-2 -2 2 2 -2 2 -2 -1 2 2 -1 2 -2 0 2
2 0 2 -2 1 2 2 1 2 -2 2 2 2 2 2;

戻り値

なし

戻り値の型は照会モードでは照会フラグが基になります。

関連項目

addAttr, connectAttr, disconnectAttr, getAttr, listAttr

フラグ

alteredValue, caching, channelBox, clamp, keyable, lock, size, type
ロング ネーム(ショート ネーム) 引数型 プロパティ
keyable(k) boolean create
アトリビュートのキー設定可能な状態をオンまたはオフに設定します。
lock(l) boolean create
アトリビュートのロック状態をオンまたはオフに設定します。
channelBox(cb) boolean create
channelBox でのアトリビュートの表示をオンまたはオフに設定します。 キー設定可能なアトリビュートは、channelBox 設定に関係なく常に channelBox に表示されます。
caching(ca) boolean create
アトリビュートの内部キャッシュをオンまたはオフに設定します。すべてのアトリビュートの キャッシュを定義できるわけではありません。デフォルトでキャッシュするように定義されていない アトリビュートに限り、キャッシュを設定することができます。また、マルチ アトリビュート エレメントには キャッシュを設定することができません。キャッシュの設定は、複合アトリビュートの 子アトリビュートにも影響を及ぼします。
size(s) uint create
マルチアトリビュート配列のサイズを定義します。これは単なるヒントで、できるだけ効率的にメモリを割り当てられるようにするために使用します。
type(typ) string create
データ型を識別します。-type フラグが指定されていない場合は、数値型と想定されます。
alteredValue(av) boolean create
値はカレント値にすぎず、(アトリビュートに入力コネクションがある場合は)次の評価で変更される可能性があります。 このフラグはファイル入出力時のみに使用します。 したがって、入力コネクションを持つアトリビュートのデータが、 ファイルが開かれてから最初の評価時に上書きされることはありません。
clamp(c) boolean create
数値アトリビュートで、その値がアトリビュートの範囲外である場合、 強制的に最小値あるいは最大値にします。失敗することはありません。

: コマンドの作成モードで使用可能なフラグ : コマンドの編集モードで使用可能なフラグ
: コマンドの照会モードで使用可能なフラグ : タプルまたはリストとして渡された複数の引数を持てるフラグ

Python 例

import maya.cmds as cmds

cmds.sphere( n="sphere" )

# Set a simple numeric value
cmds.setAttr( 'sphere.translateX', 5 )

# Lock an attribute to prevent further modification
cmds.setAttr( 'sphere.translateX', lock=True )

# Make an attribute unkeyable
cmds.setAttr( 'sphere.translateZ', keyable=False )

# Set an entire list of multi-attribute values in one command
cmds.setAttr( 'sphereShape.weights[0:6]',1, 1, 2, 1, 1, 1, 2,size=7)
# Set an attribute with a compound numeric type
cmds.setAttr('sphere.rotate', 0, 45, 90, type="double3")

# Clamp the value of the attribute to the min/max
# Useful floating point math leaves the value just
# a little out of range - here the min is .01
cmds.setAttr( 'anisotropic1.roughness', 0.0099978, clamp=True )

# Set a multi-attribute with a compound numeric type
cmds.setAttr( 'sphereShape.controlPoints[0:2]', 0, 0, 0, 1, 1, 1, 2, 2, 2,type="double3" )