Skip to content

Camera Configuration

Kinsi edited this page Nov 6, 2022 · 40 revisions

Camera configs (Camera2/Cameras/*.json)

To add more Cameras you can either use the Ingame settings UI, or copy the generated main camera config with a different name and edit it as you like (If you go the manual route make sure to not have multiple cameras on the same layer). Keep in mind that most settings which are not relevant to the given camera type are not actually saved to the config.

Recommendation

I strongly recommend you to set Anti Aliasing to 2 or 4, and the render scale to something like 1.3-1.4 if your hardware is capable of handling it, this strongly increases the visual quality.

Moving around Positionable cameras

To move around / position positionable cameras you hover over the Cylinder of the camera and hold the trigger, you can then position it as you like and release to confirm. This is also possible while being in FPFC if you would like to do that.

viewRect

Represents the position of the camera view on your screen, x/y 0/0 is the bottom left corner of the window. For example, setting x/y to 0.5 and width/height to 0.5 respectively will have the cameras screen be 1/4th of the screen size and offset to the top right corner. locked can be used to prevent the screen position / size from being changed in the game window.

targetPos / targetRot

When this is a positionable camera it represents the position of the camera in the world, when its a first person camera its the offset to the HMD position

FOV / antiAliasing / renderScale

I wonder what these ones could do...

layer

The Z-Layer of the camera display, the higher the number the further on top it is above overlapping camera views

type

Can be FirstPerson or Positionable (Third person)

worldCamVisibility

Defines the visibility of the positionable camera, can be Visible, HiddenWhilePlaying or Hidden

farZ

Render distance limit of the camera. Defaults to 5000 which is essentially unlimited

previewScreenSize

Defines the base size of the ingame preview of what this camera sees (For positionable cameras), can be 0.3 to 3

worldCamUnderScreen

Defaults to true - When false, the (Positionable) camera will be in the middle of its screen ingame instead of below it

visibleObjects

Walls
Can be Visible, Transparent or Hidden

Notes
Can be Visible, Hidden or ForceCustomNotes - The latter makes it so the Camera will show your used custom notes, even when you configure Custom Notes to only show them in VR

Avatars
Can be Visible, Hidden or ForceVisibleInFP - The latter makes it so the Camera will show your avatar even when it normally wouldnt because its a FirstPerson camera

orthographic

Makes the camera use an orthographic projection instead of perspective. The FOV is still used to configure the "FOV" (orthographic size).

Rest should be self-explanatory.


FPSLimiter

Unfortunately due to how Unity works it is not really possible to smoothly render the desktop cameras at a different framerate to what you use in VR. I strongly advise you to leave your "Main" view which one primarily looks at at an unlimited Framerate (By setting the limit to 0 or less). Where smoothness is not necessarily important (For something like a side cam) you could still use a limit but in most cases probably dont necessarily need to depending on your Hardware and render quality. Setting your camera to an "Unlimited" framerate will render it at the same framerate that your headset runs at, or if none is connected, at the refresh rate of your screen.

fpsLimit
Maximum Frames to render per second

Smoothfollow (Non-Positionable only)

position / rotation
Defines how much smoothing there should be, the lower the number the more smoothing there is

limits
Allows you to limit the range of motion / rotation that this camera has. Every value is formatted as Minimum:Maximum. The default / unlimited is -Infinity:Infinity

followReplayPosition
If enabled, while watching a replay the first person camera will be attached to the replay position instead of whatever else it would be (HMD / FPFC)

pivotingOffset
Applies the offset in a pivoting fashion (Default) instead of an absolute one (Camera Plus default)

ModmapExtensions

moveWithMap
If a Noodle extension map moves / rotates you this camera will follow that movement

autoOpaqueWalls
Changes your Wall visibility to Visible if you're playing a Noodle or Mapping Extensions map

autoHideHUD
Changes your HUD visibility to false (Hidden) if you're playing a Noodle or Mapping Extensions map

Follow360

Makes the camera follow the rotation on 360 maps

MovementScript (Positionable only)

Example usage for Movement Scripts

scriptList
You can pass a list of movement script names(Without the .json!) here of which a random one will be picked on every map load

fromOrigin
When true the targetPos and targetRot get overwritten when a movement script is in action

enableInMenu
Enables movement scripts outside of songs

VMCProtocol (Positionable only)

Used by Virtual Motion Capture to receive the position and FOV of your main camera so that its composition aligns with the game.

mode
Used to configure the VMCProtocol mode for this camera, currently implemented are Disabld and Sender

destination The target IP:port of your VMC instance, you probably dont need to touch this if its running on the same PC.