On this page |
概要
3Dモデルにテクスチャ画像を適用するには、コンピュータ側にその平坦な画像のピクセルを3Dサーフェス上のポイントにマッピングする方法を伝えるために、まず最初にテクスチャ空間内に 平坦化された バージョンの3Dジオメトリを作成する必要があります。モデルを平坦化したこの表現は、そのジオメトリの各頂点上のアトリビュート(通常はuv
)にUV座標として記録されます。
このノードは、2つの工程で動作します。 このノードは、( シーム(継ぎ目) を定義してモデルのジオメトリを扱いやすい小さなピースに分割した)個々のテクスチャピースを受け取り、それらのピースを2Dテクスチャ空間に 平坦化 して、ポリゴンサイズの均等化を試みます。
Note
このノードは、インタラクティブ性が最適化されたアルゴリズムを使って、UVピースを詰め込みます。 もっとオプションが欲しい、もっと効率的な詰め込みを行ないたいのであれば、このノードとUV Layoutノードを併用してください。
このノードは、平坦化アルゴリズム用の向けに拘束を追加することができます。 この拘束は、強制的にレイアウトアルゴリズムが特定の条件を満たすようにして、最終UVレイアウトに対してさらなる制御を可能にします。
このノードの状態でツールを使って拘束を指定すれば、このノードをインタラクティブに使用することができます。 または、 Manual Layout を無効にすれば、このノードをプロシージャルに使用することができます。
ワークフロー
To... | Do this |
---|---|
UVが表示されるようにビューアをセットアップする |
デフォルトでは、Houdiniのビューアは1個のPerspectiveビュー("Persp")しか表示しません。 マルチビューポートレイアウトに切り替えて、それらのどれかのビューポートで、現行ネットワークのジオメトリのUV空間を表示することができます。
|
UV Flattenを使って、モデルのテクスチャ空間を配置する |
注: 最初はほとんどのジオメトリは自己重複したピースに平坦化されます。例えばトーラスにUV Flattenを適用すると、単にトーラスの上部と下部がUV平面内にお互いに重なった状態で投影されます。 このノードが別々に3Dピースを重複のない平坦なピースに"アンラップ(展開)"できるようにするには、UVシームをカットする必要があります。 |
拘束を追加する |
ビューア内でノードの状態がアクティブになっている時、ビューアの上部にあるオペレーションツールバー内のツールアイコンを使用することで、ビューアのクリックで拘束を追加できるツールを切り替えることができます。 (ビューア内でのコンテキストメニューからでもツールを切り替えることができます。) クリックすると即座に動作するように、または、選択してEnterが押されるのを待ってから動作するようにツールを切り替える方法に関しては、クィック選択を参照してください。 |
拘束を除去する |
|
再度ビューア内にUV Flattenインターフェースを表示させる |
従来のように ⎋ Escを押してViewツールに切替えたり、別のノードに切替えると、ビューアは、その新しいツールのインターフェースの表示に切り替えます。 再度UV Flattenインターフェースを表示するには、ネットワークエディタでUV Flattenノードを選択してから、 Handlesツールをクリック、または、ビューア内でEnterを押します。 |
詰め込み先の領域を指定する |
UV Flattenツールを有効にすると、UVビューの0,0から1,1までの領域にボックスハンドルが表示されます。 このノードは、平坦化されたピースをこの領域内に詰め込みます。このボックスの角または辺をドラッグすることで、その詰め込み領域のサイズ/形状を変更することができます。 Center と Size のパラメータを使用することで、このボックスの座標を正確に設定することもできます。 これは、既存のUV島の UV Attribute と干渉しないようにする必要がある場合、または、0,0から1,1以外のUV領域にピースを詰め込みたい場合に役立ちます。 Note どれかのピースをピン留めしておけば、詰め込み領域を変更しても、それらのピースは移動もサイズ変更もしなくなります。 |
クィック選択
-
クィック選択が有効(デフォルト)になっている時、特定のツールがクリックに即座に反応します:
-
Cutツールでは、エッジをクリックすると、そのエッジがシームになります。
-
Sewツールでは、シームエッジをクリックすると、そのシームが除去されます。
-
Rectifyツールでは、四角グリッド領域上にマウスカーソルを動かすとその領域がハイライトされます。四角グリッド領域内をクリックすると、その全体の領域が選択されます(それでも、拘束を適用するには、Enterを押す必要があります)。
-
-
クィック選択が無効になっている時、どのツールでも、ポイント/エッジ/フェースを選択してからEnterを押さなければなりません。
To... | Do this |
---|---|
クィック選択を切り替える |
ビューア内で右クリックして、 Quick Selection を選択します。 |
手動によるレイアウトを理解する
UV Flattenには、インタラクティブな方法とプロシージャルな方法の2通りの使い方があります。 これらの方法を切り替えることができますが、このノードの挙動の違いを理解する必要があります。
-
インタラクティブ (デフォルト)な方法でこのノードを使用すると、詰め込み前にシームをカットするといったいくつかの拘束( Layout Constraints )を適用してから、それらの拘束の影響を受けた形状を使って、ピースを詰め込みます。すると、インタラクティブに複数の拘束(例えば、複数シームのカット、UVsのピン留め)を作成することができます。これらの拘束( Flattening Constraints )は、詰め込んだレイアウトに 対して 適用されます。
その理由は、それぞれピースを少し変更した後に詰め込み直すと、レイアウトが根本的に変わってしまうので、それらのピースがあちこちに飛んでインタラクティブに作業するのが極端に難しくなるからです。 インタラクティブな変更を 詰め込み後 に適用することで、作業する時にピースが動かなくなります。
インタラクティブな変更を"確定"して、新しい拘束を使ってもっと効率的なレイアウトで詰め込みし直したい場合、ビューアの上部にあるオペレーションツールバーの Repack ボタンをクリックします。 Repack をクリックすると、このノードは、インタラクティブに追加した詰め込み後の"Flattening"拘束を詰め込み前の"レイアウト"拘束パラメータに コピー します。 次に、このノードは、それらの拘束を考慮してピースを詰め込みし直します。
インタラクティブな変更、レイアウトへの影響を確認して詰め込みし直し、必要に応じてもっとインタラクティブな変更を加えるといったサイクルで作業することができます。
-
このノードでは、平坦化処理をインタラクティブではなく プロシージャル に作業したいことでしょう。例えば、スクリプトを使って何かしらの方法でシームを計算することができます。または、既存の島があって、このノードをレイアウトまたはUVの緩和化に使用したいだけかもしれません。この場合、 Repack をクリックすることなく、パラメータを変更するだけで即座にその結果を出力に反映させたいです。
このノードがプロシージャルに動作するように設定するには、( Layout Constraints 下にある) Enable Manual Layout パラメータを有効にします。
Enable Manual Layout が有効な時、"Flattening"拘束が 唯一の拘束 になり、それらの拘束は 詰め込み前 に適用されます。 詰め込み後の拘束はありません。そのため、"Layout"拘束パラメータ内の値は無視されます。
このモードでは、"Flattening"拘束に加えた変更は即座にノードの出力に反映されます。
シーム(継ぎ目)
シームには、このアルゴリズムがジオメトリをピースに切断する箇所を指定します。 モデルに何もシームがなければ、このノードは、単にジオメトリをUV平面上に投影するだけの機能になります。 モデルが極端に単純でない限り、これだと、悪い歪みとUVピースの重なりを生成してしまいます。
このノードは、自動的にシームを追加しません。 このノードの前にUV Autoseamノードを接続するか、または、Cutツールを使って手動でシームをカットすることができます。 通常では、ジオメトリを平坦化する時にそれらが重ならないように最低でも2,3個のピースにカットを加える必要があります。
To... | Do this |
---|---|
UV Flattenツールを使って、インタラクティブにシームをカットする |
|
シーム(継ぎ目)を結合する |
このツールは、継ぎ目にしていたエッジ( エッジの結合を開始する時に、平坦化されたピース自体が重なっていると個々のエッジを確認/クリックしにくいことがあります。 そんな時は、UVビューよりも3D Perspectiveビューでエッジをクリック/選択した方が扱いやすいでしょう。 |
新しい継ぎ目を考慮してピースを再パックする |
(ビューアの上部にある)オペレーションツールバーの Repack ボタンをクリックします。 |
Tips
-
UVビューまたは3Dビューでエッジをクリックすることができます。
-
このノードには、継ぎ目を維持するためのパラメータが2つあります: "Layout" Seams と"Flattening" Seams 。これは、インタラクティブな継ぎ目カットに対応するためにあります。継ぎ目をインタラクティブにカットすると、その新しい継ぎ目が "Flattening" Seamsパラメータに追加されます。これらの継ぎ目は、 平坦化 に影響を与えます(カットする度にピースの形状が変化します)が、 配置 には影響を与えません(このノードは、カットする度にすべてのピースを異なる位置に再パックするわけではありません)。
Repack をクリックすると、このノードは、"Flattening" __Seams__を"Layout" Seams にコピーし(つまり、継ぎ目が配置に影響を与えます)、 Post-Packing をクリアします。
詳細は、以下の手動レイアウトを理解するを参照してください。
-
島境界エッジは、UVビュー内で明るい緑で表示されます。( Post-Packing パラメータ内の)"新しい"継ぎ目の線は太くなります。
頂点のピン留め
ピンは、ピース上の単一ポイントを同じUV座標に維持します。 このノードが平坦化とレイアウトを再計算した時、その頂点がその位置のままになります。 しかし、ピンをドラッグすると、そのピン留めされたポイントが動き、他の拘束されていないポイントすべてが移動/回転して新しいピンの位置に順応します。 (回転ピボットをピン留めしてから、2番目のピンを追加してそれをドラッグすることで、1つ目のピンを基準に島を回転させることができます。)
To... | Do this |
---|---|
頂点をその位置でピン留めする |
|
ピンを動かす |
|
ピンを削除する |
|
Tip
ピンを扱うには、Pinモードが選択されている必要があります。 例えば、Cutモードの時にピンをクリックすると、このツールは、そのピン下のエッジをカットしてしまいます。
整列と直線化
特定のグループのエッジを真っ直ぐに、または、UVグリッドに整列させるようにノードに命令することができます。 このノードは、テクスチャピースを再平坦化する時に、それらのヒントを考慮します。
Tip
これらのヒントが他のピン留めなどの拘束と干渉している場合には、エッジが完全に真っ直ぐまたは軸整列しなくなります。 他の拘束を削除することで、このノードは、より真っ直ぐ/整列するように再平坦化されます。
To... | Do this |
---|---|
エッジを真っ直ぐにする(ABFのみ) |
|
頂点をU軸またはV軸に整列させる |
このツールは、経験則から、ポイントからもっとも近い座標軸に基づいてUまたはVのどれかに整列させます。 その整列軸を変更したい場合は、パラメータエディタで Axis Aligned Vertex Groups ヘッダを展開し、作成されたばかりの整列拘束を探し(拘束リストの最後にあります)、 Align Parallel To パラメータでその拘束にあった値に変更します。 |
新しい直線化/整列の拘束を考慮してピースを再パックする |
(ビューアの上部にある)オペレーションツールバーの Repack ボタンをクリックします。 |
四角形を矩形にする
矩形グリッド状の四角形ポリゴンを含んだ領域に対して、それらのポリゴンがUV軸に沿って矩形グリッドとしてレイアウトされるように拘束することができます。 これは、歪みを軽減して、レイアウトを綺麗にすることができます。
To... | Do this |
---|---|
|
可視化
このツールの状態がビューアでアクティブになっている時、UVを可視化できるようにモデル上にパターンを重ねます。 これによって、歪みや重なりがある箇所をはっきりとさせることができます。
To... | Do this |
---|---|
オーバーレイを無効にする |
ビューア内で右クリックして、 Visualize Texture ▸ Off を選択します。 |
オーバーレイをもっと上手く表示できるように、マテリアル/テクスチャの表示を無効にする |
メニューの右側にあるディスプレイツールバーで、 Display Materials on Objectsボタンを無効にします。 |
オーバーレイパターンを変更する |
ビューア内で右クリックして、 Visualize Texture を選択してから、パターンを選択します。 このメニュー内の Display Orientation Glyph を有効にすると、そのパターンに"L"形状が追加されるので、テクスチャが180度回転していないか調べることができます。 |
オーバーレイのスケールを変更する |
ビューア内でを上または下にスクロールさせると、オーバーレイパターンのスケールが変わります。 |
パラメータ
Group
UV Attribute
UV座標を格納するアトリビュートの名前(デフォルトはuv
)。
同じジオメトリ上に複数のUVセットを持たせたいのであれば、別の名前を入力します。
Flattening Method
3Dジオメトリを2Dテクスチャ空間に平坦化する方法。 このノードには、異なるヒント(拘束)を許可し、効率性の異なるメソッドが2つあります。 どちらのメソッドも 角度の歪み が最小限になるように設計されています。つまり、テクスチャを貼る3Dサーフェス上にテクスチャ画像を投影した時にそのテクスチャ画像の角度が正しく反映されます。 これらのメソッドは、主にポリゴンをテクスチャ空間でほぼ同じサイズに維持させる 面積の歪み の制御方法が異なります。
Spectral (SCP)
デフォルト。Angle Baseと比べて高速で堅牢性がありますが、若干低品質です。
Angle Based (ABF)
遅くて、必ずしも計算できるとは限りませんが、高品質(面積の歪みが少ない)です。
Existing UVs
UV Attribute のテクスチャ座標が既に存在していた場合のその既存のテクスチャピースの扱い方。
Preserve Seams
入力ジオメトリ内の既存のseams(継ぎ目)が Seams パラメータの内容に追加されます。
Preserve Layout
既存のUV島の位置を維持しつつ、それらの島周辺に新しい島の配置を試みます。
Preserve Island Boundary Shapes (SCP only)
既存のUV島の形状を維持し(回転またはスケールは可能)、その内部UVを再平坦化します。既存のUV島をそのままの位置に維持しつつUVをリラックス化させたいのであれば、このオプション と Preserve Layout を有効にします。
Flattening Constraints
Seams
Enable Manual Layout が無効の時、seams(継ぎ目)は"インタラクティブ"な詰め込み後のseams(継ぎ目)になります。 このパラメータ内のエッジが"Layout" Seamsパラメータ内に入っていない場合はカット、"Layout" Seamsパラメータ内のエッジがこのパラメータ内に入っていない場合は結合されます。 Enable Manual Layout が有効の時、seams(継ぎ目)は単なる継ぎ目拘束になり、"Layout" Seams パラメータは無視されます。
詳細は、上記の手動レイアウトを理解するを参照してください。
Enable Pins
すべてのピンを有効または無効にする"マスタースイッチ"。
このセクションには、各項目がピンに相当するマルチパラメータが含まれています。 これらのパラメータを変更することでピンを編集することができますが、通常では、インタラクティブにそれらのピンを変更した方が簡単です。 上記の頂点のピン留めを参照してください。
Primitive/Vertex
ピン留めされた頂点を含んだポリゴンのプリミティブ番号と、そのポリゴン内のピン留めされた頂点のシーケンスインデックス。
UV
頂点をピン留めする座標。
Reference UV
同じポリゴン内の次の頂点のUV座標。ピンがそれぞれのUV島の唯一のピンでない限り無視されます。主にインタラクティブの状態で使用されます。
Enable Axis Alignment
すべての整列拘束を有効または無効にする"マスタースイッチ"。
このセクションには、各項目が整列拘束に相当するマルチパラメータが含まれています。 ここでは個々に拘束を削除することができます。上記のエッジの整列を参照してください。
Group
一直線に揃える頂点。同じポイントに繋がっているUV内のどれかの1点の頂点を含めるだけで十分です。
Align Parallel To
整列させる軸。
Enable Loop Straightening
すべての直線化拘束を有効または無効にする"マスタースイッチ"。
このセクションには、各項目が直線化拘束に相当するマルチパラメータが含まれています。ここでは個々に拘束を削除することができます。上記のエッジの直線化を参照してください。
Group
一連のエッジを強制的に直線化させる頂点のグループ。これは、頂点エッジのリストです。
Layout Constraints
Enable manual layout
ノードを非インタラクティブな動作に切り替えます。Flattening Constraintsは詰め込み前に適用され、Layout Constraintsは無視されます。 これは、ノードをプロシージャルに利用することができ、パラメータを変更すると、 Repack をクリックすることなく即座にそのノードの出力が変更されます。
詳細は、上記の手動レイアウトを理解するを参照してください。
Seams
Enable Manual Layout が無効の時、seams(継ぎ目)は"元"の詰め込み前のseams(継ぎ目)になります。 Enable Manual Layout が有効の時、"Flattening" Seamsは単なる継ぎ目拘束になり、このパラメータは無視されます。
詳細は、上記の手動レイアウトを理解するを参照してください。
Output Groups
Seams
このパラメータの隣にあるチェックボックスを有効にすることで、seamエッジを含んだ出力にエッジグループを作成することができます。
Constrained Islands
このパラメータの隣にあるチェックボックスを有効にすることで、ピン、軸整列、直線化の拘束を持つ島すべてのポリゴンを含んだ出力にプリミティブグループを作成することができます。
Packing Area
このノードがテクスチャピースの詰め込みを試みるテクスチャ空間の領域を制御します。 これらのパラメータを使ってその領域を正確に定義したり、このノードがアクティブな時にUVビュー内のボックスハンドルのコーナーまたは辺をドラッグすることができます。
Center
詰め込み領域の中心をUV座標で指定します。
Size
詰め込み領域の幅と高さをUV単位で指定します。
頂点エッジグループについて
矩形化グループと直線化グループのフィールドには、 頂点エッジ のリストを格納します。 各エッジは、頂点番号で表現されています。 各頂点番号は、その頂点から次の頂点を時計回りで結んだ頂点エッジを意味します。
これらのフィールドには、プリミティブエッジの代わりに頂点を使用しなければなりません。 その理由は、プリミティブエッジは、両側のポリゴン間で 共有 されているからです。 どちらかのエッジがシームだった場合、どちら側のエッジを整列させるべきなのか曖昧になってしまいます。
See also |