In honour of the anniversary of #HogwartsLegacy, here’s a quick developer blooper reel from the team at Avalanche Software during the development of the game...
Proceedurally.
So, “hands are supposed to be here” and the arms figure out the rest.
By the time add in “finger pointing at this” combined with spells to make your thumb big (or whatever, ultimately everything is made at a base level to allow for a lot of creativity further up the stack) means the finger might drive the scaling of the arm.
Same with the strange jumping. Body “jumped” in a downwards direction, and the feet animated correctly in an upwards direction. Ends up with a body doing a strange wrap around itself as it figures out how the feet can be above the torso.
Walking books might be a really easy way to animate a book flying around, have physics and a health pool without having to create a whole new object/entity class (just inherit all the features and disable the standard person/object body).
The faces-talking-out-the-head thing is animation data imported with the wrong scaling. Some parts can just move to where the animation says they are, others warp the geometry of the rest of the model.
Remember that a lot of the models and animation will be made with no idea how they end up being used, at the same time as they are actually programmed into the game. There might be some iteration, but its not like they know the end result, make the models, make the animations, make the game. All this happens at the same time, and any iteration might set multiple departments back days or weeks.
So, super flexible APIs, models and animations are designed at the start in a way that allows for a small amount of specialisation and iteration, but the rest is all “bodge what you have available”. Ultimately if it isnt flexible enough early in development then its going to cost a lot to fix
Every time I think about this sort of thing I remember that in Fallout 3 the developers added a moving train to the game by making the train a hat that was worn by a man that ran really fast underneath the ground to make the train move.
Proceedurally.
So, “hands are supposed to be here” and the arms figure out the rest.
By the time add in “finger pointing at this” combined with spells to make your thumb big (or whatever, ultimately everything is made at a base level to allow for a lot of creativity further up the stack) means the finger might drive the scaling of the arm.
Same with the strange jumping. Body “jumped” in a downwards direction, and the feet animated correctly in an upwards direction. Ends up with a body doing a strange wrap around itself as it figures out how the feet can be above the torso.
Walking books might be a really easy way to animate a book flying around, have physics and a health pool without having to create a whole new object/entity class (just inherit all the features and disable the standard person/object body).
The faces-talking-out-the-head thing is animation data imported with the wrong scaling. Some parts can just move to where the animation says they are, others warp the geometry of the rest of the model.
Remember that a lot of the models and animation will be made with no idea how they end up being used, at the same time as they are actually programmed into the game. There might be some iteration, but its not like they know the end result, make the models, make the animations, make the game. All this happens at the same time, and any iteration might set multiple departments back days or weeks.
So, super flexible APIs, models and animations are designed at the start in a way that allows for a small amount of specialisation and iteration, but the rest is all “bodge what you have available”. Ultimately if it isnt flexible enough early in development then its going to cost a lot to fix
Every time I think about this sort of thing I remember that in Fallout 3 the developers added a moving train to the game by making the train a hat that was worn by a man that ran really fast underneath the ground to make the train move.
They did the same thing in Half Life because the game engine couldn’t support moving vehicles that were not physics objects.