Happy Sunday, everyone!
In an attempt to learn more about the pipeline for creating virtual reality experiences, I’ve been on a personal mission lately to dip my toes into the 3D art side of the process. I’m incredibly fortunate to have a few amazing 3D artists as friends (go follow them here and here!) who have been willing to share some of their knowledge as I play around with modeling, rigging, animating, and texturing assets for my VR experiments, and with their guidance, I’ve been trying small projects at various stages to get familiar with the tools and practices for creating 3D art.
I am absolutely blown away by what skills go into creating the assets for 3D development. Having asset stores available to me as a developer had left me largely unaware of what went into creating those models, and the more I learn, the more I realize how freaking little I actually know. I tend to learn new skills by diving straight into the tools and piecing things together as I go, which means there is some small, incremental progress going on but it’s largely me trying to figure out the right terminology to search for – so little accomplishments make a world of difference in staying motivated and excited. Some of the things that I’ve learned:
One of the biggest things that I’ve learned so far is that what I used to attribute to the term “3D Modeling” is actually a number of highly specialized, very different stages of creating a 3D model. 3D modeling seems to be an encompassing term, but specifically refers to the act of creating the mesh and geometry for an object, and giving it it’s shape. This is done in a tool like Blender, Maya, or Oculus Medium (I generally use Blender, but plan to try learning Medium more seriously) and results in one of several types of 3D formats. The common ones that I see are OBJ and FBX files: OBJ files are in a more simplified (from what I can tell) format and don’t support embedded textures, whereas FBX files are proprietary, but do – and both tend to be supported in game engines.
Materials & Texturing
Last summer, when I took an introductory graphics programming class, I learned about the graphics side of handling materials and textures, but learning how to create and apply them is a whole other ball game. The material defines how an object will reflect light, and controls the variables that are used to calculate characteristics like transparency, metallic shine, reflection, and emission. Materials are assigned to specific faces on your 3D geometry. Textures, on the other hand, have a separate coordinate system and are specific images that add visual elements around the final look of your model. A model is “unwrapped”, which classifies how the 2D image that is used as a texture will be applied to the final model. There are different types of textures that can be used to layer on visual effects.
This part of making a model is particularly challenging for me, because I haven’t had the most practice and there is an largely-unknown-to-me, expansive vocabulary around the texture and material process. Artists can use programs like Substance Designer to create specific material and texture combinations, and Substance Painter to generate these textures by “painting” on a model. A good starting out project to learn about materials and textures is to take existing models and try modifying the textures on them. The cover photo on this blog post is an example of a mini-project that I did with a few free assets from BitGem, where I took the original model into Blender, unpacked the texture files, edited them in GIMP, and changed the material properties so that the model would render nicely in High Fidelity.
I’m going to be honest, rigging is still about 97% magic to me. Rigging is the process of creating “bones” and “joints” for a model, then “skinning” the skeleton so that your geometry mesh deforms when the underlying bones move around. I’ve been trying my hand at some basic rigging with some Pokemon models from Clara.io, but failed pretty badly at every attempt. I’m determined, though, because rigging is a necessary part of the process leading into animation.
Animating models is what gives them life and expression inside of an application. While I still haven’t animated anything complex, I’ve been enjoying the learning process by making small animations on pre-rigged models. There is a profound art to understanding the small movements that breath life into pixels, and I am so much more appreciative of models now that I understand more about the process of what goes into make them captivating.
Virtual reality is an intensely cross-discipline area of technology. From a creator standpoint, I’ve found it increasingly helpful to develop an understanding of the tools, skills, and vocabulary around creating visual assets for immersive environment to better understand how the process works across the board. I can communicate better with my art-oriented colleagues and create better estimates for projects with an understanding of what goes into the development pipeline from end-to-end. If you’re interested in picking up some of the basics (which I recommend all VR / AR developers do, at least a bit) here are some things that I’ve found helpful:
- Experiment with the tools that you’ll actually use. For me, I have a hard time buying software that I don’t know how to use with the intent to learn it, so I gravitate towards open source programs. Sometimes, getting a free trial can be helpful, too, especially to learn a particular part of the process. I downloaded a trial of Substance Designer to texture my lightsaber model, which was a really cool way to learn more about materials. If I do decide in the future to move towards doing more serious 3D art, this will definitely be on my list of programs to buy.
- Try building something! Start with the primitives and focus on getting something together and exported into an engine. You’ll learn a ton each step of the way, and there are a lot of tutorials online if you prefer to go that route to get ideas and step by step instructions for building certain things. I joke that I learned Blender by “banging my head into the keyboard a bunch of times”, and while perhaps not visually the most accurate description, I can say that it’s been an extraordinarily successful way of learning.
- Ask for help! Things will look weird – luckily, the internet collectively can be a huge help in troubleshooting. Whether it’s a normal that points the wrong way, an n-gon (polygon with more than 4 vertices) problem, or a mess of spaghetti UVs, odds are pretty good that a screenshot and request for advice on Twitter can point you in the right direction.
- Don’t underestimate the power of concept art – one of my biggest challenges is matching colors to create an aesthetically pleasing model, and I’ve recently created a Pinterest board to start keeping track of my inspirations and ideas for 3D art.
- Break rules. You don’t have to do everything perfectly – and probably won’t, when you’re just starting out. Try different options for making things, discover what you enjoy the most, and have fun learning from the process.