27th January 2024
![](https://static.wixstatic.com/media/9402fd_a4e2d1efc13049d683916dbb11c8fe7b~mv2.jpg/v1/fill/w_980,h_392,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_a4e2d1efc13049d683916dbb11c8fe7b~mv2.jpg)
Project goals & aims:
Utilize all acquired knowledge and skills from the industry and apply into this project
To gauge what quality level & how far can a 2 person team achieve in this project relative to time spent
Self exploration on procedural tools in Houdini to Unreal 5 workflow
More practice on various techniques in Houdini & Unreal 5
With the continuing effort of learning both Houdini & Unreal, me and a colleague of mine decided team up together, with a mutual goal of creating a digital 3D alien environment in Unreal 5 as portfolio we can both share & use together to showcase our combined team-effort & capabilities.
We did realize mid way through that this is actually quite a huge undertaking for both of us the more we work on it. However, in the end we did enjoyed it & we're actually happy & proud of the result of our effort.
I'm responsible for most of the technical tools in this project & final post process compositing & color enhancement. Tools like alien mushroom generator, tree brunch generator & alien tree fruit generator all either made in Houdini or a Hybrid tool that was made in Houdini then brought & used in Unreal.
My colleague, Huan Chen (his Art-station profile can be found here in this link -
conrad567.artstation.com), a Senior Environment Artist, is responsible for set dressing, initial environmental concept blocking, concept enhancement, terrain generation using Houdini HDA in Unreal, scene beautification & rendering the final piece of the entire environmental scene in Unreal 5.
On my part, the rough estimated total logged hours spent is around 10 days, 15.8hrs - 13days. (both me and my colleague can only spend our after work hours and weekends to work on this project)
We decided to use several concept images to mix & match to create our own personal take of an alien environment (some sample ref img below).
![](https://static.wixstatic.com/media/9402fd_c96ca0ae3dcb4390a31b865db0678d3f~mv2.jpg/v1/fill/w_980,h_417,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_c96ca0ae3dcb4390a31b865db0678d3f~mv2.jpg)
![](https://static.wixstatic.com/media/9402fd_5ba9b7ccc0974a57a5d72a8260b7bc07~mv2.jpg/v1/fill/w_980,h_420,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_5ba9b7ccc0974a57a5d72a8260b7bc07~mv2.jpg)
![](https://static.wixstatic.com/media/9402fd_266995350da14154b27f15c4978d8a75~mv2.png/v1/fill/w_736,h_1042,al_c,q_90,enc_avif,quality_auto/9402fd_266995350da14154b27f15c4978d8a75~mv2.png)
Result of Alien Environment in Unreal 5
Finished rendered video piece (vid above)
Blockout progress video piece (vid above)
Technical & Procedural Houdini & Unreal 5 Work Breakdown
Alien mushroom generator tech & fx
Alien mushroom library selector BP tool - UE5 (vid above)
Alien mushroom Niagara scatter BP tool - UE5 (vid above)
General workflow breakdown when working on Alien Mushroom Fx & tool in Houdini to Unreal 5:
Research & develop a mushroom generator HDA tool in Houdini
A HDA Houdini tool was made to generate different variation of alien mushroom in Houdini as model assets (tool can be used with PDG [Tops network])
A library of generated alien mushroom asset library is then imported to Unreal 5
2 different Unreal asset tools are made by utilizing these mushroom asset library
A random mushroom scatter BP tool is made by utilizing Niagara to scatter mushroom in a defined grid bound (2nd vid above)
Another was a mushroom library selector BP tool purely done in BP by utilizing BP data sets (1st vid above)
Various preview of inner workings for mushroom tools in Houdini & Unreal 5
Houdini section
early RnD version of the mushroom generator in Houdini (vid above)
quick view of how massive the mushroom generator network in Houdini (vid above)
The above network preview is then made into a HDA to generate these 5 different mushroom types (shown in the above turntable vid) to be used in Unreal as a library set. (vid above)
This HDA node is also made to output 3 different outputs. (img sample below)
1st default output will generate a quick rough low poly estimate of the mushroom model for the purpose of shorter cooking time (HDA final high-res mesh generation takes longer as this is a heavy tool)
2nd output is for the actual final high poly result of the mushroom mesh, ready for export
3rd output is a custom output specially made for exporting specific parts of the mushroom needed for Unreal Niagara FX uses
![](https://static.wixstatic.com/media/9402fd_6c8a567bd3964fbbb638a2c2578ff340~mv2.jpg/v1/fill/w_980,h_470,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_6c8a567bd3964fbbb638a2c2578ff340~mv2.jpg)
Alien mushroom HDA tool output visual description (img above)
![](https://static.wixstatic.com/media/9402fd_82e987ba3b38490c86a416fc6c85a34a~mv2.jpg/v1/fill/w_980,h_844,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_82e987ba3b38490c86a416fc6c85a34a~mv2.jpg)
Alien mushroom HDA tool parameters - use for tweaking & generating different variation of alien mushroom assets (img above)
Unreal section
All exported mushroom is then used to make 2 different tools in Unreal. 1st tool is mainly use like a library selection tool, where an artist can use it select variations of mushroom from a library data sets to be placed in a scene. 2nd tool will be a random scatter tool that can be used to place multiple different mushroom in scene quickly. (img sample below)
![](https://static.wixstatic.com/media/9402fd_857655ff0b034f6387879a2737b94998~mv2.jpg/v1/fill/w_586,h_226,al_c,q_80,enc_avif,quality_auto/9402fd_857655ff0b034f6387879a2737b94998~mv2.jpg)
Mushroom library selection tool quick Unreal breakdown
This BP tool can be a bit complex to setup. To keep it direct & straight to the point, this tool is basically just a BP that reads a bunch of data set files that I prepare, it then selects the model, material or texture and present it as a final result model based on the defined data naming. (I will roughly show the breakdown below)
NOTE: I don't fully understand exactly what are the actually purpose of each files shown below but I roughly understand the overall use of it in the wider tool as a whole. So I do apologize if I did explain something wrongly here.
![](https://static.wixstatic.com/media/9402fd_15d8eab87b584c8e8e099ea70770efac~mv2.jpg/v1/fill/w_561,h_193,al_c,q_80,enc_avif,quality_auto/9402fd_15d8eab87b584c8e8e099ea70770efac~mv2.jpg)
Above are data set files required for the library selection BP tool to work
s_mushroomLib - This is known as a structure file, its mainly used to store a bunch of parameters that can be use to control the main BP tool. It will be useful for both the main BP tool & BPDS file (img sample below)
![](https://static.wixstatic.com/media/9402fd_392a5c607fd642a68c749689643f02f0~mv2.jpg/v1/fill/w_980,h_143,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_392a5c607fd642a68c749689643f02f0~mv2.jpg)
e_mushroomPlant - This is a enumeration file, which is mainly for just index numbering data. For this case, I use this to prepare a bunch of mushroom enumeration like Mushroom type 1 - 5 which is uses as a parameter to select the mushroom model variation (img sample below)
![](https://static.wixstatic.com/media/9402fd_c7fe2a55b89e4fd3ae5a04eb670d66a4~mv2.jpg/v1/fill/w_980,h_172,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_c7fe2a55b89e4fd3ae5a04eb670d66a4~mv2.jpg)
bpds_mushroomPlant - This is a file that I don't fully understand. To my knowledge, this is a specific BP files mainly used for setting up what data sets is going to affect which aspect of the main BP tool later on
Example, which enumeration will draw which model from the library & apply which material or texture
Its more like a BP what dosent have the visual aspect with it. Just pure nodes network and data linking (img sample below)
![](https://static.wixstatic.com/media/9402fd_e3db2e1644624ea096b0803ae83bac08~mv2.jpg/v1/fill/w_980,h_484,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_e3db2e1644624ea096b0803ae83bac08~mv2.jpg)
All the above data sets are then fed into a master BP that will be use as a library selection tool.
Bellow is a few quick snapshot of the BP node network (img sample below)
![](https://static.wixstatic.com/media/9402fd_38048b619ff94bd3a8ee9a16d2a11f19~mv2.jpg/v1/fill/w_980,h_329,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_38048b619ff94bd3a8ee9a16d2a11f19~mv2.jpg)
This is where the logic happens, as an artist can choose, say Mushroom Type 01 and the BP will pick the models, material & texture from a library folder. (img above)
![](https://static.wixstatic.com/media/9402fd_92fc411ab49b48eea0d272d94cdef9e8~mv2.jpg/v1/fill/w_980,h_348,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_92fc411ab49b48eea0d272d94cdef9e8~mv2.jpg)
This part here is adding a complex Niagara Fx to any given mushroom mesh. The niagara is adaptable to the mesh selection changes. But it did not make it in the final result as it is very time consuming to fully implement it into the final BP. So this was left in the BP system but is completely disabled & hidden. (img above)
![](https://static.wixstatic.com/media/9402fd_473ccf225118429ca73904345c74fb29~mv2.jpg/v1/fill/w_980,h_401,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_473ccf225118429ca73904345c74fb29~mv2.jpg)
The construction script node network section where everything comes together to make the BP work. (img above)
2. Mushroom random scatter tool quick Unreal breakdown
This is just a BP tool that houses the Niagara system. The Niagara system is the one doing the bulk of the work scattering the mushroom in a given square bound area.
All the Niagara parameter are then expose & linked to BP so its more accessible by artist.
![](https://static.wixstatic.com/media/9402fd_888b41536efd4ca08165bf5bcceb5ffa~mv2.jpg/v1/fill/w_980,h_735,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_888b41536efd4ca08165bf5bcceb5ffa~mv2.jpg)
Using just 1 single Niagara emitter that does the random scatter process with custom user parameter (img sample above)
![](https://static.wixstatic.com/media/9402fd_886365787d3443a188c325009f862643~mv2.jpg/v1/fill/w_980,h_487,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_886365787d3443a188c325009f862643~mv2.jpg)
Decided to use a structure node to house all the Niagara parameter instead of creating all the parameter one by one in BP. This is helpful with node network organization as well. (img sample above)
![](https://static.wixstatic.com/media/9402fd_a09b92a3fefa491db954eb1c6ccd8e3a~mv2.jpg/v1/fill/w_980,h_576,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_a09b92a3fefa491db954eb1c6ccd8e3a~mv2.jpg)
Construction script node network setup using the parameter structure to link & control all Niagara parameters in this BP. (img sample above)
Alien wiggle plant Houdini & Unreal technical & fx
Alien ground wiggle plant scatter BP tool - UE5 (vid above)
Alien wiggle vine plant scatter BP tool - UE5 (vid above)
This is one of the fun FX I love & enjoyed working in Unreal. Due to the nature of Unreal's real-time feature when making a tool, it is very satisfying to see the FX tool come alive in real-time.
However, this does require a different workflow & approach compared to the typical approach I'm used to working in Houdini FX.
General workflow & approach for this wiggle plant FX tool from Houdini to Unreal:
Once again, utilizing the power of Houdini procedural ability. I prepare the individual mesh wiggle plant in Houdini. Using a noise to drive both the deformation & animation of a curve. The curve will then be use to generate the plant mesh itself.
I then prepare 2 to 3 different noise Z-offset animation. These animation are also seamlessly looped procedurally in Houdini too.
They will then be used to bake a VAT (Vertex Animation Texture) texture. Houdini comes with a native VAT baker / exporter which provide both the custom VAT fbx mesh & VAT texture which will be used in Unreal's VAT material.
*NOTE* That this approach does require Unreal to have the Houdini sidefx labs plugin to work
Once all asset is ready from Houdini, models & textures are then imported to Unreal.
VAT material will then be setup & assigned to each individual plant. The cool thing about VAT is that once the material is ready, simply just assigning the material to the plant will immediately show the animation in real-time.
These assets will then used in a Niagara system similar to the random alien mushroom scatter FX setup. Then finally, complete the tool using a BP to house the Niagara system FX.
*NOTE* That some of the material parameter are set as dynamic parameter to be expose to Niagara later. In Niagara, all the key parameter are then expose in the final BP so its easy for artist to tweak the result.
Houdini section
Simple quick preview of wiggle plant network in Houdini is (vid above)
![](https://static.wixstatic.com/media/9402fd_7e3734e5e86145bda38738f4bc03fcd4~mv2.jpg/v1/fill/w_980,h_454,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_7e3734e5e86145bda38738f4bc03fcd4~mv2.jpg)
Overall wiggle plant VAT material network preview using Houdini Side Fx Labs material node plugins (img above)
![](https://static.wixstatic.com/media/9402fd_93669ffe512242a1b4bd8f30ea083c2a~mv2.jpg/v1/fill/w_980,h_583,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_93669ffe512242a1b4bd8f30ea083c2a~mv2.jpg)
The VAT material network preview using Houdini Side Fx Labs material node plugins (img above)
![](https://static.wixstatic.com/media/9402fd_f735fa49d7464f4783a76ab3cb2cad06~mv2.jpg/v1/fill/w_980,h_556,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_f735fa49d7464f4783a76ab3cb2cad06~mv2.jpg)
BP network setup for controlling Niagara parameter preview (img above)
![](https://static.wixstatic.com/media/9402fd_dee9272412344f84a28c1211cedec773~mv2.jpg/v1/fill/w_980,h_403,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_dee9272412344f84a28c1211cedec773~mv2.jpg)
BP construction script network setup for controlling the overall tool parameter preview (img above)
Tree fruit tool for Houdini & Unreal technical & fx
generated tree fruit mesh from Houdini (vid above)
early version of tree fruit in Unreal (vid above)
Unreal material using SSS setup, we end up didn't using this at the end due to the scale of the scene & the material its causing weird artifact issue that I was not able to fix.
early version of tree fruit HDA in Unreal (vid above)
This also end up not being used using this at the end due to the practicality of the project. We ended up using similar workflow to the alien mushroom. Generate the model in Houdini then setup a library selector tool in Unreal.
Tree fruit variation selection tool in Unreal (vid above)
Above showcase variation of tree fruit using library selection tool similar to alien mushroom in Unreal.
Tree fruit with brunches variation selection tool in Unreal (vid above)
Above showcase variation of tree fruit with brunches using library selection tool similar to alien mushroom in Unreal.
Various other technical material & BP fx in Unreal
![](https://static.wixstatic.com/media/9402fd_10d662618bd74c4486adbe8a569f0820~mv2.jpg/v1/fill/w_980,h_447,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_10d662618bd74c4486adbe8a569f0820~mv2.jpg)
Background exo-planet material setup preview (img above)
All parameter will be expose in a BP that houses the material & the mesh to be use as a tool. Easier for me & my colleague to make changes & tweaks on the spot in the scene.
![](https://static.wixstatic.com/media/9402fd_b2414fd7b70641c7a2b72531bdf8556c~mv2.jpg/v1/fill/w_980,h_438,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/9402fd_b2414fd7b70641c7a2b72531bdf8556c~mv2.jpg)
Water surface material setup preview (img above)
This is one of the water surface material. There are a few more material with different iterations. In the end, I was not able to give much love to the water surface in this project as we're running too close to the set dead-line.
Conclusion of the 2 person group personal project
It was definitely an enjoyable and fruitful experience working with my colleague on this project that we decided to tackle. It was a thought we both came up together to try if both of us can work together well. We really enjoyed bouncing ideas around, brainstorming & troubleshooting solutions on various problems or difficulties we've come across during our journey working on this project.
For my part, it was definitely a very fruitful learning experience diving into Houdini to Unreal workflow. Also able to practice and familiarize more technical workflow in both Houdini and Unreal.
We'll be planning more projects like this in the coming future!!!
Comments