As of the writing of this page, the game has not yet been finished
Third person horror shooter
15 weeks half time
We decided very early that we wanted to have a game where the enemies had weak points. Well, we needed bone socketing. Also, we wanted additive animations because they look so good. There's a lot of magic that can be done with additive animations. So I got to work.
We had a form of bone socketing for the last game we made, but somehow it was completely broken except for the one place that we needed it. Miracles can happen, but miracles aren't enough. The bone socketing we have now supports any bone, has rotation and offset, and collider offset for having an off-center collider for a model.
Additive animations are controlled via a list of additive data, and converted to a list of arguments and sent to the animator.
Socketing is when we take the calculated result of a bone in an animation and use it in another place. Sockets are created in the model viewer and can later be accessed in code with the identifier specified. I always aim to make my code as clear and user-friendly as possible, even I'm the only one who ends up using it.
Not sure if this is the real term, but I've called it bone kinematics. It's just manually adding in a transformation for a bone. This can be used later to calculate inverse kinematics, but currently it's just used to control, for example, the player's head and body. It could easily be added to control the heads of enemies.
Player head and torso movement done by me with bone kinematics
Other graphics things
For this project, I also added UV set support, materials, detail normals, shadowmapping, and cinematics. I also optimized our animations to be more than twice as quick, by using hashed strings.