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.

We have received numerous photos of people recreating this or at least parts of this rig and are stoked every time!
So please continue sending it!

Short Teaser

See video below for more detailed explanations.

Overview video & parts explanations

Jump to 9:42 for the Unreal Engine Live Demo part.

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.

Arduino Case

Thanks a lot to contributor Irv Klaschus for sharing the files for his excellent custom case for the Arduino 33 IoT!

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.

Arduino Case

Thanks a lot to contributor Irv Klaschus for sharing the files for his excellent custom case for the Arduino 33 IoT!

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.

For the Arduino to properly work with the script linked below, please make sure to install these libraries with the Arduino IDE: WifiNina, OSC & Smoothed

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.
Note: If you already use an Arduino, you don’t really need this part. We added this to give you additional options to connect physical buttons to the rig.

This walkthrough will help you to set it up in Unreal (scenario 2). Scenario 1 is a great explanation on how to set up the VIVE tracker in general.

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.

How to support this

Like what you found here? We don’t make any money from this, nor was this ever the intention of this project as we deliberately want to keep it open source. However, a few people have asked how they can support our efforts, so we added a Paypal donate button:







Thank you very much for every donation! Full disclosure: this goes directly to a personal paypal account and will be used as we see it fit to keep this website going (or to pay for pizza and beers).