Brand New Body, Touchy Feely Hands, Sans-Core-Gameplay Objectives

Where I am now: As mentioned in my previous post, I’m working on updating Act 1 with new gameplay until the end of April. There’s a game exhibition happening on April 25th in Edmonton called GDX which I’ll be going to, and I want to playtest Act 1 with as much new gameplay as I can get finished by then.

Another reminder that all graphics are placeholder. If you cringe at anything you see, I’ve probably done so multiple times.

Brand New Body. Here’s a comparison of the character’s old and new body, with the new one being on the right (hopefully you can tell):

bodies

The monstrosity on the left is a combination of 3 meshes, the two arms and the body. When first working on Act 1 I didn’t have a good grasp on how to make the player’s body and arms work with Unity’s mecanim animation suite, as it seemed fairly complicated and a bit intimidating. Since then I’ve done my research and can now appreciate how wonderful mecanim is. The new body is a single mesh, and the arms can be controlled independently of each other by using an animation layer for each one and applying an appropriate avatar mask so the arms and body can animate free of each other.

So, here’s what the bodies look like when looking down, first old then new:

oldArms_look-at-hands

*shudder*

newArms_look-at-hands

aaaaaaaaaaaaah, that’s a bit better. It looks a bit weird when the new body raises its hands as they don’t move with the elbows, so that’s another polish thingy to add to the list.

Touchy Feely Hands. So with the new body comes new animations, and the wonderful-to-look-at-but-sort-of-a-pain-to-polish inverse kinematics! I’ll give a brief explanation of what inverse kinematics (IK) is for those unfamiliar with it.

A traditional animation is simply moving a 3D model by saving its position over a time period. If I made an animation for an arm to push a button in, I would save the arm’s position at certain points in time. At 0.2 seconds the arm would start reaching, at 0.5 seconds the hands would get closer, and at 0.76832 seconds the hand would press the button as so:

oldArms_buttons

It looks fairly good. But, though it looks like the hand is touching the button from the player’s perspective:

oldArmDemo_game

it’s actually not:

oldArmDemo_scene

This would be fine if I wasn’t planning on adding a few gameplay mechanics where the hand MUST be placed in the proper position, else immersion, believability and game feel will be ruined. So right now, the fixed animation isn’t doing much for me.

A solution around this would be to move the player to a specific point and fiddle with the animation so it actually touches the object. This is fine, but since the animation is fixed and can’t be changed, it doesn’t cover other aspects. What if the object is tilted, making the hand’s rotation incorrectly aligned? You could make more animations to cover for this, but it would lead to A LOT of extra work for the different rotations the object could have. So…what now?

Introducing IK! Using IK we don’t have to save the arm’s position over time for our animation. Rather, we specify where we want the arm’s hand to be, and Unity will position the elbow and shoulder joint for us. Best of all, we can place the hand to touch other objects and rotate it to match the object’s alignment, freeing us from having to create 10,000 animations.

Here’s an arm pushing a button using IK:

newArms_buttons

Wonderful. The arm is now actually touching the button:

newArmDemo

 

Another big bonus of using IK is it’s flexibility. To demonstrate this, here’s what the old and new character animations were for pulling a lever:

oldArms_lever

*shudder 2.0*

newArms_lever

Not only is the hand being placed in a better spot, but it’s easy to leave full control to the player:

newArms_leverFlex

To achieve this with fixed animations, I would have to blend between a “lower” and “raise” animation while modifying the animation speed to match the lever, plus I’d have to make sure both animations aligned the hand so it was touching the lever.

But with IK? I rotate the lever, and then Hand.position = lever.position (with a couple offsets). Done. All I need now are finger animations to close around the lever’s tip, and it doesn’t look half as bad.

Here’s one more comparison for a “switch” of sorts:

oldArms_secretary

 

*return of the shudder*

newArms_secretary

 

Freakishly out-of-proportion things. So now that I have hands that actually touch stuff, I can see how out-of-proportion certain objects (like 80% of everything) are, with good illustrations being the button-pushing motion and the switch-pushing motion. Just look at how big those objects are compared to the hand! I’ll need to do quite a bit of resizing which will probably be what happens over the next two weeks. That, and there’s a couple more objects I need to get IK working with to get back to square one.

I trudge onward.

 

*  *  *

 

Sans-Core-Gameplay Objectives. Through some random google searches, I was reminded of how a lot of multiplayer games, specifically shooters, have a deathmatch or team deathmatch gametype. I remember liking team “slayer” (deathmatch in halo-lese) back in the days of Halo 2, which would be the only game type I’d play aside from the odd slayer match. But since a couple years ago my tastes have changed. I’m not attracted to those gametypes anymore, and by self-reflecting while gazing into a hearth with a glass of wine swirling in my hand for several hours (none of this happened), I’m certain it’s because…it’s boring.

In shooters, you shoot. You shoot lots of things, and aside from the odd barrel or window that breaks realistically using Nvidia’s shiny new window-fracture-thingy, you shoot other people. Lots of ’em. And you have to in order to progress the game and not die…at least on harder difficulties. So in a shooter the core gameplay, that is, the gameplay with the most depth and attention, is shooting.

So when the gametype’s objective is to shoot things….eeeeeh? Yeah the shooting may have great feedback, and the maps have a cyclical design that makes them great to traverse and not run into a dead-end, but the objective, my purpose, is just..so…damn…..dry. I’m shooting the same guys I did in single-player, but with better AI (most of the time) and I do this until I rack up a bunch of points. It’s like a wonderful single-player campaign stripped bare and boiled down into an 80’s arcade game. SCORE POINTS YO!

Luckily there’s other gamemodes for my taste. Most notable is the Conquest gamemode in the battlefield series. The objective? You run/drive/fly/dolphin-dive around a big map to specific sites, capture them, and hold a majority of them until the other team’s reinforcements run out. Now, the objective is something other than the core gameplay. Will I still shoot things? Probably, but I don’t have to. I could get into a fast jeep and book it to an empty site and capture it. I can try to sneak into a hostile site and capturing it from right under them, not shooting to make sure I remain undetected. Can I do these things in deathmatch? Sure, but I’m not flowing with the game. By making the objective something other than core gameplay, the game suddenly has depth. The shooting is still there, but there’s also something different to achieve, and with it more interesting things to do and choices to make.

Dark Souls’ Lack-luster Second Half. This “philosophy” doesn’t only apply to multiplayer modes. Dark souls is tied with shadow of the colossus for being my favorite game, but as much as I love it I cringe at the game’s second half. And the reason is because it’s objective is the freakin’ core freakin’ gameplay.

“Find the four lords, and kill ’em yo”. Dark souls’ core gameplay is combat. It’s the “pillar” of the game, among the other pillars such as exploration, that has the most depth to it because of the insane amount of choices you can make. Weapons, armor, rings, weak/strong attacks, rolling, blocking, parrying, and much, much more. All these things contribute to the player slashing it up with the undead. Dark souls starts off intriguing in that the player is told to “find two bells, one above and one below”. It makes the objective something other than combat, and because of this remains interesting. Where are the bells? What will happen when I ring them? Oh, a castle opens? Ok, oh-OH, that’s a big iron golem-looking thingy. Hey what’s that ring of light-…holy SHIT, WHAT A VIEW! That’s a castle in the distance? How do I-…and so on.

But after you reach the princess and successively talk to, or not talk to, frampt, you’re told/not told…to go kill 4 bosses. UUUUGH. That’s what I’ve been doing this whole time!! With the objective now being the core-freaking-gameplay, the game devolves from being an interesting, mysterious adventure to being a laundry list I have to check off. Dark souls 2 repeated this, but instead made it the first half of the game, with the second half being closer to dark souls 1’s first half. The old switch-a-roo.

Dark souls, don’t look at me like that. I…I need something more…I need to believe again. I’m sorry…

OH, 9 more days until Bloodborne!!!

Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *