Mixamo Mesh Bone Weights
This is a retrospective post on the work done on Salvager from the 12th to 19th of October. This was the final week of the Project so in addition to development tasks that still remained, I also had to work on preparing for the post Mortem presentation and having archival content for related submissions. The focus this week was just to have a stable build that showcases as much of the finished work as possible. Once a stable build was finished, it could be updated with pending features if I had time to work on them afterwards. Much of the work this week was cleaning up the build, fixing critical bugs that made the game unresponsive or unplayable and replacing a lot of the assets that were being used with final versions.
In replacing some of the Model assets I'd been using for the Player and the Enemies and adding in new Animations sourced from Mixamo, I ran into a new problem. Some of the animations had vertices that were being influenced by more than 4 bones which was the limit my animation system was built around. This led to incorrect animations with vertices not being displaced properly and bone weights not being normalized and had to be resolved quickly before the presentation
To fix this, I decided to iterate over all the bones influencing a vertex during mesh loading and use the 4 bones with the highest weight. This was followed by a renormalization step where the weights were calculated after ignoring the other bones to give a result that was more in line with the expected result. As someone new to the finer details in implementing Skeletal Animation, this took longer than it should have to debug as I initially suspected space transformations from the FBX file to be the culprit before coming across the bone weight discrepancy and figuring out the problem. While there were still some issues remaining with the animations like unwanted root transformations, I didn't have time to fix them or redo the animations so I decided to invest my time in the most visible issue and have the animations play correctly even if the object seemed to move around a little during playback.
Salvager
Sci-Fi Action RPG
Status | Prototype |
Author | threewastaken |
Genre | Action |
More posts
- Particle Systems and Burn outOct 22, 2023
- Shadow Maps, Particles and AnimationsOct 22, 2023
- Splash Screens: aka Don't mix your Drawing APIsOct 21, 2023
- Scaling to every Circumstance: UI LayoutsSep 09, 2023
- Separating the Game from the EngineSep 02, 2023
- Catching Up: Refactors and UI ScreensAug 12, 2023
- Slow and Steady Systems BuildsJul 18, 2023
- Setup for SuccessJul 08, 2023