Tidal Flask Studios: All products 50% off

Interactive Flow (VR Controls extension)

GodeffroyValet - Code Plugins - Sep 13, 2021

Propagate signals at runtime along cables or anything else, triggering dynamic changes along the way, such as switching lights, openning doors, changing object materials, etc.

  • Supported Platforms
  • Supported Engine Versions
    4.27, 5.0 - 5.2
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

FROM LATEST UPDATE:

* You now have interaction icons from VrControls, so that it is easier to see when interactions are possible, and to choose between grab or interact actions.

* You now can grab a female plug by hand (see VrControls), approch a male plug until it turns green, and open your hand to attach the plugs together.

* Dropping an object is always done by opening your hand.


Requires the VR Controls plugins for the sample Blueprints to work ! Without it, you will need additional work to link your own events and/or C++ code to this plugin.


Demo video

Tutorial


Propagate signals at runtime automatically and interactively. The plugin ships some signal emitters, recievers, and transmitters, but you can of course customize them or create your own.


Emitters could be buttons, terminals, pressure plates, events, etc. The plugin provides the following as examples :

  • A lever with 3 positions (top, bottom, middle) and two output plugs (top, bottom). This lever is VR compatible in several ways. First, it supports physics, so you can push it, grab it, throw physics object at it, etc. Then, it implements the InteractableInterface (from VR Controls), so it can be switched at a distance by pointing at it and pressing the trigger (VR motion controller), or clicking (mouse). The output plugs send signal 1 when the lever is switched toward them, else 0.


Receivers could be traps, machines, doors, etc. The plugin provides the following as examples :

  • A door which opens when its input plug receives 1 and shuts when it receives 0.
  • A light which lits up when its input plug receives 1 and shuts when it receives 0.


Transmitters could be wires, pipes, wireless, etc. The plugin provides the following as examples :

  • A first cable propagates the signal instantly from its input plug to its output plug. You can plug, unplug and move it at runtime. Signals are updated accordingly and propagated to all signal actors down the line. The plugs also change material when entering or leaving focus, such as when you are approaching another plug that can connect to it. Both plugs implement the InteractableInterface (from VR Controls), so they can be plugged/unplugged at a distance by pointing at them and pressing the trigger (VR motion controller), or clicking (mouse). They also support physics, so you can grab and move them around.
  • A second cable is the same except it propagates signals with a delay and lights up progressively from its input plug toward its output plug.
  • A signal multiplexer with one input plug and an output plug which can be connected to multiple outputs.

Technical Details

Features (BP=Blueprint, BPC=Blueprint Component):

- The SignalActor class (C++) is the base class of all Actors that can propagate a signal. The following derived classes are provided :

  • BP_SignalCable
  • BP_SignalCableDelayed
  • BP_SignalEmitter_Lever
  • BP_SignalReceiver_Door
  • BP_SignalReceiver_WallLight
  • BP_SignalMultiplexer

- The SignalPlugComponent (C++) is used to connect signal actors together. The following derived classes are provided :

  • BPC_InteractablePlug{In/Out}


Code Modules:

  •  InteractiveFlow (Runtime)


Number of Blueprints: 8

Number of C++ Classes: 2

Network Replicated: Not tested

Supported Development Platforms: Windows 10 (Should also work for other platforms)

Supported Target Build Platforms: Windows 10 (Should also work for other platforms)

Tested Hardware: Valve Index, Mouse/Keyboard (Should also work with other hardware)

Documentation: See the tutorial above for basic usage. Open the blueprints for customization.


Example Project: Coming soon.


Important/Additional Notes: This plugin works out of the box if you have the VR Controls plugin. If you don't have the VR Controls plugin, you will need additional work to link your own events and/or C++ code to this plugin.