Houdini 18.5 ノード TOPノード

Attribute from String TOP node

ファイル名などの文字列からアトリビュート値を解析します。

On this page
Since 17.5

このノードは、単純なパターン置換言語または多能な正規表現のどちらを使用するのか選択することができます。 分割文字で構造化された文字列には、単純なパターンを使用した方が記述が簡単で理解しやすいです。

単純なパターン言語

このノードは、非常に単純なパターン言語に対応しており、名前付き"キャプチャ"グループとリテラル文字(そのままの文字)を交互に使用します。 キャプチャグループの文字列はアトリビュートに割り当てられます。これは、区切り文字を使った通常の構造体でファイル名を付けている場合に、そのファイル名から情報を解析するのに役立ちます。

例えば、"ソース"ファイル名を以下の形式で名前を付けたとします:

shot_a.simcache.1.005.bgeo.sc

以下のパターンを使用すれば、別々の部分をアトリビュートとして解析することができます:

{shot}.{}.{wedgenum}.{frame}.bgeo.sc

(波括弧の中を空っぽにすると、その部分はアトリビュートに割り当てられません。)

  • このパターンでは、波括弧({name})は以下のパターンのリテラル文字に合致します。

    • 波括弧の中が空っぽであれば、マッチした文字列は破棄されます。

    • 波括弧の中に名前が入っていれば、そこにマッチした文字列がその名前のアトリビュートに割り当てられます。例えば、{shot}で"キャプチャ"されたソース文字列の部分はshotアトリビュートに割り当てられます。

    • Infer Attribute Type を有効にすると、このノードは、合致した文字列に基づいてアトリビュートタイプを推測します(それが整数文字列であれば、そのアトリビュートタイプは整数に、浮動小数点文字列であれば、浮動小数点に、それ以外は文字列になります)。{name:type}を使用することで、アトリビュートタイプを明示的に指定することができます。例えば、{shot:string}, {frame:int}, {time:float}です。

  • パターンの最後の波括弧は、ソース文字列の最後にマッチします。

  • 波括弧の外では、パターン内の文字は、ソース文字列の文字にそのまま合致します。

  • 波括弧は"欲張り"ではありません…これは遠くの文字列にマッチさせるのが良い場合でも、次のリテラル文字以前のところまでマッチします(つまり、最長マッチしません)。

    例えば、day.01.csvに対して{name}.csvパターンを使用する時に、{name}にはday.01をキャプチャしてほしいわけですが、実際にはdayのみがキャプチャされます(このパターンは次のリテラル文字、ここではピリオドまでをキャプチャします)。 このパターンは、ピリオドの後の文字は01ではなくcsvであることを期待しているので、失敗に終わります。

  • パターンは、(接頭辞のみではなく)ソース文字列にマッチしなければなりません。

  • 全パターンがマッチしなかった場合、そのパターン内のアトリビュートは何も設定されません。

正規表現

非常に強力/柔軟な文字列置換を行ないたいのであれば、代わりに正規表現を使用することができます。 このノードは、Pythonの正規表現構文を使用します。

  • 正規表現を使用すると、暗黙的に Infer Attribute Type が有効になります。

パラメータ

Generate When

このノードがワークアイテムを生成するタイミングを決めます。 このノードがどの生成モードを必須にしているのか、もしくは、ワークアイテムを動的に生成させる必要があるのかどうか分からないのであれば、通常では、これを"Automatic"のままに設定してください。

All Upstream Items are Generated

このノードは、すべての入力ノードが自身のワークアイテムを生成した時にワークアイテムを生成します。

All Upstream Items are Cooked

このノードは、すべての入力ノードが自身のワークアイテムをクックした時にワークアイテムを生成します。

Each Upstream Item is Cooked

このノードは、入力ノード内のワークアイテムがクックされる度にワークアイテムを生成します。

Automatic

入力ノードの生成モードに基づいて生成モードが選択されます。 入力ノードのどれかがその入力のクック時にワークアイテムが生成されている場合、このノードには Each Upstream Item is Cooked が設定されます。 そうでない場合、 All Upstream Items are Generated が設定されます。

Source String

解析したいデータを含んだ文字列。 通常では、ここにはアトリビュートから文字列を取得するエクスプレッションを指定します。 これは文字列パラメータなので、エクスプレッションをバッククォートで閉じる必要があります。例: `@name`

Operation

ソース文字列に対して実行するオペレーションを決定します。 Match by String は、パターンを使って Source String からコンポーネントを抽出し、それらのコンポーネントをアトリビュートとして保存します。 Split by Delimiter は、セカンダリ文字列に基づいてソース文字列を分割し、その結果のサブ文字列をアトリビュートとして保存します。

Match by Pattern

Pattern Type

Pattern フィールドに単純な中括弧の構文または正規表現のどちらを使用するのか決定します。 正規表現を使用した時、キャプチャグループがその番号によってgroup0, group1のようにアトリビュートに割り当てられます。 キャプチャグループに名前を付けた場合(例えば、(?P<name>)構文を使った場合)、そのアトリビュート名がキャプチャグループ名に設定されます。

Pattern

Source String からアトリビュートを抽出する際に使用するパターン。 この言語は、 Use Custom Regex チェックボックスで制御します。 このチェックボックスを無効にすると、このパラメータは単純なパターン置換言語(上記参照)を使用します。 このチェックボックスを有効にすると、このパラメータは正規表現を使用します。

Infer Attribute Type

これを有効にすると、キャプチャパターンのタイプ(例えば、{shotnum:int})が明示的に指定されていなかった場合、このノードは、合致した文字列の内容に基づいてアトリビュートのタイプを推測します (それが整数文字列であれば、そのアトリビュートタイプは整数に、浮動小数点文字列であれば、浮動小数点に、それ以外は文字列になります)。

Create Items With No Matches

デフォルトでは、このノードは、パターンに合致した入力のワークアイテムのみから新しいワークアイテムを生成します。 これを有効にすると、合致しなくてもワークアイテムが渡されます。

Split by Delimiter

Delimiter Type

Source String を区切る際に使用する区切りのタイプを指定します。 String を使用すると、 Delimiter フィールドのそのままの内容に基づいてソース文字列を分割します。 Character Set は、個々の区切り文字に基づいて分割します。 Regular Expression は、 Delimiter を独自の正規表現として解釈します。

Delimiter

ソース文字列を分割する時に使用する区切り文字。

Store Result As

分割した文字列を保存する方法。それぞれのコンポーネントを、単一ワークアイテム上に文字列配列アトリビュートとして保存したり、コンポーネント毎に1個のワークアイテムに分割することができます。

Trim Whitespace

このトグルを有効にすると、文字列を分割した後にそれらのコンポーネントの先頭と後尾の空白を除去します。

Examples

RegexPattern Example for Attribute from String TOP node

このサンプルでは、正規表現または区切り文字を使用してワークアイテムアトリビュートを作成する方法を説明しています。

SimplePattern Example for Attribute from String TOP node

このサンプルでは、単純なパターンマッチング構文を使用して文字列データからワークアイテムアトリビュートを作成する方法を説明しています。

See also

TOPノード

  • Attribute Array

    ワークアイテム上に配列アトリビュートを作成/変更します。

  • Attribute Copy

    あるブランチのワークアイテムのアトリビュートを他のブランチのワークアイテムにコピーします。

  • Attribute Create

    入力のワークアイテムすべてに対してアトリビュートを作成または設定します。

  • Attribute Delete

    ワークアイテムからアトリビュートを削除します。

  • Attribute Rename

    ワークアイテム上のアトリビュートの名前を変更します。

  • Attribute from String

    ファイル名などの文字列からアトリビュート値を解析します。

  • Block Begin Feedback

    For-Loop with Feedbackブロックを開始します。このブロック内のTOPノードは直列で実行され、オプションで入力のワークアイテム毎にループさせることができます。

  • Block End Feedback

    For-Loop with Feedbackブロックを終了します。このブロック内のTOPノードは直列で実行され、オプションで入力のワークアイテム毎にループさせることができます。

  • CSV Input

    CSVファイルのデータをワークアイテムのアトリビュートにコピーします。

  • CSV Output

    ワークアイテムのアトリビュートをCSVファイルに書き出します。

  • Command Send

    実行させたいコードを共有サーバーに送信します。

  • Command Server End

    サーバーブロックを終了します。

  • Deadline Scheduler

    Thinkbox社のDeadlineソフトウェア用PDGスケジューラ。

  • Download File

    1つ以上のURLからコンテンツをファイルにダウンロードします。

  • Environment Edit

    ワークアイテムのコマンドラインが実行する環境下で設定する変数を編集します。

  • Error

    条件が満たされた時に警告またはエラーを出します。

  • FFmpeg Encode Video

    静止画像シーケンスを動画に変換します。

  • FFmpeg Extract Images

    動画ファイルから静止画像シーケンスを抽出します。

  • File Compress

    ファイルをアーカイブに圧縮します。

  • File Copy

    実行時またはノードがファイルを生成した時に、ファイルをある場所から別の場所にコピーします。

  • File Decompress

    入力のワークアイテムで指定されたアーカイブファイルを個々のファイルに解凍します。

  • File Pattern

    特定のパターンに合致したファイルに基づいてワークアイテムを生成します。

  • File Range

    特定のファイルパターンに基づいたフレーム範囲からワークアイテムを生成します。

  • File Remove

    指定したパスのファイルを削除します。

  • File Rename

    ファイルを名前変更または移動させます。

  • Filter by Expression

    上流のワークアイテムを条件付きでフィルタリングします。

  • Filter by Range

    指定したフレーム内またはアトリビュート範囲内にある上流のワークアイテムを絞り込みます。

  • Filter by State

    上流のワークアイテムをその状態によってフィルタリングします。

  • Generic Generator

    アトリビュートなしでコマンドラインを実行するワークアイテムを生成します。

  • Geometry Import

    SOPまたはジオメトリファイルのポイントまたはプリミティブをワークアイテムアトリビュートまたは一時ファイルに読み込みます。

  • HDA Processor

    デジタルアセットをクックするワークアイテムを生成します。

  • HQueue Scheduler

    HQueueを使用してワークアイテムのスケジュールを組みます。

  • Houdini Server Begin

    持続型Houdiniコマンドサーバーを起動します。

  • ImageMagick

    一括で画像変換、サイズ変更、画像モザイクなどのImageMagickの機能に簡単にアクセスすることができます。

  • In Process Scheduler

    In-Processワークアイテムのスケジューリングを制御します。

  • Invoke

    入力ジオメトリに対してコンパイルブロックを呼び出します。

  • JSON Input

    JSONファイルからデータを抽出してアトリビュートを作成します。

  • JSON Output

    JSON出力を生成する色々なオペレーションを実行します。

  • Labs Archive Project

    現行HIPファイルの依存関係を収集してアーカイブ(書庫)にするユーティリティTOP。

  • Labs Concatenate Text

    複数のテキストファイルを単一ファイルに結合します。

  • Labs Cut Geometry to Partitions

    入力ジオメトリを分割します。

  • Labs Data Diff

    様々なジオメトリ、テキスト、画像ファイルを比較します。

  • Labs Extract Image Metadata

    iinfoを使用して画像メタデータを抽出します。

  • Labs Filter by Value

    特定のアトリビュート値で1つ以上のワークアイテムをフィルタリングします。

  • Labs Filter by Value

    指定したアトリビュート値で複数のワークアイテムをフィルタリングします。

  • Labs Generate from Imageplanes

    画像内に見つかった画像平面に基づいてワークアイテムを生成します。

  • Local Scheduler

    ローカルマシン上でワークアイテムのスケジュールを組みます。

  • Make Directory

    ディレクトリを作成します。

  • Map All

    上流のすべてのワークアイテムを下流のワークアイテムにマップします。

  • Map by Expression

    エクスプレッションを使って、上流のワークアイテムを下流のワークアイテムにマップします。

  • Map by Index

    上流のワークアイテムをインデックスに基づいて下流のワークアイテムにマップします。

  • Map by Range

    範囲を使って上流のワークアイテムを下流のワークアイテムにマップします。

  • Maya Server Begin

    持続型Mayaコマンドサーバーを起動します。

  • Merge

    上流のすべてのワークアイテムを結合します。

  • Nuke Server Begin

    持続型Nukeコマンドサーバーを開始します。

  • Null

    何もしません。

  • OP Notify

    何かしらのTOPワークが完了したことを通知します。

  • Output

    サブネット出力。

  • Partition by Attribute

    アトリビュートに基づいてワークアイテムを区分けします。

  • Partition by Bounds

    境界アイテムを使って、ソースアイテムを空間的に区分けします。

  • Partition by Combination

    ワークアイテムを2個毎、3個毎などに区分けします。

  • Partition by Comparison

    既存の比較を使ってワークアイテムを区分けします。

  • Partition by Expression

    エクスプレッションに基づいてワークアイテムを区分けします。

  • Partition by Frame

    フレームに基づいてワークアイテムを区分けします。

  • Partition by Index

    インデックスに基づいてワークアイテムを区分けします。

  • Partition by Node

    ノードに基づいてワークアイテムを区分けします。

  • Partition by Range

    範囲に基づいてワークアイテムを区分けします。

  • Partition by Tile

    軸に平行な境界ボックスを使ってワークアイテムを空間的に区分けします。

  • Perforce

    PDG経由でPerforceコマンドを実行します。

  • Python Mapper

    Pythonスクリプトを使ってワークアイテムをマップします。

  • Python Partitioner

    Pythonスクリプトを使ってワークアイテムを区分けします。

  • Python Processor

    Pythonスクリプトを使ってワークアイテムを生成します。

  • Python Scheduler

    Pythonベースでプログラミング可能なPDG用スケジューラ。

  • Python Script

    スクリプトを実行するワークアイテムを生成します。

  • Python Server Begin

  • ROP Alembic Output

    埋め込まれたROP Alembic ROPノードをクックするワークアイテムを生成します。

  • ROP Composite Output

    埋め込まれたComposite ROPノードをクックするワークアイテムを生成します。

  • ROP Fetch

    ROPノードまたはROPネットワークをクックするワークアイテムを生成します。

  • ROP Geometry Output

    埋め込まれたGeometry ROPノードをクックするワークアイテムを生成します。

  • ROP Mantra Render

    埋め込まれたMantra ROPノードをクックするワークアイテムを生成します。

  • ROP USD Output

    組み込まれたUSD ROPノードをクックするワークアイテムを作成します。

  • Range Extend

    上流のワークアイテムのフレーム範囲を広げて、必要に応じて新しいワークアイテムを追加します。

  • Range Generate

    指定した範囲のワークアイテムを生成します。

  • Render IFD

    Mantraを使ってIFDファイルをレンダリングするワークアイテムを生成します。

  • SQL Input

    SQLクエリの作成と行毎にワークアイテムを生成する入力ノードです。

  • SQL Output

    SQL INSERTクエリを生成する出力ノードです。

  • Send Email

    電子メールを送信します。

  • Shotgun Create

    Shotgunエンティティを作成します。

  • Shotgun Delete

    Shotgunからエンティティを削除します。

  • Shotgun Download

    ShotgunからAttachmentをダウンロードします。

  • Shotgun Find

    Shotgunエンティティを検索します。

  • Shotgun Server Begin

    持続型Shotgunコマンドサーバーを起動します。

  • Shotgun Update

    Shotgunエンティティを更新します。

  • Shotgun Upload

    Shotgunにファイルをアップロードします。

  • Sort

    アトリビュートのリストからワークアイテムを並べ替えます。

  • Split

    上流のワークアイテムを2つのグループに分けます。

  • Subnetwork

    TOPノード用コンテナ。

  • Switch

    ネットワーク分岐を切り替えます。

  • TOP Fetch

    他のTOPネットワークをクックします。

  • TOP Fetch Input

    TOP Fetchで取得したネットワークの入力。

  • Text Output

    テキストを新しいファイルに書き出したり、既存ファイルに書き足します。

  • Tractor Scheduler

    PixarのTractorを使ってワークアイテムのスケジュールを組みます。

  • URL Request

    URLからデータを要求するワークアイテムを作成します。

  • USD Import

    USDステージで見つかったPrimsからワークアイテムを生成します。

  • USD Import Files

    USDステージで見つかったファイル参照からワークアイテムを作成します。

  • USD Render

    USDファイルを書き出すワークアイテムを作成します。

  • Wait for All

    上流のワークアイテムすべてが完了するのを待ちます。

  • Wedge

    アトリビュート値を色々と変えながらワークアイテムを生成します。

  • Work Item Expand

    ファイルリストまたはパーティションを複数のワークアイテムに展開します。

  • Xml Input

    XMLファイルからデータをワークアイテムアトリビュートに抽出します。