Scatter Tool

Scatter Tool

Kim Baaij
by kimorizon on 1 Jun 2020 for Rookie Awards 2020

I created this tool for a school project. The tool places points on an area using a mask. On these points the tool places assets which will get randomly rotated and scaled within adjustable margins. This tool was created in Houdini, and is exported as an HDA to be used in Unreal.

1 223 0
Round of applause for our sponsors

Above there is a quick example on how one could set dress a level. By creating multiple maps those areas can be set dressed differently with the tool, like the part in the left top corner. Through layering of the tool a more complex look can be created.
The tool works with both geometry, and landscapes. Even if these are changed afterwards one just need to run the updated terrain through the tool again, which then will automatically adjust. This way the tool can save a lot of time in both the early, and later stages of game development. Taking care of big amount of area's with just a few settings.

This tool is build to take care of the more repetitive placing work, to quickly iterate, and to save some time. It takes care of:

 - Placing, an adjustable amount of assets. They can follow the angle of the terrain, and if the angle of the terrain is to steep the assets won't be placed there.
 - Random rotation, the amounts of which can be controlled.
 - Random scale, influenced by grey scale, and height.
 - Adjustable clusters, to get more interesting results.
 - Avoiding intersections, assets in the same tool are less likely to intersect.

 - Seeds, placement, rotation, scale, and clusters, can all be differently randomized by changing there respective seed number.
 - Collision, can be set for each asset type.
 - Instance, the tool instance the assets instead of placing the items individually, helping out with performance. But if desired the Tool can also be "baked to actors" in Unreal, spawning the objects as individuals giving full manual control over the assets after they are placed.

If the placement of the assets are as desired, the tool can be told to stop changing those location. While still being able to switch out objects, change scale, and rotation. Then the map can also updated to remove undesired points.
If the feel in a certain area works, this can be easily be achieved in a different location as well by duplication the tool or settings, and swapping out the map. Causing the tool to go through the same steps on the new location.

See some more examples bellow

Randomizing scaling:
I wanted the tool to randomize the scale of the objects, I created a couple rules to have some influence over this.
1. The tool scales on grey scale, the two images show the masks and an exaggeration of how the scale increases the closer it gets to white.
2. The assets size decreases by the height of the terrain.
3. In the clusters the center assets are bigger then the assets on the outside of the cluster, which is being controlled by the red value used to create the clusters.

Creating the clusters:
The tool checks if objects are intersecting, removing the items that intersect. This looked decent in Houdini, but when moving to Unreal all the objects became almost evenly spread, like in the first image. To solve this I used a noise map to create a mask over the input of black and white mask, shown in the second image. This way objects spawned more grouped together, creating more interesting patterns, open spaces, and a more natural feel.

Future goals:
 - I would like to be able to have a more flexible amount if different assets you can use in one tool. Combined with that I want to be able to control the ratio of assets, within the same tool. This is something that can be achieved by using the tool multiple times. Still I think it would be useful to add for even more control.

 - The tool has been mainly used for foliage purposes so far, I would like it to be usable for a wider variation of assets. Like placing trash through out a city, or maybe something like parked cars. Or a city.

Credits to "Team Unmanagable" for allowing me to use their levels, and assets for their "Kari"-project to showcase this tool.

Comments (0)

This project doesn't have any comments yet.