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

概要

editMetadata [-channelName string] [-channelType string] [-endIndex string] [-index string] [-indexType string] [-memberName string] [-remove] [-scene] [-startIndex string] [-streamName string] [-stringValue string] [-value float]

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

このコマンドは、オブジェクトにメタデータ要素を設定するために、またはオブジェクトからメタデータ要素を除去するために使用します。このコマンドを使用する前に、addMetadata コマンド、または API でこのコマンドに相当するものを使用して、最初にメタデータ ストリーム タイプをオブジェクトにアタッチする必要があります。コマンドには次の 4 つの基本的なバリエーションがあります。

  1. メッシュにコンポーネント単位のメタデータを設定
  2. メッシュからコンポーネント単位のメタデータを除去
  3. 任意のオブジェクトに一般的なメタデータを設定
  4. 任意のオブジェクトから一般的なメタデータを除去

setremove の違い(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
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
-remove(-rem) create
remove フラグが設定されると、メタデータは値が設定されることなく除去されます。このモードでは、「memberName」、「value」、「stringValue」の各フラグは無視されます。メタデータを削除すると、ストラクチャのすべてのメンバーがグループとして除去されるため、「memberName」は無視されます。削除する場合は値を設定する必要がないため、その他すべてが無視されます。
-memberName(-mn) string create
編集される構造体メンバーの名前。メンバーの名前は、「dataStructure」コマンドで渡された説明に基づいて、または、構造の作成に使用された API を介してその構造の定義で設定されます。
-value(-v) float createmultiuse
指定のメタデータ配置場所に設定される数値。このフラグは、データ メンバーが数値型の場合のみ使用されます。メンバーが N 寸法の場合(例: float[3])、このフラグは N 回(例: 3 回)表示される必要があります。影響を受けるすべてのコンポーネントまたはメタデータ インデックスで指定されたメタデータ メンバーには、同じ値が適用されます。すべての数値型のメンバーは、この型の値指定(string 型と matrix 型以外のすべて)を使用する必要があります。値の 1 つと stringValue フラグのみを一度に指定することが可能であり、その型は、「member」フラグによって命名された構造体メンバーの型と一致する必要があります。
-stringValue(-sv) string createmultiuse
指定のメタデータ配置場所に設定される文字列値。このフラグは、データ メンバーが数値型の場合のみ使用されます。メンバーが N 寸法の場合(例: string[2])、このフラグは N 回(例: 2 回)表示される必要があります。影響を受けるすべてのコンポーネントまたはメタデータ インデックスで指定されたメタデータ メンバーには、同じ値が適用されます。値の 1 つと stringValue フラグのみを一度に指定することが可能であり、その型は、「member」フラグによって命名された構造体メンバーの型と一致する必要があります。
-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) createquery
個々のノードにではなくシーン全体にメタデータを追加したい場合は、このフラグを使用します。このフラグを使用してノードを選択すると、ノードは無視され、警告が表示されます。
-startIndex(-six) string create

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

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

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

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

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


フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます コマンド内でフラグを複数回使用できます。

MEL 例

polyPlane -n smcPlane -ch off;
// Result: smcPlane //
pickWalk -d down;
// Result: smcPlaneShape //
// Create structure
dataStructure -format "raw" -asString "name=idStructure:int32=ID";
// Result: idStructure //
// Apply structure to plane
addMetadata -structure "idStructure" -streamName "idStream" -channelName "vertex";
// Attach a metadata value to three of the components by selection
select -r smcPlaneShape.vtx[8:10];
editMetadata -streamName "idStream" -memberName "ID" -value 7;
// Result: 1 //
// Attach a metadata value to another component by manual indexing
select -r smcPlaneShape;
editMetadata -streamName "idStream" -memberName "ID" -channelName "vertex" -value 8 -index 14;
// Result: 1 //
// Remove metadata from the middle of the three vertexes set earlier
select -r smcPlaneShape.vtx[9];
editMetadata -streamName "idStream" -remove;
// Result: 1 //