Make your own 3D posable CSP characters
Introduction
First, just let me start off by saying ClipStudio Paint is a great program and I love using it, however, soon after I started drawing I realised that if I wanted to start making whole stories then I couldn't spend days and days just to get black and white sketches with no backgrounds, and I certainly wasn't going to get much time for practice with a full-time job that involved no drawing of any kind. Now, I am not the most artistically minded person, I'm an engineer and engineers are lazy (and grumpy, and old, and...). Why would I do a thing repeatedly when I can have a machine do a thing repeatedly for me? 😏 Yes, it probably takes much longer to make a good 3D character (especially if you want a good anime look), but you only have to do it once, every time after that is almost free in terms of effort, just reposition them, take a pic and done, next scene.
This journey started quite some time ago, when I came across and interesting post about making custom 3D materials for CSPaint.
This was back before CS Modeler was available outside of Japan. The 3D parts of CS Paint aren't super well documented and I ended trying quite a few different programs (including Autodesk Maya - which is what the Celsys guys used for the CSPaint characters) before I found a workflow that got me what I wanted and wasn't too painful to use (insert industry-standard tool here)
But first things first:
[1] Essential Software
Irrespective of anything else, you are going to need Blender, praise be to the Blender for the Blender is good
I've been working exclusively in Blender v2.8+ as it recently had a complete user interface overhaul, I personally think it is now much, much nicer to use
Everything else is optional (although recommended) but I have not found a way to get good results using any other programs yet, mainly around getting colours to be displayed properly, Blender's Principled BSDF shader just works when importing stuff into CS Modeler (I'll explain what I'm on about later)
The next most awesomest thing you're going to need is the MB-Lab plugin for Blender
I'm not kidding, the picture below is of MB-Lab running in Blender, that's the kind of results you get out of the box
The next thing you are going to need is a free Adobe account so you can use the free online version of Mixamo. Yes, MB-Lab characters come with bones and everything, but because they are intended for realistic animations, they've got a bunch of extra bones in them that confuse the "standard bone" mapping tool in CS Modeler so your model is going to need a new skeleton. The Mixamo skeletons seem to work pretty well with CSModeler so that what I'm going to use.
Now you can just drag and drop any random, rigged FBX 3D model into Paint and it will work, BUT none of the built-in poses will work and it will end up on a seperate layer if you try and use any of the other 3D assets that come with CSPaint. If you want everything to play nicely together, you need to have the right bones.
Yes, you could do it manually in Blender but then you (like me) would actually have to know something about rigging and weight painting (which I don't... yet). This is where Mixamo comes in, is's an automated rigging system, just upload your model, tell it where some key joints are and bam, fully rigged character... magic 😜
Not actually a program but still, you're going to need to know a little about Blender's shader nodes, if you want to draw your colours in by hand them you won't need to know much at all, but if you want to have Blender do some of the colouring in for you, then you're going to have to get at least a little familiar with them.
You will need to have a copy of CSModeler if you want to add your new characters as assets and have them appear in the assets tab in CSPaint. Modeler is now free for anyone in and out of Japan to use and can be downloaded and installed just like CSPaint.
The last thing you're going to need is some clothes for your characters... obviously 😉
I'm not going to go over making your own clothes from scratch as that's probably something that could use a whole tutorial just by itself. Thankfully, there's plent of stuff out there on the internet that we can tweak and you can even download the source files for the CSPaint characters from the Japanese CSCoordinate page
[2] Getting Started
I'm not going to cover any of the setup and installation of the tools I mentioned above as this tuturial is going to be long enough as it is and there's plenty of other people with much better explanations and (video) walkthroughs on how to do it. There is an almost endless supply of Blender videos on Youtube for just about everything Blender, stuff you should know, stuff you probably don't and stuff you never even knew you needed to know
This is what Blender 2.8+ looks like when you start it up, an empty scene with a light, a camera and the default cube. Now, we don't need any of that so just hit "A" -> "X" -> "D" in that order to delete everything in the scene.
Hit "N" on your keyboiard to bring up the... N-menu? A bunch of tabs will popup on the righthand side, assuming MB-Lab is installed correctly it should be in one of those tabs. Now, there's quite a few different body types to play with but I'm going to use the "Anime female" one becasue I want a stylised character and this is a good base to work with.
Leave all the other "Creation Options" as default, we want to use the "Cycles Engine" as we are going to have it bake our shaded textures later and EEVEE, while stupidly fast at rendering, can't bake textures yet.
Personnaly, I use something called an "Emission Shader" for my characters, basically it means Blender treats my model as a big coloured lamp instead of a painted sculpture and so having "Portrait Studio Lights" turned on doesn't really make a difference (hint: lights don't cast shadows on themselves and are not really affected by other lights).
Next hit "Create Character", it'll percolate for a little bit but them bam
[3] Adjusting the shape of your character
There is a LOT of body shape parameters you can tweak to try and get the look you're going for.
If you're really feeling adventurous, you can even try your hand at sculpting if you just can't quite get the look you wanted (more on that later)
Once you're happy with how your model looks (if you want to scuplt it, wait until the next step) you can now go and hit the "Finalize with textures" button under the "Finalize Tools" menu. This turns the math behind all those body options into a mesh with a texture. It also sets up the UV maps for the model. A UV map takes a flat 2D image and wraps it around your model in a nice neat fashion. If you've ever sewn your own shirt, it's an almost identical process only digital. You can do this manually, but it's way easier to have MB-Lab set it all up for you.
It will ask you for somewhere to save the image texture for the whole model and then sit for a minute while it sets everything up. We are now done with MB-Lab and you can now hide it by pressing "N"
[4] Removing the unwanted bits
First thing we are going to do is remove the meticulously crafted skeleton MB-Lab has setup for us as it won't work too well in CSModeler.
To do this first, make sure you're in "Object Mode" and not "Edit", "Sculpt" etc.
Click on the model (not the funny grey block bones) and hit "Alt" + "P"
You want to select "Clear Parent" as this will seperate the mesh from all the other stuff that we don't want.
You will now have two entries instead of one in the uh... tree on the left. One is the mesh that we want to keep, one is the skeleton which we can get rid of. You can check which is which by clicking the little eyeball icon to hide or show specific items.
Once you know which one is the skeleton, you can just right-click and delete it. Now is the time if you want to do some sculpting on your mesh. This concludes the modeling part of this tutorial.
Next up is the shading. This is where we take the currently flat colours and add some shadows and depth. On the top menu in Blender, scroll along until you get to "Shading"
[5] Colours and Shading
If you click on the model a bunch of stuff comes up in the bottom panel, just highlight all of it and delete it. It's a fancy setup that dynamically generates outlines and shiny spots as you move the camera but it doesn't work with CSModeler and I don't think it can be texture baked so we won't be needing it.
When you delete it, parts of the model will turn pink, don't worry, that is just Blender's way of saying "woah, hey I don't know how to colour in this model anymore so I'm just going to colour it pink so it's really obvious something needs fixing"
I call it "Pink du Shader Manquant"
[6] Know your Nodes
There's a couple basic nodes you will need whether you want to have fancy shading or not. While hovering over the bottom panel, hit "Shift" + "A" to bring up the list of all the avaliable nodes.
We are going to need at least three things:
1) A "Material Output" node. Found under Output -> Material Output ("O" -> "M")
2) The "Principled BSDF" shader node. Found under Shader -> Principled BSDF ("H" -> "P")
3) A "Image Texture" node. Found under Texture -> Image Texture ("T" -> "A")
To start off, connect up the nodes as shown below and change the "Base Colour" to black (otherwise it colours the whole model white), click on the white box and change it to black. Don't worry about any other options, we don't need them and they are fine as they are.
Connect them up by clicking on one of the little dots and dragging it across to another.
You will also need to tell Blender we want to use the image MB-Lab created for us before. This image is already mapped to the shape of our model.
Assuming you're using the anime girl model, it's called "anime_female_albedo.png"
[7] Getting into the right Colour Space
Ah, now we have colour again, but wait, it looking a bit faded and washed out... that's annoying.
See, by default Blender renders colours "Filmic" style, which is great if you want to export to a movie studio and you want nice normalised colours for the VFX guys but we want things to look good NOW. So, over on the left hand side, there's a skinny vertical menu, we want the little camera icon. Hit it and go down to "Colour Management". Change "Filmic" to "Standard"
Ah, much more betterer
[8] New Material
There are multiple parts to this model, above you can see we're in "Slot 3" you'll need to replace the existing nodes with the ones above for each slot if you want everything to look correct. Easiest way is to go to the other slots and change the material to reuse the one we just created instead of adding new nodes. I changed the "anime_skin" material first, so I'm going to set all the others to the same thing.
Notice how the eyes no longer look washed out?
Now if all you wanted was a flat coloured static model, you can pretty much go File -> Export -> FBX, load it into modeller and your done.
But we want SHADED and POSABLE models so we've got a bit more work to do. Which means we're going to need to make some changes to our node setup. Hit "Shift" + "A" and add these new nodes:
1) Ambient Occlusion node. Input - > Ambient Occlusion ("I" -> "O")
2) Geometry node. Input -> Geometry ("I" -> "G")
3) A couple of Colour ramps. Converter -> Colour ramp ("N" -> "O")
4) Mix nodes, change them to "Multiply" and "Subtract". Colour -> MixRGB ("C" -> "M")
5) An Invert node. Colour -> Invert ("C" -> "I")
Connect them up as shown below. Note the arrangement of the inputs on the subtract node. The subtract node is connected to the "Emission" input on the BSDF shader.
You will probably have to jiggle the sliders on the colour ramps a bit for best results, every model is a little different. The top ramp controls the intensity of the shadows while the bottom slider adds extra shadows to any crevaces or surface imperfections
[9] The Rendered View
Now if you go to "Rendered View" you should have a nicely shaded model. All we need to do now is bake it to an image texture and the colouring part will be done. Blender nodes don't work outside Blender (pretty much the same for any node-based program) so we need to create a new flat image that has our nice shading baked into it.
If it takes forever to render, you might need to go and change the render engine from CPU to GPU which you need to set both in the preferences and in the render settings tab (little camera icon)
If you're PC is still too slow, you can set the render engine to EEVEE, this node setup works both in EEVEE and Cycles. EEVEE is much faster so you can tweak the nodes in realtime and probably sculpt in rendered view too. It's just that EEVEE cannot bake textures, so we need to change back to cycles for that part (although if you were going to make a real-time animation for use only within Blender you could probably leave it set to EEVEE)
[10] The Blender Bakery
Now all we need to do is bake our model. Add a second "Image Texture" node ('Shift"+A" -> "T" -> "A"). This is where the result of our baking is going to end up. Hit "New" on the image texture node, give it a size (I highly recommend you make it square and a multiple of two, so 512x512, 1024x1024, 2048x2048 etc.) It doesn't need to be super high res, really, 2k is good enough for this. leave the other options as they are and hit "OK". I called mine "baked_tex".
Now up the top, go to either "UV Editing" or "Texture paint", either works for this. You'll see some weird monster loking thing on the left-hand side. That is what a UV map is, that weird thing is how the flat image gets chopped up and wrapped around our model.
Make sure you've got the right image selected (I called mine "baked_tex") and then go to "Image" -> "Save As" and put it somewhere obvious. Unsaved image textures get removed when you close Blender, saving it now will ensure that Blender will remind us if we forget to save it in future
Make sure you're in "Object Mode", click on your model to highlight it.
Go to the "Render Settings" tab and scroll all the way down until you see "Bake"
Hit the "Bake" button and Blender will start making a flat 2D image for us with all of our nice shading baked into it. This may take quite some time.
If you have multiple parts but want to bake them all into the one texture, you'll want to turn off the setting "Clear Image". Otherwise each item that gets baked will just wipe out and overwrite EVERYTHING in your image texture. Turning this off means it only adds it's own bit to the image and leaves everything else alone.
Depending on how crammed the UV map is, you might also want to turn down the "Margin", it basically renders a bit of extra area around each part of the unwrapped model, but if they're too close together they'll overlap and interfere with each other.
Now it will probably take a couple minutes depending on the resolution you set your image to, it took a while for a 2k texture to render on a GTX1070 so if you have anything less or you're in a hurry, drop the res and it'll render faster.
After it's done, something magical happens, where before there was black nothingness, now there is colour!
Hit "Image" -> "Save" and go back to the "Shading" tab and our nodes. Their job is now done and we don't need them anymore, you don't need to delete them or anything, but it's now time to change over to our baked texture.
Connect up the baked image texture node to the emission input instead of our realtime shadow shader.
If everything went well, the model should look exactly the same, except now there is no fancy node shading going on, it's now just a flat image being wrapped around the model.
If you want to you can paint onto your model in 3D directly from Blender using the "Texture paint" features or you can open up the image texture (whereever you saved it to) and edit just like any other image, as long as it's always kept in the same place relative to the FBX file (just keep them in the same folder, much easier) then any changes you make will get loaded automatically by any program that tries to open the FBX file.
As a sanity check, you can go to "File" -> "Export" -> "FBX" and put the file somewhere. You can open up CSModeler, create a new 3D character. make sure you're in any mode except "Bone Operation", go to body and add your FBX file. If everything is good, it should look a lot like this.
Success! Except there's still no clothes or bones... But we're definitely getting there! If you were making a static model with shading, you'd be pretty much done now. We want poses so there's still a bit more to go yet.
[11] Getting Dressed
Now, because I'm lazy and I've already spent a couple hours on this, I'm going to recycle an existing outfit from another character. Those CSPaint character source FBX files I mentioned way back at the start come in handy. Let's use "GirlA01_Material/01_body/01_ɺò×" (I think the names were in Japanese originally so they don't render right on a non-Japanese version of Windows)
Go to File -> Import -> FBX and select the CSPaint character model, much like with MB-Lab it'll have a bunch of extra stuff attached to it that we can get rid of. Same process, "Object Mode", "Alt" + "P", "Clear Parent" and now... woah, that wasn't supposed to happen... the CSPaint model seems to have grown a couple orders of magnitude
This is just the magic of Maya and mixed unit systems at work folks, nothing to see here. Just hit "N", go to "Item", select the now giagantic model.
Change all three X, Y and Z scales from "1.00" to "0.01" and just the X rotation to 90'
That looks more reasonable. Now we can delete the CSPaint character's skeleton, we don't need that.
Select the model again and click on the scale button, we want to scale it up until it looks the same size as our character. Click and drag on the white circle to scale in all three axes at once.
In my case, i also had to move it foward just a touch
Now, we've got to go to the "UV Editing" tab. There's more to this mesh than we need, like legs, we don't need those...
There's a nifty little button on the UV page that allows you to select parts of the mesh from the UV window, this is perfect as the model is already broken up into pieces already, we just have to delete the bits we don't need.
Box select the bits we don't want (shoes in this case), move the mouse over to the right hand window with the model view and hit "Delete" -> "Faces". If it's getting a bit cluttered with the MB-Lab model and the CSPaint model being shown at the same time, hit the little eye icon on the right hand object tree to hide it.
My character is going barefoot so, bye-bye shoes...
Now if you can't easily just box select the bits you want to delete, you can cheat by making sure you're in "Face Select" mode, just clicking on one or more faces in the part you want removed and hitting "Ctrl" + "L", this will automatically select everything else in that group. Then you can delete as normal.
Now that that's done, we can un-hide the MB-Lab model and go to the "Layout" view, it looks like I've got to bring the dress forward just a little bit more...
Now that the alignment is looking pretty good, lets see what we can do about those colours. Just like we did earlier with the nodes for the MB-Lab model, we can do that here too. Although becasue this particular model has MULTIPLE image textures, I won't be able to just reuse the same material for everything but that's ok. Same as before, connect texture to emission and make sure the base colour is black, lather, rinse, repeat...
One thing to note is that if I turn on "Wireframe" we see that there isn't much geometry in the skirt, might have to fix that. Also, triangles, eww...
We can fix that by adding a subdivision surface modifier and applying it, just changing the subdivision level to "1" is enough for this model. You can get to the modifiers tab via the little spanner icon. It also gets rid of those triangles but I think it messes up the nice centerline of the model's geometry, probably fine for this, but not good practice in general, always try and keep a clean, straight centerline.
Much better. Now for the fine fittment. But before we start sculpting, there is one this we must do, select the dress and hit "Ctrl" + "A" and "Apply all Transforms". remember how it grew a hundred times when we deleted it's skeleton? That's what happens if you don't apply all transforms! Up until now Blender was still treating the dress as though it was 150 meters tall...
Applying all transforms sets the scale to one, which is basically telling Blender that as it it now is the correct size. Un-applied transforms can wreak all kinds of merry havok when rigging. When you pose a rigged character, you are applying transforms to the mesh and if the mesh has been shrunk a hundred times, there's no guarantee that the pose transforms will honour the new scale, they might still be working on the scale of kilometers or centimeters instead of meters (Blender's default units). Weirdness will result.
With that all sorted out, we can now get to sculpting
[12] Form-Fitting
I really like the Elastic deform brush for most of this work, it treats the mesh like a big piece of playdoh or chewing gum, perfect for minor stretching and dragging. You will probably have to adjust the size and strength of the brush to get the results you want.
Now, unless you have an asymmetric model, you'll probably want to turn "X" symmetry on. Now anything I do to the right side will also ve done to the left side.
Now it's a matter of lots of little tweaks to cover up the spots where the MB_Lab character is poking through
Now, getting the sleeves in position will be a little bit trickier, using the deform brush on that would probably ruin it, so, we'll need to work on the mesh directly instead of sculpting it here.
Change out of "Sculpt Mode" and into "Edit Mode"
We're going to need "X-ray" mode so we can select stuff both from the front and stuff hidded at the back
We're also going to want "Proportional Editing" for part of this, so you'll need to turn that on too
You're going to have to do a lot of little move and rotate actions, trying to do it all in one hit will warp the mesh too much, twisting the sleeve in small steps help avoid this. When in "Proportional Edit" mode, use the scroll-wheel on your mouse to change the area-of-influence (represented by the thin, grey circle inside the green one). A larger area drags more opf the surrounding mesh along with the parts you have selected
After a lot of little moves, rotations and maybe a couple of scalings you're going to have the sleeve more or less in the right spot. I'm trying to get this special path of geometry to line up with the elbows. All the extra quads here help the arms to look more natural and retain volume when they bend, a perfectly uniform mesh goes a bit wet-noodle when you bend it. Extra geometry hepls keep areas that have to stretch from collapsing and looking weird when you try and pose the model
Now it's back to "Scuplt Mode" and a bit more work with the deform brush and bingo, looks good.
Now about halfway through fixing the sleeves I noticed the "X" symmetry option wasn't working right, sometimes it affected both sides and sometimes it didn't so I ended up having to fix both sleeves seperately 😑 sigh, computers...
[13] Mix it up with Mixamo
We're getting close to the end now. If you're happy with how everything looks, go to "File" -> "Export" -> FBX. Personally, I'm going to try for another texture bake of the body mesh as this time it should take the shadows of the skirt into account. You don't have to do this, I just like how it puts shadows inside the sleeves and around the collar. Same process as we followed before. I'm not going to try and bake the textures for the skirt becasuse those already have reasonably well shaded textures (and I'm worried I might break something if I do)
Now it's time to fire up Mixamo and rig something! Be aware I've yet to get Mixamo to work with ANY texture generated with Blender, I either get a model that looks like a porcelain scuplture or I get something so totally jet-black that I can't make out anything... If anyone knows a fix for this let me know, because it adds some extra steps at the end that I feel shouldn't be necessary.
Once Mixamo loads, hit "Upload Character" and after uploading your FBX file, you'll be taken to a page to check to see if your charcter loaded correecly and is the right way around. If everything looks ok, hit next and follow the prompts to add the rigging markers.
See what I mean about super-black models? I have no idea what causes this, sometimes it works, sometimes it doesn't
Either way, hit next and it'll start processing. Give it a few minutes. Once it's done, you'll be able to load it up with an animation and see it in action. Only problem is that when you download the now rigged model, it doesn't keep it in a nice neutral pose, it ends up in whatever pose the animation starts with. This leads to issues with CSModeler so I recommend selecting the "Skinning Test" animation as it actually starts with exactly the pose that CSModeler expects so it's perfect.
[14] Back to Blender
Go ahead and hit the "Download" button to download a copy of the now rigged mesh (the default download settings are fine). There's still a little clean-up needed in Blender but we're getting there.
Once that's done, go back into Blender and "File" -> "Import" -> "FBX" to bring the rigged model back into Blender so we can fix up the textures.
Amazingly it actually imported the old textures correctly (didn't happen last time I tried). We can delete our original MB-Lab mesh and the skirt mesh, we no longer need those. If the Mixamo mesh hadn't imported the textures correctly then the process is the same as before. As we've been using the same Blender file this whole time then all the textures and settings should still be in there, thay just need to be applied same as before.
Just for kicks, hit "spacebar" to play the animation (hit it again to stop)
A bit laggy on my PC, but good enough. Now we've just got to export it again as an FBX and that's it for our Blendering.
Time to finally load it into CSModeler.
[15] Clip Studio Modeler
If you want to use one of the CSPaint hair-dos, be sure NOT to tick "Use as complete character". Normally, the CSPaint characters have seperate, interchangeable heads so that they can have a bunch of different shapes. The CSPaint characters use a bunch of different layers in a Photoshop PSD file (that is aligned to the UV maps) to handle all the different expressions.
Down the bottom is a littel bone button, hit that to perform the "Standard Bone Mapping", you'll need to do this if you want to be able to use all the existing CSPaint poses with your character
This part of the process is pretty straight forward (but only if you have a suitable skeleton!)
Use "Spacebar" + "Left Mouse"/"Middle Mouse"/"Right Mouse" to rotate, pan and zoom the view respectivley (this took me ages to work out)
At the end CSmodeler has a couple of tricky poses to check that everything is rigged correctly
Once CSModeler has mapped out the bones, then you can use the CSPaint character accessories just like any of the built-in characters. You might have to ajust the position, rotation and scale a bit but other than that, we're done editing
Now everything should be finished and your model should work with all the CSPaint built-in poses and all the poses on CSPaint Assets.
Go to the Body page and click on the little icon to take a thumbnail image for your model.
[16] Finishing Up
Now all that's left is to register the character as a new material, that way it'll be accessible directly from within CSPaint
AND WE'RE DONE!!!
It took half a day to write so hopefully it takes less than half a day to read 😏
Enjoy
留言