168 lines
9.2 KiB
Markdown
168 lines
9.2 KiB
Markdown
# 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<br>(MSVC 2019)** | **Windows<br>(MSVC 2022)** | **Linux<br>(Native Toolchain)** | **macOS** | **Oculus Mobile<br>(Android NDK r21b)** |
|
||
|
|
|----------|:--------------------------:|:--------------------------:|:-------------------------------:|:---------:|:---------------------------------------:|
|
||
|
|
| **4.22** | ✅ | ❌ | ✅ | ❌ | ❌ |
|
||
|
|
| **4.23** | ✅ | ❌ | ✅ | ❌ | ❌ |
|
||
|
|
| **4.24** | ✅ | ❌ | ✅ | ❌ | ❌ |
|
||
|
|
| **4.25** | ✅ | ❌ | ✅ | ❌ | ❓ |
|
||
|
|
| **4.26** | ✅ | ❌ | ✅ | ❌ | ❓ |
|
||
|
|
| **4.27** | ✅ | ✅ | ✅ | ❌ | ❓ |
|
||
|
|
| **5.0** | ✅ | ✅ | ✅ | ❌ | ❓ |
|
||
|
|
| **5.1** | ✅ | ✅ | ✅ | ❌ | ❓ |
|
||
|
|
|
||
|
|
* <code>✅</code> Supported
|
||
|
|
* <code>❌</code> Not Supported
|
||
|
|
* <code>❓</code> 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](https://github.com/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](https://senseglove.gitlab.io/SenseGloveDocs/native/core-api-intro.html#sgconnect) and [SGCoreCpp](https://senseglove.gitlab.io/SenseGloveDocs/native/core-api-intro.html#sgcorecpp) third-party C++ libraries, please refer to [the upstream documentation](https://senseglove.gitlab.io/SenseGloveDocs/native/cpp-reference.html).
|
||
|
|
|
||
|
|
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).
|
||
|
|
|
||
|
|
## 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](LICENSE.md).
|
||
|
|
|
||
|
|
### Third-Party Licenses
|
||
|
|
|
||
|
|
Please note that while the SenseGlove plug-in for Unreal Engine is made available under the [MIT License](LICENSE.md), 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](LICENSE-THIRD-PARTY.md), please.
|