Hi,
Sorry that I forgot to comment back here, but those warnings errors after PIE can be safely ignored.
Recent builds of the plugin shouldn't display them anymore as well.
Found 527 posts.
Search results Show results as topic list.
Houdini Engine for Unreal » "null parameter when clearing" warning spam in engine logs
- dpernuit
- 534 posts
- Offline
Houdini Engine for Unreal » Unreal Engine - How to use PDG?
- dpernuit
- 534 posts
- Offline
Hi,
The PDG Asset link for the Unreal plugin is on our roadmap and will be available in the near future.
You can still use PDG with the Unreal plugin by nesting TOP networks at the SOP level in your HDAs.
The TOP net will cook as would any “regular” subnet in your asset's network.
The downside to this approach is that you wont have the asynchronous loading of outputs/inputs from PDG that the asset link provides.
The PDG Asset link for the Unreal plugin is on our roadmap and will be available in the near future.
You can still use PDG with the Unreal plugin by nesting TOP networks at the SOP level in your HDAs.
The TOP net will cook as would any “regular” subnet in your asset's network.
The downside to this approach is that you wont have the asynchronous loading of outputs/inputs from PDG that the asset link provides.
Houdini Engine for Unreal » How can I save Landscape layers in a proper folder not in a temp folder
- dpernuit
- 534 posts
- Offline
Hi,
Doug is right, the Landscape Layer Info Objects stored in the HoudiniEngine/Temp folder should be version controlled as they actually store your landscape layers amongst other things (generated materials should also live there).
We dont currently have an integrated way of renaming/moving those in the plugin.
Doug is right, the Landscape Layer Info Objects stored in the HoudiniEngine/Temp folder should be version controlled as they actually store your landscape layers amongst other things (generated materials should also live there).
We dont currently have an integrated way of renaming/moving those in the plugin.
Houdini Engine for Unreal » Houdini Engine Plugin not loading in source version
- dpernuit
- 534 posts
- Offline
Hi,
That's correct, you'll need to build the plugin from source if you're not using a vanilla version of UE4.
The plugin we ship with the Houdini installer is built for the official releases of UE4, and since UE4.20 (IIRC), Unreal actually expects plugin to be built for the exact build of the engine you're using, so a custom version of Unreal requires the plugin to be built from source.
You can simply delete the Intermediate and Binaries folders from the version of the plugin we ship and rebuild them with the engine.
That's correct, you'll need to build the plugin from source if you're not using a vanilla version of UE4.
The plugin we ship with the Houdini installer is built for the official releases of UE4, and since UE4.20 (IIRC), Unreal actually expects plugin to be built for the exact build of the engine you're using, so a custom version of Unreal requires the plugin to be built from source.
You can simply delete the Intermediate and Binaries folders from the version of the plugin we ship and rebuild them with the engine.
Houdini Engine for Unreal » HDA not cooking
- dpernuit
- 534 posts
- Offline
@Sneeky If you're using apprentice, then unfortunately the license error is normal, since you need at least a Houdini Indie License to be able to use the plugins.
Houdini Engine for Unreal » How to partly update a heightfield?
- dpernuit
- 534 posts
- Offline
Hi,
I tried to reproduce that issue but couldnt, what version are you using?
Could you give us a little more details on what you're trying to do?
If I understood correctly, Heightfield1 is 2017x2017, and the right hand heightfield from UE4 is 1009x1009.
What about the metric size of both terrain ?
This is what I end up with if I try with a setup similar to yours:
I tried to reproduce that issue but couldnt, what version are you using?
Could you give us a little more details on what you're trying to do?
If I understood correctly, Heightfield1 is 2017x2017, and the right hand heightfield from UE4 is 1009x1009.
What about the metric size of both terrain ?
This is what I end up with if I try with a setup similar to yours:
Edited by dpernuit - March 15, 2019 11:09:20
Houdini Engine for Unreal » Houdini 16.5 Engine to UE4 4.18 - how to [re]install ?
- dpernuit
- 534 posts
- Offline
Unfortunately, if you didn't tick the plugin during the install, then the plugins files aren't copied in your houdini directory, and you're stuck with having to reinstall Houdini again.
If you had used our Houdini Launcher (Beta), then reinstalling the plugin would have been easier, by just selecting the Unreal plugin for that version in the launcher's Houdini Engine tab.
If you had used our Houdini Launcher (Beta), then reinstalling the plugin would have been easier, by just selecting the Unreal plugin for that version in the launcher's Houdini Engine tab.
Edited by dpernuit - March 15, 2019 10:55:21
Houdini Engine for Unreal » Failed to find Houdini during UE4 game build
- dpernuit
- 534 posts
- Offline
Hi,
Have you installed the Unreal plugin when installing H17.0.459?
The plugin looks in the registry for the latest Houdini Engine or Houdini version available, and will try to get the HAPI include from that directory.
You could try reinstalling H17.0.459, making sure that you check the unreal plugin during the install.
Have you installed the Unreal plugin when installing H17.0.459?
The plugin looks in the registry for the latest Houdini Engine or Houdini version available, and will try to get the HAPI include from that directory.
You could try reinstalling H17.0.459, making sure that you check the unreal plugin during the install.
Technical Discussion » Linking Texture filename param gives "Cannot get unexpanded string for parms with keyframes" error
- dpernuit
- 534 posts
- Offline
Hi,
This was due to a bug in HF_Output, this issue should be fixed in today's daily build.
This was due to a bug in HF_Output, this issue should be fixed in today's daily build.
Houdini Engine for Unreal » How do I assign my HDA with multiple material elements for Unreal to see?
- dpernuit
- 534 posts
- Offline
@went_procedural If I understand correctly what you're trying to do, the issue with your current setup is that you're only generating one material instance.
=> Your material node assign two different material for each group
=> The first attribute creates tells the UE4 plugin that everything should use a material instance created from your master material.
=> You override that material instance myTexture to the first principled shader's diffuse.
=> Then you ovveride that same myTexture paramater on the material instance to the second principled shader's diffuse.
End result, you've created a MI from your master material, and overrident its myTexture paramter to the second principled shader.
What you want is, to create two material instance of your master material, on with the first principledshader's diffuse, the other with the second's.
The issue could be that since you're setting the unreal material to the same values, the plugin thinks that you want to use the same material instance for both groups. So Unfortunately, you may have to duplicate your master material.
=> Your material node assign two different material for each group
=> The first attribute creates tells the UE4 plugin that everything should use a material instance created from your master material.
=> You override that material instance myTexture to the first principled shader's diffuse.
=> Then you ovveride that same myTexture paramater on the material instance to the second principled shader's diffuse.
End result, you've created a MI from your master material, and overrident its myTexture paramter to the second principled shader.
What you want is, to create two material instance of your master material, on with the first principledshader's diffuse, the other with the second's.
The issue could be that since you're setting the unreal material to the same values, the plugin thinks that you want to use the same material instance for both groups. So Unfortunately, you may have to duplicate your master material.
Houdini Engine for Unreal » How do I assign my HDA with multiple material elements for Unreal to see?
- dpernuit
- 534 posts
- Offline
@pande I see, so you're actually trying to assign two different unreal materials to a Landscape layer / HF mask ?
That's actually not possible, as unreal only allows you to use one material per Landscape.
Most of the discussion in this topic was for mesh materials, as meshes can be assigned multiple materials.
For Landscapes, they can only have two materials, a main one, and a second one for the holes that are created via the visibility mask. You should use a layer blend on your main material, to define what texture/values/colors to use for a given layer.
In your case, your HF has height, mask and mask2 (dont merge the two masks together, as unreal will then see them as one, and wont be able to texture them differently).
Your unreal landscape will have two layers, mask and mask2.
You need to setup your material with a layer blend that takes into account mask and mask2.
You should have a look at for more details on Landscape materials:
https://docs.unrealengine.com/en-us/Engine/Landscape/QuickStart/4 [docs.unrealengine.com]
That's actually not possible, as unreal only allows you to use one material per Landscape.
Most of the discussion in this topic was for mesh materials, as meshes can be assigned multiple materials.
For Landscapes, they can only have two materials, a main one, and a second one for the holes that are created via the visibility mask. You should use a layer blend on your main material, to define what texture/values/colors to use for a given layer.
In your case, your HF has height, mask and mask2 (dont merge the two masks together, as unreal will then see them as one, and wont be able to texture them differently).
Your unreal landscape will have two layers, mask and mask2.
You need to setup your material with a layer blend that takes into account mask and mask2.
You should have a look at for more details on Landscape materials:
https://docs.unrealengine.com/en-us/Engine/Landscape/QuickStart/4 [docs.unrealengine.com]
Houdini Engine for Unreal » will 16.5 engine ever work with ue 4.21 ?
- dpernuit
- 534 posts
- Offline
Hi,
Unfortunately, not officially, since we're not adding new features to 16.5, the last plugins versions on it will remain 4.19/4.20.
Your only solution would be to build the plugin yourself from the sources available on github.
You could either take an early H17/UE4.21 plugin and try to build it with 16.5, or build the current H16.5/UE4.20 plugin with 4.21.
You're likely going to have to change a few version numbers here and there and fix some compile errors due to missing/changed functions.
Unfortunately, not officially, since we're not adding new features to 16.5, the last plugins versions on it will remain 4.19/4.20.
Your only solution would be to build the plugin yourself from the sources available on github.
You could either take an early H17/UE4.21 plugin and try to build it with 16.5, or build the current H16.5/UE4.20 plugin with 4.21.
You're likely going to have to change a few version numbers here and there and fix some compile errors due to missing/changed functions.
Houdini Engine for Unreal » Prevent Houdini UE4 plugin from automatically loading
- dpernuit
- 534 posts
- Offline
Hi,
You could try setting “EnabledByDefault” to false in the HE plugin's .uplugin file.
You could try setting “EnabledByDefault” to false in the HE plugin's .uplugin file.
Houdini Engine for Unreal » Terrain weightmaps/splatmaps automatically set up for UE4
- dpernuit
- 534 posts
- Offline
That's correct, the plugin will create the layer infos for you, and export the splat maps with the landscape, but wont create the UE4 material for you.
Assuming you want to use a HF that has a water and grass layer for example, you need your landscape material to use these in layer blend. You can then use the “unreal_material” attribute on your hda to automatically assign the landscape material when cooking the hda.
Assuming you want to use a HF that has a water and grass layer for example, you need your landscape material to use these in layer blend. You can then use the “unreal_material” attribute on your hda to automatically assign the landscape material when cooking the hda.
Houdini Engine for Unreal » How do I assign my HDA with multiple material elements for Unreal to see?
- dpernuit
- 534 posts
- Offline
@pande Not sure what you're trying to do here, are you trying to use one landscape with two materials assigned to it?
Houdini Engine for Unreal » HDA Unreal Material Instancing Texture Override
- dpernuit
- 534 posts
- Offline
Hi again,
I had a quick look at your HDA, will try to double check everything with the project tomorrow…
I know this part can be a little confusing, as these attributes are actually not referencing the principled shader's parameters or source texture files, but are helping the plugin to know which channel / unreal texture to use. From the docs:
What this means, is, your first need to decide what channel of the material you want to use: basecolor, normal etc….
If your asset generates only one material when imported into unreal, you can simply set the attribute to that channel's name.
That's your case, so if you want to use your material's basecolor texture, simply set the attribute to: basecolor
basecolor_texture is the name of the parameter in Houdini, but Unreal/Houdini Engine wont know about that.
However, it knows that it had generated a material for your asset, and that material had a basecolor channel, and it created a texture for that channel.
If your asset generates multiple materials, then you need to also tell the plugin which material you're refering to.
And as specified in the docs, the path is relative to your asset node, not the attribute create node.
in your case, the material's path relative to the asset is:
matnet1/principledshader1
you then append the material channel you want to use, in your case, basecolor:
matnet1/principledshader1/basecolor
The plugin knows that it had generated a material from “matnet1/principledshader1”, and you're telling it to use the texture that was created with that material.
I had a quick look at your HDA, will try to double check everything with the project tomorrow…
I know this part can be a little confusing, as these attributes are actually not referencing the principled shader's parameters or source texture files, but are helping the plugin to know which channel / unreal texture to use. From the docs:
First, if your asset generates only one material, you can simply set the attribute to the material channel you want to use (basecolor (or diffuse), normal, specular, roughness, emissive, metallic, opacitymask.. ) If your assets generates multiple materials, then you need to add the relative path to the SHOP node (or principled shader node) that generates the material before the desired channel. ( for example “testgeometry_squab1/shopnet1/SquabSkin/diffuse” ). Please note that this path is relative to your asset node.
What this means, is, your first need to decide what channel of the material you want to use: basecolor, normal etc….
If your asset generates only one material when imported into unreal, you can simply set the attribute to that channel's name.
That's your case, so if you want to use your material's basecolor texture, simply set the attribute to: basecolor
basecolor_texture is the name of the parameter in Houdini, but Unreal/Houdini Engine wont know about that.
However, it knows that it had generated a material for your asset, and that material had a basecolor channel, and it created a texture for that channel.
If your asset generates multiple materials, then you need to also tell the plugin which material you're refering to.
And as specified in the docs, the path is relative to your asset node, not the attribute create node.
in your case, the material's path relative to the asset is:
matnet1/principledshader1
you then append the material channel you want to use, in your case, basecolor:
matnet1/principledshader1/basecolor
The plugin knows that it had generated a material from “matnet1/principledshader1”, and you're telling it to use the texture that was created with that material.
Houdini Engine for Unreal » Question about “volumes” in HoudiniLandscapeUtils.cpp
- dpernuit
- 534 posts
- Offline
Hi,
It's fairly simple, Heightfields are stored as volumes in Houdini, albeit one dimension of said volume is forced to one for HF.
So in the most simple case, HF are composed of one height volume and one mask volume.
Each additional landscape layer (or heightfield “mask” in Houdini), like debris, water, bedrock etc.. is an additional volume.
AddLandscapeMaterialAttributesToVolume() is a helper function that creates the two material attributes on a given heightfield volume (one for landscape, one for hole) that contains a ref to the source unreal material.
It's fairly simple, Heightfields are stored as volumes in Houdini, albeit one dimension of said volume is forced to one for HF.
So in the most simple case, HF are composed of one height volume and one mask volume.
Each additional landscape layer (or heightfield “mask” in Houdini), like debris, water, bedrock etc.. is an additional volume.
AddLandscapeMaterialAttributesToVolume() is a helper function that creates the two material attributes on a given heightfield volume (one for landscape, one for hole) that contains a ref to the source unreal material.
Houdini Engine for Unreal » UE4 World Composition w/ Houdini
- dpernuit
- 534 posts
- Offline
Hi,
I did some more investigation on that, and it seems that a regression was introduced recently that made the tiles to be 1 pixel too wide/tall… This is what caused the tiles to overlap, and created the seams.
I've committed a fix for that, it'll be in tomorrow's daily build of the plugin.
I did some more investigation on that, and it seems that a regression was introduced recently that made the tiles to be 1 pixel too wide/tall… This is what caused the tiles to overlap, and created the seams.
I've committed a fix for that, it'll be in tomorrow's daily build of the plugin.
Houdini Engine for Unreal » UE4 World Composition w/ Houdini
- dpernuit
- 534 posts
- Offline
Hi,
If both tiles were brought in by the same HDA, then the seems shouldnt be there.
If you need the two separate HDAs, then you can try forcing a common range conversion by using the ForceMinMax values setting in the project settings. In Project settings > Houdini Engine, under marshalling: enable Marshalling landscape force min/max values.
Alternatively, you can also try to enable the “Marshalling landscape use default unreal scaling” option.
What version of H are you using? Could you send me the HDA you're using?
Converting two landscape tiles separately could result in seams, but not as big as the one you have.
The two tiles also seem to overlap which normally shouldnt be the case, they should just “touch” each other.
If both tiles were brought in by the same HDA, then the seems shouldnt be there.
If you need the two separate HDAs, then you can try forcing a common range conversion by using the ForceMinMax values setting in the project settings. In Project settings > Houdini Engine, under marshalling: enable Marshalling landscape force min/max values.
Alternatively, you can also try to enable the “Marshalling landscape use default unreal scaling” option.
What version of H are you using? Could you send me the HDA you're using?
Converting two landscape tiles separately could result in seams, but not as big as the one you have.
The two tiles also seem to overlap which normally shouldnt be the case, they should just “touch” each other.
Houdini Engine for Unreal » HDA Unreal Material Instancing Texture Override
- dpernuit
- 534 posts
- Offline
Hi,
There is a couple things that are important when trying to override material parameters:
- for textures, if you aim to use textures from Houdini, you need to assign the material to your object.
This ensure that when your mesh is generated, the unreal plugin sees the houdini material on it, creates its unreal counterpart and the corresponding textures.
- the unreal_material_instance attribute then overrides it, creating a new material instance from an existing unreal material instance.
- the material instance parameters can then be replaced via the unreal_material_parameter_ attributes.
for texture, there is two ways you can point this attribute to the corresponding channel in the houdini material:
If your HDA generates only one material, then you can simply set the attribute to the name of the channel you want to use (basecolor, normal, roughness etc…) the plugin will then find the corresponding texture that was generated when the houdini material was converted to an unreal one.
If your HDA generates multiple materials, then you can set the attribute to the path to the channel that you want to use.
For example, in your case, to use the base color texture, the attribute needs to be pointed to the principled shader's parameter that is assigned the texture, not the texture's source file.
try removing the “chs”, and just use “../matnet1/principled_shader1/basecolor_texture”.
EDIT: I'm actually wrong here, the attribute should be set to the relative path from the HDA's node to the material (matnet1/principledshader1) + the channel to use (basecolor), so “matnet1/principled_shader1/basecolor”
or since that HDA only creates one material, just specifying the channel should be enough, “basecolor”
There is a couple things that are important when trying to override material parameters:
- for textures, if you aim to use textures from Houdini, you need to assign the material to your object.
This ensure that when your mesh is generated, the unreal plugin sees the houdini material on it, creates its unreal counterpart and the corresponding textures.
- the unreal_material_instance attribute then overrides it, creating a new material instance from an existing unreal material instance.
- the material instance parameters can then be replaced via the unreal_material_parameter_ attributes.
for texture, there is two ways you can point this attribute to the corresponding channel in the houdini material:
If your HDA generates only one material, then you can simply set the attribute to the name of the channel you want to use (basecolor, normal, roughness etc…) the plugin will then find the corresponding texture that was generated when the houdini material was converted to an unreal one.
If your HDA generates multiple materials, then you can set the attribute to the path to the channel that you want to use.
For example, in your case, to use the base color texture, the attribute needs to be pointed to the principled shader's parameter that is assigned the texture, not the texture's source file.
try removing the “chs”, and just use “../matnet1/principled_shader1/basecolor_texture”.
EDIT: I'm actually wrong here, the attribute should be set to the relative path from the HDA's node to the material (matnet1/principledshader1) + the channel to use (basecolor), so “matnet1/principled_shader1/basecolor”
or since that HDA only creates one material, just specifying the channel should be enough, “basecolor”
Edited by dpernuit - Jan. 30, 2019 11:58:16
-
- Quick Links