Select Page

Virtual Camera for UE4

This is our first version of a virtual camera rig for the Unreal Engine designed for full CG indie content creation. We included various options to control the camera wirelessly such as an attachment for a VIVE controller, buttons directly connected to a Vive Tracker, dials, and joysticks inputs that get transmitted by an Arduino over WIFI and a smartphone running a touch interface designed with TouchOSC. 

Feel free to download the Unreal 4.25 project from our Github repository and play around with it.

Overview video & parts explanations

Jump to 9:42 for the Unreal Engine Live Demo

Touch Display with Open Sound Control (OSC)

To control the camera over WIFI with a touch interface we use a smartphone running TouchOSC.

The Open Sound Control (OSC) protocol whilst originally designed as an alternative to MIDI is lightweight, fully supported by the official OSC plugin in Unreal and can send & receive a variety of data formats such as integers, floats, booleans, and strings and is easy to set up and use.

Blueprint for OSC in Unreal Engine

3D printed parts

We designed a few parts that can be used to attach buttons, dials, joysticks and VIVE controllers with some small zip ties to the rig, as well as a base plate for the VIVE tracker to use the pogo pins at the bottom (scroll down for more information on this). We provide the .stl files for these parts, so you can print them yourself.

Button case

A case to attach a tactile button to the grip handle.

Dial case

A small case for a rotary potentiometer/dial to attach it to a 15mm rod

VIVE controller attachment

An attachment for a VIVE controller to be used with a Niceyrig 15mm Rod Clamp

VIVE tracker baseplate

A custom base plate for the VIVE tracker to make use of the pogo pins on the bottom. You will also need an 8-pin Dupont connector (or get a whole kit for a few bucks), 6 some small nails, and a bit of wire to assemble it. Scroll down for more information on the pin configuration.

3D printed parts

We designed a few parts that can be used to attach buttons, dials, joysticks and VIVE controllers with some small zip ties to the rig, as well as a base plate for the VIVE tracker to use the pogo pins at the bottom (scroll down for more information on this). We provide the .stl files for these parts, so you can print them yourself.

Joystick case

A joystick case to attach a standard Arduino/Raspberry Pi joystick to the grip handles

Button case

A case to attach a tactile button to the grip handle.

 

Dial case

A small case for a rotary potentiometer/dial to attach it to a 15mm rod.

VIVE controller attachment

An attachment for a VIVE controller to be used with a Niceyrig 15mm Rod Clamp

VIVE tracker baseplate

A custom base plate for the VIVE tracker to make use of the pogo pins on the bottom. You will also need an 8-pin Dupont connector (or get a whole kit for a few bucks), 6 some small nails, and a bit of wire to assemble it. Scroll down for more information on the pin configuration.

Physical dials, joysticks and buttons with Arduino

We currently use the Arduino Nano 33 IoT microcontroller to send data from buttons,  potentiometers (dials, sliders, etc.) and the joystick to Unreal over WIFI using the OSC protocol.

The Nano is small and provides 8 analog and 13 digital inputs and comes with a built-in WIFI module and can be powered using USB.

Current arduino sketch/script on Github

Connection plan

Buttons connected to the VIVE tracker

The tracker contains pogo pins on the bottom that can be used to send button presses to Unreal without additional hardware or microcontrollers. You can download the files for the custom baseplate to print it yourself. For the assembly, you will need an 8-pin Dupont connector and 6 small (conductive) nails and some wires.

This walkthrough will help you to set it up in Unreal. Follow this youtube video and/or this explanation on how to use the trackers without the headset.

Pin configuration

We will update this page if we add new functionalities or improve existing ones. Please sign up to our mailing list if you want to be informed about changes and updates in the future.