Procedural animation prototype

Unity 3D -- C#

▚ Project summary:


In our group we had some issues where making custom animation would not be a option, besides that in the custom C++ engine we are going to use, animations were not prioritized to work. 

I came up with a possible solution, where procedural animations, are an excellent replacement of (our targeted style) robot leg animations. The video below, is a video I used as a reference, and also showed my team the video to explain what the finished animations would look like.

▌Specifications:

Released: January - 2021 
Project type: School prototype
Platform: PC, Windows
Time spent on project: 1 week
Engine and Tools: Unity- C#

▌My contributions:

○ Implemented basic leg retargeting
○ Implemented leg to target movement
○ Implemented mouse to object movement

▌Project goals:

○ Learn more about procedural movement in unity
○ be able to implement procedural movement in unity
○ Learn more about what it takes to implement fully working procedural movement


Implementation Phase

I first used an online model (Link), adjusted the legs to use spheres as connection elements, and rigged it. In the comments on the model, permission is given to use the model.


Imported in unity, I learned that on the last chained bone from the leg, the Fast IK fabric script is used. Here the amount of bones/chained elements is predefined, and a live bone visualization is shown, which is really nice.


The target is set as a separate GameObject. I decided to use a sphere. A couple things I learned while working inside the unity based procedural animations project.     

If the legs are already bent down, the legs tend to turn the wrong way when moving the body downwards.
        
When the legs are manually placed upwards, the inverse kinematics solver works really well! When moving the body downwards, the curvature that I tried to achieve is still there, instead of the weird flipping.

In some example projects, I saw that the legs were manually set to the same position as you can see on the left. Now I know why!

At this stage of the implementation phase, I was really pleased with the working inverse kinematics. However, I do realize that when we will try to get the same result in the custom engine, it will require a lot more work and research.

At this stage of the implementation phase, I was tested positive for Corona. I was not able to make the movement working as described in my research conclusion. But I do think it’s feasible.

My goal however was still reached, and that was, to know if this would be a feasible custom animation replacement in our target game. Using the research and the limited prototyping, I would say yes!