#Houdini

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 มี.ค. 2019
  • How to generate #UE4 landscapes from Houdini. Takes you through the process of creating a Houdini Digital Asset and using it inside UE4 with the Houdini Engine for Unreal plugin.
    CONTENT
    [0:27] Heightfield to Landscape
    [5:34] Add Noise Amplitude Parameter to Houdini Digital Asset
    [8:00] Create UE4 Landscape Material
    [11:32] Fixing Clamped Landscape Edge Artifacts
    [13:50] Create Houdini Layers for Painting
    [21:36] Set UE4 Landscape Material with Houdini Attribute
    [24:09] Holes
    [30:09] Fix Collision Problem (which does not happen all the time, but workaround provided here in case you see it)
    CORRECTIONS
    At [1:05], I incorrectly said you can follow along with Houdini Apprentice (the free version). You actually need at least Houdini Indie to use the Houdini Engine (which is required by the UE4 plugin).
    At [22:28], ignore advice about full reference to UE4 asset not working. It works fine.
    At [1:55] I created the Houdini Digital Asset (HDA) without first creating a Subnetwork. One advantage of a Subnetwork is you can use the Output node, which helps you not screw up your HDA by setting the render flag on the wrong node. More about that here:
    www.sidefx.com/forum/topic/61...
    REFERENCES
    Unreal Engine 4 Landscape Technical Guide
    docs.unrealengine.com/en-us/E...
    Houdini Engine for Unreal
    www.sidefx.com/docs/unreal/
    Houdini Heightfields
    www.sidefx.com/docs/houdini/mo...
    Landscape Examples with World Machine, Houdini, and UE4 Landscape Tools
    github.com/drichardson/UE4Exa...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 103

  • @dogisyourdestiny
    @dogisyourdestiny 4 ปีที่แล้ว +3

    Thank you so much, Doug! This is helping me through my portfolio class right now. You are a lifesaver!

  • @igormajdandzic7587
    @igormajdandzic7587 3 ปีที่แล้ว +1

    This just cleared up so many questions. And that you always show where you got the info from is sooo valueable.
    Thanks Doug!!!

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว

      You're welcome! I also really appreciate when authors cite where they got their info, since the source documentation usually contains much more detailed and up to date information.

  • @zqArcher
    @zqArcher 4 ปีที่แล้ว +1

    Hi, Sir. Thank you very much! You taught me the very basic but essential skills which I didn't know how to start without them :D

  • @johnbinary5989
    @johnbinary5989 5 ปีที่แล้ว +1

    Super super useful. Solved all of my beginner problems. Thank you very much!

  • @Houdini123
    @Houdini123 4 ปีที่แล้ว +2

    Hi Doug. Thank you for the tutorial. It helped me to get started with Houdini Heightfields in Unreal. I created a tutorial on how to make a desert terrain in Houdini and I actually put a link to your video in the description and mentioned your tutorial in the video in case that people need to learn basics of Heightfields in UE4 because it is really good.

  • @zhancoco734
    @zhancoco734 3 ปีที่แล้ว +1

    This is exactly what I'm looking for! Thank you

  • @brunnersamuel4615
    @brunnersamuel4615 5 ปีที่แล้ว +2

    In the vague houdini doc world this is gold

  • @_JaimeDavies
    @_JaimeDavies 3 ปีที่แล้ว +1

    The fact that you only have 347 subscribers is a sin! This tutorial ALONE deserves a solid 10k subscribers by itself!

  • @RMAFIRE
    @RMAFIRE ปีที่แล้ว

    Nice look ⚡⚡

  • @Maverick99
    @Maverick99 4 ปีที่แล้ว +3

    Such a solid tutorial for getting your foot through the door. Thanks man.

  • @felipeseixascoelho8910
    @felipeseixascoelho8910 3 ปีที่แล้ว +1

    Great tutorial, thanks!

  • @PeterLeban
    @PeterLeban 4 ปีที่แล้ว +2

    Thanks for explaining this!

  • @user-qs1fi4ej8d
    @user-qs1fi4ej8d 5 ปีที่แล้ว +1

    Your teaching is easy to understand and very good, I like it very much and have subscribed.

  • @kingskye7110
    @kingskye7110 4 ปีที่แล้ว +1

    This tutorial was very helpful to me, thank you

  • @C-0-C-0
    @C-0-C-0 5 ปีที่แล้ว

    Wow! Thank for this video! Really usefull!

  • @ambre6892
    @ambre6892 4 ปีที่แล้ว +1

    Thx that was exactly what i was looking for!

  • @BruceWillis992
    @BruceWillis992 3 ปีที่แล้ว

    omg, this is what im looking for, you are a genius, thx a lot.

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว

      You're welcome Ji Yang! Glad it helped.

  • @synthdude7664
    @synthdude7664 3 ปีที่แล้ว +1

    This lesson is exactly what I’ve been looking for. I just started in Houdini and unreal and I’m trying to create a heightfield in Houdini that I can interact with in UE4, and you made a concise lesson ! Thanks so much for doing this

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว

      You're welcome pid cin! Glad it helped.

    • @synthdude7664
      @synthdude7664 3 ปีที่แล้ว

      Doug Richardson yeah man, it helped very much. Do you have any new lessons planned for the future?
      Also by any chance do you know if it’s possible to take the Houdini heightfield with an ocean, import it to UE4, and interact with all of it through the ray tracing? Im having an issue making the connection between creating simulations in UE4 and to what extent you can interact with the simulation through UE4

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว +1

      ​@@synthdude7664 No lessons planned (I usually post something because I want to remember how to do it in the future myself).
      I also don't know how Houdini does ocean sims. Generally for animations, you have to end up baking down to something (like a vertex animation or skeletal animation) to play back in UE4, but I don't know how ocean/fluid sims work in Houdini.

  • @khikmatillosultonov2967
    @khikmatillosultonov2967 ปีที่แล้ว

    Thank you bro !!!

  • @mess7698
    @mess7698 5 ปีที่แล้ว +1

    Thank you, super helpful!

  • @user-iq5iv9qy2m
    @user-iq5iv9qy2m 5 ปีที่แล้ว +1

    This is what I want to know! thank you :D

  • @reginaldpoofta5
    @reginaldpoofta5 5 ปีที่แล้ว

    Super usefull, thanks a lot man.

  • @andr101
    @andr101 5 ปีที่แล้ว +1

    nice one, thanks!

  • @workflowinmind
    @workflowinmind 4 ปีที่แล้ว +1

    2:36 Assets are expected to be subnet at there core (who have a minimal subset of parameters from a geo node for instance), as you answered no, it uses the Geo node who have a bunch of extra parameters (Render for instance) so the dialog means they will get wiped out. Hope it helps, thanks for the video

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว

      Thanks for the info, that does help.

  • @alan112223
    @alan112223 4 ปีที่แล้ว +1

    Thanks!

  • @robjinstudio
    @robjinstudio 5 ปีที่แล้ว

    thank's so much man !!!

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว +1

      Welcome! I checked out your star wars pod racer fan game concept. That was sweet.

    • @robjinstudio
      @robjinstudio 5 ปีที่แล้ว

      @@doug_richardson thank's dude :)

  • @unimodels3d
    @unimodels3d 3 ปีที่แล้ว +1

    thanks :)

  • @markusps3248
    @markusps3248 2 ปีที่แล้ว +1

    @Doug Richardson.. First, thanks a lot for the great Tutorial it helped me a lot. There is just one thing i'm a bit confused about.
    i allways assumend that a Digital Asset can only create static meshes inside Unreal... but from what i see so far am i right in the assumtion that the DA automatically creates a Unreal Landscape if its output is a hightfield?

    • @doug_richardson
      @doug_richardson  2 ปีที่แล้ว

      That's correct. For more information, see www.sidefx.com/docs/unreal/_landscapes.html

  • @lesan001
    @lesan001 5 ปีที่แล้ว +1

    Heya, just wanna say super helpful tutorial.
    Was wondering, when using this method to paint the landscape layers, when applied in Unreal, it appears to have a very blotchy / stepped appearance, would you know a way of smoothing out the transition, so that there's a softer less harsh falloff for the layer mask? Any help appreciated.

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      You can use the HeightField Blur node to do this. You will need to change that node's Blur Layer to mask. www.sidefx.com/docs/houdini/nodes/sop/heightfield_blur.html

  • @bradicalmusic
    @bradicalmusic 5 ปีที่แล้ว +1

    Super helpful video! Exactly the info I was seeking. I have also scattered some points on the terrain and brought those into UE4. The scattered meshes show up correctly and I am able to swap them out in the Instanced Inputs panel....but I am not able to control their position and scale individually. I can only change all of then as a group. Is possible to have individual control?

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว +1

      I'm not sure about that. If you haven't already, I'd post this question to the side fx forum.

    • @bradicalmusic
      @bradicalmusic 5 ปีที่แล้ว

      @@doug_richardson I posted but no answer yet. Another obscure question...I am trying to use Mapbox data as origin of heightfield. Unfortunately UE4 refuses to load any HDA with Mapbox. I am guessing it may have something to do with their licensing API. Have you ever tried that workflow?

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      No, sorry, I have not. Would you mind posting a link to the forum post you made in side fx because I'd like to follow it... I'm going to need something similar to that soon.

    • @bradicalmusic
      @bradicalmusic 5 ปีที่แล้ว

      @@doug_richardson www.sidefx.com/forum/topic/66011/

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      Looking at this again... perhaps the recently added "Bake to Foliage" will get the job done. www.sidefx.com/forum/topic/62310/#post-277018

  • @aleyes_
    @aleyes_ 4 ปีที่แล้ว +1

    Hey Doug, Thanks for the Tips! is there any chance you might be interested in doing a tutorial about make to make path/roads on terrain? and then import it into unreal as path and road on the landscape, I been trying so hard to look for how to do that, Thank you!!!

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว

      Thanks Alfred. Have you seen the new Non-Destructive Landscape Layers and Splines that are currently experimental in UE 4.23? At the moment, the workflow I'm using is to generate the base heightfield in Houdini, and then do the path/road/spline work in UE4. docs.unrealengine.com/en-US/Engine/Landscape/Layers/index.html

  • @jianchen9821
    @jianchen9821 5 ปีที่แล้ว +1

    Tanks! I also had edge stretching, but I changed the heightfield size and it didn't work.What else possible factors can influence the problem?

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      Here's what I would try:
      1. Make sure you can import a very simple terrain without any stretching. You can do this by connecting a Heightfield node to a Heightfield Noise node and then exporting the results. Start with parameters I'm using (size 1009x1009 and grid spacing 2).
      2. Click on your first heightfield node and select "Node info" (or middle click) and inspect the "height" volume. If you followed my instructions in (1) above you should see [505,505,1]. Now go to go the display/output node in your network and view "Node info" to verify the "height" volume is still [505,505,1]. If it is not, you may have changed the resolution somewhere (e.g. with a Heightfield Resample node) which could introduce stretching. If the "height" volume sizes do not match between the first and last nodes in your network, search for the first node where the change occurs to find the trouble spot.

    • @jianchen9821
      @jianchen9821 5 ปีที่แล้ว +1

      Thank you so much.It's really help.I found my problem on the "Heightfield_paint" node.When i press the "Recache Strokes"tab of the node,the "height"value changed to[505,505,1].

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      @@jianchen9821 Oh, that's good to know. I didn't realize the Heightfield Paint node cached the input volume.

  • @jeyko666
    @jeyko666 4 ปีที่แล้ว +1

    Houdini Engine does not run on the Free version. How can I import it into UE4 without the plugin ?

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว

      Unfortunately, you'd have to export the terrain and weight painted layers as PNGs, which is the same workflow used by World Machine, hand painting terrain in photoshop, or most of the other ways of generating landscape.

  • @leegregory756
    @leegregory756 2 ปีที่แล้ว +1

    This was a great tutorial, thanks for making it. One question - do you know if it's possible to use the draw mask function inside of Unreal? I'd like to stay in UE for as much as possible, and it seems kind of self defeating when the whole point of parameterising your HDA is to avoid having to operate from inside of Houdini directly.

    • @doug_richardson
      @doug_richardson  2 ปีที่แล้ว +1

      That’s a good question that I don’t know the answer to. As a possible alternative, you might be able to feed some UE geometry into the HDA and use that to generate a mask.

    • @doug_richardson
      @doug_richardson  2 ปีที่แล้ว +1

      Just looking at the HDA inputs you can get from UE: www.sidefx.com/docs/unreal/_inputs.html
      Perhaps you could use a landscape layer as your draw mask input, but then hide the landscape in the game (perhaps by keeping it in a different level that isn’t loaded by default).
      I don’t know if this would work, just brainstorming.

    • @leegregory756
      @leegregory756 2 ปีที่แล้ว +1

      @@doug_richardson Thanks for getting back to me! Those are some interesting ideas, I'll give them a try. Yeah, to begin with I was thinking along the lines in your earlier reply - which is to use geometry or curves as an input to generate a mask. However, the problem I'm having at the moment is getting the Unreal -> Houdini -> Unreal flow to work; it seems every time I try to use an asset in Unreal as an input to my HDA, my sessionsync connection is lost. I'm sure it's something I must be doing wrong, but if there's any tutorials/reading you can point to on that (beyond the existing Houdini Engine for Unreal documentation) I'd be very grateful!

    • @doug_richardson
      @doug_richardson  2 ปีที่แล้ว +1

      @@leegregory756 I don’t know what the session sync failure is (and unfortunately I can’t test HDAs right now because I don’t have Houdini anymore).
      One other thing that comes to mind is you can use Houdini to generate your base landscape and then you can use the UE landscape layer feature to paint on top of it non destructively. I actually used this technique right when UE landscape layers came out and it worked well.

    • @leegregory756
      @leegregory756 2 ปีที่แล้ว +2

      @@doug_richardson Yeah not to worry - I managed to figure it out. The issue was that I was plugging the Unreal generated content (Houdini creates a node inside of a geometry SOP referencing your Unreal content that you want to use as an input) into my HDA directly - rather than using "object merge" nodes which keeps the Unreal generated content contained separately in their own Geometry SOPs. Houdini creates the object merge nodes and wires everything up for you automatically when you tell it to use something from Unreal as an input - but for whatever reason, it wouldn't do that when I tried this yesterday, and so I was manually trying to plug in the node created by Houdini representing the data from Unreal into my HDA node - which just didn't work and broke the sync.
      Yeah, landscape layers is a good way of retaining manual work on top of procedurally generated terrain, but my interest at the moment is generating different procedural terrain visuals dynamically in an easy to apply way inside of Unreal. Ideally that would be via the medium of painting a mask, but if that's not possible then a spline shape would probably suffice. But you've given me some food for thought, thank you so much!

  • @JamesKellyWickerman123
    @JamesKellyWickerman123 5 ปีที่แล้ว +1

    You say you can do this with the apprentice version but when I take the HDA into UE4 it says I need a commercial license? What's the deal here? How can I learn how to make use of Houdini Engine?

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      My mistake. You can build the heightfield in Houdini, but you need at least the indie commercial license to use in UE4. Sorry about that.

    • @brunnersamuel4615
      @brunnersamuel4615 5 ปีที่แล้ว

      Use this www.sidefx.com/forum/topic/48606/

  • @brunnersamuel4615
    @brunnersamuel4615 5 ปีที่แล้ว +1

    I'm still not able to instance trees with the unreal_instance attribute, it just not working, have you tried ?

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      Yes. You don't actually need unreal_instance attribute for this.
      At a high level, you need to first create instanced static meshes and then bake it to foliage. Once it is foliage, you can further manipulate it with the UE4 foliage tools. The fact you have to bake it is a bit unfortunate because you have to delete old foliage and rebake when you change it, but it's better than nothing.
      I have a UE4 example project and Houdini HDA (uses Houdini Indie) that demonstrates scatting an instanced cube over a landscape. Open the Foliage level and then look at the scatter HDA. The scatter tool can create foliage on landscape properly only if it has following options set:
      1. Scatter Over=Input
      2. Pack and Instanced=Checked
      3. Houdini Inputs=Landscape Input (and then select the landscape in your scene)
      4. Export Landscape As=Mesh
      If the "Bake to Foliage" button is disabled, you probably didn't use instances meshes (i.e., Packed and Instanced was unchecked).
      The geometry that is scattered uses a subnetwork input which allows you to set the geometry in UE4. I *think* you could also use this unreal_attribute like you were trying to do (I have not tried this). The subnetwork input method I used allows you to easily change the geometry from the UE4 editor.
      Example Project:
      github.com/drichardson/UE4Examples/tree/master/HoudiniEngine
      More information here:
      www.sidefx.com/docs/unreal/_instancing.html
      www.sidefx.com/docs/unreal/_landscapes.html#LandscapeInput
      Probably be worth me making a video on this. The main concepts you need to understand are instancing (called packed primitives in Houdini) including the Copy to Points node (which lets you Pack and Instance) and getting input from your UE4 landscape as input into your HDA.

    • @brunnersamuel4615
      @brunnersamuel4615 5 ปีที่แล้ว

      @@doug_richardson Hum, what im doing now is scattering cubes on the terrain and then i drag n drop my trees on the cube in houdini detail menu. I tried with an input, just tried because i'm not able to understand how to use inputs, but well, if my trees could automatically spawn it would be nice.

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      @@brunnersamuel4615 I think you already saw this in the sidefx forum, but for everyone else's benefit, I did end up making a follow up to this video that focuses on placing UE4 foliage from Houdini. th-cam.com/video/0PjZ9awgdFY/w-d-xo.html

  • @fq5381
    @fq5381 5 ปีที่แล้ว +1

    Thank for this video,I have a question, I use a ray node project a road on the terrain in houdini,then i export the terrain use hda to ue4,but in ue4 the landscape position don't match the houdini,the transform date should be auto genetated via houdini engine for mathching position in houdini ,it bothered me many time,could you help me,thanks a lot man.
    this is the question url I submitted it on the official website-- www.sidefx.com/forum/topic/66558/

    • @doug_richardson
      @doug_richardson  5 ปีที่แล้ว

      What do you mean by "the landscape position don't match the houdini"? What positions are not matching up like you expect?

  • @kirandev
    @kirandev 3 ปีที่แล้ว +1

    can we import heighfield without hda ?????

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว

      Yes, you can export a heightfield image file from Houdini.

  • @dilithium72
    @dilithium72 3 ปีที่แล้ว +1

    Does UE4 just see this as a large mesh? Whilst the advantages of using Houdini Heightfields to generate landscapes are obvious, is the UE4 landscape a lot less expensive in terms of computation or memory, etc? Nice and simple to understand what you did. :-)

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว +1

      No, landscapes are not simply large mesh objects. They are divided into components that can (among other things) be individually excluded from rendering during occlusion culling. You can see this in action by adding a landscape into your UE4 level, navigate around the middle so you can't see the entire landscape, run the "FreezeRendering" command, and then turn around to see what parts of the landscape have been culled by the occlusion culling. Google "Visibility and Occlusion Culling" for more information on this.
      Landscapes support LODs on a component basis. If you had a single big mesh it would all have to LOD at the same level. Since a landscape is divided into components, each component can be given a different LOD depending on it's size on the screen.
      Both of these only matter if you are going to be on the landscape. If you're just trying to build a distant landscape that you will never get close to, and this distant landscape only takes up a small portion of the screen and it is fine for the entire thing to be assigned a single LOD, then making it a single mesh is totally fine (e.g., distant mountains).
      For more technical details, google "landscape technical guide".

    • @doug_richardson
      @doug_richardson  3 ปีที่แล้ว

      Oh, and you can always use Houdini's "Convert HeightField" node to turn your heightfield into a single mesh if necessary. www.sidefx.com/docs/houdini/nodes/sop/convertheightfield.html

    • @dilithium72
      @dilithium72 3 ปีที่แล้ว +1

      @@doug_richardson Cheers. I thought the heightfield was exported and, somehow, put onto the UE4 landscape as a displacement map or something like that.

  • @Moctop
    @Moctop 4 ปีที่แล้ว +1

    A heads up..the "destroy all spare parameters" that you didn't know the consequences of messed up the workflow for me, showed up as nothing in Unreal.
    When I chose "No changes" it works.
    Edit: Scratch that, it worked one time for whatever reason, still having issues. It's only showing up as the Houdini logo in Unreal.

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว

      I've experienced issues where you only see the Houdini logo in Unreal (I assume you mean the actor in the UE4 level looks like the Houdini logo but never bakes to the landscape). Usually when that happens to me the issue is that HoudiniEngineForUnreal (the UE4 Plugin) cannot connect to HoudiniEngine for some reason.
      1. Make sure your version of the HoudiniEngineForUnreal plugin matches the version of the HoudiniEngine installed. You should see some information about versions printed in the UE4 Output Log that tells you what version of Houdini the HoudiniEngineForUnreal plugin is trying to use.
      2. In UE4, try File > Restart the Houdini Engine Session.

    • @Moctop
      @Moctop 4 ปีที่แล้ว +1

      @@doug_richardson Quick reply, cheers. Been trying to debug this for a while now. I think I might be making my terrain in a way Houdini Engine can't access..like referring to a mesh in the scene or something like that, I'm new to this workflow and don't quite know the limits of it yet. I decided to simply file-cache my finished terrain as bgeo, load it into a separate geo node Terrain_Export and turn that into the HDA to bypass that stuff. I'm not really interested in being able to update it in real-time in Unreal, just the convenience of it creating the landscape etc automatically. Thanks!

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว

      ​@@Moctop Ah yes, I just recently ran into this. I was using the GameDevelopmentToolset's Open Street Map import node, and referencing an OSM file in disk relative to my Houdini project (the $JOB variable). When you drag the HDA into UE4, it cannot find the file. What you need to do is embed the file you are referencing in the HDA itself. You can do this by adding a file to the Extra files section of the Operator Type Properties window (www.sidefx.com/docs/houdini/ref/windows/optype.html#extra_files). Then, you can reference the file using an opdef: path (www.sidefx.com/docs/houdini/assets/opdef.html).
      I just did this last week, and I think it's worth a video (just so I remember the process myself). I'll make a video to cover this an post it tonight. Stay tuned.

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว

      OK, video posted. It's still processing so the quality may be low for a few more hours. th-cam.com/video/dh7ilfgtOdg/w-d-xo.html

  • @evanrudefx
    @evanrudefx 4 ปีที่แล้ว +1

    I have been trying to figure out the stretching problem :) thanks!!! You can see the recommended resolutions here www.sidefx.com/docs/unreal/_landscapes.html

    • @doug_richardson
      @doug_richardson  4 ปีที่แล้ว +1

      Yeah, UE4 is picky about heightfield resolutions. Another good document to keep in mind is the Landscape Technical Guide from Epic: docs.unrealengine.com/en-US/Engine/Landscape/TechnicalGuide/index.html