Hello Jaap!
Thanks for kind words, we do appreciate it and we are glad you guys find this plugin useful!
I'll try to address the points as I go, but if I do miss something, please let me know. Some of these are answers and some are thoughts (and perhaps questions!).
We did have c++ API goal on our radar, but we did not get to it. You are right about the Utils file; it does need refactoring and it was a goal for 4.11. It did become bloated as we added features. I'd like to get to it, b we might have to put it on hold until later in favour of adding more features.
We also would like to look into Blueprint support at some point (we did have a working prototype). For the time being, we do not officially support runtime solutions (and Blueprint is one). This mostly has to do with logistics and licensing.
The current architecture is very UObject centric. And you do indeed have to go through creation of Houdini component, actor etc. But I think there's enough functionality in Utils file to create a set of API functions which would bypass component and actor and get you the raw data you need. We would need to create separate functions for parameters, inputs and such.
We can definitely add the interfaces for all necessary classes, I don't think that would be much work. And would probably be the fastest way to achieve your goal. We would need to simplify inputs (perhaps add functions to take raw mesh and spline inputs). We can also look into providing a set of higher level routines, which would create necessary UE4 constructs (actors, components) perform cooking, data extraction and deletion of objects that are no longer needed.
There's a way to flag assets to not cook on parameters change already and there's a way to trigger cooks manually, so that's good news. I think there also should be an option to perform synchronous cooks.
Cancellation is very much Houdini dependent; it's really up to SOP (or any node, really) implementors to detect this and cancel the cook. I think we do have some support for this in Houdini Engine, but I don't remember if we support this in Unreal or Unity plugins. I would like to look at our Unreal cooking scheduler and do some refactoring. I do like your idea regarding cancellation / not caring - I will file that as a separate RFE.
At the moment we do cooking / instantiation in a separate thread, but static mesh generation happens on the main thread and that was due to UE4's limitation, when all the UObject stuff had to occur on the main thread. A lot of static mesh construction code can really be moved to a thread. I know Epic had something in works for this, but I don't know what the status of that is. We might have to look into reworking static mesh construction code at some point if we want to achieve Runtime, as I believe that piece of UE4 code is Editor only. Which means we would have to duplicate it within the plugin. There also was some work on threading UObject stuff. This would definitely help.
You are correct regarding raw mesh - if you start using custom attributes. We could probably look into providing our own version of that (especially if you take into account the need to rework static mesh construction code for future runtime support).
I don't remember what happens if you do multiple cooks for the same asset while cook is already in progress, I would need to double check. I'll get back on that
Serialization code is used heavily in Blueprint, indeed. Actually it is used for almost everything, including the undo/redo system (transactioning), object copying / cloning, plain serialization. I think it should be relatively easy to make current code Blueprint callable. I wouldn't be surprised if it worked out of the box. We would just need to expose / create Blueprint callable methods.
Please let me know and thanks for the brainstorming and ideas!
Found 171 posts.
Search results Show results as topic list.
Houdini Engine for Unreal » Access from C++ (plugin API surface)
- ttvdsfx
- 173 posts
- Offline
Houdini Engine for Unreal » Is it possible to import an animated geometry into UE4?
- ttvdsfx
- 173 posts
- Offline
You can create a Houdini asset that does this. We have limited animation support for Houdini assets in Unreal, but it is possible. You can a have time dependent animation. Basically, our Unreal plugin sets time, sends it back to Houdini Engine, Houdini Engine cooks, sends geometry back, and this goes on. So basically we do cook every frame, every time it runs. It would be slow, but it would work. We have tested this with simple assets.
I think a better approach would be to bake individual static meshes (either inside Houdini or through Houdini Engine Unreal plugin) and piece them together into an animation inside Unreal. This way your animation will not rely on Houdini Engine for cooking afterwards.
I think a better approach would be to bake individual static meshes (either inside Houdini or through Houdini Engine Unreal plugin) and piece them together into an animation inside Unreal. This way your animation will not rely on Houdini Engine for cooking afterwards.
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
Hello!
I actually do like your approach, haha, you learn something every day. It would definitely be faster than point cloud iso, imo.
Basically, unreal landscape is composed of components (one component corresponds to a landscape tile). We marshall names of those components as “name” attribute, so you can always figure out which points belong to which component. Now, each component / tile is a grid as well, composed of points. unreal_vertex_index is an integer vec2 which gives you a local index within the component. They should be consistent and you can think of it as a local coordinate system per component / tile. They will start at 0,0 and will go to max number of divisions, which is variable (you can specify that at landscape generation time).
Hope this helps
We are looking into marshalling weightmaps and layers at the moment.
I actually do like your approach, haha, you learn something every day. It would definitely be faster than point cloud iso, imo.
Basically, unreal landscape is composed of components (one component corresponds to a landscape tile). We marshall names of those components as “name” attribute, so you can always figure out which points belong to which component. Now, each component / tile is a grid as well, composed of points. unreal_vertex_index is an integer vec2 which gives you a local index within the component. They should be consistent and you can think of it as a local coordinate system per component / tile. They will start at 0,0 and will go to max number of divisions, which is variable (you can specify that at landscape generation time).
Hope this helps
We are looking into marshalling weightmaps and layers at the moment.
Houdini Engine API » Lumberyard Support
- ttvdsfx
- 173 posts
- Offline
mandrake0ttvdsfx
I don't know about the other ones, but Blender integration might not be possible due to limitations in Blender plugin system as well as possible GPL conflict licensing issues.
when i'm correct the GPL limitation you have over come with the thrift implementation. when the generated code can be GPL then there should be no problems. the server communicates with socket or pipe shouldn't give any problems. when i read the license of blender it looks like a smaller problem:
https://www.blender.org/about/license/ [blender.org]
you even can integrate the cycles render in houdini and you won't have any troubles with the license. :-)
the bigger challenge would be the Implementation c++ api from blender. i head some troubles with the python api and i don't think the c++ is much better. missing of documentation combined with my poor coding skills isn't a good mach. ops:
We would have to fork Blender and do changes in that fork it seems. A lot of integrations with Blender seem to follow this pattern. My personal experience with Blender plugins is not good and knowledge of Blender code is limited, it's been a while since I have looked at it.
Our thirft implementation might help, but there are still questions (like whether we would have to open source our thrift / HAPIL point - you would have to link to it or dynamically load). I am not a GPL guru however
I think it is one of those cases when it would definitely help if this project was started by the community.
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
DASDNormals I think could be useful, for remeshing.How would that work? I am always on the lookout for new remeshing techniques and tricks.
I was thinking along the lines of point cloud iso .
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
Hello
It's not in changes since it's not a finished feature. I will add it to changelog once it is done.
You are right about tangents. Normals I think could be useful, for remeshing.
We are working on getting layer / weightmap info.
As for heightmap output, you are correct, it's one way to do it. We are also planning landscape modification through an asset.
Another request was to add lightmap information.
There's no documentation yet, but we will provide test assets.
Thanks for the feedback!!
It's not in changes since it's not a finished feature. I will add it to changelog once it is done.
You are right about tangents. Normals I think could be useful, for remeshing.
We are working on getting layer / weightmap info.
As for heightmap output, you are correct, it's one way to do it. We are also planning landscape modification through an asset.
Another request was to add lightmap information.
There's no documentation yet, but we will provide test assets.
Thanks for the feedback!!
Houdini Engine API » Lumberyard Support
- ttvdsfx
- 173 posts
- Offline
I don't know about the other ones, but Blender integration might not be possible due to limitations in Blender plugin system as well as possible GPL conflict licensing issues.
Houdini Engine API » Lumberyard Support
- ttvdsfx
- 173 posts
- Offline
We need to do more exploration and see if it is possible. But at the moment we don't have anything planned. We always welcome community effort, however.
We have looked at CryEngine integration before and unfortunately it was not possible due to a number of technical limitations.
We have looked at CryEngine integration before and unfortunately it was not possible due to a number of technical limitations.
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
Awesome. Glad you found it useful!
We don't have Unreal landscape export yet, it's a separate feature, but definitely planned First step was to let people instance / create things on landscape surfaces.
As for modification, definitely, but we still are trying to figure out the workflow for this. I will file a separate RFE / GitHub issue for this purpose.
We don't have Unreal landscape export yet, it's a separate feature, but definitely planned First step was to let people instance / create things on landscape surfaces.
As for modification, definitely, but we still are trying to figure out the workflow for this. I will file a separate RFE / GitHub issue for this purpose.
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
Hello,
Yes, we had a number of bugs to fix in landscape input code.
We fixed scaling and added a number of features, please see here:
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/7 [github.com]
It sounds like you want to enable full geometry option to get the mesh data. If you don't enable it, only the point data will be marshalled in. In that case you would have to remesh it (we also do marshall in normals, so it should be easier).
Please note that you can select individual landscape components through selection tool and if you have that option enabled we will only marshall selected geometry. This makes it much faster than marshalling the whole landscape.
We are still in the process of adding features, mainly landscape materials and UVs.
Please let us know if you have any questions.
Thanks!
Yes, we had a number of bugs to fix in landscape input code.
We fixed scaling and added a number of features, please see here:
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/7 [github.com]
It sounds like you want to enable full geometry option to get the mesh data. If you don't enable it, only the point data will be marshalled in. In that case you would have to remesh it (we also do marshall in normals, so it should be easier).
Please note that you can select individual landscape components through selection tool and if you have that option enabled we will only marshall selected geometry. This makes it much faster than marshalling the whole landscape.
We are still in the process of adding features, mainly landscape materials and UVs.
Please let us know if you have any questions.
Thanks!
Houdini Engine for Unreal » HDA not cooking
- ttvdsfx
- 173 posts
- Offline
Hello Magnus,
I seem to be getting
“HAPI Error: Limmited commercial (Indie) assets not allowed with commercial licenses.” error when instantiating your asset inside Unreal, so I can't test your asset easily.
When you drag in your asset into viewport, there should be ‘Fetch Cook Log’ button in details panel on the right, in the ‘Houdini Asset’ category. What does the window say when you press it?
Thanks!
I seem to be getting
“HAPI Error: Limmited commercial (Indie) assets not allowed with commercial licenses.” error when instantiating your asset inside Unreal, so I can't test your asset easily.
When you drag in your asset into viewport, there should be ‘Fetch Cook Log’ button in details panel on the right, in the ‘Houdini Asset’ category. What does the window say when you press it?
Thanks!
Houdini Engine for Unreal » Curve to UE4 workflow
- ttvdsfx
- 173 posts
- Offline
Hello!
We filed two RFEs:
# 73666 - Curve baking
Referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/25 [github.com]
and
# 73667 - Baked curve input.
Referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/26 [github.com]
Thank you!
We filed two RFEs:
# 73666 - Curve baking
Referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/25 [github.com]
and
# 73667 - Baked curve input.
Referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/26 [github.com]
Thank you!
Houdini Engine for Unreal » Instance / Scatter ?
- ttvdsfx
- 173 posts
- Offline
DASD
Thanks!
Just one question:
- Where can I see the RFEs (as a Houdini Indie user)?
We referenced this RFE/Suggestion in
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/24 [github.com]
Houdini Engine for Unreal » Instance / Scatter ?
- ttvdsfx
- 173 posts
- Offline
MagnusL3D
Hmm, it's a nice feature, is it possible to some how drag and drop multiple objects and it would fill up all your splitts or do I have to drag 1 asset at a time to each split ?
Hello Magnus!
We filed an RFE #73662 for this feature and referenced it in
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/23 [github.com]
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
Most likely it is a bug somewhere, I will have a look, we are still in the process of testing / working on this.
I am not sure about your screenshot - UI looks outdated. Are you running the latest build?
When you select landscape type input and then select landscape from a list, it will send landscape vertex data to the asset as point data. At the moment we only send point data. You can use that point data to instance things inside the asset.
'Import selected parts only' - will send only selected parts of landscape (using mouse selection).
'Recommit landscape' button can be used to resend landscape data to the asset. We aded it for the time being so you could send your things over if you updated landscape. We will probably automate detection of landscape changes in the future.
There is still a number of features that we are going to add soon (like having an option to send actual geometry, not just vertex/point data), send UE4 component information (grid information) as well as send material related stuff.
Hope this helps and thanks for reporting!
I am not sure about your screenshot - UI looks outdated. Are you running the latest build?
When you select landscape type input and then select landscape from a list, it will send landscape vertex data to the asset as point data. At the moment we only send point data. You can use that point data to instance things inside the asset.
'Import selected parts only' - will send only selected parts of landscape (using mouse selection).
'Recommit landscape' button can be used to resend landscape data to the asset. We aded it for the time being so you could send your things over if you updated landscape. We will probably automate detection of landscape changes in the future.
There is still a number of features that we are going to add soon (like having an option to send actual geometry, not just vertex/point data), send UE4 component information (grid information) as well as send material related stuff.
Hope this helps and thanks for reporting!
Houdini Engine for Unreal » RFE: Don't import invisible objects
- ttvdsfx
- 173 posts
- Offline
This has been referenced in
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/21 [github.com]
and filed as an RFE #73657
Thanks!
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/21 [github.com]
and filed as an RFE #73657
Thanks!
Houdini Engine for Unreal » HDA NormalMap ?
- ttvdsfx
- 173 posts
- Offline
Hello!
We've started work on this feature; progress can be tracked at
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/6 [github.com]
Thanks.
We've started work on this feature; progress can be tracked at
https://github.com/sideeffects/HoudiniEngineForUnreal/issues/6 [github.com]
Thanks.
Houdini Engine for Unreal » Can you point instances at already existing Unreal Assets?
- ttvdsfx
- 173 posts
- Offline
Hello! I filed an RFE for this #73617
Also referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/20 [github.com]
Also referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/20 [github.com]
Houdini Engine for Unreal » All about Unreal Landscape
- ttvdsfx
- 173 posts
- Offline
We also referenced this in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/7 [github.com] .
Houdini Engine for Unreal » Support for Ramp Parameters?
- ttvdsfx
- 173 posts
- Offline
Hello!
This has been filed as RFE #73387 and referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/15 [github.com] .
Thanks!
This has been filed as RFE #73387 and referenced in https://github.com/sideeffects/HoudiniEngineForUnreal/issues/15 [github.com] .
Thanks!
-
- Quick Links