Mattias Van Camp - Technical Artist
About Me

Hi. My name is Mattias Van Camp, and I am a Technical Artist of Belgian origins currently residing in the United Kingdom.

I have worked in games for the past 6+ years (since 2012), and from the very start, I knew Technical Art was going to be my field. I am someone who can't sit still doing the same thing for two minutes, and who needs a new challenge when the last one has been conquered. I consider myself more of a pragmatist than a perfectionist in this sense - I love searching for the best solution, but in the end, games ship most often with solutions that fit within the scope of the production, not the most mind-bending space-age technology.

This being said, I am very strongly interested in the particularities of pipeline and process optimization; I love talking to all the production departments and work out who can build which parts of the pipeline to come up with not just the fastest, but the most scalable and sustainable approach to production. After all, the less time a production has to spend on day-to-day things, the more that space-age technology becomes affordable after all. I'd be lying if I said I don't enjoy the occasional "fancy" approach.

This passion mine has exhibited itself in all sorts of ways, with most recently my increased involvement in public speaking on the matter. I enjoy engaging with other developers on their thoughts on every possible subject, and I believe that in most cases, the best solutions are found somewhere half way. This "sweet spot" is where Technical Art lives, and that is why this field captivates me, every day.

On this website, you can find a small sampling of my work (at least, the work I can show publicly). For completeness, I have also included my speaking engagements. Should you wish to contact me about my work or anything else, you can reach me at mavcart.mvc@gmail.com.

Games I've worked on

Talk: Technical Artist Bootcamp, GDC 2019: Cementing your Duct Tape: Turning Hacks into Tools

In March of 2019, in my capacity as a Senior Technical Artist for Creative Assembly, I spoke at GDC's Technical Art Bootcamp. The title of the talk was "Cementing your duct tape: turning hacks into tools", and spoke of using the benefits of the fast and functional nature of "hacky" tools, while ensuring that the incurred technical debt remains limited. I used the example of Total War: Arena in this context to highlight how we made a small change to our Unit Editor which resulted in unexpected, but welcome possibilities on the tools side.

If you have access to the GDC Vault, the video can be found at the link below.

GDC 2019 Technical Artist Bootcamp: Cementing your duct tape: turning hacks into tools.

Talk: Industry Workshops 2018 - Cross-Project Technical Art on Total War

In August of 2018, I presented a talk at Industry Workshops in London in my capacity as Technical Artist working mainly on Total War: Arena. Dealing mainly with how we manage technical art tools and development with a small team of Technical Artists while working on several AAA projects at once, the presentation also dove into some of the more particular improvements we made to our pipeline to make our lives just a little easier.

One of the main examples highlighted in this presentation, the procedural UI pipeline I created for Total War: Arena, would later return in my GDC 2019 talk, where I included full video and image samples.

Maintaining a Franchise: Cross-Project Technical Art on Total War

My work on Divinity: Original Sin

This is a grab from the artwork I did during my time at Larian Studios in Ghent, working as both a 3D and Technical Artist, helping out where necessary. For the most part, the assets were created using a full asset workflow, starting in 3D Studio Max to create a blockout, going to zbrush for the high poly, using xNormal for the bake and then going back to 3D Studio Max for the texturing process. Some of these assets were technically challenging; the farm and rock walls for example, were a part of a tiled set, meaning they had to blend both in texture and in topology at their edges. I solved this issue by creating a blending area in both high and low poly, that is always the same at both ends of the mesh. This meant I could do anything I wanted with the rest of the mesh. As for the effects (video at the bottom), I created a number of gameplay and environment effects during my time at Larian, including some very prominent ones. To create them, I used FX Studio Designer, in combination with Larian's proprietary engine. I also created my own textures, and used the ones already present in the texture library to limit memory usage.

What you see here is a demonstration of the assets I made for Divinity: Original Sin, wherein I attempted to present them in a way that is representative of the way players of the game would see them when playing it.

While I did some environment art at Larian, I also focused a lot on VFX and particles - the video below is a sample of the effects I helped make for Divinity: Original Sin.

Flow Map Painter

This hybrid of maxscript and C++ was originally made for 3D Studio Max 2012 x64. It worked by creating a custom MaxScript function through the C++ SDK, which took care of the heavy-load portions of the painting process - processing the stroke information and writing the resulting pixels to the image. All of the interface and painting behaviour was handled in MaxScript. It was a great experiment at the time, as flow maps were just starting to become a more commonly used technology in games, and programs like Substance Painter hadn't implemented their own, more user-friendly versions.

Axe

This axe, shown here in Quixel Suite's 3DO (which runs on the Unity Engine), was created using a base mesh that I modeled in Maya, which was then brought into Zbrush to add the high frequency detail such as the embossings and runes. After that, I used 3D Studio Max's polytools to create the low poly mesh, and moved between Blender and 3D Studio Max for the unwrap. I baked the maps using xNormal, and finally used Quixel Suite to create the textures and presentation shots. For reference, I used a piece of concept art created for Warhammer Online.

Deus Ex Chair

This chair, modeled off a piece of concept art that was created for the game Deus Ex: Human Revolution, was created in Unreal Engine 4. I took a relatively standard approach, first modeling it in high resolution, before proceeding to create a low resolution model. I Used Quixel Suite to create the textures for it, but based most of the material definition off the concept art, while maintaining visual fidelity in the new PBR approach that comes with using Unreal Engine 4.

Collection of scripts

This collection of scripts is an aggregation of the most useful scripts I have written throughout my career. Their purpose is to help speed up the artistic workflow by automating small parts of the process that are either frustrating or repetitive, and take up unnecessary time that could be better spent on artistic endeavours.

AutoLightMapUVs

This script copies the selected object's UVs into that object's second UV channel, while simultaneously aligning all the UV vertices to the nearest pixel of the light map, depending on the texture size the user created. By doing this, the script attempts to eliminate pixel bleeding in lightmaps, a very frustrating issue that can be solved by integrating this script into this part of the artistic process.

BackupSaver

This script (which works best when used as a button in the 3ds max UI, though I have used it using a shortkey before) saves a backup of the currently open max file into a directory called "_old", in the same folder as the current max file. It also automatically searches for earlier backups of the file, and adds a numbered suffix accordingly. The useful feature here is that the script saves the backup as a different max file, which means that max's recently opened file list will not be filled up with backup files. One very useful purpose i have found for this is to use the script as a way to take backups of the current file while you work in a direction you're not entirely confident about. If it doesn't work out or max crashes, the last saved file will still be the one you had before, while you will have retained the progress you made on the experimental files.

CenterPivot, PivotZero and RXFrm

These three small scripts work best when used together: together, they make the very useful combination of completely "cleaning" any object with just three mouse clicks and minimal mouse movement. Even then, seperately they are very useful as well. Their titles are descriptive of their purpose, but here is the short version: in that order, these scripts Center an object's pivot, set the pivot of an object to zero, and reset the xForm of an object.