The target camera of an MR set determines the video input being routed to the MR set. However, multiple cameras can be added into an MR set.
Camera switching in xR requires all delays in the system to be compensated for perfectly, so that all parts of the output switch view in the same frame. This requires introducing a delay between the user requesting a switch, and the switch being visible in the output.
Please note: Delays must be perfect to then get in sync switching
Inside disguise Controller we have 6 Indirection Controller Types:
- DMXIndirectionController
- ListIndirectionController
- MachineListIndirectionController
- ManualIndirectionController
- SequencedIndirectionController
- OSCIndirectionController
- UDPIndirectionController
These allow multiple protocols to be used to switch the active camera inside disguise, as well as non-external trigger based.
This allows for Cameras to be selected in a Bank and Slot mechanism.
-
Ensure you have set up disguise to receive DMX.
-
Create and assign a DMXIndirectionController to the MR Set.
-
In the Sockpuppet bank editor, a Camera bank list is now made available.
-
Populate banks and slots with Cameras you wish to select.
-
Enter the Universe and channel you wish to select the Camera bank with into the controller.
The slot is the next channel immediately after the bank, so you must specify 2 channels in your DMX sender.
-
From the DMX sending device, send the appropriate 2 channel identifier to the universe and channel you selected.
This allows for Cameras to be selected on a 0 Based index
-
Create a ListIndirectionController
-
Add the Cameras as Resource
-
The order of the Cameras as the Index Number.
-
Scroll through the Index to then choose the active camera
This allows for certain machines to only output the perspective of specified cameras. A use case for this is when splitting up Front and Back plate rendering over multiple machines.
-
Create a ManualIndirectionController
-
Select a Camera
This is controlled by keyframes in an IndirectionControl layer. The indirection control module allows indirections to be sequenced on the timeline. One Indirection control module controls one indirection.
To sequence an indirection:
-
Add a SequencedIndirectionController in the controller field of the indirection.
-
Add an IndirectionControl layer to the timeline.
-
Select the controller in the Indirection control module.
-
Add keyframed Resources to the resource property as required.
This allows you to force a camera to be active over OSC.
-
Create an OSCIndirectionController
-
Create an OSC Device
-
Add the OSC device to the Controller.
-
Remove the $ sign from the OSC address field.
-
The string to recall the Camera to be active is the camera’s name inside disguise. Currently the OSC indirection controller requires you to use the full path of the object you are selecting such as:
path: /d3/indirection/osc
value: objects/camera/cam1.apx
Please note:
Confirm that the labels for camera objects and the OSC indirections match and are named using the same format.
This allows you to force a camera to be active over UDP.
-
Create UDPIndirectionController
-
Add the number of Resources needed. This will be the number of cameras in the scene.
-
Add a Key to trigger that active camera, and add a resource which would be the Virtual Camera.
-
Add the receive port number from the UDP sender.
-
Send the command to disguise and see the Current Target change. Turn on Verbose Logging to check incoming strings in the console (alt+c).