I made this little prototype because I like to work with IK animation, and I wanted to see if I could make some fun gameplay using only IK, this system works by having the character in a semi ragdoll state, and uses collision volumes in order to physically push itself creating movement. So to clarify there is no animation in this prototype, I only defined the IKs constraints and told it to try to follow 2 points which the player can control individually with the analog sticks of a controller.
And this is what the result looks like, a quirky and funny but also unconventional movement mechanic that really challenges the player trying to use it. Once I got the basic setup up, I kept constraining the angles that the legs can move in more and more until I ended up with a pattern where the player could just rotate the analog sticks in a circular movement and the character would perform the walking motion you see above. I also decreased the speed at which the legs can move, limiting the character to at most performing a slight jog.
Here I go into how this wonky gameplay was set up in Unreal, first I go into the blueprints that manage the location of the targets for the IK to aim for, and then I go into the actual mesh and its collision.
Each tick, I check the analog sticks movement and use this slight calculation to limit the area at which it is allowed to be at. I take the Horizontal value just as it is, but the Vertical value I multiply based on the horizontal value, just to enable those high kicks when the analog stick is pointed to the top left/right. This helps when the character is trying to step up on higher ledges, like stairs.
This happens after the analog stick is moved, it lerps the joint target components location based on the analog sticks input. And I’ve set it up so that the interpolation happens faster for the vertical movement than the horizontal movement, so that the character has an easier time making quick up and downward movements, ie jumps and squats. All the little numerical multiplications and additions are just there to slightly tweak the resulting values for the optimal experience.
I made this simple character in Maya with a joint skeleton, implemented it into Unreal and set up the physicsAsset for it so that it would ragdoll properly and so that the joints couldn’t go out of bounds. The mesh uses its ragdoll physics colliders in order to push itself through the world as you can see on the image above. Even though the character is very simple I designed him with a thought in mind: It had to look like he would only move in the X and Y axis, so no ball joints, only hinge joints.
This is just a short pitch video I made for a course at Future Games, since the courses goal overlapped with this project content. It’s nothing extraordinary since I mostly made it for comedic purposes, but it does show the game mechanics pretty well. It also shows a bit of the less polished mechanics of the game such as the other player character which is a Torso that isn’t efficient at walking but instead is very good at climbing.
I really like working with odd movement mechanics like this, where the players input is more directly transferred into actions in the world, and this is most certainly unconventional. Unfortunately, it is actually pretty hard to control the characters movement, yet it is still very rewarding once you starts to get the hang of it. But in the end I decided not to take this idea further, because the movement was just a little bit too difficult and I didn’t want to create more art on my own. But I really loved working this directly with animation through IK, it’s always a blast to make things move especially when it looks as quirky as this does.