
설명
GravityCore is a runtime C++ plugin (with full Blueprint support) for Unreal Engine 5 that adds shape-based custom gravity — planets, ring worlds, and directional cuboid zones — that actually works in multiplayer. Define a gravity volume (Sphere, Cylinder, or Box), give it a direction, and any character inside is pulled correctly, stands on the surface, and walks, jumps and falls in that gravity. It drives the engine's built-in variable gravity, so it works with the Character Movement Component instead of fighting it.
The hard part — multiplayer — is built in. Gravity is computed deterministically from position on every machine, so other players' characters stay surface-aligned and smooth: no proxy jitter, no tilt, no walk/fall animation flicker.
Drop a GravitySourceActor into your level, pick a shape, and base your character on the included BP_GravityCharacter (or reparent to AGravityCharacter). Add your own walkable mesh and play.
Includes a ready-to-use gravity character with an independent, gravity-aligned orbit camera (full 360° look) and orient-to-movement — walk a planet, the inside of a ring, or flip gravity inside a box.
Playable Demo
Documentation
──────────────────────────────
CORE FEATURES
──────────────────────────────
▸ Shape-Driven Gravity Volumes — one component, a Shape dropdown: Sphere, Cylinder, or Box. Each is a self-contained SceneComponent with its own transform, so you can place, rotate, attach, or stack as many as you like.
▸ Planet Gravity — Sphere pulls toward the center. Walk all the way around a planet, moon, or asteroid.
▸ Ring-World Gravity — Cylinder pushes radially outward from its axis (centrifugal). Walk the inside of a ring or O'Neill cylinder; the axis follows the component's local Z, so orient it any way.
▸ Cuboid / Directional Gravity — Box gives uniform gravity straight down its local −Z, for rooms, corridors, or flip-gravity puzzle zones.
▸ Invert Toggle — flip any shape: Sphere repels, Cylinder pulls to the axis, Box pushes up.
▸ Priority Override Zones — nest a small high-priority volume inside a large one; where they overlap, the highest Priority wins. Stack layers and mix shapes — e.g. a flip-gravity Box room inside a Sphere planet field.
▸ Multiplayer Replicated — gravity is a deterministic function of position, computed locally on every machine, so simulated proxies align to the surface and move smoothly. No overlap-event drift, no proxy jitter, no false "falling." Floor detection stays correct on proxies, so the animation graph never flickers between walk and fall.
▸ Built On Engine Variable Gravity — sets the Character Movement Component's gravity direction, so floor detection, stepping, jumping and falling all work in any gravity direction, with full network prediction.
▸ Gravity-Aligned Character & Camera — the included AGravityCharacter has an independent, gravity-aligned orbit camera (full 360° yaw, decoupled from the character's facing) and orient-to-movement that turns the character to face its movement on any surface.
▸ Subsystem-Driven Selection — a world subsystem picks the right source per location by point-in-volume + priority. No collision or overlap setup, no triggers to wire.
▸ Editor & Runtime Debug — per-shape boundary gizmo, red gravity-direction arrows, and an optional translucent volume mesh with adjustable color — each independently toggleable. Debug draws compile out of Shipping.
▸ Logical Volumes (No Collision) — the gravity source is the field only, kept independent from geometry, so you use your own walkable meshes (samples included).
▸ Full Blueprint Support — shape, size, invert, priority, and the gravity query are all exposed to Blueprint and C++.
──────────────────────────────
TECHNICAL HIGHLIGHTS
──────────────────────────────
▸ Full Blueprint support — all source parameters Blueprint read/write; GetGravityDirectionAtLocation(), ContainsPoint(), and the subsystem's ComputeGravityDirection() callable at runtime
▸ Custom UCharacterMovementComponent that drives the engine's variable gravity — walking / jumping / falling / floor detection in any gravity direction, with network prediction
▸ Deterministic, position-based gravity computed on every machine — correct simulated proxies without replicating rotation or using overlap events
▸ Point-in-volume + priority selection (sphere / cylinder / box), per tick — replication-safe by construction
▸ Smooth gravity transitions, translation-only network smoothing, and a movement-mode mirror on proxies to prevent walk/fall flicker
▸ Independent gravity-aligned orbit camera (absolute-rotation spring arm) with full 360° look
▸ SceneComponent sources — own transform, attachable, stackable; cylinder/box axis = component local Z
▸ No third-party dependencies
──────────────────────────────
INCLUDED
──────────────────────────────
▸ Full C++ source
▸ GravitySourceActor / BP_GravitySource — drop-in gravity volume (pick the shape)
▸ BP_GravityCharacter — ready-to-play character with gravity movement and a gravity-aligned camera
▸ Mannequin character + Anim Blueprint for the demo character
▸ Enhanced Input mapping context + Move / Look / Jump actions
▸ Walkable ring/cylinder mesh (SM_Ring) for the ring-world demo
▸ Demo level with a planet, a ring world, and a flip-gravity box, pre-configured
──────────────────────────────
PERFECT FOR
──────────────────────────────
Space games, planetary exploration, ring-world / megastructure settings, sci-fi platformers, gravity-flip puzzle games, and any multiplayer or single-player project needing custom gravity directions — without writing gravity-aligned movement, surface rotation, floor detection, or the multiplayer replication math from scratch.
──────────────────────────────
NOTES
──────────────────────────────
▸ The gravity source is a logical volume with no collision — provide your own walkable meshes (samples included).
▸ The example character uses Enhanced Input (bundled with UE5).
▸ Built on the engine's built-in variable gravity / per-character gravity direction.
▸ Supports Unreal Engine 5.4.











