🎥 Bézier camera
This code is over 6 months old. The code may have expired and might no longer function.
this gamemode is somewhat resource intensive, which can cause it to crash when using it with multiple players. It's been a while since I've tested though, there have been some major workshop performace improvements since. Either way, this is an old mode but I might still come back to it some day
(description copied from workshop.elohell.gg)
This gamemode allows the creation of smooth camera paths using cubic bézier curves.
A path consists of a set of primary (white) and secondary (green) control points. Primary control points determine points the curve will go through. Secondary control points determine the direction and velocity while going through their respective primary control point. It takes an equal amount of time to travel from each point to the next. (5 seconds with the default speed) As a rule of thumb, to make the camera move at a constant velocity between two points, the distance between primary and secondary control points should be 1/3 the distance between two primary points.
An approximation of the curve segment the player is currently working on is shown, this can be toggled of with Ability 1 + Jump (this part can create quite a lot of server load, but can be removed by deleting the workshop rules set ray cast position loop (x2) and setup curve segments. The sever load is only affected when a control point is selected)
There's 3 different camera modes that determine the facing direction of the camera, which can be cycled through using interact.
- The default camera mode always faces the direction of movement
- The second camera mode uses the player's facing direction
- The third camera mode is a combination of the first two. The vertical angle is determined by the player, while the horizontal angle is determined by both the player and movement direction.
It is possible to export paths and import them back later using the workshop inspector's Copy current variables as actions-button. This will export a list of actions that set the variables to their current state to the clipboard, which can be saved in a text file. To import the path again, paste the entire action list in the first workshop rule. The effects for that curve will be automatically generated when starting the gamemode. (you only really need the actions that affect Global Variable A, the rest is generated from scratch either way)
Only the host player can interact with the curve and control the camera. Other players can still see the curve and use the camera
With no control point selected/general controls:
- Ultimate: start camera mode
- Ability 1 (E) + Jump: toggle curve preview visibility
- Ability 1 (E) + crouch: toggle control point visibility
- Primary fire: create a new control point
- Primary fire (while looking at a control point): select a control point to move
- Interact (while looking at a primary control point): insert a new control point instead of adding it to the end of the curve
With a control point selected:
- Primary fire: place down the selected control point
- Secondary fire: cancel placing the selected control point
- Interact (with a primary control point selected): delete the selected control point
Camera mode controls:
- Primary fire: speed up
- Secondary fire: slow down
- Interact: change camera mode
- Facing direction: (second and third camera mode exclusively)
curve preview and control point visibility are automatically toggled off/on when entering/exiting camera mode