Houdini 19.5 ジオメトリ

Height Fieldによる地形の構築

HoudiniのHeight Fieldツールを使ってリアルな地形を生成する方法。

On this page

概要

Houdiniには、地形の生成と形状変更するための幅広いジオメトリノードが備わっています。

これらのツールは、 Height Field と呼ばれる2Dボリュームを使って地形を表現します。このボリュームの各ボクセルには、そのグリッドポイントでの地形の高さを含んでいます。 ジオメトリネットワークに渡すデータには、複数のHeight Fieldを含めることができます。 HoudiniのTerrainツールの用語では、これらのデータのことを Height Layers と呼びます。 例えば、ツールが1つのHeight Layerで岩盤を表現し、もう1つのHeight Layerでその岩盤上に緩やかな土壌を表現することができます。デフォルトのHeight Layerの名前はheightです。

これらのツールは、 Mask Layer と呼ばれる別のタイプの2Dボリュームも使用します。このボリュームの各ボクセルには、“選択性の”値を含んでいます。 ほとんどのTerrainノードでは、2番目の入力でMask Layerを受け取ることができるので、そのノードが修正する地形の部分を制御することができます。 デフォルトのマスクレイヤーの名前は、maskです。 Height Layerと同様に、ジオメトリストリームに複数のMask Layerを含めることができ、ノードのパラメータで、使用したいMask Layerの名前を指定することができます。

Houdiniのビューポートは、2D heightフィールドを3Dサーフェスとして可視化することができ、その3Dサーフェス上にmaskフィールドを赤く色付けることができます。

Foliage by SpeedTree, textures and small rocks by Allegorithmic and Quixel

Masterclass

ゼロからHeight Fieldを生成する方法

  • Height Fieldノードは、新しく平坦なHeight Fieldを生成します。

    主な使い方は、Height Fieldノードの後にHeight Field Noiseを接続して、ランダムな地形から始める方法です。

I/O

  • HeightField Fileは、2D標高マップから高さデータを読み込みます。

  • Lidar Importは、LIDAR形式(例えば、e57)をHeight Fieldとして読み込むことができます。

  • HeightField Outputは、高さデータを2D標高マップに書き出します。

  • HeightField Quick Shadeは、レンダリング用にレイヤーとマスクに基づいて地形にマテリアルを追加します。

  • HeightField Scatterは、Height Fieldで表現された3Dサーフェス上にポイントをばら撒きます。これは、地形上に木/植物などの3Dジオメトリを分布させたり、Heightボリュームをポイントクラウドに変換するのに役立ちます。

  • HeightField Tile Splitは、レイヤーを複数のタイルに分割します。これは、分散処理する時、一度に小さいピースで作業したい時、タイルをゲームエンジンにエクスポートする時に役立ちます。

  • HeightField Tile Spliceは、タイルを一枚のレイヤーに結合します。

地形に特徴を加える方法

  • HeightField Layerは、Heightレイヤー上に別のHeightレイヤーを合成して、特徴部を大きなフィールドに“ペースト(貼り合わせ)”することができます。このノードは、軸に平行でないボリュームを適切に合成するので、合成する前に3D空間でボリュームの位置と向きを決めることができます。

  • HeightField Projectは、3Dジオメトリの形状内で地形を上昇または下降させます。

  • HeightField Paintは、Height Layerに手動で標高値をペイントすることができます。

  • HeightField Patternは、縞々などの繰り返しパターンを生成します。このSOPには、ジオメトリパターンをより有機的なルックにするための歪みコントロールが含まれています。これらのパターンをマスクを使ってHeight Layerに追加することで、地形内に面白いディテールを作成することができます。

地形の調整

自然現象のシミュレーション

  • HeightField Erodeは、侵食現象をシミュレーションして、自然な感じの特徴部を作成します。

  • HeightField Slumpは、緩やか/堆積した土壌が下り坂を流れ落ちる現象をシミュレーションします。

マスクの作成と編集

  • HeightField Draw Maskは、手動でマスク領域を描画することができます。

  • HeightField Mask by Featureは、標高、フェース方向、傾斜などの基準に基づいてマスクを作成します。例えば、マスクレイヤーを作成することで、特定の標高よりも高くて特定のサイズの山だけに積雪を表現することができます。

  • HeightField Mask by Objectは、Height Layerと3Dジオメトリの交差からマスクを作成します。

  • Height Field Mask Noiseは、マスクにノイズを追加するようにカスタマイズしたHeight Field Noiseセットアップを作成します。これによって、より有機的なルックを作成することができます。

  • Height Field Mask Clearは、マスクをクリアするようにカスタマイズしたHeight Field Layer Clearセットアップを作成します。

Note

ノードをマスクした時におかしな結果が見受けられたら、Heightfield Isolate Layerを使用するか、または、Heightfield Visaulizeを使って独自に色付けの範囲を定義することで、マスク内の値が0-1(含む)の範囲になっているかどうかを検証することができます。

0-1範囲の値は、マスクの可視化では赤く表示されます。ゼロの値は白で表示されますが、マイナス値と1より大きい値も白で表示されます。 マスクが期待したとおりの挙動になっていない場合は、範囲外の値が含まれていることが原因として考えられます。

レイヤーユーティリティ

  • HeightField Transformは、ワールド空間でフィールドを移動回転します。

  • HeightField Visualizeは、カラーマップで標高値を可視化することができます。

  • HeightField Remapは、ランプに基づいてレイヤー内のHeight値を新しい範囲に“再分布”させます。

  • HeightField Resampleは、フィールドの大元のグリッドの解像度を変更します。

  • Height Field Wrangleは、Volume Wrangleのエイリアスです。これは、VEXスニペットを使ってHeightボリュームの値を編集することができます。

  • Height Field VOPは、Volume VOPのエイリアスです。これは、Heightボリュームの値を編集するためのVOPネットワークを構築することができます。

  • HeightField Copy Layerは、既存のレイヤーをコピーすることで、新しいレイヤーを作成します。

  • HeightField Layer Propertiesは、フィールド境界外の値の計算方法( Border Type )などのレイヤーオプションを設定します。

  • HeightField Layer Clearは、レイヤー内の値を0にリセットします。

  • HeightField Isolate Layer

ヒントとメモ

  • Terrainデスクトップには、それに特化したシェルフセット、Radialメニュー、地形を扱うためのペインレイアウトがあります。

  • Height Fieldノードを検索する時は、⇥ Tabメニューでフルでheight fieldとタイプするのではなく、その⇥ Tabメニューの賢い補間を利用して、heightまたはhfとだけタイプすることができます。例えば、hfnoiseとタイプするとHeight Field Noiseノードを取得することができます。

  • Height Fieldとマスクは通常のHoudiniボリュームジオメトリなので、Height Fieldとマスクを編集する時は、ボリュームを扱えるどのジオメトリノード(SOP)も使用することができます。例えば、Volume WrangleにVEXスニペット@mask = 1;を使用することで、ボリュームのどの箇所も完全にマスクが“オン”になるように満たすことができます。

ジオメトリ

学ぼう

モデリング

地形

粉砕

破壊を参照してください。

次のステップ

導師レベル