Remote Observation System

Prop Breakdown

Andrew Liddle

ScreenShot00010
208

Andrew Liddle

Senior Environment Artist

Introduction

Hello, my name is Andrew Liddle, and I’m a Senior Environment Artist at Playfusion.
I’ve been working in the games industry for over twenty years. I make environments for my job, but for my personal projects, I gravitate towards hard-surface subjects like machinery and vehicles.

Reference

I was drawn to the look of these military binoculars, I think in part because they looked a bit like the head of a robot. I tried to find enough photos to make a specific real-world item, but the reference was limited so I decided to bite the bullet and make up my design in the spirit of the ones I’d seen.

It was liberating to be able to do whatever I liked, but it meant I had to agonize over every design decision, and the whole process took a lot longer!

I’ve started using Miro to store and organize all my references. I know a lot of people use PureRef, but Miro seems to do the same thing and it’s all stored in the cloud. You can access it from any device and easily collaborate with others in real time.

Screenshot-2024-01-29-105432

Design and Modelling

I didn’t block out the whole asset; I just started noodling around in 3ds Max using the new Boolean modifier in Max2024. It’s a nice, non-destructive way to work as you can easily edit, add, or remove operands at any time. I’ve been watching a lot of Fusion360 tutorials so I tried to work in a CAD-like style within Max. Lots of booleans, procedural bevels, and also arrays using the new array modifier.

I’m using a plugin called VdbRemesh, which is a modifier that voxelizes everything in the stack and gives the same result as doing a Zbrush Dynamesh and polish.

It saves a huge amount of time by not having to go back and forth between Max and ZBrush, and it updates dynamically whenever I change the boolean modifier. So that’s now my basic workflow – each part has a boolean modifier in the stack, then a VdbRemesh on top.

I can just turn off the VdbRemesh modifiers to create the low-poly meshes. I use a max script called ModifierModifier to do this in bulk.

For the cables, I modeled them straight and used path deform to match them to the splines that I had drawn. I also used Tyflow to do physics simulations on the splines to make them sag naturally.

It was a bit time-consuming, tbh, and could have just been achieved by hand editing the spline.

For a more complicated cable setup, it might work nicely.

Screenshot-2024-02-01-092255

Materials

I started with the idea of using only the high-poly model without any UVs and rendering in Unreal Engine using tri-planar mapped materials from the Epic Automotive Materials pack.

I was able to get a pretty decent result with this approach, and it was helpful to be able to see a preview of the finished result so early in the process without having all the hassle of making UVs and baking from high to low poly.

In the end, though, I decided to go the ‘whole-hog’ and do it in Substance Painter since it was my project with no time constraints, and it’s so enjoyable to work in Painter.

Screenshot-2024-01-29-120837

Low Poly and UVs

The low-poly meshes were just created by duplicating the high-poly meshes and turning off the VdbRemesh modifiers. I used Unwrella to create the UVs. I looked into RizomUV, but the extra step of going back and forth between Max and Rizom put me off.

I like to avoid committing to a design for as long as possible so I didn’t want to do manual work making UVs that I might have to do over again if I changed the model. Unwrella can unwrap and pack dozens of meshes in a few seconds with a single click. It can also arrange the shells into UDIMs which I used on the main body of the binoculars.

It meant I didn’t have to think about UVs, I could just focus on modeling and texturing. There is also the option of going back and creating cleaner hand-optimized UVs at a later stage when the design is finalized.

The only parts where I made UVs by hand were the straps, the hoses, and the legs of the tripod. I needed specific UVs for those.

Screenshot-2024-01-31-093753

Baking

I used the match-by-name feature in Substance Painter to bake the various parts cleanly.

I just needed to make sure I kept all my parts named properly and organized into layers so I could export the high and low quickly.

Texturing

I split the asset into multiple texture sets such as main, body, legs, strap, and hoses. The main body of the binoculars used 2 UDIMs.

I assigned colored materials to my high-poly mesh and used them to bake out an ID mask in Substance Painter. The mask is then used to assign different folders of layers to each material in the mesh.

Screenshot-2024-02-01-091304

The texturing process is pretty similar to what you’ll find in many tutorials. I try to keep it as simple as possible for each material. Focus on getting the base color and roughness right then add a bit of height or normal variation and roughness variation.

I use a few dirt layers on the top driven by mask generators such as Ambient Occlusion, Curvature, Dirt, or Metal Edge Wear. I tend to just use what comes with Substance rather than importing new smart materials or textures.

I did get the nylon webbing material for the straps from Substance Source though.

I try to resist the urge to add too much dirt and grime (difficult!) and focus on adding interesting details into the roughness channel. I found a mask that looks like small water droplets that have evaporated, I used it to create some glossy spots which I think worked well.

Another good technique was adding fine scratches into the roughness channel then masking them with AO so they only appear in the areas that would be exposed in real life.

I layer up fine scratches, fingerprints, dirt, fine dust, dust particles, and water drops to get a realistic result.

Screenshot-2024-01-29-122002

I made custom masks for lettering in Photoshop and applied them using planar mapping in Substance Painter.

Screenshot-2024-01-30-093713
Screenshot-2024-02-01-093926

There is a feature now in Substance Painter called Warp Projection which lets you bend the mapping to match a curved surface, I used that on this part.

Screenshot-2024-02-01-094954

Rendering

I imported my models and textures into Unreal and set up materials for them.

For the glass, I used a fresnel node to create the look of an anti-reflective coating by blending between pink and turquoise base color based on the angle of the camera.

The small Allen bolts just used a generic metal material from Epic’s Automotive material pack. I didn’t make custom textures for them or bake them.

The scene is just a big bowl-shaped mesh with a gray material designed to create the effect of a photo studio.

I used an HDRI skylight turned very low and a few rectangular lights to light the scene. I set up cine cameras for each shot and adjusted the aspect ratio, focal length, and aperture then rendered with path tracing to get the best quality results.

Thanks for reading my prop breakdown, I hope you found something useful in there.

Big thanks also to GamesArtist for inviting me to write this article.