On this page |
Unityプラグインは、Unity内から編集可能なノードのアトリビュートをペイントしたり編集できる特別な組み込みツールを備えています。 これを使用すると、Unity内からアトリビュートレベルでアセットを操作することができます。
Note
プラグインがサポートするのは、 編集可能 なノードの Point アトリビュートのペイントと編集のみです。 現在のところ、ペイントと編集がサポートされているアトリビュートタイプは、 float 、 int 、 string です。 また、位置(P)アトリビュートは編集不可です。
ノードを編集可能にするには、HoudiniでアセットのEdit Operator Type PropertiesウィンドウのNodeセクションのEditable Nodesフィールドにそのノード名を追加してください。
HDAで Attribute Paint SOP を使用する場合は、Attribute Paint SOPノードを ロック解除 した状態でHDAを保存し、そのサブネット内のOutput0
を編集可能なノードとして指定する必要があります(Editable Nodesフィールドにattribpaint1/output0
を指定するなど)。
Unityで、 Asset Options セクションの Enable Editable Node Tools チェックボックスをオンにします。 これにより、ペイントと編集のツールのUIが表示されます。
Sceneビューにペイントと編集のツールのUIが表示されます。 アトリビュートをペイントまたは編集する際、表示されるジオメトリは、編集可能なノードの出力ジオメトリを表示するように切り替わります。
編集可能なノードの出力メッシュに頂点カラー(つまりCdアトリビュート)がない場合、ペイントツールが自動的に頂点カラーを追加することに注意してください。 これは、ペイント中の視覚化のために必要です。
複数の編集可能なノード ¶
同じアセットネットワーク内にある複数の編集可能なノードを扱う場合は、特に注意が必要です。 編集可能なノードのアトリビュートがHoudiniにアップロードされると、そのノードはロックされ、その入力はもはやクックされなくなります。 このノード以降のクックは、上流の入力での変更を使用しなくなります。 そのため、複数の編集可能なノードが存在する場合、ネットワークの下流のノードに変更を適用すると、それらのノードはロックされ、上流の編集可能なノードからの入力を受け取れなくなります。 もう1つの問題は、変更を適用する順番も最終結果に影響する可能性があることです。 上流のノードには、下流のノードよりも先に変更を適用する必要があります。 そうしないと、上流の変更は無意味になってしまいます。View UIを使用すると、これらの問題を回避することができます。
Always Cook Inputs を使用すると、ノードをロック解除し、ローカルの変更を元に戻してから、上流の入力をクックし、その後ローカルアトリビュートの変更を適用することで、ロックを上書きすることができます。 これにより、ノードは常に最新の上流の入力を使用するようになります。
加えて、 Edit Order リストには、アセット内で見つかった編集可能なノードがリストされます。
このリストの表示は、編集が適用された順番(最初から最後まで)になっています。
上流ノードが下流ノードよりも上になるように、このリストを並び替える必要があります。
デフォルトでは、アセットを最初にロードする際、ノードは名前のアルファベット順に並べられます(firstEdit、secondEdit
など)。
編集可能なノードに適切な名前を使用することで、Houdiniで編集順序を指定することができます。
アトリビュートのペイント ¶
Paint Attributeツールを使用すると、編集可能なノードのジオメトリのサーフェス上に直接ペイントすることができます。 ブラシが触れる各ポイントのアトリビュート値は、そのPaint Attributeツールの設定に従って修正されます。
以下はPaint AttributeツールのUIの各フィールドの説明です:
ツール |
説明 |
---|---|
Editable Node |
現在選択されている編集可能なノード。 編集可能なノードが複数ある場合、ペイントするノードを1つ選択することができます。 ペイント時に表示されるジオメトリは、選択された編集可能なノードの出力ジオメトリです。 |
Attribute |
選択されている編集可能なノードの現在選択されているPointアトリビュート。 ペイントが作用するのはこのアトリビュートのみです。 |
Paint Values |
ペイント時にアトリビュートに適用する値です。 |
Affected Area Color |
単に視覚化を目的としたデバッグカラーで、ペイントされた領域を表示します。 マウスを離す度に、影響を受ける領域はリセットされます。 |
Cook On Mouse Release |
ペイントを停止した後、アセットをクックするかどうかを決定します。 アセットによってはクックに長い時間がかかる場合があるため、操作性の向上のために自動クックをオフにすることができます。 オフにすると、ペイント後にマウスを離した際の自動クックが無効になります。 代わりに、ユーザは必要なときにいつでも手動で Recook Asset を呼び出すことができます。 |
Brush Size |
ペイントするブラシの半径です。 |
Brush Opacity |
HoudiniのPaintノードのOpacityフィールドと同様、これはペイントと元のアトリビュート値を統合する際のブレンド係数に影響します。 |
Merge Mode |
HoudiniのPaintノードのOpacityフィールドと同様、これはペイントと元のアトリビュート値を統合する際のブレンド係数に影響します。 |
Replace |
ブラシの不透明度に基づいて、元のアトリビュート値とペイント値をブレンドします。 |
Add |
ペイント値を元のアトリビュート値に加算します。 |
Subtract |
元のアトリビュート値からペイント値を減算します。 |
Multiply |
ペイント値と元のアトリビュート値を乗算した結果を、ブラシの不透明度に基づいて、元のアトリビュート値にブレンドします。 |
Handle Color |
ビューポートに表示される、ペイントブラシのハンドルのカラーです。 |
Fill |
Merge ModeとBrush Opacityに基づいて、すべてのポイントにペイント値を適用します。 |
カラーアトリビュート ¶
ペイントツールでは、カラー
アトリビュート(Cd)の扱い方が特殊です。Unityで自動的にfloat配列(内部表現)からColorフィールドに変換されます。
ジオメトリに頂点カラーをペイントするには、Paint SOPをアセットネットワークに追加し、そのノード名をEditable Nodeフィールドに追加するだけです。 実際、Cdアトリビュートを持つすべての編集可能なノードで、頂点カラーをペイントすることができます。
アトリビュートの編集 ¶
Edit Attributeツールを使用すると、1つまたは複数のポイントを選択し、直接アトリビュート値を設定できます。ジオメトリの各ポイントは、選択可能な立方体として表示されます。それらの値を変更するには、 Selected Points Values フィールドに新しい値を入力します。
以下はEdit AttributeツールのUIの各フィールドの説明です:
ツール |
説明 |
---|---|
Editable Node |
現在選択されている編集可能なノード。編集可能なノードが複数ある場合、編集するノードを1つ選択できます。 |
Attribute |
選択されている編集可能なノードの現在選択されているPointアトリビュート。編集が作用するのはこのアトリビュートのみです。 |
Selected Points Values |
編集時、アトリビュートに設定される値です。 |
Show Only Edit Geometry |
オンの場合、現在編集可能なノードのジオメトリのみが表示されます。ポイントを簡単に選択できるようになります。 |
Pt Size |
ポイントとして表示される立方体メッシュのサイズです。 |
Unselected Point Color |
選択されていないポイントを表示するカラーです。 |
Selected Point Color |
選択されているポイントを表示するカラーです。 |
NUmber of Selected Poits |
HoudiniのPaintノードのOpacityフィールドと同様、これはペイントと元のアトリビュート値を統合する際のブレンド係数に影響します。 |
Select All |
編集可能なノードのすべてのポイントを選択します。 |