From ETC Public Wiki
Jump to: navigation, search

3dRudder is a foot-powered motion controller for VR & PC games. You can sit down, rest your feet on the 3dRudder, and experience free locomotion in VR worlds.

Getting Started


  1. Download 3dRudder Dashboard and install it.
  2. Plug in 3dRudder and it will beep several times. It will be ready after a long beep.
  3. Sometimes 3dRudder will require a calibration process on a new computer. Follow the steps in 3dRudder Dashboard if necessary (except the boring game though).

Basic Setup

  1. Make sure you have installed 3dRudder Dashboard first.
  2. Go to File > Build Settings. Select PC Standalone and set Architecture to x86_x64.
  3. Download 3dRudder UnityPackage (you will need a developer account to download the package). You can also download v2.1.0 package from this link. An older version of the package can be found in Unity's Asset Store.
  4. Double click and import the package into your Unity project.

Scene Setup

  1. Open a Unity scene and create a gameobject that you would want to add control with 3dRudder.
  2. Add [Controller3dRudder] component into the object. Now you can move this object using 3dRudder in the scene!

Programming Information

Getting Input

3dRudder provides four input axes: Left/Right, Up/Down, Forward/Backward and Rotation (Clockwise/Counterclockwise). Each input axis comes with a confidence value ranging from -1 to 1.

To set custom control and get input from 3dRudder, follow the steps below:

  1. Add a [Controller3dRudder] component to an game object.
  2. Open your Project window and locate to the asset folder you want to create the 3dRudder movement script. Then select the [Controller3dRudder] component and click Create Custom Script Mode.
  3. A script called NewLocomotion.cs will appear in your current asset folder. You will then find that you can select different Locomotion Mode script in the [Controller3dRudder] component.
  4. Open that script and you will find the script implements ILocomotion interface. You can also create a new class implementing that interface instead.
  5. The UpdateAxes method inside your script will be called by 3dRudder script to update input. Note that for axesWithFactor, X, Y, Z means Left/Right, Up/Down, Forward/Backward respectively, and W means Rotation. All the inputs fall in the range of [-1, 1]. All the other methods are not necessary and only act as an example.

There are many public methods and properties exposed in [Controller3dRudder] script as well. Check them out and unleash the potentials of 3dRudder!

Playing Beep

3dRudder provides a function in Unity to trigger its beeper! Try Sdk3dRudder.PlaySnd(portNumber, nFrequency, nDuration) to figure out how it works! The beep frequency is ranged in [400, 5000] Hz, and the duration unit is milliseconds. You can even use coroutine or other ways to play a music clip!

Art (2D & 3D) Information

Currently there is no art information to know about 3dRudder.

Sound Information

Currently there is no sound information to know about 3dRudder.

Design Guidelines & Tips

  • 3dRudder only works when both feet are on the pad. Leaving one foot from 3dRudder will cause it to stop functioning.
  • 3dRudder is designed only for sit-down scenarios. Make use of it wisely for sit-down only interaction.
  • The 3dRudder base is not stable and can be easily pushed away on playing. Large feet movement should be avoided.

Example Projects

Currently there are no example projects for 3dRudder.

Previous ETC Projects

Currently there are no ETC projects that use 3dRudder.


Currently there is no BVW-specific information to know about 3dRudder.