VRPN ist ein geräteunabhängiges, netzwerktransparentes System für die Kommunikation mit und zwischen Geräten und Anwendungen der virtuellen Realität. Es erlaubt über Interfaces auf mehrere Geräte gleichzeitig zuzugreifen, verwaltet dabei die Verbindung und führt eine zeitliche Synchronisation aus. Obwohl viele Geräte mit VRPN kompatibel sind, existiert bislang keine Integration mit der Unreal Engine. Aus diesem Grund wurde im Sommersemester 2015 an der Hochschule Reutlingen ein Plugin für die Unreal Engine entwickelt, das VRPN-Trackerdaten (vrpn_Tracker) per C++ oder per Blueprint in der Engine zur Verfügung stellt. Im vorliegenden Anwendungsfall wird dieses Plugin genutzt, um Daten eines WorldViz-Trackingsystems bereitzustellen.
Voraussetzung
- 64-bit System
- Unreal Engine Version 4.10
- Visual Studio 2015 (für VS2013 siehe Readme)
Hinweis: Dieses Projekt wird derzeit nicht weiter entwickelt. Support-Anfragen können nicht beantwortet werden.
Plugin-Installation
Plugins werden grundsätzlich für jedes Unreal Projekt durch das Kopieren des Plugin-Ordners (VrpnPlugin, der Ordner der diese Datei enthält) in den Plugins-Unterorder im Projektverzeichnis installiert. Sollte dieser Ordner nicht vorhanden sein, muss er erstellt werden. Das Laden eines Plugins in der Unreal Engine setzt aktuell C++-Quellcode voraus. Besteht das Projekt lediglich aus Blueprints und Unreal Content, muss eine leere C++-Klasse zum Projekt hinzugefügt werden. Dies ist in der Engine über den Menüeintrag File | Add Code to Project… möglich. Nach eine Nuestart der Engine kann über das Plugin-Menü geprüft werden, ob dieses gefunden und aktiviert ist. Um die Daten in einem Blueprint empfangen zu können, wird zunächst das Blueprint des Charakters geöffnet. Auf der linken Seite des Fensters findet sich die Komponentenliste. Durch Add Component kann nun die VrpnComponent hinzugefügt werden. Ist diese hinzugefügt, muss für das Empfangen von Events außerdem das Interface zum Blueprint hinzugefügt werden. Dafür werden die Blueprint Props aufgerufen und das Vrpn Inteface über die Schaltfläche Add im Abschnitt Interfaces hinzugefügt. Im Anschluss daran können Events wie jeder andere Blueprint-Knoten hinzugefügt und eingesetzt werden. Der VRPN Server von dem die Daten empfangen werden sollen kann in den Eigenschaften der VrpnComponent eingetragen werden. Selbes gilt für den Trackernamen.
Nutzen der Daten
Die Daten können am einfachsten über das Blueprint-Event On Tracker Data empfangen werden. Dieses Event wird für jeden Tracker einzeln aufgerufen, wobei durch den ersten Ausgang dessen ID angegegben wird. Die weiteren Ausgänge für die Position und die Orientierung sind je nach Verfügbarkeit gefüllt und in den Standarddatentypen FVector und FRotator angegeben. Die Abbildung zeigt dies beispielhaft.
License
Alle Teile der Software, die nicht durch die Third-Party Lizenzen abgedeckt sind (siehe LICENSE-3RD-PARTY-Datei im Plugin-Archiv), sind wie folgt lizensiert:
The MIT License (MIT)
Copyright (c) 2015 VRLab Reutlingen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Download
>> VrpnPlugin (Version 0.2.0 für Unreal Engine 4.10)
>> VrpnPlugin (Version 0.1.0 für Unreal Engine 4.7)