I finished what I set out to do. To create a playable character in a prototype game, that could move around the level and transform between two states.
But I didn’t get the quality I wanted. Mainly because I had to decide if I was going to do just the things I wrote in my proposal really well, or do everything that needed to be done for the game to feel more complete. I decided to do as much as possible for the game. But still try to prioritize the animations I had to complete to look the best.
Over time I had to increase the speed and mobility of the character to almost double the original speed, to make it easier to survive and cap the “battery” . But since I only increased the animation speed in Unity. It degraded the look of the animations.
Like I wrote in one of my earlier posts, I implemented some of the character controller myself as well. Mostly because Felix who was in charge of the network syncing didn’t have time to also research how to implement the animations through Mecanim. After the base of the controller was working, he could sync it over the network.
The last week I was more or less done, i felt that tweaking the animations even more was not worth it before I remade them to fit the new speed (Alter the original animation instead of the playback speed in Unity).
So instead I helped out on some other things that needed to be done: UI elements, particles, texturing, etc.
If I did this project again I wouldn’t have changed much. The only thing would probably to have more people, so I could focus on my specialization. For the future, I will keep practicing my animation and rigging skills. But since I also enjoyed the implementation part of this project. So I will add programming to that list.
Been working mostly on the controller this week, the animations is starting to look acceptable. I added a “Mouse Look” control and merged the running/turning with the strafing so it is now more of a standard third person controller and less of a car controller (which the ball is still more or less)
I still have a problem with the transform out animation. For some reason the robot looses ground contact just after the animation, which starts the fall animation for 2-3 frames and makes it look wierd.
After the transform out bug is fixed I will polish the strafing animations, since they look too different from the run and walk.
I have started redoing / upgrading the animations. Beginning with the run and turn animations. It’s not easy to get them to blend smoothly when everything else isn’t working perfect. First trouble I had was that the controller was snapping to full value on key press, that is they were digital. So I had to do some scripting to tween out the states and get a smoother transition. But of course that did so you barely could control the robot at all, because he was turning to slow. Eventually I solved that aswell by make him turn back faster if you try to turn the other way. It still needs some tweaking but it works for now.
Then Felix started working on the robots impulses (earlier he couldnt be pushed by balls). Which for a while made the animations all jittery, when that was fixed I noticed that sometimes the robot didn’t move as expected. It was like he froze for a moment before continuing, what I didn’t notice was that he lost the contact to the ground when running over uneven terrain, since he didn’t have a “fall” state he just continued to run in the air without moving. The camera also sometimes makes the game look like its lagging(mostly when turning). I can’t really test the animations in game with these problems. A smarter person would hold off with updating the work directory but “luckily” I still have alot of other animations to do.
Anyway enough ranting, here’s a short video of me running around with some new animations and controller.
I just realised I haven’t posted about the texturing, but it was pretty straightforward.
I decided I´m going to use a 1k map for the shields, a 2k for the body of the robot and a 1k for the tire and core in ball form.
I baked out AO and Normals in Xnormal in 2x the resolution and scaled it down in PS (Photoshop) to get smoother edges. The textures themselves are based on metal pictures with dirt ontop. I freehand erased the amount on spots wich are more exposed and added more on the areas closer to the ground.
So now 3 weeks to Milestone 3, I’m beginning the animating. Which was fine when I originally planned it. The problem being we really need more animations than I thought. I’m going to focus on the forward running/walking and the transform animations, because that’s the ones I wrote in my proposal. Then do as much as possible on the rest.
I already have mockups/tests on all of them so I don’t need to start from scratch.
I haven’t posted in a while. The animations are in the programmers hands for now, they need to implement my mock animations and figure out if something doesn’t work before I can move on to the real animations.
I’ve been working on the lowpoly models for the ball and the robot. At the moment the robot is at about 17k and the ball around 12k.
Since there is only going to be 6 players (for now) at the same time, I will leave it as it is. They can definitely be more optimized but that is not my focus in this project. As long as the game runs smoothly, the models can have a few extra polys.
The next step is texturing, but before that I have some UV-mapping to do.
All that is left on testing the animations is for our developers to add the character to the game, more specifically making the models shift when the character goes between forms.
So meanwhile I have been modeling the high poly model. Now I’m not that good with hardsurface modeling, I’m more of a organic guy. Fortunately for me I could reuse alot of what Johan already made for his garage.
The design changed a bit, firstly the head looked a bit to much like something else… The hands or “shields” got a socket in the middle since there is going to be weapon attachments there.
This week I have been rigging and making some mock animations to try out Mecanim.
The rigging method I used was from Gnomon: Puppet Rig. Every control is grouped twice, and those groups are used to constrain them to other controls. That way the animator can animate freely using the control shapes without destroying the underlying constraints.
For Mecanim i downloaded a tutorial scene, which I modified a bit to be able to use my own character. The problem I had was that my character was only running in place. Apparently the script uses translations in the animations (probably for mocap data) to move the character in game.
Luckily I only had to animate the root_ctrl to match the movement in maya. It works pretty well considering I have only spent about 2 days with this. The strafing needs some tweaking to blend more with turning.
oh, and no animations are finished. Right now he looks way to light for a thick metaled robot and his arms are a bit to spread out.
My part in this specialization project will be rigging and animation. Thus I will be in charge of the player character.
The character is a robot who can turn itself into a ball, to move faster and be more durable. For now the only way to transform out of the ball will be to pick up the flag in the HTF (Hold the Flag) mode.