Back to Main Page


This is a short article about the importance of accuracy when you are dealing with a physics engine that uses real-world values for size and mass.

 

Modding Tips Collection - Why Size Matters


There are two factors that play a major role in a physics based game, size and mass. Why are they important? Because they define the interaction between entities in a way that is consistent with the world properties.

Imagine you are wandering around the world when you come across a box 2m x 2m x 2m, it looks rusty, so you presume it is metal... it's going to be heavy right? Except the person who made it gave it the mass of a steel box that is only 2cm x 2cm, so it isn't heavy at all. Or take it to the other extreme, you're driving towards a signpost in your car, you know you're going to collide but it's only thin, it's not a problem right? Except this time the person who made it has given it the mass of an aircraft carrier and your car is destroyed, split in two, because that much mass in that thin post, is like a knife through butter.

So the first thing you define in a physics engine, is the relationship between mass, density and size. 1m x 1m x 1m of steel has a certain mass, the same size cube of wood has a different mass. These don't necessarily need to be real-world correct but they do need to be real world consistent on a relativiy scale. If your game has wood that has a higher mass than steel, then that axe is going to have a problem with that tree. And that rapidly approaching Goblin wielding a shitty-stick, is going to make your +2 of Goblin Smiting longsword, seem like a butter knife.

With vehicles, this is even more important, because you have a motion related physics engine to consider as well. Mass affects acceleration, braking, skidding etc... size affects wheels, contact-patch sizes, that kind of thing. Where these become critical, is in a game that has the physics properties closely tied to real life... like GTAV. Real-life sizes are used because we know how real life reacts on a physical level when things interact, so we have ready built reference right in front of us... it just makes sense.

So if you take a car in GTAV... something like the BF Injection and you compare the properties with the car it is probably based on, the earlier VW Beetle, you will see that barring some outlandish modifications, the dimensions are pretty accurate. That tells you that the vehicle physics are very much tied to real-world values, which is essential because that means that things like gravity work as they should. With that being the case, it becomes absolutely critical that any vehicles that are added to that world, maintain the same level of mass to dimension accuracy. If not, things start to go wrong and you end up hacking property settings to try and repair the errors. But why repair errors, when you can simply create a correct model in the first place?

Here's a comparison image between the BF Injection and a 1971 VW Beetle... it also shows the scale grid in ZModeler3 (Image opens in a new Tab)

If you take a model from another game, then there's a fairly good chance that the size might be pretty close. If you take a model from a 3D model site, there is no guarantee at all. Every 3D modelling package has its own idea of how real-world units relate to system units in the application. However, ZModeler3, which is used for rigging these models has a clearly defined 1m x 1m grid, with division lines every 10cm. The model sizes shown in ZModeler3 are accurate to the sizes of models in GTA V. Once the model is in ZModeler3, again, the reasons for the model being the wrong size are zero.

For anyone who read this page a day or so back, you will notice it has changed. With all credit to the author of the Ferrari 612 I had mentioned here previously, he has fixed the problem... as such I feel it would be disrespectful to continue to use that model as an example, so I have removed the content that mentioned it. So my thanks to him, because it means I can now add it to my game. I'm not a Ferrari fan on the whole but that Scaglietti is nice, real nice.

One of the main reasons I wrote the info-display mod that you can see in these screens, is to weed out those mods that just aren't good enough to go in my game. It's no good having 30k polygons of animated engine (for any reason) and 2K stitching textures on the seats, if the whole car is the wrong size. First and foremost, GTA V is a game involving driving, so doesn't it make sense that the driving aspects should work properly?

All you have to do to ensure your model is built on a foundation of accuracy, is to create a box in ZModeler3 that matches the real dimensions, then simply scale the model to fit inside that box. That's a 30 second task to ensure that your model works in the game in a way that is consistent with how the game expects vehicles to work.

You get an accurate vehicle, the game gets an accurate vehicle and if what you are doing gives you any sense of pride, then you'll know you took an extra 30 seconds to gain a 100% improvement. Going the distance is one thing, going the extra mile is something else. And if you expect donations for what you do, the very least you need to do, is provide something that is correct.