On this page |
概要 ¶
フラグ は、ノードの状態を表現します。ネットワークタイプによってノードのフラグが異なります。
特定のノードで利用可能なフラグは、 ネットワークタイプ 特有のものです:
フラグの設定 ¶
-
通常のフラグはトグルです: フラグをクリックすることでオンオフを切替えます。フラグがオンの時、そのフラグがカラーで充たされます。オフの時、ノードの背景カラーが表示されます(デフォルトでは灰色)。
-
いくつかのフラグは少し複雑です。例えば、SOPネットワークでは Displayフラグ は同時に1個のノードしか設定できません。このフラグを持ったノードが親オブジェクトのジオメトリを表現します。このフラグを⌃ Ctrlクリックすることで レンダーフラグ が設定されるので、表示用のジオメトリとレンダリング用のジオメトリを別々に設定することができます。詳細は、SOPのヘルプを参照してください。
-
レンダーノードのフラグは実際にはボタンです。このフラグをクリックすることでノードにレンダリングを実行させます。詳細は、レンダーノードのヘルプを参照してください。
-
ノードのフラグを切替える:
-
ノード本体のフラグ領域をクリックして、以下のどれかを行ないます:
-
マウスカーソルをノード上に置くとノードリングが表示されます。そのリング上のボタンによってフラグの切り換えができます。
-
フラグのホットキーを使用します。
-
-
一部のノードには、ノード本体に組み込まれていないほとんど使用しないフラグがあります。それらのフラグは、ノード上をクリックしたコンテキストメニューで切替えることができます。そのフラグの状態は、通常ではノードのフラグ領域の色付けではなく、バッジで示されます。
-
複数ノードを選択して、それらのどれかのフラグをクリックすることで、選択したすべてのノードのフラグを切替えることができます。例えば、一度に複数のSOPノードをバイパスにするには、それらのノードを選択して、そのどれかのノードの黄色いBypassフラグをクリックします。
フラグのホットキー ¶
いくつかのフラグはホットキーに対応しています。 ネットワークエディタでは、Q, W, E, R, Tがフラグのホットキーとして使用されています。 それらのホットキーは、ネットワークによって異なるフラグを制御します。
-
QまたはBは常にバイパスです。
-
ホットキーの文字は、フラグの頭文字から取ったものではありませんが、一部はそうなっています。キーボードに指を置いた状態でも操作できるように、それらのキーが一列に並ぶように優先されています。Rが一番良く変更するフラグ、次がE、T、Wです。
以下の2つの方法でフラグのホットキーを使用することができます:
-
変更したいノードを選択してキーを押します。
または
-
キーを押しながらノードをクリックすることで、そのノードのフラグを設定/解除することができます。
これは、タブレットユーザにとって使いやすいです。また、ディスプレイフラグキーを押しながらネットワーク内をクリックしていくことで簡単にディスプレイフラグを移動させることもできます。
Set Primary Flag
このキーを押したままノードを選択すると、プライマリフラグ値が切り替わります。
Set Secondary Flag
このキーを押したままノードを選択すると、セカンダリフラグ値が切り替わります。
Set Third Flag
このキーを押したままノードを選択すると、3番目のフラグ値が切り替わります。
Set Fourth Flag
このキーを押したままノードを選択すると、4番目のフラグ値が切り替わります。
Set Bypass Flag
このキーを押したままノードを選択すると、バイパスフラグ値が切り替わります。
バッジ ¶
バッジを参照してください。
オブジェクトネットワーク ¶
オブジェクトまたは“シーン”レベル(/obj/
)には、シーン内の“トップレベル”のオブジェクト(ジオメトリオブジェクト、スケルトン、ライト、カメラ)が含まれ、それらのオブジェクト間の空間的関係と階層的関係をセットアップすることができます。
オブジェクトレベルでは、シーン内のキャラクタ、プロップ、カメラ、ライトの位置を決めます。 Geometryオブジェクトノード内では、ジオメトリノード(SOPs)を使って、実際のサーフェスをモデリングして、そのキャラクタのスキン/シェイプを定義します。
オブジェクトレベルでノード間を接続することで、階層(“親子化”)関係を構築します。
オブジェクトのフラグ ¶
アイコン |
キー |
説明 |
---|---|---|
|
E |
Selectable 。このSelectableフラグがオフの時は、ビューア内でそのノードを選択することができません。他のオブジェクトを扱っている時に不意にそのオブジェクトを選択しないようにすることができます。 このSelectableフラグがオンの時は、そのノードの左側のフラグが緑色に点灯します。 |
|
R |
Display 。このDisplayフラグがオフの時は、そのオブジェクトがビューア内で非表示になります。 このDisplayフラグがオンの時は、そのノードの右側のフラグが青色に点灯します。 |
他のオブジェクトフラグ ¶
ノードをクリックして Flags サブメニューを開くことで、これらのフラグを設定することができます。
Display Origin
オブジェクトの原点に座標を表示します。Displayフラグをオフにすると、その座標も非表示になります。
X-ray
オブジェクトを他のジオメトリの背後に表示します。これは、キャラクタスキンの中にあるボーンを表示させるのに使用します。
ジオメトリ(SOP)ネットワーク ¶
オブジェクトレベルのGeometryオブジェクトには、ジオメトリ(SOP)ネットワークを格納します。このネットワークは、オブジェクトのジオメトリを作成するジオメトリノードを保持します。
ジオメトリレベルでノード間を接続することで、ジオメトリを生成するノード(例えばSphere)から始めて、そのジオメトリを修正するといった、ノード間のジオメトリの流れを制御します。
ジオメトリノードの使用方法に関する詳細は、ジオメトリを参照してください。
SOPのフラグ ¶
アイコン |
キー |
説明 |
---|---|---|
|
Q または B |
Bypass はノードを無効にし、その入力ジオメトリを未変更のまま出力に渡します。これは、ビューア内でそのノードの効果をテストして可視化するのに役立ちます。 このBypassフラグがオンの時は、そのノードの左側のフラグが黄色に点灯します。 |
|
None |
Lock はノードの出力ジオメトリを“フリーズ”してキャッシュ化します。このノードは、ロックされると、クックせずに“フリーズした”ジオメトリを出力します。これは通常では必須ではなく、(このフラグはノード上でクリックできず、ホットキーもないので)混乱を招く可能性がありますが、以下の2つのメリットがあります:
ノードをロックすると、そのノードの左から2番目のフラグが赤色に点灯し、バッジがノード上に表示されます。 この“ロック”とロックされたデジタルアセットを混同しないでください。 |
|
E |
Template は、ノードのDisplayフラグがオンになっていなくても、そのノードのジオメトリをビューポート内で可視化(そしてスナップ可)します。 ビューポートのDisplay Optionsでは、ビューポートでのテンプレートジオメトリの描画 方法 (例えば、ワイヤーフレームやシェーディングとして描画)を制御することができます。 普通にノードのTemplateフラグをクリックすると、他のすべてのノードのTemplateフラグが無効になります。Templateフラグを⇧ Shiftクリックすれば、一度に複数ノードをテンプレートにすることができます。 このTemplateフラグがオンの時は、そのノードの右から2番目のフラグが茶色に点灯し、茶色のリングがそのノードに表示されます。 |
|
R |
Display は、3Dビューアに表示させるジオメトリのノードをマークします。これにはネットワークの最後をマークして、そのネットワークの累積された出力を表示させることが多いのですが、別のノードの出力をチェックするために、そのネットワーク内でDisplayフラグを移すこともあります。 普通にDisplayフラグを移すと Renderフラグ も移りますが、それらのフラグを別々に設定することができるので、ビューアに表示させるジオメトリのノードとレンダリング時にレンダリングさせるジオメトリのノードに対して別々にフラグを設定することができます。これにより、ビューアにはプロキシジオメトリを表示させて、レンダリングにはより詳細なジオメトリを使用することができるので便利です。 このDisplayフラグがオンの時は、そのノードの右側のフラグが青色に点灯し、青色のリングがそのノードに表示されます。 |
|
T |
Render このRenderフラグがオンの時は、そのノードの右側のフラグが紫色に点灯し、紫色の円がそのノードに表示されます。 |
他のSOPのフラグ ¶
ノードをクリックして Flags サブメニューを開くことで、これらのフラグを設定することができます。
アイコン |
キー |
説明 |
---|---|---|
|
W |
Templateフラグを⌃ Ctrlクリックすることで、 Selectable Template フラグを設定することができます。 これは、ジオメトリを可視化し、 且つ ビューポート内でDisplayフラグを持ったジオメトリのコンポーネントだけでなく、そのテンプレートジオメトリのコンポーネントも選択することができます。 選択可能なテンプレートのコンポーネントにオペレーション(例えば、PolyExtrude)を適用すれば、Houdiniは自動的にMergeノードを挿入して、 そのテンプレートジオメトリとそのDisplayジオメトリをマージし、そのマージされたジオメトリのコンポーネントに対してそのオペレーションを適用します。 これは、注意しないとネットワーク内がごちゃごちゃしてしまうので、一般的には、Selectable Templateを避けて、あなた自身でMergeノードを作成して、そのマージされたジオメトリに対して作業した方が良いでしょう。 |
|
None |
Unload フラグは、そのノードを通過するジオメトリをキャッシュ化しないようにHoudiniに伝えます。これはメモリを節約しますが、クックが遅くなります。 表示されているジオメトリは例外で、そのジオメトリは使用中なのでキャッシュ化されたままになります。 ノードにUnloadフラグを設定すると、バッジがそのノードに表示されます。 |
ダイナミクスノード(DOP)ネットワーク ¶
DOPネットワークには、オブジェクトやフォースを作成したり読み込むためのダイナミクスノード(DOPs)を格納し、そこで接続を構築し、その相互作用をシミュレーションするためのソルバを設定します。
ダイナミクスシェルフツールを使用すれば、必要に応じて、あなたに代わってDOPネットワークを作成します。また、シーンのネットワークレベルで、あなた独自のDOPネットワークを作成することもできます。
複数のDOPネットワークを作成して、別々のシミュレーションを含めることができます。ダイナミクスメニューでは、シェルフツールが使用するネットワークを選択することができます。
ダイナミクスノードの使用方法に関する詳細は、ダイナミクスを参照してください。
DOPのフラグ ¶
アイコン |
キー |
説明 |
---|---|---|
|
Q または B |
Bypass はノードを無効にし、そのデータツリーを未変更のまま出力に渡します。これは、ビューア内でそのノードの効果をテストして可視化するのに役立ちます。 このBypassフラグがオンの時は、そのノードの左側のフラグが黄色に点灯します。 |
|
E |
Hidden このHiddenフラグがオンの時は、そのノードの右から2番目のフラグがシアン色に点灯します。 |
|
R |
Output は、シミュレーションのデータツリーとして使用する出力のノードをマークします。これにはネットワークの最後をマークして、そのネットワークの累積された出力を表示させることが多いのですが、そのネットワーク内でDisplayフラグを移すことができます。 このOutputフラグがオンの時は、そのノードの右側のフラグがオレンジ色に点灯し、オレンジ色のリングがそのノードに表示されます。 |
コンポジットノード(COP2)ネットワーク ¶
COPネットワークには、2Dピクセルデータを制御するためのコンポジットノード(COPs)を格納します。 これは、レンダーパスなどの画像をコンポジットするのに役立ちますが、COPsを使用することでデプスマップなどの他のピクセルベースのデータを制御することもできます。
Houdiniは、/img
にデフォルトのコンポジットネットワークを作成します。
また、シーンレベルで、あなた独自のCOPネットワークを作成することもできます(例えば、レンダーノードの隣に作成して、COPネットワークを使用して、そのレンダーノードの出力を処理することができます)。
COPsを接続することで、画像データを読み込んだり生成するノードから始めて、その画像を修正するといった画像データの流れを制御します。
コンポジットノードは、他のネットワークノードと比べてノードボディが異なっています。
-
コンポジットノードは、そのノードボディ内に プレビューサムネイル が含まれます。そのプレビューサムネイルを表示または非表示にするには、そのノードの左下コーナーの矢印をクリックします。
-
ノードが表示する画像平面を制御するには、そのノードの右下コーナーの平面メニューをクリックします。
-
コンポジットノードに組み込まれた特別な機能が原因で、カスタムシェイプをコンポジットノードに割り当てることができません。
コンポジットネットワークによって生成された画像をComposite Viewタブで確認することができます。
コンポジットノードの使用方法に関する詳細は、コンポジットを参照してください。
COPのフラグ ¶
アイコン |
キー |
説明 |
---|---|---|
|
Q または B |
Bypass はノードを無効にし、その入力画像を未変更のまま出力に渡します。これは、ビューア内でそのノードの効果をテストして可視化するのに役立ちます。 このBypassフラグがオンの時は、そのノードの左側のフラグが黄色に点灯します。 |
|
T |
Template は、ビューア内でノードの画像を比較可能にします。そのビューアUIのコントロールを使用することで、表示出力とテンプレート出力を比較することができます。 このTemplateフラグがオンの時は、そのノードの左から2番目のフラグが紫色に点灯し、茶色のリングがそのノードに表示されます。 |
|
E |
Output は、ネットワーク全体の出力として使用される出力のノードをマークします。 このOutputフラグがオンの時は、そのノードの右から2番目のフラグが暗いオレンジ色に点灯し、オレンジ色の円がそのノードに表示されます。 |
|
R |
Display は、COPビューアに表示させる出力のノードをマークします。これにはネットワークの最後をマークして、そのネットワークの累積された出力を表示させることが多いのですが、異なるノードの出力をチェックするために、そのネットワーク内でDisplayフラグを移すことができます。 このDisplayフラグがオンの時は、そのノードの右側のフラグが青色に点灯します。 |
レンダーノード(ROP)ネットワーク ¶
レンダーネットワークには、レンダリングジョブを意味するレンダーノード(ROPs)を格納します。 ノードによって異なるレンダラー(例えば、MantraやRenderMan)を起動します。ノードパラメータには、レンダリングするフレーム範囲や出力ファイル名などのオプションを指定します。
Houdiniは、/out
にデフォルトのレンダーネットワークを作成します。
トップレベルの Render メニュー内の項目では、このネットワーク内にレンダーノードを作成したり編集することができます。
また、シーンレベルで、あなた独自のROPネットワークを作成することもできます。例えば、アセット内に独自のテクスチャを生成できる部分としてレンダーノードを埋め込むことができます。
ROPレベルでは、ノードを接続する必要がありません。つまり、各ノードは、レンダラーと、シーンのレンダリングに使用できる設定を意味します。 とはいえ、ROPノードを一緒に接続することでディペンデンシーグラフを作成することができるので、レンダーパス間の依存関係を定義することができます。
レンダーノードの使用方法に関する詳細は、レンダリングを参照してください。
レンダーのフラグ ¶
|
Q または B |
Bypass は、そのノードがレンダーディペンデンシーネットワークの一部の時に、そのノードを無効にして、そのレンダリングをスキップします。 このBypassフラグがオンの時は、そのノードの左側のフラグが黄色に点灯します。 |
|
None |
Lock は、上流のディペンデンシーをレンダリングしないようにします。 ノードをロックすると、そのノードの左から2番目のフラグが赤色に点灯し、バッジがノード上に表示されます。 この“ロック”とロックされたデジタルアセットを混同しないでください。 |
|
T |
Render ボタン。これは、レンダーダイアログを開き、このノードからレンダリングを開始することができます。これは、実際にフラグではありません。 |
VOPネットワーク ¶
VOPネットワークには、VEXシェーディング言語による処理を表現したVOPノードを格納します。 VOPネットワークを使用してマテリアル(シェーダ)を構築することができます。 また、HoudiniにはVOPをジオメトリなどの他のタイプのデータを制御するための汎用ビジュアルプログラミング言語として使用することができる場所がたくさんあります。
Houdiniは、/mat
にデフォルトのシェーダVOPネットワークを作成します。
色々な他のノードタイプは、特定のデータを修正するためのVOPネットワーク(例えば、Attribute VOPジオメトリノード)を含んでいます。どのネットワークレベルでもスタンドアローンなVOPネットワークを作成することができます。
VOPsは、他のネットワークタイプとはシェイプとネットワークの指向が異なります。VOPsは、ノードボディの一部として名前の付いた複数の入力と出力を持ちます。
-
このノードの右下コーナーのアイコンをクリックすることで、コンパクトモードに切り替わります。
-
すべての入力を表示します。
-
接続された入力のみを表示します。他の入力は、下部の“More”メニューに入ります。
-
すべての入力を“More”メニューに隠します。
“More”メニューをクリックすることで、接続を開始する入力を選択したり、その入力の接続先となるMoreメニューに接続することができます。
-
-
円ではなく名前の隣の三角形の入力リスト内の白の項目が グループヘディング です。このグループヘディングをクリックすると、そのグループが折り畳まれ、折り畳まれたヘディングをクリックすると展開されます。グループが折り畳まれている時、そのヘディングは“More”メニューのような動作をします(上記参照)。
-
それぞれのパラメータのギアメニューを使用することで、入力を隠すことができます。これは、入力の下部の“More”メニューに隠された入力を移します。
-
固有のレイアウトが原因で、カスタムシェイプをVOPsに割り当てることができません。
VOPノードの使用方法に関する詳細は、シェーディングを参照してください。
VOPのフラグ ¶
アイコン |
キー |
説明 |
---|---|---|
|
R |
Debug は、ノードの出力を“デバッグ”モードに切り替えます。ノードがデバッグモードの時、それぞれの出力に対して通常通りに実行して入力を通過させるのか、定数を出力するのかセットアップすることができます。 デバッグモードでの出力の挙動を選択するには、その出力をAlt + クリックして、 Debug 下の Execute, Pipethrough, Constant を選択します。 Pipethrough または Constant を選択すると、通過させる入力または出力する定数を指定するためのダイアログが開きます。 このDebugフラグがオンの時は、そのノードの一番左側のフラグがシアン色に点灯します。 |
|
Q または B |
Bypass は、ノードの出力を“バイパス”モードに切り替えます。ノードが“バイパス”の時、それぞれの出力に対して入力を通過させるのか、定数を出力するのかセットアップすることができます。 バイパスモードでの出力の挙動を選択するには、その出力をAlt + クリックして、 Bypass 下の Pipethrough または Constant を選択します。 どれかを選択すると、通過させる入力または出力する定数を指定するためのダイアログが開きます。 |
|
None |
Material は、オブジェクトをシェーディングするためのマテリアルを表現したVOPsをマークします。このフラグを持ったVOPsは、マテリアルを選択するための色々なユーザインターフェースに表示されます。 このMaterialフラグがオンの時は、そのノードの一番右側のフラグが暗いオレンジ色に点灯します。 |
チャンネルノード(CHOP)ネットワーク ¶
CHOPネットワークには、アニメーションカーブや音声などの時間ベースのチャンネルデータを制御するためのチャンネルノード(CHOPs)を格納します。
Houdiniは、/ch
にデフォルトのCHOPネットワークを作成します。
また、シーンレベルで、あなた独自のCHOPネットワークを作成することもできます(例えば、キャラクタの中にキネマティクスを制御するためのCHOPネットワークを作成することができます)。
CHOPsを接続することで、チャンネルデータを読み込んだり取りに行ったりするノードから始めて、そのチャンネルを修正するといったチャンネルデータの流れを制御します。
CHOPネットワークによって生成されたデータをMotion FX Viewタブで確認することができます。
CHOPのフラグ ¶
アイコン |
キー |
説明 |
---|---|---|
|
Q または B |
Bypass はノードを無効にし、そのチャンネルを未変更のまま出力に渡します。これは、CHOPビューア内でそのノードの効果をテストして可視化するのに役立ちます。 このBypassフラグがオンの時は、そのノードの左側のフラグが黄色に点灯します。 |
|
E |
Export は、このノードのデータのチャンネル名に相当するチャンネルを上書きします。 例えば、ノードが生成したチャンネルに 通常では、ノードのExportフラグをクリックすると、それ以外の他のノードすべてのExportフラグが無効になります。 Exportフラグを⇧ Shiftクリックすることで、一度に複数のノードをエクスポートすることができます。 このExportフラグがオンの時は、そのノードの左から2番目のフラグが明るいオレンジ色に点灯します。 |
|
T |
Output は、このノードの出力をCHOPネットワークの出力として設定します。 このOutputフラグがオンの時は、そのノードの左から2番目のフラグが暗いオレンジ色に点灯します。 |
|
R |
Display は、CHOPビューアに表示させるチャンネルのノードをマークします。複数のノードにこのフラグを設定/クリアすることで、ビューア内でそれらのチャンネルを同時に表示することができます。 通常では、ノードのDisplayフラグをクリックすると、そのノードのDisplayフラグのみが有効になります。 Displayフラグを⌃ Ctrlクリックすることで、排他的にDisplayフラグが設定されて、それ以外の他のノードすべてのDisplayフラグが無効になります。 このDisplayフラグがオンの時は、そのノードの右側のフラグが青色に点灯します。 |
他のCHOPのフラグ ¶
ノードをクリックして Flags サブメニューを開くことで、このフラグを設定することができます。
アイコン |
キー |
説明 |
---|---|---|
|
None |
Lock はノードの出力チャンネルを“フリーズ”してキャッシュ化します。このノードは、ロックされると、クックせずに“フリーズした”チャンネルを使用します。これは通常では必須ではなく、(このフラグはノード上でクリックできず、ホットキーもないので)混乱を招く可能性がありますが、以下の2つのメリットがあります:
ノードをロックすると、バッジがノード上に表示されます。 この“ロック”とロックされたデジタルアセットを混同しないでください。 |
タスクノード(TOP)ネットワーク ¶
TOPネットワークには、実行したい一連のタスクまたは ワークアイテム を表現したタスクノードを格納します。 主なタイプのTOPノードが4つあります: ワークアイテムを生成する プロセッサ 、ワークアイテムのジョブを走らせる スケジューラ 、入力のワークアイテムをまとめて結合する パーティショナー 、他の関連していないワークアイテム間に依存関係を構築する マッパー 。
TOPノードネットワークを使用すれば、ワークアイテムの生成、ワークアイテムをローカルまたはファームで実行、すべてのワークアイテム間に依存関係のネットワークを構築、可能な限り効率的にすべてのワークアイテムを処理する方法を算出するといったスケール可能なレシピを作成することができます。 このレシピのことを PDG (Procedural Dependency Graph)と呼びます。 TOPsとPDGに関する情報は、TOPsの紹介を参照してください。
Houdiniは、tasks
の場所にデフォルトのタスクネットワーク(/topnet1
)、/tasks/topnet1
の場所にデフォルトのスケジューラ(localscheduler
)を作成します。
ROPsとほぼ同じで、シーン内のどのレベルにでもスタンドアローンのTOPネットワークを作成することができます。
例えば、/stage
コンテキスト内にTOPネットワークを作成することで、Solarisプロジェクト用にLOP Primsのバリエーションを生成することができます。
TOPレベルでは、スケジューラを除いてすべてのノードが繋がっている必要があります。
TOPフラグ ¶
TOPノードとそのワークアイテムをビューポート内で視覚化する方法に関する情報は、PDGノードネットワークインターフェースを参照してください。
アイコン |
キー |
説明 |
---|---|---|
|
Q または B |
Bypass は、ノードを無効にし、そのチャンネルをそのまま出力に通過させます。 これは、そのノードの効果をビューポートまたは出力でテストして視覚化するのに役立ちます。 ノードをバイパスにすると、そのノードの左側のフラグが黄色に点灯します。 |
|
T |
Output は、このノードの出力をTOPネットワークの出力として設定します。 Outputフラグを有効にすると、そのノードの右側のフラグがオレンジに点灯し、そのノードにオレンジの輪っかが表示されます。 |
|
なし |
Lock は、入力またはパラメータに変更があっても更新されないようにそのノードのワークアイテムをフリーズします。これは、ワークアイテムに何も変更を加えません。
ノードをロックすると、ノード上の左から2番目のフラグが 赤 になり、そのノードの隣に雪の結晶の形をしたバッジが表示されます。 |
TOPバッジ ¶
アイコン |
意味 |
説明 |
---|---|---|
|
ノードが動的です |
TOPノードが 動的 である時、そのノードに紫色のバッジが表示されます。 TOPsには2つのタイプのノードがあります: 静的ノードと動的ノードです。 静的ノードは、上流のデータに何も依存しないので入力なしでワークアイテムを生成することができます。 その一方、動的ノードはワークアイテムを生成するのに上流の入力からの情報を必要とします。 その理由は、動的ノードはそのノードがクックされた時にしかワークアイテムを生成することができないからです。 静的TOPノードと動的TOPノードとTOPネットワークでのその重要性に関してもっと知りたいのであれば、Static vs. Dynamicを参照してください。 |
|
ノードがロックされています |
このノードのワークアイテムがフリーズまたは ロック されています。 TOPノードのページの Lock フラグを参照してください。 |
|
ノードがロックされたHDAです |
このノードはロック(同期)されたデジタルアセットです。 |