TABLE of CONTENTS
- Overview
- What Can Scripted Cameras Do?
- What Camera Limitations Exist?
- Preparation
- Planning Specific Camera Views
- Planning Camera Timing
- Defining the Camera Views
- Create a New Camera View.
- Save Camera Views with a Name.
- Update the ~CAMERAS notecard.
- Verify your Saved Camera Views.
- Test Camera View Transitions
- Use the MST Theater Seat or MST Camera HUD to Test Camera Views.
- Test Transitions and Timing.
- How to Add Scripted Camera Transitions to your Choreography.
- Notify Audience that you are using Scripted Camera.
- Insert Camera Chat Commands to your Choreography System with Timings.
- Clear Camera Control at the End of your Performance.
- Avoid Pointing the Camera at the Audience.
- Other Commands
- Showing and Hiding Camera View Placeholders.
- Printing out the Full List of Cameras Views for Notecard Saves.
- Deleting Camera Views.
- Automatically Rotating to Face an Avatar.
- Fade to/from Black Camera Effects
- “Rumble” Shaking Camera Special Effects
- Advanced Technical Tunings
- Frame delay.
- Track cam tunings.
1. OVERVIEW
1.a What Can Scripted Cameras Do?
MST Show Tools lets you add a cinematic-like experience to your performance by scripting your audience’s camera views with moderately smooth camera pans, cuts, and zooms. Camera control can also be useful for making machinema, or showing off close up or unusually dramatic shots that the audience would be unlikely to find on their own at specific times in your performance.
Not everyone likes scripted cameras. This is OK! The MetaHarper scripted camera system is always optional and easy to disengage, simply by using your viewer camera as usual.
1.b What Camera Limitations Exist?
- In order to use scripted cameras with your audience members, the audience must be seated on a specific scripted chair or sittable object, or wearing a particular camera HUD. You can use the include MST Theater Seat or read the Performance Venue Setup documentation for how to make your own.
- Panning and zooming is not perfectly smooth, it is “moderately smooth”, and is substantially affected by sim or network lag. For best results keep crowd sizes manageable and keep your “scripts run percentage” sim statistic over 50%.
- Camera views can be affected to some degree by viewer customizations, including “fish-eye mode” or even screen size. For best results remove any fish-eye or zoom customizations in your viewer by pressing “Control-9” before working with cameras.
2. Preparation
Before you start, you should have a MST Venue Centerpoint rezzed and configured nearby. You should also have rezzed a MST Performance Engine on the ground and ensure that it centers properly on top of a nearby centerpoint
2.a Planning Specific Camera Views
If this is the first time you’ve worked with camera views, you want to start simple. It takes a little while to train your eye to think about dramatic angles and how they can flow from one to the other. The first thing to do is complete your performance without cameras. Then, start by watching your fully completed act all the way through a few times. Use your viewer snapshot tool to take screen pictures of perspectives or viewpoints you want the audience to see and note the time (in minutes and seconds from the start of your act) when this view should be used. If this is your first time, keep the number of snapshots you use small, such as 3-5 snapshots. You can always add more later. The camera views you need should contain at a minimum:
-
- Where you want the camera to be right after the curtain opens or the performance starts.
- Where you want the camera to be at the end of your performance, right as the curtain comes down.
- Where you want the camera to be at one or more dramatic moments in the middle of your performance.
2.b Planning Camera Timing
For all of the snapshots you take above, you want to write down *when* during your act they should be used, in seconds from the beginning. For example, if your act is 3 minutes long (180 seconds), your opening camera angle will start at 0 seconds, your ending camera angle at perhaps around 170 seconds, and one or more middle camera viewers somewhere in between. It makes sense to figure out these rough timing now because you will use them later. Do not worry about being precise at this point in the process– You can always adjust the times later.
3. Defining the Camera Views
3.a Create a new Camera View
When you’ve finished all your snapshots and timings, use your viewer to move your camera into the position to match one of the snapshots you have taken. When you have moved your camera into position, either click the MST Performance Engine and choose “<more cam>” and then “newcam” from the menu, or run the chat command “/8 newcam”. If you are using one of the MST Choreo HUDs, you can use the MST Logo buton on your HUD to access your performance engine’s menu, without having to move your camera.
When you request a new camera view, a permission dialog box will appear asking you to allow your camera to be tracked. Click to accept. When you do so, a camera marker object will be moved around your current view. You will see the corners of it and a dot in the center. These are just visual aids to help your center your view if needed– the audience will not see these corners or center dot. You can adjust your viewer camera a little and the camera guide will follow you. When you have the view you wish to keep, move on to the next step.
3.b Save the Camera View with a Name
When you want to save your current camera focus as a View, access your performance engine’s popup menu and choose ‘save cam’. If you prefer, you may also shout the chat command “/8 savecam <name_of_view>”. An example of the chat command would be:
/8 savecam curtainup
This command will make the camera marker disappear, and will print out a “CAMERA=….” line of text you should copy into your clipboard for pasting into the CAMERAS notecard later.
If you want to make the camera marker that is following you go away without saving the position, you can access the performance engine menu and choose “stopcam”, or shout “/8 stopcam”.
If you screw up and save the camera in the wrong place, do not worry. You can repeat these steps and re-save the camera view, using the same name as previously. The new save will overwrite the previous one.
After you’ve saved the camera view, go on to the next step.
3.c Update the ~CAMERAS Notecard
- After saving some camera views as described above, copy the lines that it prints for you that starts with “CAMERA=” into your clipboard.
- Next, open the notecard “~CAMERAS” in your MST Performance Engine and paste in this line after the other lines that start with “CAMERA=”.
- Finally, save the notecard and wait for the MST peformance engine to tell you that all cameras are loaded and ready.
NOTE: If you’ve previously added lines to this notecard, you may wish to delete any of your own added lines that are no longer in use.
3.d Verify your Saved Camera Views
After saving your notecard, you should make sure that your new camera waypoints are saved properly. Either click the MST Performance Engine, go to “more cam” and choose “listcams”, OR shout the chat command:
/8 listcams
This should show you all the cameras loaded by the MST Performance Engine. You should see your newly added camera views in this list.
4. Test Scripted Camera Transitions
4.a Use the Seat or HUD to Test Camera Views
After you’ve saved all the camera views using the methods described in section [2], you can try testing them. In order to do this you must do one of two things. Either rez a camera enabled seat (such as MST Theater Seat) and configure it to work with your centerpoint, or wear the “MST Camera HUD” tool and click the transparent camera icon in the upper-right of your screen until it tells you “Camera control enabled.”
Special note about the MST Camera HUD: It will tell you “Listening to …..” when you wear it and it detects a centerpoint nearby. If you don’t see this message, make sure that you have the MST centerpoint rezzed.
4.b Test Transitions and Timing
Once you are sitting on the camera-enabled seat or using the MST Camera HUD, test each of your camera views by shout the command “/8 setcam <viewname>”. For example:
/8 setcam curtainup
Change the “curtainup” part to a name that matches one of your saved camera views from step [2.2]. After you type this command your camera view should immediately switch. You may need to press the “Escape” key a few times for this to take effect. You can use your viewer camera controls, stand up, or remove your hud to regain control of your camera at any time. Test each one of your saves cameras before continuing further.
After you’ve tested all your camera views, now try smooth transitions. Test these using the format “/8 setcam <name> <frames>”. For example:
/8 setcam curtainup 100
This is almost identical to the earlier command, except it has a number at the end. The number is the number of transition frames.. The larger this number, the slower the transition. Experiment with different numbers and different camera names to get a feel for how these transitions can work.
5. How to Add Scripted Camera Transitions to Your Choreography
5.a Notify the Audience that You Use Scripted Cameras
When you use scripted camera control in your performance, you may wish to make your audience aware of this before the performance starts. Let them know they will need to sit down in order for the camera effects to work, and that they should reset any viewer camera customization by pressing “control-9”. Let them know that they can disengage the camera control at any time simply by using the viewer camera controls to cam like they usually do, and can also get back to the scripted camera view at any time by pressing the “Escape” key.
5.b Insert Camera Chat Commands to your Choreography System with Timing
You will need to add the various “setcam” commands you tested in step [3.2] to your choreography system. For example if you are using MST Performance Engine, and want to add a camera transition to a camera named “centerzoom” that happens 40 seconds after the start of an act, you might add an event action to your timeline:
0.0|SETCAM centerzoom 100
to the appropriate group in your ~EVENTLIST notecard. You can also use the traditional chat commands in timelines, but the uppercase event actions will be more optimized. The commands available to you are:
-
- SETCAM
- CLEARCAM
- CAMFADEIN
- CAMFADEOUT
- SHAKECAM
- TRACKCAM
For details on all these commands you can keep reading this document or check out the camera section of the event timeline command reference.
5.c Clear Scripted Camera Control at the End of your Performance
At the end of your performance, it is very important that you remove camera control, so that the following performances after yours do not get stuck in your last camera position. To clear camera control run the following command:
CLEARCAM
You should add the above command to the end of your choreography timeline. You may also shout the chat command “/8 clearcam”, or use the clear camera button on your MST performance engine’s menu, or even MST curtain hud.
NOTE: If you are part of a show where one act is supposed to flow smoothly into the next without a break, you should NOT clear the camera. Ask your director if you are unsure.
5.d Avoiding Pointing the Camera at the Audience
Be aware of what is in the camera’s field of view. If you make a camera view that points the camera at a crowd of avatars, this will make your audience’s viewers try and draw those avatars all at once. This can cause viewer lag and/or crashes in the extreme case. Don’t do it, keep the cameras pointed at your set and try to avoid views that will contain too many objects, particles, alpha textures, and complex materials textures at once.
6. Other Commands
6.a Showing and Hiding Camera View Placeholders
You can see visual markers where all the camera views are by clicking the MST Performance Engine and choosing “show cams” or by running the chat command:
/8 showcam
NOTE: Do not attempt to move the displayed camera markers, they aren’t “real”, they are just visual aids. If you want to point the camera view somewhere else, instead use the “newcam” command as described earlier, and save a new camera view with the same name as the marker you want to update. This will overwrite the older view.
The camera markers will disappear if you reload the ~CAMERA notecard, or when you cloose “hide cams” from the performance engine’s menu, or when you shout the chat command
/8 hidecam
6.b Printing out the Entire List of Camera Views for Notecard Saves
You can get a complete print out of all the saved camera views by clicking the MST Performance Engine and choosing “printcams” OR by using the following chat command:
/8 printcams
You can copy the printout from the above command into your clipboard and paste it into the ~CAMERAS notecard, replacing any existing lines that start with “CAMERA=”.
6.c Deleting Camera Views
If you wish to delete a camera waypoint, you can either use the command
/8 deletecam <name>
or simply edit the ~CAMERAS notecard and delete the line(s) containing the camera you no longer want.
6.d Automatically Rotating to Face an Avatar
It is possible to tell a particular camera waypoint to rotate in place, without moving, to always face at a particular avatar. There are some limitations to this. It works best when the camera is further away, so that rotations are relatively small. Up close it will not work well. If you want to try this functionality, first use a “/8 setcam <name>” command like in section [3.2], then run the command “/8 trackcam <avatar_uuid> ” where <avatar_uuid> can be copied from a particular avatar’s profile. For example, to track the motions of avatar “Arrehn Oberlander”, you would use the following command:
/8 trackcam 3c637a3e-370e-4bca-b18e-92b4692a685a
Tracking will automatically stop if you use another “/8 setcam <name>” command or if you use “/8 trackcam stop”
If you wish to use this command in your eventlist timeline, you can use the optimized event command “TRACKCAM”. Example:
0.0|TRACKCAM 3c637a3e-370e-4bca-b18e-92b4692a685a
6.e Fade to/from Black Camera Effects
Inside your eventlist you can use the optimized event actions “CAMFADEIN” and “CAMFADEOUT” to fade to black, and then back in again in 10 frames. If you specify a number after the action command, this will increase the number of fade frames to use and cause the fade effect to be slower. Examples:
0.0|CAMFADEOUT
3.0|CAMFADEIN
7.0|CAMFADEOUT 30
12.0|CAMFADEIN 30
NOTE: If you switch camera views after the fade, the black-out blind will move to your new camera location, but due to timing this may result in a split-second where the view is not 100% black. If you want to move the camera while it is faded out without any visual flickers, the recommended practice is to rez a hollow, black tube or tunnel that covers the line from your starting point to your ending point, then derez this tube after the camera movement ends.
You may also use traditional chat commands such as:
/8 fadeincam
/8 fadeoutcam 20
6.f “Rumble” Shaking Camera Special Effects
You can make the user’s scripted camera shake by using the optimized eventlist action command SHAKECAM. As an example:
0.0|SHAKECAM
After first setting the camera to a position. You can also add floating point numbers to specify the strength and duration in seconds. For example:
0.0|SHAKECAM 2.0 5.0
Would shake the camera with 2x as much the default strength, for 5 seconds.
You can also use the traditional chat commands to accomplish this. Examples are:
/8 shakecam
/8 shakecam 2.0 5.0
7. Advanced Technical Tunings
7.a Frame Delay
By default there is a “0.03” second delay between each frame during transitions. This number has been chosen as the best compromise between lag and smoothness and will work best in most situations. However, if you choose you can increase this value to cause slower, choppier transitions that will work better in heavy lag, or decrease the value to cause faster, smoother transitions if there is no lag and small crowds. To experiment with the frame delay add an additional number after the setcam transition command. For example:
0.0|SETCAM centerzoom 100 0.100
will cause a slower and chopper, but more reliable zoom effect. This can be useful when you know there are going to be 90+ avatars in the audience. Conversely:
0.0|SETCAM centerzoom 100 0.023
will cause a faster, smoother zoom effect that will only behave well if there is zero lag. This may be good for machinema while you are alone.
There’s not likely to be any benefit to reducing the frame delay less than 0.023
The camera frame delay option is also allowed for the “/8 setcam” chat command.
7.b Track Cam Tunings
By default the auto-tracking camera feature is tuned to be smooth when used from a moderate distance away from the target. It can be further tuned by adding numbers after the trackcam command in the following format: “TRACKCAM <avatarUUID> <track steps> <frame delay> <poll interval>”
<track steps> is the number of frames that will be send every time rotation is needed to keep the target avatar in the center. It defaults to “20” frames increasing the number may make rotation smoother but cause the tracking to fall behind the avatar’s current movement. Decreasing the number will make the camera react faster but appear more bursty. or choppy.
<frame delay> is the save as the frame delay value described in step 6.1 and defaults to “0.02” seconds.
<poll step> is how much time should pass before the camera checks to see if an avatar has moved. this value defaults to “0.6” seconds. Changing this number upwards can cause the camera be slow to notice when an avatar has moved. Changing this number download can make unable to keep up with an avatar’s movement and start to fall behind if tracking has been left on too long.
An example may be:
0.0|TRACKCAM 3c637a3e-370e-4bca-b18e-92b4692a685a 20 0.2 0.6
You can need to experiment a lot with these values to get a feel for how they work. It’s advised to only use the “trackcam” command for limited duration when needed.
The traditional chat command “/8 trackcam” also supports these options.