Email Question: "Is there any tutorial about how to make the large city seen on the website?"

Asked 09 March 2022 14:51:

Hi, I just bought Apparance Procedural Generation System from Epic marketplace. It’s really a productive plugin.
Is there any tutorial about how to make this:
New York City Demo gallery page
Or a small demo project like this?

Hi, thanks for the purchase!

The NewYork project is a large and complicated use-case built over many months for a private client, so the procedures are unfortunately not available. There aren’t any examples or tutorials that go into it in that sort of depth yet I’m afraid. I can advise on what’s involved and summarise the process for you though:

  1. Open Streetmap data is processed from it’s native XML form into compact binary representation (arranged in blocks) using a custom written command-line tool. For the NY map it was about 1.5GB of XML compiled down into an approx. 35MB file.
  2. The map is divided up into a number of square blocks (500m-2km) in size, and script/BP used to place Apparance Entity actors across the city to break up the generation process into many smaller parts. There are actually several tiers of grids, of different sizes to handle (low detail version of the city for the horizon, the main buildings, ground planes, trees/foliage, and the high detail rooftops.
  3. Each block generates the geometry for the land, buildings, and objects based on the data for each block read using the (experimental) Data operators (open a single file, read randomly from within). These are included in the Unreal version, but you need to enable the experimental operators in the context menu of the operator panel.
  4. The building surfaces and windows are handled in a large custom material-graph driven by vertex colour and multiple UV channels in the generated meshes. The roads/vehicles are also handled in a large custom material-graph, using road geometry UV channels to control lanes/sizes and directions of traffic.
  5. Building rooftops are populated with “greebles” using generated geometry and pre-calculated rectangular regions in the loaded data (also generated during the command-line compilation phase).
  6. A custom environmental effects sequencing and blending system was scripted to handle the day-night cycle and effects.

It was about seven months work and resulted in around 270 procedures in the Unity version of Apparance with a bunch of C# scripts handling the map block management. I am thinking that in the future this would be a good candidate for a procedure library to release as an add-on.

I hope that helps.