Houdini 18.5 ノード TOPノード

JSON Input TOP node

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

On this page
Since 17.5

このノードは、JSONファイルを読み込んで、ユーザが指定したデータを抽出します。 ユーザは、取り出されるデータに対してワークアイテムアトリビュートの名前だけでなく、そのタイプとリストインデックスも指定することができます。

Tip

$HH/help/files/pdg_examples/top_jsonpipelineのサンプルでは、このノードを使用して、.jsonファイルからワークアイテムを生成する方法を説明しています。

TOP Attributes

json_arrayindex

integer

Array Retrieveオペレーションを実行した時、ここには、取得されたオブジェクトの配列内のインデックスが設定されます。 取得した値が配列内に格納されていなかった場合は0が設定されます。

obj_index

integer

Array Retrieveオペレーションを実行した時、ここにはオブジェクトのインデックスが設定されます。 これは、ワイルドカードを使った照会を実行する時に、このアトリビュートが情報の取得元であるオブジェクト識別子として作用するので便利です。

query

string

Array Retrieveオペレーションを実行した時、ここには、そのオペレーションの遂行に使用されたクエリ(照会)が設定されます。 クエリ(照会)にワイルドカードを使用していた場合、そのワイルドカードは、解決された値に置換されます。

field

string

Array Retrieveオペレーションを実行した時、ここには、そのオペレーション時に取得したフィールドが設定されます。

パラメータ

Node

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

JSON File

JSONファイルのソース。

Upstream Output File

上流ワークアイテムで生成された出力ファイルをJSONファイルのパスとして使用します。

Custom File Path

ファイルパスでJSONファイルを指定します。

File Tag

上流ワークアイテムから結果を選択する際に使用するデータタグ。

File Path

JSONファイルのパス。

Operation

Operation

ここには、実行したい取得オペレーションを指定します。

Retrieve

このオペレーションは、JSONファイルから単一データの抽出を行なうことができます。 例えば、このオペレーションを使用して、オブジェクト内の特定の値またはリスト内の特定のインデックスにおける値を照会することができます。 Data Extractionsマルチパラメータには、JSONに対して実行させたいデータ抽出を指定します。

Array Retrieve

このオペレーションは、JSONファイル内のリストの各インデックスから、指定したフィールドを抽出することができます。

Deserialize Work Item

このオペレーションは、指定したJSONファイルからワークアイテムをデシリアライズします。 そのJSONファイルは、例えばJSON Outputから生成されるファイルのように、シリアライズ化されたワークアイテムファイルとしてフォーマットされている必要があります。

On Query Failure

このパラメータは、クエリ(照会)の一部が失敗した際の処理内容を制御します。 クエリが失敗する例としては、インデックス化されている配列のサイズよりも大きいインデックスをクエリに使用した場合です。

このノードが Raise Error モードに設定されていれば、クエリが失敗するとオペレーション全体が自動的に失敗するようになります。

このノードが Add Warning モードに設定されていれば、警告が発せられますが、クックを終了させるようになります。 Array Retrieveオペレーションが実行されている場合、このノードは他のクエリを完了させようと試みます。

Add Warning モードは、JSONファイルに不均一データが含まれている場合に役立ちます。 例えば、オブジェクトの配列に特定のサブオブジェクトが含まれたり、含まれなかったりする場合です。

Data Extractions

このマルチパラメータ内のパラメータを使用することで、Retrieveオペレーションを使用した際に実行させたいデータ抽出を指定することができます。

Query

このパラメータは、JSONオブジェクトのパスまたは抽出したい値を指定する際に使用されます。 ここに"/"文字で区切った階層構文を使用することで、そのパスを指定することができます。 その階層内にリストがあれば、数値を使って配列インデックスを指定することができます。

例えば、以下のJSONファイルがあったと仮定します:

{ "plants" : [ { "name" : "tree", "inMyGarden" : true, "height" : 5.5 }, { "name" : "sunflower", "inMyGarden": false, "height" : 3 } ] }

そして、1番目の植物の高さを取得したい場合は、その照会は以下のように指定します:

plants/0/height

2番目の植物の名前を取得したい場合は、その照会は以下のように指定します:

plants/1/name

Array Retrieveオペレーションを実行する時は、その照会には必ずJSON内のリストを指定してください。 以下で説明するように1つ例外があります。

Array Retrieveオペレーションには、その照会にワイルドカード(*)を使用することができます。 このワイルドカードによって、JSON階層が分岐で走査され、そのレベルにおける各オブジェクトがJSON走査の分岐になります。

以下のようなJSONファイルがあったと仮定します:

{ "Houdini" : { "Contexts" : { "Sop" : { "mountain" : { "name" : "Mountain" }, "polybevel" : { "name" : "PolyBevel" } }, "Top" : { "jsoninput" : { "name" : "Json Input" }, "jsonoutput" : { "name" : "Json Output" } } } } }

そして、このJSONファイル内のすべてのノードの名前を取得したいので、以下の照会を実行したとします:

Houdini/Contexts/*/*

そして、Fieldパラメータをnameに設定します。

これによって、4個の別々のワークアイテムが生成され、各ワークアイテムにはノード名が含まれます。 これらのオブジェクトすべてが独立していて、同じ配列に属しているわけではないので、それぞれのjson_arrayindexは0に設定されます。

Field

このパラメータは、Array Retrieveオペレーションを実行した時にのみ使用されます。 これは、Queryで指定されたリストの配列インデックスから取得されるプロパティを指定する際に使用されます。

Queryで指示された配列が匿名オブジェクト(例えば、整数の配列)で充たされていた場合、 このパラメータには、単に配列内のすべてを取得することを意味するワイルドカード(*)を設定することができます。

Attribute Name

ここには、抽出した値を格納するワークアイテムアトリビュートの名前を指定します。

Store As

ここには、照会されたJSONデータの保存に使用するPDGアトリビュートのタイプを指定します。 特定のPDGアトリビュートタイプが選択されていて、且つ、そのJSONデータタイプと一致しなかった場合、結果はエラーになります。 Automatic オプションを選択すると、JSONオブジェクトがPyObjectsとして保存されます。

Automatic

使用するPDGアトリビュートのタイプが自動的にJSONデータのタイプから決定されます。

String

データが文字列アトリビュートとして保存されます。

Integer

データが整数アトリビュートとして保存されます。

Float

データが浮動小数点アトリビュートとして保存されます。

PyObject

データがPyObjectアトリビュートとして保存されます。

String Array

データのリストが文字列アトリビュートに保存されます。

Integer Array

データのリストが整数アトリビュートに保存されます。

Float Array

データのリストが浮動小数点アトリビュートに保存されます。

Unpacked Attributes

このオプションは、JSONオブジェクトを個々のアトリビュートに展開します。

PDG Value Index

ここには、抽出した値を格納するワークアイテムアトリビュートのリストのインデックスを指定します。

Examples

example_top_jsoninput Example for JSON Input TOP node

このサンプルでは、Json Inputノードを使って、JSONファイルに含まれている情報に基づいてワークアイテムを生成する方法を説明しています。

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出力を生成する色々なオペレーションを実行します。

  • 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ファイルからデータをワークアイテムアトリビュートに抽出します。