So... how exactly is the animation done in "James - Journey of Existence?"
I'm sure some of you are wondering exactly how the character animation is done in the hand-animated game "James - Journey of Existence"... no? Oh... well, I'll tell you anyway.
Character animation is the major defining difference that fans of traditional animation cling onto when comparing to computer animation. Yes, cars and robots and inanimate objects animated in 3D look really good, but characters, with both their expressions and movements, look (arguably) inferior in 3D compared to hand-drawn frames. Maybe it's because of the extra care animators take to make every frame entirely from scratch, adding heart and soul that a computer can't, but that's besides the point. Whether or not you like traditional animation, that is the core that makes "James - Journey of Existence" unique. And only characters in "James - Journey of Existence" are animated in this fashion... other items and objects will likely be modeled normally in 3D, because it simply isn't necessary to do otherwise (and saves on hardware resources, more on that later).
Character animation in "James - Journey of Existence" revolves around using different perspectives for the character, and having only one perspective visible at a time. Imagine having a 3D polygon made of faces, where only one face would be visible at a time, chosen by which face is closest to the camera at that time. That's the idea.
In Unity3D, there is no simple way to make a 3D polygon with that many faces, and controlling only part of the polygon to be visible isn't easy either. So instead, we use Unity's built-in polygon primitives, in this case, quads (or flat squares). Placing the quads around the character in a organized manner, they overlap each other, but the rule to choose which is visible is similar: of all the quads that are passed through a straight line from the camera to the center of the character, which one is farthest away. Mathematically, this gives us the closest face that is perpendicular to the camera, which is what we want.
Technically, you'll notice that the surfaces where the animated sprites are placed are curved... to make this effect, we simply used primitive cylinders in Unity to show the sprites, where the quads tell us which sprites to show. But that's another matter...
Many have commented that this sort of animation style has been done many times, and its true. This was common many years ago. When 3D models couldn't be handled by the system. Pixelated graphics were used, and limited animation. But no one has looked back since... think of this implementation as being built from the ground up for modern hardware, taking advantage of RAM and hard drive space to give us high-definition, hand-drawn graphics, and with a much broader range of camera movement. Certainly, this is rough right now, but the potential could make this go far beyond what current 3D animation gives us in games.
Oh, and the animation... frankly, everything you see is animated by hand. Seriously. Hundreds of frames and drawn and redrawn to create a simple animation from the perspectives you see. It takes a lot of time, but the result is still impressive, or at least unique. To make it a little easier, the character is purposely taken apart, so the arms, legs, body and face all have their own separate frames, their own separate polygon face. Doing this makes rotating around the character look slightly more natural, and it allows one to mix up animations of each part without redrawing it. For example, the arms and legs both only have running animations, which are reused for the jumping animations as well. This is also useful for games that would require allowing the player to do multiple things at once, such as running and talking at the same time. As a side note, the rotating-effect with multiple frames only works well if the subject is in the direct center of the camera's view, so side characters wouldn't see much benefit from this. Which is good, since separating the body parts multiples the amount of RAM used, and so it has to be used sparingly. But it's worth it if it makes less work for the artist.
And it's just that simple. If you're still curious, check out our youtube channel later this year on more detailed instructions on how this system was set up. And if that's not enough, consider aiming for our "Developer In-Training" reward, which will give you further detailed videos, as well as a sample level from the game for you to experiment with!