9.2 KiB
SenseGlove Unreal Engine Plugin
⚠️ DISCLAIMER: Experimental Release
This is an initial experimental release for public evaluation and may not be considered production ready, yet. This repository is under active development and there might be known or unknown bugs lurking around. Use it at your own risk.
Platform Support Matrix
| Windows (MSVC 2019) |
Windows (MSVC 2022) |
Linux (Native Toolchain) |
macOS | Oculus Mobile (Android NDK r21b) |
|
|---|---|---|---|---|---|
| 4.22 | ✅ | ❌ | ✅ | ❌ | ❌ |
| 4.23 | ✅ | ❌ | ✅ | ❌ | ❌ |
| 4.24 | ✅ | ❌ | ✅ | ❌ | ❌ |
| 4.25 | ✅ | ❌ | ✅ | ❌ | ❓ |
| 4.26 | ✅ | ❌ | ✅ | ❌ | ❓ |
| 4.27 | ✅ | ✅ | ✅ | ❌ | ❓ |
| 5.0 | ✅ | ✅ | ✅ | ❌ | ❓ |
| 5.1 | ✅ | ✅ | ✅ | ❌ | ❓ |
✅Supported❌Not Supported❓Unknown or Untested
Remarks:
- Microsoft Visual Studio 2022 is not supported by Unreal Engine 4.22 through 4.26.
- All third-party libraries on Windows built against Windows SDK 10.0.
- Oculus support is only provided through the recommended Android NDK r21b by Epic Games.
- Supporting Unreal Engine 4.22 through 4.24 for Oculus development is a huge challenge due to limited Android NDK support (r14b to r18b); firstly, because of uncomplete C++11 standard library support, and second, as a result of a known bug in Unreal Engine, which falsely detects NDK r18b as unsupported r18c. Thus, only Unreal Engine 4.25+ support is provided for Android/Oculus development. Third, wjwwood/serial requires Android NDK API Level 28+ in order to be built successfully, thus some older NDKs such as r14b, which is the recommended NDK by Epic Games for 4.22 to 4.24 cannot build the serial library.
- All third-party libraries target Android NDK API Level 29, thus any project relying on the plug-in should be build with the same NDK API Level.
Documentation
The Blueprints documentation will be coming soon.
For the C++ documentation, since this plugin builds on top of SGConnect and SGCoreCpp third-party C++ libraries, please refer to the upstream documentation.
Also, you could refer to the header files in every module for extensive documentation, or the equivalent Blueprints documentation.
The following modules are intended to be used by the C++ users of this plugin:
-
SenseGloveConnect module which only uses a very small subset of the Core SGConnect libary.
-
SenseGloveCore module which is mostly a one-on-one wrapper call to most of the SGCoreCpp library with slight differences.
Please note that modules postfixed with Impl are intended for interal use and are discouraged to be used by the users of the API. The modules postfixed with Kismet are exposing the functionality of the equivalent modules to Blueprints. For other modules descriptions, please see the Directory Structure section.
Directory Structure
Source
│
├── Resources
│
├── Source (various plug-in modules)
│ │
│ ├── SenseGlove (the UE-specific high-level API)
│ │
│ ├── SenseGloveBuildHacks (uses Excepttions and RTTI, internally used for compiler-specific build hacks)
│ │
│ ├── SenseGloveConnect (exposes part of the SGConnect low-level API to C++ and Blueprints)
│ │
│ ├── SenseGloveConnectImpl (uses Excepttions and RTTI, intended for internal use only)
│ │
│ ├── SenseGloveConnectKismet (SGConnect functionality exposed to Blueprints)
│ │
│ ├── SenseGloveCore (exposes part of the SGCoreCpp low-level API to C++ and Blueprints)
│ │
│ ├── SenseGloveCoreImpl (uses Excepttions and RTTI, intended for internal use only)
│ │
│ ├── SenseGloveCoreKismet (SGCoreCpp functionality exposed to Blueprints)
│ │
│ ├── SenseGloveEditor (the Editor module)
│ │
│ ├── SenseGloveInterop (internally used for interoperability between RTTI disabled/enabled modules)
│ │
│ ├── SenseGloveKismet(exposes Blueprints-specific functionality from the SenseGlove module)
│ │
│ ├── SenseGloveLog (internal log module)
│ │
│ ├── SenseGloveTypes (exposes various enums from the backend libraries)
│ │
│ └── SenseGloveUtils (internal utility module)
│
└── ThirdParty (3rd-party dependencies)
│
├── include (header files)
│ │
│ ├── boost
│ │
│ ├── SenseGlove
│ │ │
│ │ ├── Connect (SGConnect headers)
│ │ │
│ │ └── Core (SGCoreCpp headers)
│ │
│ └── serial
│
└── lib (platform-specific pre-built binary dependencies)
│
├── linux
│ │
│ ├── v13 (UE 4.22 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v15 (UE 4.23 and 4.24 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v16 (UE 4.25 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v17 (UE 4.26 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ ├── v19 (UE 4.27 Linux dependencies)
│ │ │
│ │ ├── debug
│ │ │
│ │ └── release
│ │
│ └── v20 (UE 5.0 Linux dependencies)
│ │
│ ├── debug
│ │
│ └── release
│
├── oculus
│ │
│ ├── debug
│ │
│ └── release
│
└── win64
│
├── msvc142 (Microsoft Visual Studio 2019 dependencies)
│ │
│ ├── debug
│ │
│ └── release
│
└── msvc143 (Microsoft Visual Studio 2022 dependencies)
│
├── debug
│
└── release
Licenses
SenseGlove Unreal Engine Plug-in License
The SenseGlove plug-in for Unreal Engine is licensed under the terms of the MIT License.
Third-Party Licenses
Please note that while the SenseGlove plug-in for Unreal Engine is made available under the MIT License, it utilizes a few third-party libraries with permissive free licenses as well, in order to power various components. For a list of these libraries and their own respective open-source licenses take a look at LICENSE-THIRD-PARTY.md, please.