# Different gravity values in different places

How would you get multiple gravities to work in Unreal? Say for example, an O’Neill cylinder.

In popular culture, it can be seen in Babylon 5, or in the Cooper Station from the movie Interstellar:

If this were an fps, imagine aiming straight up, to hit someone who’s standing on the floor. Or if you run in a straight line, you’ll wrap around to where you started.

Not sure how you’re entirely thinking about this but you could just provide the illusion that its rotating by just rotating the stars. Gravity is supposed to be generated or it would be silly to employ the concept for gravity. If you have an outside moment then you just rotate it while outside. No actual gravity changes needed.

UE has a setting to lighten up the gravity if that’s desired. Control changes would then probably be needed I would think.

At least that’s how I see it.

If I were to make a cylinder, and start walking along the curved part, I’d eventually be horizontal and fall backward. The situation I’d like to give the illusion of, is that the cylinder is rotating, so all parts of the inner curve are simultaneously “down”, so walking along the curved part never causes you to fall. Does that make more sense?

Yeah, you want the level to literally be moving from what I can tell and all the consequences of that. You would either have to allow the player to float or be stuck to it like gravity is still there.

As far as keeping everything like the floor normally, one way would be for something that allows gravity to be controlled or “controlled” by the camera orientation. Obviously, if the player is actually sideways in a new project then the default would be fall to the floor, but if the floor is then the camera and the camera is orientated as normally like its the floor then it would act as the floor however the player is. Such as with the tank section where the camera can be orientated with the tank sideways on the hill but level with the tank but with necessary gravity changes needed.

Warmer or colder? lol

Would think the “floors” would need to be slick though but as soon as the player moves it sticks a certain amount. Because moving the player while still allowing the level to move is the real trick there. Bit of a problem.

I’m not sure that’s quite right either. If it’s based on the camera angle/position, then if I throw a box straight up, it’ll come back down to me. But what would ideally happen, is the item thrown up would get caught in the new local gravity, and continue going up until it hit the ceiling/floor.

If that wasn’t a concern, it’d probably be easy (map movement controls to rotating the level, instead of moving the character).

Maybe the easiest way would be to disable gravity entirely, and have a small invisible actor in the middle of the cylinder which applies a force/impulse to everything on Tick, pushing everything away from the center, toward the walls. Does that sound crazy?

Thinking about it I would make the cylinder not rotate, set a series of overlapping smaller cylinders triggers which set weight based on const float mass and a modified gravity, starting at full (sum of all cylinders gravity adds) in the outer-most “layer”(100% gravity = default), another which SUBTRACTS consecutively (example CurrentGravity -= Gravity) for each ring you can test it with two cylinders a 0 grav() then a full grav then titrate from there.