Focused reference · Unreal Engine 5.8

System selector and use cases

unreal-splines/references/use-cases.md

Choose by output

Desired outputUseAvoid
Invisible path, rail, route, or transform fieldSpline ComponentSpline Mesh unless geometry must bend
Bent road strip, pipe, cable, hose, curb, or continuous fence railSpline Component + one Spline Mesh Component per segmentOne Spline Mesh for the whole path
Rigid posts, lamps, trees, signs, or modular propsSpline Component + ISM/HISM or spawned actorsDeforming the props with Spline Mesh
Road/path that raises, lowers, or paints LandscapeLandscape Splines on a dedicated Spline Edit LayerBlueprint spline as a terrain-deformation substitute
Procedural content on a linePCG Draw Spline / spline dataConstruction Script spawning thousands of actors
Procedural content inside a closed shapePCG Draw Spline SurfaceTreating an open path as an area
Camera motionSpline Component for position; optional second spline/target for aimDeriving look rotation from tangent when the camera must frame a subject
AI patrolSpline Component as route data plus explicit direction/dwell stateUsing spline motion as navigation around dynamic obstacles

Use-case decisions

Roads and paths

  • Use Landscape Splines when terrain conformity and terrain painting are primary.
  • Use Spline Mesh Components when road geometry is authored as deformable modular segments independent of Landscape.
  • Keep road width, shoulder width, falloff, material, mesh, collision, and segment length exposed as data.
  • For PCG-authored roads in UE 5.8, treat PCG Editor Mode as experimental. The 5.8 Apply Spline to Component node can write PCG spline data to an existing component.

Cables, pipes, and hoses

  • Use short-enough source meshes that bend without obvious shearing.
  • Ensure source mesh length axis matches the Spline Mesh Forward Axis.
  • Use tangent magnitude to control curvature; do not use point position alone.
  • Disable collision unless gameplay needs it. Test dynamic collision cost separately.

Fences

  • Deform only continuous rails or walls.
  • Place posts as rigid instances by distance.
  • Compute the final interval from spline length so the last gap is not visibly short: count = max(1, round(length / targetSpacing)), then actualSpacing = length / count.

Camera rails

  • Store travel as distance, not normalized time, if speed is specified in cm/s.
  • Use a Timeline/curve to remap time to distance for authored acceleration.
  • Use spline tangent for forward-facing travel; use Find Look At Rotation toward a target for subject framing.
  • Apply camera easing separately from spline geometry.

Patrol paths

  • Track Distance, Direction (+1 or -1), SpeedCmPerSec, and dwell state.
  • Closed loop: wrap distance by spline length.
  • Ping-pong: clamp at ends, reverse direction, then apply dwell.
  • Use NavMesh pathing between sampled spline goals if agents must avoid obstacles.

Placement along a spline

  • Uniform physical spacing: sample by distance.
  • One object per control point: sample by point index.
  • Orientation: use transform/rotation at distance; optionally preserve world up for props that must remain vertical.
  • Random variation: seed it; separate along-path distance jitter from lateral offset.

Construction versus runtime

NeedLocation
Designer drags points and sees generated geometry immediatelyConstruction Script
Path is fixed after level loadConstruction Script or baked editor tool
Path changes during playRuntime function called only when data changes
Object travels along fixed pathTick, Timeline, or movement task; do not rebuild spline
Thousands of procedural placementsPCG or instancing; avoid individual actor construction