Disclaimer: the models are not mine. They are part of student group project
A brief introduction to the tool and why it was made
I was approached by the team with a problem. It would take way to long for them to place the assets for the catwalk section of their environment by hand. So instead they were curious if I could develop a solution that is still completely controllable but also fast to iterate on and use. So this is what I came up with.
Hurdles/struggles... and how I overcame them.
One of the initial struggles was choosing how to interact with the tool. At first I thought I would use Curve because it seem like the most intuitive and straight forward way to go. However, after some testing and seeing how clunky and unstable it actually felt I decided to look for a new approach. And you might be think what did you come up with. The answer is simple... boxes of course. But why boxes you may ask. They allow for a much more control and interaction and are easy to handle and explain. For my system I basically have 3 different type of boxes. First type is for setting up the area where the Factory Catwalk models can be placed which I like to call the Positive Space. The Second type is for subtracting from that space i.e. Negative Space. And the third is simply for placing the stairs. With just these 3 types you can make quite a lot of intricate looking placements.
Using this boxes approach also allows me to get more information from Unreal Engine back to Houdini and then back to Unreal again. Which in turn allows me the make a more fluid user experience. For example with the stairs to switch the direction they are going all you need to do is change the scale of the box controlling them to -1. Which allows for the person using the tool to just place the boxes and if he/she sees that that direction does not work just by adding a single "-" the problem is fixed. If I had not done it this way the user would have to fiddle with parameters and groups to make it work.
Another problem I faced was since I was working for a team that was still developing and changing their game, certain models also changed. Some of those models being the ones I was using so I ended up making my system adapt to the the model that was input because it took taking a decent chunk of time having to switch the parameters to make it work with the new size.
One of the biggest hurdles I faced however was the quarantine because of COVID19. The reason this was a problem was because our school is a Houdini Certified School and they have a few floating Houdini Educational Licenses which I was using so I could constantly update and check my tool in Unreal. However to use those licenses you had to be connected to the schools network. And since the building was closed because of COVID19 I no longer had access to the Houdini Educational Licenses. But with this problem there also came an opportunity. That opportunity was to see if I could make the tool work without Houdini Engine. Luckily for me my box approach was even better than I initially thought because all I really need for my tool to work was 3 boxes and those do not necessarily need to be fed live from Unreal Engine but instead can be a simple .fbx/.obj file. All I needed to specify was the grid I was using to place the models and make a little document explaining how to use the tool without Houdini Engine.