Cameras, Paths & Transitions
API status — PROPOSED, NOT IMPLEMENTED. SkCine is currently a design specification in this conversation; no built SkCine.jar or syntax registry was supplied. All SkCine-specific examples are intended API contracts, not verified runnable
.sk. Do not advertise these as tested until each example passes a real Skript reload and runtime test.
Camera workflow
- Create
cine cameradefinition from a location. - Add time-stamped keyframes, ideally including a look-at target or rotation.
- Attach camera to a scene and select easing.
- Play for selected audience; keep the returned instance handle.
- Let SkCine restore the camera on finish/skip/failure.
Camera flyby
set {_camera} to new cine camera at {_a}
add cine camera keyframe at {_a} to {_camera} at 0 seconds
add cine camera keyframe at {_b} to {_camera} at 2 seconds
add cine camera keyframe at {_c} to {_camera} at 5 seconds
set cine easing of {_camera} to "catmull-rom"
set cine camera of {_scene} to {_camera}
Look-at, orbit and tracking
set cine look target of {_camera} to {_boss}
set cine camera mode of {_camera} to "orbit"
set cine orbit radius of {_camera} to 6
set cine orbit angular speed of {_camera} to 25
Target values may be a location or live entity. Specify whether world mismatch cancels the track or freezes the last valid transform.
Proposed camera families
| Mode | Mechanism | Limits / notes |
|---|---|---|
static |
One anchor and orientation | Lowest complexity |
rail |
Position/rotation spline keyframes | Default cinematic camera |
orbit |
Move around target | Requires stable target and distance |
follow |
Interpolated anchor attached to target | Entity despawn policy needed |
track |
Position path + independent look-at | Avoid yaw discontinuity |
dolly |
Camera moves toward/away from target | May use rail backend |
top-down |
Static/follow transform | Backend limitations apply |
spectator |
Client spectator camera target | Alters gamemode; restoration mandatory |
packet |
Supported camera/entity packets | Optional PacketEvents and version gating |
Interpolation
- Position: linear, Catmull–Rom, Bézier, Hermite.
- Rotation: shortest-path quaternion interpolation where applicable.
- Easing: named easing catalog.
- Use
0–59ticks for Paper Display teleport duration; this is a display entity limit, not a universal camera path limit. Long motion must be segmented or evaluated through a longer scene timeline.
Camera shake
shake cine camera of {_playback} with intensity 0.35 for 12 ticks
Configure intensity caps and motion-reduced presets. Never mutate a spectator player's gamemode without recording its prior value.
API and quality contracts
- Keyframes are sorted; duplicate timestamps use a defined precedence or error.
- Positions are finite; world exists; cross-world paths are rejected unless an explicit safe transition feature is implemented.
- Curve overshoot can clip terrain; support optional constrained paths.
- Camera targets may despawn; detach/freeze/cancel according to a declared policy.
- On cancel, skip, death, logout, plugin disable: restore client camera target and owned player state.
See Player Safety and Syntax Reference.