Avatar Creation for Social VR, Part 3: Character Modeling
Note: This series is an ongoing work in progress, and the video tutorials in particular will be updated and published publicly after I have finished recording the entire series. For now, the visibility for the videos has been set to shareable link only – if you have feedback on their clarity, pacing, or even whether or not the jokes land, I would welcome it in the comments here or on Youtube.
- Part 1: Introduction
- Part 2: The Blender Interface and Project Setup
- Part 3: Character Modeling – You Are Here
Welcome back! It’s now time to sit down and get your hands dirty, we’re going to spend a lot of time pushing verts and pulling faces. In this section we will run through character modeling, where we start from a cube, and finish with a character mesh.
The previous entry in this series focused entirely on the technical details of how to use Blender for polygon modeling, whereas now, we get into the workflow and thought processes involved in character modeling.Unlike the other parts of this series, poly modeling really makes the most sense when demonstrated, so I encourage you to watch the video first, even if you intend to work from this written walkthrough.
We’ve got our reference planes and the mirrored cube we set up last time ready to go. The process of modeling this avatar took about eight hours, so, again – be patient with yourself, take your time, and try to have fun.
Continue reading “Avatar Creation for Social VR, Part 3: Character Modeling”
Watercolor Assets
So, lately I’ve been getting really into VRChat as a creative platform, because of how quickly and (relatively) easy it is to get worlds and models into a game space that is shared by and used by a lot of other people. I used to fool with Unity a lot, but making game prototypes didn’t quite have the same immediate feedback dopamine loop that furry art does (and, it turns out, that my pre-diagnosis ADHD brain needs), but VRChat’s creator tools do a great job of closing that gap: you can build a level, get it into labs, and invite friends to try it out with the same speed and ease of posting an image to an online gallery.
While I’m working on my first world, though, I wanted to dust off some of my older projects to show what I’ve already done with Unity.
I used to do a lot of watercolor painting and worked out a technique where I’d do the preliminary sketch digitally, usually in Clip Studio Paint, and then print it in pale cyan directly onto watercolor paper, then ink over the pale blue with a waterproof india ink. Then I’d stretch the paper as normal for watercolor: soak the paper til it’s saturated, then staple it to a piece of MDF to let it dry. This prevents the paper from warping too much when you get it wet, making the watercolor easier to control.
Once that was done, I’d finish the piece in watercolor and send it off to the client. Most of the watercolor work on this site was done this way. I have a pretty nice fine art scanner that does a decent job of capturing color fidelity.
I used this technique to do a webcomic for several years, and when I started playing with Unity, I got it into my head to try to paint textures for 3d objects in watercolor using the same method: printing the unwrapped UV layouts of objects onto watercolor paper, painting them by hand, and then scanning them back in, compositing the scans into a texture map and applying them to the models. I also painted several quick tufts of grass to apply to grass cards, modeled after the fact.
So far so good! Then I got them into Unity:
This was about as far as I got before I needed to put the project aside for paying work, but I’m looking forward to building out this idea further in a VRChat world as soon as I clear my plate of my current work. The idea of having friends walk around in a watercolor illustration is very exciting to me.
Morgan Wolf
The third solo Unity project started as a commission for my friend Morgan, of her fursona (also named Morgan). My goals for the project were these:
- 3d model a character and keep it under 100 triangles, for a mobile/retro spec style.
- Model with Maya’s modeling tools – I’d been using Silo for years and it was starting to show its age, and I wanted to get used to something more current.
- Use a very small texture map with no mipmapping or texture filtering, to keep the chunky hard pixelated edges on the textures.
- Learn to rig and animate with Akeytsu, which was a new tool at the time that was aimed at indie game studios.
- Get it into Unity, and get it playable
Started with in Clip Studio, drew a concept front/side view:
I box modeled the character and the final tally came in at around 800 quads.
Initially I did the UVs in Maya and then started painting the diffuse map in Photoshop but the further along I got, the less and less satisfied I was with the way it was looking. I did discover that it made more sense to paint portions of the diffuse map first, to get it pixel perfect, and then drag the UVs into place with pixel snapping turned on, rather than try to solve the UV layout blind, though.
So about halfway into painstakingly pixelating the diffuse map in Photoshop, I decided you know what, actually fuck this and then brought it into Silo to rejigger the UV’s for handpainting in CSP, which is much more fun. You can also see that I ditched the armor. Usually the way it goes is the more work I put into a project, the more work I look to eliminate.
Once the diffuse map was done, I was ready to start rigging. Akeytsu is a very interesting little application that is to rigging and animating what Silo is to modeling – it’s not trying to be a fully featured software suite, it’s trying to do one specific thing very well, and to do it in a way that is painless and intuitive. I’d already had some prior experience with rigging and weight painting in Maya, and Akeytsu didn’t make me waste a lot of time looking for where they keep the spatulas, letting me get to cooking right away.
And, similarly, once the character was rigged in Akeytsu, the animation functions are also very streamlined while also being very similar to Maya, so I was able to create a couple of idle animations, and a walk and a run cycle in a couple of weeks. Looking at it now, I could have spent a bit more time tightening up the walk and the run cycles because they both look kinda swimmy, but still. Character animation is a discipline I’ve got the least amount of experience doing.
With idle, walk, and run animations done, the last thing to do was import it into Unity. I’d done enough of the project-based tutorials and had been working out of the Unity 5 Animation Cookbook that I was confident I could dummy up a functional character. Importing from Akeytsu to Unity was painless, though it did take some googling to figure out how to stick the diffuse map into the shader, because that was new. But all of the animations showed up where they should be.
From there it was pretty easy to create a player gameobject with some simple player controller movement and oh wait whoops lol it needs an animator controller too doesn’t it
Once it had an animator controller, the state machine needed a bit of script to tell it which animations to play for which state and all the transitions had to be set up – rather than having a separate ‘run’ button I just had her build speed the longer she stayed in motion, so in the course of a couple of seconds she’d gradually transition from ‘walk’ to ‘run’.
I exported the project as a web-playable demo and put it up on itch, if you’d like to try it yourself.
Morgan passed in 2020, and she was a tremendous person and a bright point of light in the lives of everyone who knew her. I’m very grateful to her for the support she showed my work and for her friendship. I learned a lot from this project and I was very fortunate to have a client who was willing to throw money at me to do something so personally enriching.