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

概要

hasMetadata([asList=boolean], [channelName=string], [channelType=string], [endIndex=string], [ignoreDefault=boolean], [index=string], [indexType=string], [memberName=string], [scene=boolean], [startIndex=string], [streamName=string])

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

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

このコマンドを使用して、ノード、コンポーネント、またはシーンにメタデータ要素が存在するかどうかを照会します。このコマンドは、ノードまたはシーンに存在するすべてのメタデータから、特定のメタデータ ストリーム インデックスに設定されているメタデータ値に至るまで、メタデータが存在するあらゆるレベルで機能します。フィルタ フラグ

操作フラグ

戻り値

string[]メタデータが含まれているフィルタされたリストのインデックスのリスト
boolean[]指定された項目にメタデータがあるかどうかの答えのリスト

キーワード

metadata, component, stream, channel, association

関連

addMetadata, applyMetadata, dataStructure, editMetadata, getMetadata

フラグ

asList, channelName, channelType, endIndex, ignoreDefault, index, indexType, memberName, scene, startIndex, streamName
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
memberName(mn) string create
チェックされるストラクチャ メンバーの名前。メンバーの名前は、「dataStructure」コマンドで渡された説明に基づいて、または、構造の作成に使用された API を介してその構造の定義で設定されます。メタデータの割り当てはストラクチャごとなので、既定以外の値を照会する場合にのみこのフラグを指定する必要があります。既定以外の値を照会してこのフラグを省略すると、いずれかのメンバーが既定以外の値を持っていることがチェックされます。
asList(al) boolean create
ブーリアン値ではなくメタデータが存在する場所を示す文字列値を返す場合は、このフラグを使用します。このフラグで返される値の詳細については、コマンドの説明を参照してください。
ignoreDefault(id) boolean create
既定値のみを持つメタデータをスキップする場合は、このフラグを使用します。つまり、存在していてもまだ新しい値(数値の場合は 0 以外、空以外の文字列など)が設定されていないメタデータはスキップされます。このフラグによって検索がどのようにフィルタされるかの詳細については、コマンドの説明を参照してください。
channelName(cn) string createquery
指定したチャネル(例: 「vertex」)に属しているメタデータのみが認識されるようにメタデータの選択をフィルタします。セレクション リストのコンポーネントが目的のメタデータを指定するために使用されている場合、このフラグは無視されます。

照会モードでは、このフラグは値を受け入れることができます。

channelType(cht) string createquery
現在サポートしていません: 代わりに 'channelName' フラグを使用してください。

照会モードでは、このフラグは値を受け入れることができます。

endIndex(eix) string create

メタデータは、インデックス リストであるストリームに保存されます。メッシュ コンポーネントが選択されている場合、メタデータのインデックスは、選択されたコンポーネントのリストで暗黙的となります。ノードまたはシーンのみを選択した場合、このフラグを startIndex フラグと組み合わせて使用することで、メタデータの取得元となるインデックスの範囲を指定できます。startIndex の値が endIndex の値よりも大きくなるとエラーが発生します。

複数のインデックスを指定する別の方法については、index フラグを参照してください。このフラグは、範囲をサポートするインデックス タイプでのみ使用できます(整数値など。2 つの文字列間の範囲を要求しても無効です)。

照会モードでは、このフラグは値を受け入れることができます。

index(idx) string createquerymultiuse

通常、メタデータは単純な整数値を使用してインデックス化されます。特定のタイプのデータでは、他のインデックス タイプを使用する場合があります。たとえば、「頂点フェース」コンポーネントでは、「pair」インデックス タイプを使用します。このインデックス タイプは、コンポーネントのフェース ID を表す整数値と頂点 ID を表す整数値の 2 つの整数値を表します。

index フラグは文字列を取り、指定された indexType に必要な形式にフォーマットされます。index フラグを使用する場合 indexType はすべて同じになります。タイプが指定されていない場合は、単純な整数値とみなされます。

照会モードでは、このフラグは値を受け入れることができます。

indexType(idt) string createquery
新しいチャネルが使用するインデックス タイプの名前。指定しない場合、既定で単純な整数インデックスに設定されます。ネイティブ タイプの中で、メッシュの「vertexFace」チャネルのみ異なり、「pair」インデックス タイプを使用します。

照会モードでは、このフラグは値を受け入れることができます。

scene(scn) boolean createquery
個々のノードにではなくシーン全体にメタデータを追加したい場合は、このフラグを使用します。このフラグを使用してノードを選択すると、ノードは無視され、警告が表示されます。
startIndex(six) string create

メタデータは、インデックス リストであるストリームに保存されます。メッシュ コンポーネントが選択されている場合、メタデータのインデックスは、選択されたコンポーネントのリストで暗黙的となります。ノードまたはシーンのみを選択した場合、このフラグを endIndex フラグと組み合わせて使用することで、メタデータの取得元となるインデックスの範囲を指定できます。startIndex の値が endIndex の値よりも大きくなるとエラーが発生します。

複数のインデックスを指定する別の方法については、index フラグを参照してください。このフラグは、範囲をサポートするインデックス タイプでのみ使用できます(整数値など。2 つの文字列間の範囲を要求しても無効です)。

照会モードでは、このフラグは値を受け入れることができます。

streamName(stn) string createquery
メタデータ ストリームの名前。コンテキストに応じて、作成されるストリームの名前、またはフィルタを通過するストリームの名前にすることができます。

照会モードでは、このフラグは値を受け入れることができます。


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

Python 例

import maya.cmds as cmds

import maya.cmds as cmds
cmds.polyPlane( name='smcPlane', constructionHistory=False )
# Result: smcPlane #
# Create structures
cmds.dataStructure( format='raw', asString='name=idStructure:int32=ID' )
# Result: idStructure #
cmds.dataStructure( format='raw', asString='name=keyValueStructure:string=value' )
# Result: keyValueStructure #
# Apply structures to plane
cmds.select( 'smcPlaneShape', replace=True )
cmds.addMetadata( structure='idStructure', streamName='idStream', channelName='vertex' )
cmds.addMetadata( structure='keyValueStructure', streamName='keyValueStream', channelName='key', indexType='string' )
# Apply the metadata values to three of the components by selection
cmds.select( 'smcPlaneShape.vtx[8:10]', replace=True )
cmds.editMetadata( streamName='idStream', memberName='ID', value=7 )
# Result: 3 #
# Verify existence of the three newly set metadata values at the node level
cmds.select( 'smcPlaneShape', replace=True )
cmds.hasMetadata()
# Result: [True] #
# Verify existence of the three newly set metadata values at the Channel level
cmds.hasMetadata( channelName='vertex' )
# Result: [True] #
cmds.hasMetadata( channelName='edge' )
# Result: [False] #
# Verify existence of the three newly set metadata values at the Stream level
cmds.hasMetadata( channelName='vertex', streamName='idStream' )
# Result: [True] #
cmds.hasMetadata( channelName='edge', streamName='someOtherStream' )
# Result: [False] #
# Verify existence of the three newly set metadata values at the Index level
cmds.hasMetadata( channelName='vertex', streamName='idStream', index=['8','9'] )
# Result: [True, True] #
cmds.hasMetadata( channelName='vertex', streamName='idStream', index=['8','9999'] )
# Result: [True, False] #
# Verify existence of default metadata values at the Index level. Since the
# index range was established to be 0-17 by assignment and the Stream
# defaults to returning default values for unassigned indices the lower index
# values "0" and "1" do have metadata (as default values) but the higher one
# "9999" in the above example does not.
cmds.hasMetadata( channelName='vertex', streamName='idStream', index=['0','1'] )
# Result: [True, True] #
# Verify non-existence of non-default metadata values at the Index level
cmds.hasMetadata( ignoreDefault=True, channelName='edge', streamName='idStream', memberName='ID', index=['0','1'] )
# Result: [False, False] #
# Get the list of Index values with assigned metadata on the object
cmds.select( 'smcPlaneShape.vtx[8:20]', replace=True )
cmds.hasMetadata( channelName='vertex', streamName='idStream', asList=True )
# Result: [u'8', u'9', u'10'] #
# Set metadata values using the complex index type='string'
cmds.editMetadata( streamName='keyValueStream', memberName='value', stringValue='Starry Night', indexType='string', index='Title' )
cmds.editMetadata( streamName='keyValueStream', memberName='value', stringValue='Vincent Van Gogh', indexType='string', index='Artist' )
# Verify existence of the complex index data
cmds.hasMetadata( streamName='keyValueStream', memberName='value', channelName='key', index=['Title','Artist'], indexType='string', asList=True )
# Result: [u'Artist', u'Title'] #