Posted Oct. 30, 2017

Go behind the scenes with two senior artists at Guerrilla Games to learn how Houdini was used to help create some of the dazzling environments featured in Horizon Zero Dawn. Ben Schrijvers demonstrates a river tools system - and Vladimir Lopatin walks through a cable generator.


  • twelveplusplus 6 years, 4 months ago  | 

    such a beautiful game! maybe i have to finally get a PS4 so i can play this one!

  • simonschreibt 5 years, 6 months ago  | 

    Thanks for the video, this is amazing knowledge!

  • Movann 4 years, 4 months ago  | 

    Thanks for the Tutorial, I'm a artist and I'm learning Houdini now.
    I don't understand python. So when I typed the same code into python node, a error was show up:

     Python error: Traceback (most recent call last):
    File "", line 10, in
    AttributeError: 'NoneType' object has no attribute 'eval'

    Could you tell me how can i fix the error?
    Thanks and sorry for my bad English : )

    • kevin07041214 4 years ago  | 

      Hi, I'm currently watching this video, and I came across the same problem that you mentioned.
      this is my solution to this:
      I think it's because python cannot find the 3 parameters call "slope" "erosion" and "fill", so you can try to use an attribute wrangle node to create 3 floats call "slope" "erosion" "fill" first then reference them into python.ex: float slope = chf("slope")

      In python the "# Parameter & Attribute" part would look like this:

      slope = hou.node('your wrangle position').parm("slope").eval()
      erosion = hou.node('your wrangle position').parm("erosion").eval()
      fill = hou.node('your wrangle position').parm("fill").eval()

      erosion_attr = geo.findPointAttrib("erosion")

      this is what I came up with just using a wrangle node to create these 3 float so python can find them, then I combine them to a new digital asset then promote those 3 parameters so that I can adjust them.
      I think you can also create them in python or use new asset then add parameter to help python find them, but I don't know how though.
      I hope this help and sorry for the bad English.

      • jannh 3 years, 2 months ago  | 

        What helped me was adding these atributes to the python node:
        - Rightclick the node and Click: Parameters and Channels > Edit Paramter Interface

        Now just simply add three floats with the "slope", "fill" and "erosion" label and name (dont know which one is actually checked by the system)

        Using this you dont have to use the attribute wrangle

  • llasall 4 years ago  | 

    hda : gg_rivercurve leveling
    How do you make it?
    Thank you for revealing the code.
    But I don't know how to make hda.
    Please help me.

    I am sorry that my English is not good.

  • muxalko 3 years, 6 months ago  | 

    Hi, Here is how to do , just in case :

  • abhiraaid 2 months, 3 weeks ago  | 

    In the python script, I'm trying to make sense of the "slope" parameter
    min_height -= slope

    is it simply a constant value we specify? or is it calculated from the terrain somehow?

    • abhiraaid 2 months, 2 weeks ago  | 

      Found a different approach to solve this, basically compare each point starting from index 1 with previous point and bring it below the previous index one by one

Please log in to leave a comment.