ジャンプ先: 概要. 戻り値. キーワード. 関連. フラグ. Python 例.
editMetadata([channelName=string], [channelType=string], [endIndex=string], [index=string], [indexType=string], [memberName=string], [remove=boolean], [scene=boolean], [startIndex=string], [streamName=string], [stringValue=string], [value=float])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
editMetadata は、取り消し可能、照会不可能、および編集不可能です。
このコマンドは、オブジェクトにメタデータ要素を設定するために、またはオブジェクトからメタデータ要素を除去するために使用します。このコマンドを使用する前に、addMetadata コマンド、または API でこのコマンドに相当するものを使用して、最初にメタデータ ストリーム タイプをオブジェクトにアタッチする必要があります。コマンドには次の 4 つの基本的なバリエーションがあります。
- メッシュにコンポーネント単位のメタデータを設定
- メッシュからコンポーネント単位のメタデータを除去
- 任意のオブジェクトに一般的なメタデータを設定
- 任意のオブジェクトから一般的なメタデータを除去
set と remove の違い(1、3 対 2、4)は、set には設定対象となるメンバー名と設定対象となる新しい値の両方が必要になる点です(除去時にメンバー名が使用されない理由は、メタデータの構造要素全体を除去できても、そこから 1 つのメンバーのみを除去することができないためです)。
メタデータ値が設定または除去されると、選択された各コンポーネントまたは各インデックス上でアクションが実行されます。これにより、一連のメタデータを一斉に設定または除去できます。
一般的な使用法(3、4)では、特定のメタデータを channelName および index フラグを使用して選択します。index は多目的フラグのため、同じチャネルから複数の異なる要素を選択し、1 つのコマンドを使用して、それらすべての要素でメタデータを設定または除去することができます。
メッシュ上のメタデータは、「vertex」、「edge」、「face」、「vertexFace」のチャネル タイプが同じ名前のコンポーネントに直接接続している点で特殊です。これらのメタデータ チャネルは、channelName および index フラグを使用せずに、コマンド ライン上で対応するコンポーネントを単に選択または指定することで、より簡単に設定することができます。たとえば、セレクション「myMesh.vtx[8:10]」は、channelName = vertex および index = 8, 9, 10 に対応します(多目的フラグとして)。
メタデータはオブジェクトに割り当てられ、メッシュ ジオメトリの特殊なケースを除き、ディペンデンシー グラフでフローしないことに注意してください。メッシュでは、メタデータはジオメトリが接続されていればノードから別のノードへ移動しますが、トポロジの変更に伴って自動調整されることはありません。内部データは、接続しているその他のノードの数に関係なく、コピー量を最小化するように調整されます。
1 回のコマンドで許可されるノードまたはシーン、コンポーネント タイプ、チャネル タイプ、値タイプはそれぞれ 1 つだけです。複数の構造体メンバーの値を設定するにはコマンドを複数回コールする必要がありますが、この方法によってデータをシンプルに保つことができます。
特定のノードには、入力アトリビュートによって提供されているメタデータが含まれます。それらのメタデータの 1 つを 1 つのアトリビュートの受信接続で編集しても、メタデータの編集は直接適用されず、DG 評価中にアプリケーションの 'editMetadata' ノード内に配置されます。評価が行われるまでメタデータの詳細は不明なため、厳格性の低い互換性チェックチェックが実行されます。editMetadata ノードには、メタデータの編集を検証して不正なメタデータ編集を報告する独自のファシリティがあります。この方法で同じメタデータを連続して編集すると、各編集が同じ editMetadata ノードに追加されます。
string | 新しく編集されたノードがある場所にはノードの名前、編集できなかった場合は空の文字列です。コンストラクション ヒストリが存在する場合は、editMetadata ノードになります。 |
metadata, component, stream, channel, association
addMetadata, applyMetadata, dataStructure, getMetadata, hasMetadata
channelName, channelType, endIndex, index, indexType, memberName, remove, scene, startIndex, streamName, stringValue, value
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
import maya.cmds as cmds
cmds.polyPlane( name='smcPlane', constructionHistory=False )
# Result: smcPlane #
cmds.pickWalk( d='down' )
# Result: [u'smcPlaneShape'] #
# Create structure
cmds.dataStructure( format='raw', asString='name=idStructure:int32=ID' )
# Result: idStructure #
# Apply structure to plane
cmds.addMetadata( structure='idStructure', streamName='idStream', channelName='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: True #
# Attach a metadata value to another component by manual indexing
cmds.select( 'smcPlaneShape', replace=True )
cmds.editMetadata( streamName='idStream', memberName='ID', channelName='vertex', value=8, index=14 )
# Result: True #
# Remove metadata from the middle of the three vertexes set earlier
cmds.select( 'smcPlaneShape.vtx[9]', replace=True )
cmds.editMetadata( streamName='idStream', remove=True )
# Result: True #