- Character Pipeline #1 – Introduction, basic workflow with Character Creator & Marvelous Designer
- Character Pipeline #2 – Clothing Retopo from Marvelous with Maya
- Character Pipeline #3 – UV Layout in Marvelous
For the game that I’m working on, I’m using characters from Reallusions Character Creator (https://www.reallusion.com/character-creator/). Character Creator is great for pseudo (read: terrible) artists like me, because it provides me with a great base mesh with a rig, setup and ready to use for advanced animation like Faceware face animation, mocap (via Xsens or Rokoko) and much more.
Here’s a snapshot of the base character mesh that I’ve been working on:
If you follow me on twitter (and I’m sorry-notsorry if you do), you may have seen that I’m working on the character creation system for my ‘as of yet untitled’ game – here’s a snapshot of some of the work-in-progress so far:
— gekido (@gekido) April 11, 2020
Ok too lazy to make a video right now, but the basic flow is that you load a mesh in, add a 'helper' that lets you create character elements (simple scriptable object), which stores a list of material variants.#gamedev #unity3d #madewithunity https://t.co/7mGMIEdXF1 pic.twitter.com/LfWpclg9A9
— gekido (@gekido) April 15, 2020
— gekido (@gekido) April 13, 2020
The base character & morphs from the above posts / videos etc are from Character Creator, and the clothing is from the massive library that Reallusion provides through their Marketplace & Content store.
I’ll do a write up about the basic flow for setting up the base character etc at some point, but what I want to cover in this series is the pipeline that I’m using to create custom clothing for the game – after all, prebuilt clothing is nice n all, but at some point there’s going to be clothing that I can’t find out of the box, and will want to create custom.
Tools in the toolbox:
- Character Creator
- Marvelous Designer
- 3ds Max
- Substance Painter
I know, 3ds max isn’t very popular, but it’s what I know, so… ¯_(ツ)_/¯
So, with all of that pre-ramble, let’s take a look at the basic workflow for creating a custom piece of clothing!
Setting up the Avatar
To start designing the clothing in Marvelous Designer, I need a base Avatar – which is the equivalent of the character that the clothing will drape on for fit etc.
Step 1 – Export Base Character Mesh from Character Creator
Because I’m using Character Creator, I want the clothing to fit the base character.
This is fairly straight forward – in Character Creator, I just create a new project (which adds the base female avatar that I’m going to use to start) and do File->Export->FBX(Clothed Character) to export the avatar that I’m going to use in Marvelous. The default settings for everything should be fine.
Note: before exporting, I removed all of the default clothing in Character Creator, so I end up with a base nude character to load into Marvelous:
Step 2 – Import Avatar into Marvelous Designer
Now that I have the base mesh exported, in Marvelous Designer I can simply import the FBX via File->Import->FBX
Leaving the scale to ‘Auto Scale’ is probably the most important setting I’ve found as sometimes getting your character avatar setup to the proper ‘Marvelous Designer’ scale can be tricky (and scale is SOOO annoying with the FBX format in general):
It's so frustrating that FBX is still "the" format that everyone has to suffer from when fundamental issues like scale are so problematic…
— gekido (@gekido) April 12, 2020
In my case, doing a simple Export from Character Creator and Import into Marvelous Designer seems to have done the trick (keeping everything to ‘Auto Scale’, which…saves me some grey hair at least.
In many tutorials for Marvelous Designer, I’ve seen people recommend using OBJ to load in an Avatar, but using FBX has one main advantage – since you’re loading a skinned mesh, you can still manipulate the character bones in Marvelous – which can be used to export animations (as Alembic for example) if you want to do advanced cloth simulation, or in my case, if I want to pose the character to fit the clothing prior to export.
Designing the Clothing
The next step now that you have the Avatar setup is to actually design the clothing – I’m not going to do a tutorial for this, there are many tutorials on the web by people that are infinitely better at this than me – and in my case, I’m actually relying on their skillz for some of the clothing that I’ll be using. I’m a big fan of ‘precreated content’ – and Marvelous Designer is no exception. There are artists on ArtStation, CubeBrush and elsewhere that are creating cool clothing that I can use in the game with a bit of work!
The high-level steps to get a piece of clothing prepped for the game are:
- Design the clothing in Marvelous, pose & fit them to the Avatar
- Export the clothing as OBJ to 3ds Max
- Retopo the Clothing / prep for Surfacing (in 3ds Max in my case)
- Surface / Bake the maps for the clothing in Substance Painter
- Re-import the clothing back into Character Creator, import & create the garment
- Apply skin weights to the clothing in Character Creator
- Re-export as a skinned FBX from Character Creator (which will include the character mesh as well)
- Remove the skinned character from the FBX in 3ds Max
- Export the skinned clothing as an individual clothing element (without the character) from 3ds Max
- Import into Unity and prep in my Character Customization system
As you can see from the list above, there’s a bit of bouncing back and forth from ‘App to Max to App’ – I’m using 3ds Max as my ‘source of truth’ for the characters & clothing so that I can guarantee things like mesh names, structure, material names etc. Many of the other programs have preconceived notions of what should be included when doing an export (Character Creator in particular), which means that I have to do some clean up along the way.
Preparing the Clothing for Export & Retopo
I won’t go through all of the above in this tutorial, but let’s take a look at the process for #1, 2 and 3 – at which point we’ll have a game-ready mesh that we can bake maps from in Substance (which I’ll cover in a later tutorial).
First, a quick reminder, I’m far from what I’d consider as an ‘artist’ – almost everything I do is specifically on the ‘tech art / pipeline’ side of the fence – so the specifics of using Marvelous / Max / Substance for modeling, painting etc are far better left to ‘real’ artists – what I bring to the party is the ability to make all of the bits & pieces play nice together so I can get a working asset for my game ;}
Let’s get to it
Step 1 – Prep the Clothing in Marvelous Designer
In this specific case, I have an existing piece of clothing that was created with a different avatar than my Character Creator one. So I first need to load the clothing into Marvelous so I can fit it to the Avatar.
Go to File->Add->Project in Marvelous, which brings up this dialog:
The default is to import the Garment AND the Avatar it was created with – but in my case, I don’t want the original Avatar, so I’ll just load the Garment by itself. In this case, the garment is a simple TShirt:
As you can see, the Avatar’s arms are sticking through the clothing – the original Avatar was in more of an “A” pose than the default Character Creator T-Pose that I’m using.
This is where having the skinned / rigged Avatar comes in handy – I can adjust the Avatar’s pose to better align with the clothing before draping it, which will reduce errors or issues that might happen.
For example, since the character’s arms aren’t aligned properly with the holes in the TShirt sleeves, if I drape the shirt straight away after import, there’s a good chance that Marvelous will drape the shirt wrong:
As you can see from the image above, my guess was correct – Marvelous didn’t know what to do with the hole in the TShirt sleeve and the Avatar’s arm ended up sticking through all wrong.
To fix this we can turn on ‘Show X-Ray Joints’ in Marvelous, which will show our character’s skeleton and allow us to pre-pose the character to fit the incoming Garment:
This turns the scene into a X-Ray mode so we can see our character’s skeleton and select / pose the character properly, like so:
You can pop in and out of X-Ray mode to verify that the Avatar is aligned properly with the Garment.
The alignment doesn’t have to be perfect, but you definitely do want to make sure that the Avatar’s arm is inside holes in sleeves, etc so that the Simulation has a better idea of what it should do when draping the clothing.
Now that our character matches the garment, we’re ready to Simulate the clothing and fit it to our Avatar.
This looks pretty good, so we can save and export the Garment out to 3ds Max so we can prep it for the game!
For the next steps we just want to export the clothing by itself without the Avatar, so in Marvelous you can do CTRL-A to Select the entire Garment and then do File->Export->OBJ (Selected) to export an OBJ that we will use for the next steps.
For a simple garment like this TShirt, I’ll usually export it as a Single Object – if you choose ‘Multiple Objects’, Marvelous will export every single thing as a separate mesh (including stitching, zippers etc) which is probably a bit overkill, but it really depends how you want to handle the Retopology step afterwards. As well, you’ll probably want to export a ‘Thin’ object, which doesn’t include any inside faces for the clothing, but that is up to you as well – depending on the clothing item, you might want to use the ‘Thick’ setting so you get some better depth from the export.
Experiment with the various export settings so you can get a sense of what Marvelous does for your particular clothing item.
Step 2 – Prep for Retopology in 3ds Max
Now that we have an OBJ of our clothing mesh, let’s import it into 3ds Max so we can continue preparing it for the game!
In 3ds Max, make a new scene and go to File->Import and choose the OBJ you exported previously:
As you can see the mesh from Marvelous Designer is pretty heavy – my simple TShirt model is almost a half million faces alone – far too heavy for use in a realtime engine.
Turning on Edged Faces in the Max Viewport shows me how dense our resulting mesh is:
Let’s save this as our ‘High Poly’ mesh for the next steps – which I’ll cover in the next post in this series! Stay tuned for more!