ここの2つの Houdini デジタルアセット(HDA)は、Height フィールドを他のデータに変換し、必要なデータを生成するために相互連携する2つのツールです。Terrain Mesh ROP は Height フィールドから1つまたは複数のメッシュを作成し、Terrain Texture ROP は Heightフィールドをテクスチャにレンダリングします。希望する結果を得ることができるようにパラメータで制御することができます。


Terrain Mesh ROP

TTerrain Mesh ROP は、曲率を考慮しつつ Heightフィールドをメッシュに変換するツールです。ツールには、希望の結果を達成できるように、上に見られるようなパラメータが提供されています。

Segmenting (分割化)

UI 上の Segmenting タブは、入力されたHeightフィールドのレイヤーをどのようにメッシュに分割するかのコントロールを提供しています。Height Layer パラメータは、生成するメッシュ形状を生成するために使用する heightfield レイヤを指定します。 デフォルトでは height (高さ) レイヤーです。 これを任意のカスタムレイヤーに変更こともできます。これにより、他のレイヤーをベイクすることが可能になります。

このツールは、生成されたメッシュを指定されたタイル数に分割します。 デフォルトは 4x4 ですが、必要に応じて変更可能です (1x1を含む)。

Visualize Toggle を使用することで、生成されたデータが自分の希望したものかを迅速にデバッグすることを可能にします。メッシュが色付けされ、生成されたUVも表示されます。

Meshing (メッシュ化)

Meshing タブで、ボクセルベースの Height フィールドを四角形メッシュに変換する方法を制御します。 Base Density スライダは、ボクセルと四角形の比率を制御します。 値を1と指定すると、Heightフィールドにあるボクセル数と同数の四角形が生成されます。 しかし、Heightフィールドには細かいディテールを必要としない領域が含まれている可能性があるため、かならずしも1に設定する必要はありません。

そこで Adaptive Density パラメータが有用になります。Num Density Levels (密度レベル数) は、詳細上位層をいくつまで存在させるかを設定します。高い値を設定すれば、曲率が高いメッシュ領域ではより細かいメッシュが生成されます。この際の減衰は、Density Falloff Ramp により調整できます。上の画像は、これを非常にうまく示しており、山頂部分に細かいメッシュがたくさんあり、平坦な地域では大きなメッシュになっています。

UVs, Extrusion & Exporting (UV, 突き出し & 出力)

このツールには、UVを生成する方法が2つあります。 一つ目は、生成したメッシュ全体を結合した状態で 0-1 UV空間を設定する方法です (上図右側)。これにより、UV座標がメッシュ全体と一致するようになります。 しかし、0-1 UV per Segment をオンにすることで、セグメントごとに UV を設定することが可能になります。これにより高いテクセル密度を得ることができます。


Terrain Texture ROP

Terrain Texture ROPを使用することで、Heightfield Output SOP で直接サポートされていないHeightフィールドデータをテクスチャとして簡単にレンダリングすることができます。このノードでは、Normal Map (法線マップ)、Height Map ハイトマップ: メッシュの代わりにエンジンの地形システムを使用する場合)、Cavity Map (キャビティマップ)、Occulusion Map (オクルージョンマップ)などをテクスチャとしてレンダリングできます。 ユーザから要望次第では、今後より多くの他の情報を得るようにする可能性があります。

また、このツールにより、タイルマップを指定することもできます。 Number of Tiles でタイル数と合計解像度を Resolution に設定し、Export をクリックすることでレンダリングが開始します。他のレンダリング同様、解像度を上げればレンダリングに時間がかかることに注意してください。

追加情報

CREATED BY

PAUL AMBROSIUSSEN

Paul Ambrosiussen is currently a Technical Artist at Bismuth Consultancy. He was the Lead of the Labs initiative at SideFX before that. Paul finished his BASc in International Game Architecture and Design at NHTV University of Applied Sciences in Breda. Paul enjoys writing tools to support effective art-pipelines, and maintaining tool / workflow quality for the artists he is assisting. His goal is to help others create amazing things in a better, faster and more flexible way. He creates tutorials, gives live lectures, attends events, and presents custom workshops to customers.

More from Paul Ambrosiussen

コメント

  • Evgeniy Kovalenkov 6 年, 4 ヶ月 前  | 

    Good tools!!!

  • RudiNieuwenhuis 6 年, 4 ヶ月 前  | 

    Could it be these tools are not in the development branch on github yet?

    • Ambrosiussen 6 年, 4 ヶ月 前  | 

      Hi,

      The tools have already been published to the development branch. They are called "sop_terrain_segment_rop.hda" and "sop_terrain_texture_rop.hda".
      https://github.com/sideeffects/GameDevelopmentToolset/tree/Development/otls

      Did you try downloading them through the update shelf in Houdini, or manually?

      Paul

      • RudiNieuwenhuis 6 年, 4 ヶ月 前  | 

        Hi Paul, I tried the update shelf. Will have another look. Tnx.

        • RudiNieuwenhuis 6 年, 4 ヶ月 前  | 

          Manually worked. Tnx.

          • RudiNieuwenhuis 6 年, 4 ヶ月 前  | 

            I think there is a little issue when using HtoA in conjunction with this. The HOUDINI_PATH gets set in the houdini.env file but Arnold needs this too.

            • Ambrosiussen 6 年, 4 ヶ月 前  | 

              Thanks for the heads up. I will forward this information :)

  • polybender 6 年, 4 ヶ月 前  | 

    Tried updating using shelf - did not work.

    • polybender 6 年, 4 ヶ月 前  | 

      Manual worked.

  • bhb 6 年, 4 ヶ月 前  | 

    Two things:
    1) ¿¿How to work with 1x1 Tile??
    The .hda only admit 2 x2 Tiles and up.

    2) When exporting the terrain (.fbx 2004 or .fbx.2006) , the .hda export all tiles separately. How to export the whole terrain only??.

    3) When importing the terrains in other app like Maya2016 .. all the terrain are named GEO in the shape name properties from maya.
    For this they must renamed one by one previously. :(
    Look inside the fbx.. and all named are the same.
    Model: 1016381696, "Model::GEO", "Mesh" {
    Version: 232
    Properties70: {
    P: "RotationActive", "bool", "", "",1
    P: "InheritType", "enum", "", "",1
    P: "DefaultAttributeIndex", "int", "Integer", "",0
    P: "Visibility Inheritance", "Visibility Inheritance", "", "",0
    }
    Shading: Y
    Culling: "CullingOff"
    }
    }

    • Ambrosiussen 6 年, 4 ヶ月 前  | 

      Hi!

      These requests are definitely possible. I will look into these, and push an update to Github once implemented. (Including the WM naming convention)

      Paul

  • bhb 6 年, 4 ヶ月 前  | 

    TODO:
    1)These are exported:
    Terrain_1.fbx
    Terrain_2.fbx
    Terrain_3.fbx
    Terrain_4.fbx

    Should be interesting to add a PREFIX and SUFFIX to name like this(same way to WM):
    Pre_Terrain_1_x00_y00.fbx
    Pre_Terrain_1_x01_y00.fbx
    Pre_Terrain_1_x01_y00.fbx
    Pre_Terrain_1_x01_y01.fbx

    2) A way to export in .raw16(same way to WM)

  • bhb 6 年, 4 ヶ月 前  | 

    4) sop_terrain_texture_rop
    INCOMPATIBLE WITH
    heightfield_xform

    Changing the dimensions inside heightfield_xform(Uniform scale, grid scale or height scale).. sop_terrain_texture_rop becomes PLAIN.

    • Ambrosiussen 6 年, 4 ヶ月 前  | 

      Hi,

      You should now be able to find an updated version on Github with support for:
      - HF Translate & Scale in both tools (No rotation yet)
      - Single File Export
      - 1x1 Tiles
      - Mesh Name now equal to Chunk ID. (No more "geo1")

      • Thunderflex 6 年, 3 ヶ月 前  | 

        "- Mesh Name now equal to Chunk ID. (No more "geo1")"

        Is this available already maybe I got the wrong build? I installed today 1/3/18 and sop_terrain_segment is still exporting with 'geo1, geo2' etc format instead of x0_y0, x0_y1, etc.

  • bhb 6 年, 4 ヶ月 前  | 

    Thanks! I appreciate it.

  • Thunderflex 6 年, 3 ヶ月 前  | 

    Oh man, this is suuuper useful thanks! I did have to install them manually, the automatic didn't seem to work for me as well.

    If I had one texture request it would be for RGBA Splat Maps so I could quickly lay in some textures. I could color the heightfield_erode tool to be RGBA for the coloring thgen I would just need the sop_terrain_texture_rop.hda to accept the coloring and slice it up for me. :)

    • Thunderflex 6 年, 3 ヶ月 前  | 

      Nevermind, I think I found where to do this. Looks like the sop_terrain_texture rop has a big ol list of items already contained and I just had to expose the other options. Niiiceeeee

  • RudiNieuwenhuis 5 年, 7 ヶ月 前  | 

    Just a quick question, why did you uvtexture at a 90 degrees angle and scale at -1,1,1?
    Seems to me that keeping the angle at 0 would be much more intuitive with a scale at 1,-1,1.
    I mean, normally I would think you want to project your map onto the HF from the top with x pointing to the right, right?

  • pande 5 年, 6 ヶ月 前  | 

    i was watching the clip and checked the time.. it was 3 in the morning and i was like ... WTH... so quickly quit the clip to jump into bed just to realize its just 11:00.....

  • JohnDraisey 5 年, 3 ヶ月 前  | 

    Yup, going to use this in my game ASAP.

  • Adekya 4 年, 7 ヶ月 前  | 

    Hi,

    I'm exporting Heightmaps from the tool but always get this "terracing" issue. Is there a way to have real good smooth heightmpas in Houdini ?
    Thanks

  • TotiEden 4 年, 6 ヶ月 前  | 

    Hi Paul,

    I would like to use this sop in a TOP network, and it seemed to me that you had to post the solution somewhere. But where ?

    Thanks

  • Edison 4 年, 3 ヶ月 前  | 

    ---------------------------------------------------------------------------------------------------------------------------------

    I can't export textures by Terrain Texture Rop, and I find a error node:"sop_terrain_texture_rop / ropnet / shell"

    ---------------------------------------------------------------------------------------------------------------------------------

    That is the information about this node:
    Python error: Traceback (most recent call last):
    File "", line 31, in
    File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.229/houdini/python2.7libs\houpythonportion\ui.py", line 850, in decorator
    return func(*args, **kwargs)
    File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.229/houdini/python2.7libs\hou.py", line 51133, in render
    return _hou.RopNode_render(*args, **kwargs)
    OperationFailed: The attempted operation failed.
    Error: Cook error in input: flip1.

  • Pol L_R 4 年, 1 ヶ月 前  | 

    Got this error when exporting

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.416/houdini/python2.7libs\hou.py", line 11398, in cook
    return _hou.Node_cook(*args, **kwargs)
    OperationFailed: The attempted operation failed.
    Error while cooking.

  • Zigmund 2 年, 8 ヶ月 前  | 

    It seems there is a problem with the tool. When splitting to 4x2 tiles, the X and Y attributes, created by the tool, do not correspond to the actual position of the tiles.

  • thomas.valentin.garrel 2 年, 3 ヶ月 前  | 

    Hi thanks for this, it's really helfull.

    But i have an error when i want export

    Error running callback:
    Traceback (most recent call last):
    File "gamedev::Sop/sop_terrain_segment_rop/parm", line 1, in <module>
    File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.383/houdini/python3.7libs\hou.py", line 16462, in cook
    return _hou.Node_cook(self, *args, **kwargs)
    hou.OperationFailed: The attempted operation failed.
    Error while cooking.

    How can i fix that ?

  • Didier Muanza 2 年 前  | 

    hey there,
    I m using terrain ROP , but whenever i bring the geometry to substance , ther displacment break as if each pieces where differents geometry do you know how to fix it?

Please log in to leave a comment.