Skip to content

VRLabs/Camera-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Camera System

Generic badge Generic badge Generic badge Generic badge Generic badge

Generic badge Generic badge

An OSC camera system that moves a camera along a set path

Preview


How it works

  • An osc program is ran, receiving data from VRChat.
  • When points are set in the world, and settings are placed, this data is captured through constraints, contacts and physbones, and sent out to the program.
  • When play is pressed, this program sends the path back to the avatar, and the camera follows this path.
    • Note: Due to this program being compiled for x86_64 Windows only, it is not compatible with ARM processors, Mac, and Linux.

Install guide

Camera.System.Setup.mp4
  • Merge the Animator Controller Camera System FX to your own FX Controller, using the Avatars 3.0 Manager tool.
  • Merge the Expression Parameter List Camera System Parameters to your own Expression Parameter List, using the Avatars 3.0 Manager tool.
  • Place the Camera System Menu somewhere in your avatar's Expression Menu.
  • Drag & drop the Camera System prefab into the base of your Hierarchy.
  • Right click and unpack the prefab, then drag & drop it onto your avatar.
  • Place the Target object under the transform you'll be using to place the points (E.G. your right hand).
  • Position the Target object until it is set correctly according to the DELETE ME AFTER PLACEMENT object, then delete said object.
  • Note: Due to the use of OSCQuery, this script can not be tested in the Editor.

Alternative Camera Systems

  • To use alternative systems like VRCLens, parent constrain their cameras to the Camera object, and remove the Camera Component the system comes with by default.

How to use

  • First, unpack CameraSystemScript.zip and place it somewhere THAT IS NOT IN YOUR UNITY PROJECT.
  • Then, launch the CameraSystem.exe from within this folder by double clicking it. You should now see a Camera symbol in your system tray. This is also how you can close the program through right clicking the Camera symbol.
  • Now, in VRChat, when you load into the avatar, you should see the Connected bool set to true.
    • If the system isn't connecting, you can try resetting your osc config for this avatar and double checking OSC is enabled in your Radial Menu.
  • Then you can start placing points. You can do this by selecting which point to place using the Point Select Menu and placingit using Set Selected Point, or by going into the settings and enabling Gestures.
    • The Gestures to place points are as follows:
      • FingerPoint: Place
      • ThumbsUp: Next Point
      • RockNRoll: Previous Point
    • The Visualize setting shows you the points you've placed thus far. They won't be visible in the camera if you're in VR, but they might be visible in desktop when playing, so disable this before playing the track in desktop.
    • The Preview settings shows the Desktop what the camera will see.
      • This setting is disabled in Desktop mode, since it can softlock the user and not show Menus.
  • Once you're done placing points, you can set the play duration and some other values in the settings.
    • The Time Length is total time by default, but with the Time Per Point option, you can change how the spline is sampled and make each point take a certain amount of time instead. Note that this makes the playback speed up and slow down based on point distance.
    • Use B Spline uses a different spline which doesn't go directly through all points, but is smoother.
    • Wait time at end decides how long the system waits at the end of the path.
    • Loop decides whether the loop will restart after it's done.
      • This setting is disabled in Desktop mode, since it can softlock the user and not show Menus.
    • Circle Mode changes the system to follow a circle instead, where the first point is the center, and the second point decides the radius and look direction.
    • Closed Loop changes the system to follow a closed loop instead, so it seamlessly loops back to the first point.
  • After you're happy with the settings you can press Play Track, which starts the script sending the path and overriding the desktop view.
    • To cancel the playing track, you can press Play Track again.
  • Right now, the range is limited to 500m from the origin, but this can be changed in by:
    • Changing the default location of the Contact Sender to the new max radius,
    • Changing the default location of the Contact Receivers to the new max radius (except for their controlled axis),
    • Changing the weights in the Contact Receiver's Position Constraint to 1 - (3 / new Max Diameter), (3 / new Max Diameter),
    • And changing the animations in the Resources/Animations/Output folder to the new max radius.

Performance stats

Cameras:                1
Constraints:            41
Constraint Depth:       35
Contact Senders:        1
Contact Receivers:      3
FX Animator Layers:     4
Mesh Renderers:         2 (after deleting preview)
Phys Bones:             6
Phys Bone Colliders:    3

Hierarchy layout

Camera System
|-Camera
|-Target
|  |-DELETE ME AFTER PLACEMENT
|-Measure
|  |-Position
|  |  |-Sender
|  |  |-Receiver X
|  |  |-Receiver Y
|  |  |-Receiver Z
|  |-Rotation
|  |  |-Measure Bones
|  |  |  |-Measure X Angle
|  |  |  |-Measure X PosNeg
|  |  |  |-Measure Y Angle
|  |  |  |-Measure Y PosNeg
|  |  |  |-Measure Z Angle
|  |  |  |-Measure Z PosNeg
|  |  |-Measure Planes
|  |  |  |-X Angle Plane
|  |  |  |-Y Angle Plane
|  |  |  |-Z Angle Plane
|-Set
|  |-Result
|  |  |-Cube
|-Visualisation
|  |-Visualizer
|  |  |-Armature
|  |  |  |-Root
|  |  |  |  |-Visualizer 1
|  |  |  |  |  |-Visualizer 1_end
|  |  |  |  |-Visualizer 2
|  |  |  |  |  |-Visualizer 2_end
|  |  |  |  |-Visualizer 3
|  |  |  |  |  |-Visualizer 3_end
|  |  |  |  |-Visualizer 4
|  |  |  |  |  |-Visualizer 4_end
|  |  |  |  |-Visualizer 5
|  |  |  |  |  |-Visualizer 5_end
|  |  |  |  |-Visualizer 6
|  |  |  |  |  |-Visualizer 6_end
|  |  |  |  |-Visualizer 7
|  |  |  |  |  |-Visualizer 7_end
|  |  |  |  |-Visualizer 8
|  |  |  |  |  |-Visualizer 8_end
|  |  |  |  |-Visualizer 9
|  |  |  |  |  |-Visualizer 9_end
|  |  |  |  |-Visualizer 10
|  |  |  |  |  |-Visualizer 10_end
|  |  |  |  |-Visualizer 11
|  |  |  |  |  |-Visualizer 11_end
|  |  |  |  |-Visualizer 12
|  |  |  |  |  |-Visualizer 12_end
|  |  |  |  |-Visualizer 13
|  |  |  |  |  |-Visualizer 13_end
|  |  |  |  |-Visualizer 14
|  |  |  |  |  |-Visualizer 14_end
|  |  |  |  |-Visualizer 15
|  |  |  |  |  |-Visualizer 15_end
|  |  |  |  |-Visualizer 16
|  |  |  |  |  |-Visualizer 16_end
|  |  |  |  |-Visualizer 17
|  |  |  |  |  |-Visualizer 17_end
|  |  |  |  |-Visualizer 18
|  |  |  |  |  |-Visualizer 18_end
|  |  |  |  |-Visualizer 19
|  |  |  |  |  |-Visualizer 19_end
|  |  |  |  |-Visualizer 20
|  |  |  |  |  |-Visualizer 20_end
|  |  |  |  |-Visualizer 21
|  |  |  |  |  |-Visualizer 21_end
|  |  |  |  |-Visualizer 22
|  |  |  |  |  |-Visualizer 22_end
|  |  |  |  |-Visualizer 23
|  |  |  |  |  |-Visualizer 23_end
|  |  |  |  |-Visualizer 24
|  |  |  |  |  |-Visualizer 24_end
|  |  |  |  |-Visualizer 25
|  |  |  |  |  |-Visualizer 25_end
|  |  |  |  |-Visualizer 26
|  |  |  |  |  |-Visualizer 26_end
|  |  |  |  |-Visualizer 27
|  |  |  |  |  |-Visualizer 27_end
|  |  |  |  |-Visualizer 28
|  |  |  |  |  |-Visualizer 28_end
|  |  |  |  |-Visualizer 29
|  |  |  |  |  |-Visualizer 29_end
|  |  |-Cube
|  |-Error

Contributors

License

Camera System is available as-is under MIT. For more information see LICENSE.

About

No description, website, or topics provided.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta

Stars

Watchers

Forks

Packages

No packages published