How to use Seurat with Unreal Engine 4?

Egor Bogomyakov
May 17, 2018 · 3 min read

In early May, Google opened a source code of technology for VR scene simplification named Seurat.

Impressed by articles and Blade Runner demo I decided to test Seurat. It led me to a few hours of pain and attempts to understand what should I do next. An official documentation seemed very unclear to me, so I wrote this note to save other people’s time :)

Unreal Engine 4 plugin

Installation

Plugin can be downloaded from Github.

I’ll skip theory about plugins in UE4. You can read it in the official documentation by Epic Games.

But don’t be so quick to run your test project with the plugin: it won’t compile (as at 16 May).

To fix errors, you need to add one line to plugin’s Build.cs file which can be found in <projectname>\Plugins\Seurat\Source\Seurat\Seurat.Build.cs

Just add the following:

PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

Your Seurat.Build.cs should look like this.

Now you can open the project and capture a scene!

Usage

  1. Open a project containing Seurat plugin
Image for post
Image for post
How to find Scene Capture Seurat

5. Look through details of the added object and press Capture button

Image for post
Image for post
Capture button

6. Scene capturing will be started. Be patient and wait until message box appears.

Image for post
Image for post

7. All right, we did it. You can find captured parts of the scene in <projectname>\Intermediate\SeuratCapture folder

Now we need to build Seurat’s pipeline to convert these pictures into a mesh with a texture.

Seurat

Installation

  1. Git clone or download Seurat
Image for post
Image for post

3. If you did everything right, you would find pipeline executable in \seurat\bazel-bin\seurat\pipeline folder.

Usage

Open a command prompt and cd to pipeline’s folder (\seurat\bazel-bin\seurat\pipeline).

We should execute seurat.exe with two params (full list of params):

  • input_path [default=“”] [required] : Path to the input manifest.json file.

Let’s create an input folder and put captured images from UE4 scene inside (don’t forget manifest.json fille! If you specify a whole input folder in input_path param, not manifest.json, you’ll see an error message: “Output path required” :) Yep, that’s wired). Then create an output folder where the mesh and the texture from the pipeline will be created.

So, Seurat call will be like:

seurat.exe -input_path=”<path to input folder>\manifest.json” -output_path=”<path to output folder>”

Wait until mesh and textures generation complete and check Output folder.

Import in UE4

Now you can import generated mesh and texture in the UE4 project, following plugin documentation.

Put new mesh in the scene, apply material for it and enjoy the optimized scene.

Image for post
Image for post
My scene with imported mesh created from captured scene parts

I worked with Seurat quite a bit, but I’m sure it’s an easy and fast solution to create a lightweight background for your game or VR scene so far.

Good luck with your optimization experiments :)

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store