ジャンプ先: 概要. 戻り値. キーワード. 関連. フラグ. Python 例.
editMetadata([channelType=string], [delete=boolean], [memberName=string], [metadataIndex=int], [streamName=string], [stringValue=string], [value=float])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
editMetadata は、取り消し可能、照会不可能、および 編集不可能 です。
このコマンドは、ノードにメタデータ要素を設定するために、またはノードからメタデータ要素を除去するために使用します。このコマンドを使用する前に、addMetadata コマンドまたは API でこのコマンドに相当するものを使用して、最初にメタデータ ストリーム タイプをアタッチする必要があります。コマンドには次の 4 つの基本的なバリエーションがあります。
set と remove の違い(1、3 対 2、4)は、set には設定対象となるメンバ名と設定対象となる新しい値の両方が必要になる点です(除去時にメンバ名が使用されない理由は、メタデータの構造要素全体を除去できても、そこから 1 つのメンバのみを除去することができないためです)。
メタデータ値が設定または除去されると、選択された各コンポーネントまたは各インデックス上でアクションが実行されます。これにより、一連のメタデータを一斉に設定または除去できます。
一般的な使用法(3、4)では、特定のメタデータを channelType および metadataIndex フラグを使用して選択します。metadataIndex は多目的フラグのため、同じチャネルから複数の異なる要素を選択し、1 つのコマンドを使用して、それらすべての要素でメタデータを設定または除去することができます。
メッシュ上のメタデータは、「vertex」、「edge」、「face」、「vertexFace」のチャネル タイプが同じ名前のコンポーネントに直接接続している点で特殊です。これらのメタデータ チャネルは、channelType および metadataIndex フラグを使用せずに、コマンド ライン上で対応するコンポーネントを単に選択または指定することで、より簡単に設定することができます。たとえば、「myMesh.vtx[8:10]」は、channelType = vertex および metadataIndex = 8, 9, 10 に対応します(多目的フラグとして)。
メタデータはノードに割り当てられ、メッシュ ジオメトリの特殊なケースを除き、ディペンデンシー グラフでフローしないことに注意してください。メッシュでは、メタデータはジオメトリが接続されていればノードから別のノードへ移動しますが、トポロジの変更に伴って自動調整されることはありません。内部データは、接続しているその他のノードの数に関係なく、コピー量を最小化するように調整されます。
1 回のコマンドで許可されるノード、コンポーネント タイプ、チャネル タイプ、値タイプはそれぞれ 1 つだけです。複数の構造体メンバの値を設定するにはコマンドを複数回コールする必要がありますが、この方法によってデータをシンプルに保つことができます。
boolean | 割り当てまたは除去に成功した場合は True |
ロング ネーム(ショート ネーム) | 引数タイプ | プロパティ | ||
---|---|---|---|---|
channelType(cht)
|
string
|
![]() |
||
|
||||
delete(delete)
|
boolean
|
![]() |
||
|
||||
memberName(mn)
|
string
|
![]() |
||
|
||||
metadataIndex(mdi)
|
int
|
![]() ![]() |
||
|
||||
streamName(stn)
|
string
|
![]() |
||
|
||||
value(v)
|
float
|
![]() ![]() |
||
|
||||
stringValue(sv)
|
string
|
![]() ![]() |
||
|
![]() |
![]() |
![]() |
![]() |
import maya.cmds as cmds import maya.cmds as cmds cmds.polyPlane( name='smcPlane', constructionHistory=False ) # Result: smcPlane # # Create structure cmds.dataStructure( format='raw', asString='name=idStructure:int32=ID' ) # Result: idStructure # # Apply structure to plane cmds.addMetadata( structure='idStructure', streamName='idStream', channelType='vertex' ) # Attach a metadata value to three of the components by selection cmds.select( 'smcPlaneShape.vtx[8:10]', replace=True ) cmds.editMetadata( streamName='idStream', memberName='ID', value=7 ) # Result: 1 # # Attach a metadata value to another component by manual indexing cmds.select( 'smcPlaneShape', replace=True ) cmds.editMetadata( streamName='idStream', memberName='ID', channelType='vertex', value=8, metadataIndex=14 ) # Result: 1 # # Remove metadata from the middle of the three vertexes set earlier cmds.select( 'smcPlaneShape.vtx[9]', replace=True ) cmds.editMetadata( streamName='idStream', delete=True ) # Result: 1 #