2
\$\begingroup\$

If I am working with objects that are small in real life, but in the Unity world they are scaled larger, should I increase the Gravity with the scale of the objects?

For example, if an object of size one would actually be 10 cm across, would gravity scaled to be 10x make the object behave more like a small object would in real life.

I know objects fall at the same rate, but the rate is the same so small objects fall more in proportion to their size don't they?

\$\endgroup\$
  • \$\begingroup\$ Not a full answer, but this is directly related to answers.unity.com/questions/45892/unity-unit-scale.html. \$\endgroup\$ – Alex F Jul 3 at 5:24
  • 1
    \$\begingroup\$ In a frictionless environment (Vakuum) all objects accelerate at the same rate (9.81 m/s² on earth), completely independent of their size, shape, and mass. When an athmosphere is in play (i.e. pretty much always) the world is much more complicated and I don't know enough about unity physics to give a full answer. \$\endgroup\$ – LukeG Jul 3 at 6:23
  • \$\begingroup\$ Unless you're dropping a lot of feathers or parachutes, then this really shouldn't be an issue. A 1cm cube will fall at basically the same rate as a 1km cube until it gets close to terminal velocity. If you want to accurately model air resistance, things can get very complicated, very fast. Typically, in a game (as opposed to a real physics-based simulation), you'd just increase drag for certain models rather than messing with gravity. \$\endgroup\$ – 3Dave Jul 3 at 21:18
4
\$\begingroup\$

The Unity default gravity of 9.81 units / second² assumes that one unit is one meter and the game takes place on Earth.

If these assumptions are not true, you would theoretically have to adjust it accordingly. If one unit in your game is actually just 10cm, then you would have to increase gravity to 98.1 in order to be physically correct.

But the question is: Do you actually want the gravity in your game to be physically correct? Human intuition often has a wrong idea of how gravity acts on objects which are very large or very small. People intuitively expect that a humanoid character grown to the size of a skyscraper or shrunk to the size of an ant would move and fall just like a regular sized person in regular gravity, even though that would not be the case.

So keeping the gravity at the default value might actually feel more correct to your players even though it is not. And besides, even games which are actually meant to have a realistic scale and realistic physics sometimes adjust the gravity. Because even though 9.81 m/s² is correct in theory, it might still feel wrong in the context of a particular game. Sometimes gravity is changed globally, sometimes just for specific objects (the jumping mechanics of player-characters in particular rarely obey the laws of physics). The only way to find the perfect gravity value for your game is rigorous playtesting.

I am looking forward to playing your game.

\$\endgroup\$
  • \$\begingroup\$ I think this is good advice. After doing a bit of testing, it looks like playing with the gravity until it 'feels right' seems to be the best way to do it. Ramping up the gravity did not have the expected outcome, so I guess there are a more factors at play including friction and object bounce. Off to the experiment bench for me! \$\endgroup\$ – Dunderklumpen Jul 3 at 22:57
0
\$\begingroup\$

I dont't think there is an objectively correct answer to your question, in the sense that it is up to how you feel it should feel. It is ok and not uncommon to tweak the gravity scale as well as any other physics parameter of your game engine in order to provide a more satisfactory game experience.

To make a small example, say that your small object is a rock and you want to throw it. Perhaps with gravity scale set to 1 the throw will not look so cool or fast, but if you increase the gravity scale it will have a faster fall, simulating an heavier object. On the other hand, if the object that is falling is a feather, you should reduce the gravity scale to have a slower fall. It's an iterative process: try different values until you find the one that fits the effect you were looking for.

\$\endgroup\$
  • \$\begingroup\$ If I would want to simulate a feather, then I would first try to increase the linear drag of the feather's rigidbody instead of changing the gravity for it, because that models the real-life physics far more accurately. \$\endgroup\$ – Philipp Jul 3 at 8:58
  • \$\begingroup\$ I think it depends on the level of detail of the game in consideration. If we are talking of a real world simulation then ok, but if the project is "simpler" you can just play with the gravity scale. \$\endgroup\$ – FSic Jul 3 at 9:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.