bump the SenseGlove Unreal Engine Plugin to v2.1.1
This commit is contained in:
@@ -43,7 +43,7 @@ SG_HANDBOOK_DEPLOY_TEMP_DIR_NAME := unreal-docs-senseglove-com-deploy-XXXXXXXXXX
|
|||||||
SG_HANDBOOK_FAVICON_FILE := $(SG_HANDBOOK_SRC_DIR)/favicon.svg
|
SG_HANDBOOK_FAVICON_FILE := $(SG_HANDBOOK_SRC_DIR)/favicon.svg
|
||||||
|
|
||||||
SG_DOT_GIT_DIR := $(realpath $(SG_HANDBOOK_DIR)/../.git)
|
SG_DOT_GIT_DIR := $(realpath $(SG_HANDBOOK_DIR)/../.git)
|
||||||
SG_DOT_GIT_SHALLOW_FILE := $(realpath $(SG_DOT_GIT_DIR)/shallow)
|
SG_DOT_GIT_SHALLOW_FILE := $(SG_DOT_GIT_DIR)/shallow
|
||||||
|
|
||||||
SG_PLUGIN_DIR := $(realpath $(SG_HANDBOOK_DIR)/..)
|
SG_PLUGIN_DIR := $(realpath $(SG_HANDBOOK_DIR)/..)
|
||||||
SG_PLUGIN_RESOURCES_DIR := $(SG_PLUGIN_DIR)/Resources
|
SG_PLUGIN_RESOURCES_DIR := $(SG_PLUGIN_DIR)/Resources
|
||||||
@@ -189,9 +189,9 @@ SG_BUILD_HOST := $(shell hostname)
|
|||||||
SG_BUILD_TIME := $(shell date '+%a %b %d, %Y %H:%M %Z %z')
|
SG_BUILD_TIME := $(shell date '+%a %b %d, %Y %H:%M %Z %z')
|
||||||
|
|
||||||
ifeq ($(strip $(SG_GIT_BRANCH)),dev)
|
ifeq ($(strip $(SG_GIT_BRANCH)),dev)
|
||||||
ifeq ($(strip $(SG_GIT_VERSION)),)
|
ifeq ($(strip $(SG_GIT_TAG)),)
|
||||||
SG_HANDBOOK_REVISION := next
|
SG_HANDBOOK_REVISION := next
|
||||||
endif # ($(strip $(SG_GIT_VERSION)),)
|
endif # ($(strip $(SG_GIT_TAG)),)
|
||||||
endif # ($(strip $(SG_GIT_BRANCH)),dev)
|
endif # ($(strip $(SG_GIT_BRANCH)),dev)
|
||||||
|
|
||||||
SG_IS_GIT_BRANCH_HEAD_OR_MASTER := $(or $(filter HEAD,$(strip $(SG_GIT_BRANCH))),$(filter master,$(strip $(SG_GIT_BRANCH))))
|
SG_IS_GIT_BRANCH_HEAD_OR_MASTER := $(or $(filter HEAD,$(strip $(SG_GIT_BRANCH))),$(filter master,$(strip $(SG_GIT_BRANCH))))
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ Welcom to the SenseGlove Unreal Engine Handbook!
|
|||||||
- [Safe Glove Access in Blueprint](advanced-topics/safe-glove-access-blueprint/README.md)
|
- [Safe Glove Access in Blueprint](advanced-topics/safe-glove-access-blueprint/README.md)
|
||||||
- [OpenXR](advanced-topics/openxr/README.md)
|
- [OpenXR](advanced-topics/openxr/README.md)
|
||||||
- [Consuming FXRMotionControllerData](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md)
|
- [Consuming FXRMotionControllerData](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md)
|
||||||
- [Blueprints](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md)
|
- [Blueprint](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md)
|
||||||
- [C++](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md)
|
- [C++](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md)
|
||||||
|
|
||||||
# 🔌 Low-Level API
|
# 🔌 Low-Level API
|
||||||
|
|||||||
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [2.1.1] - 2024-08-18
|
||||||
|
|
||||||
|
This is a bugfix release with no actual plugin code changes, mostly addressing issues in the documentation and third-party dependencies caused by source control merge conflicts.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix the messed up changelog file caused by cherry-picking merge conflicts between the dev branch and the master branch.
|
||||||
|
- Fix a bug that causes a handbook revision mismatch when deploying the handbook from the dev branch.
|
||||||
|
- Fix a bug where `SG_GIT_IS_SHALLOW_CLONE` while building the handbook is always set to `yes` even if it's not a shadow clone because `SG_DOT_GIT_SHALLOW_FILE` evaluates to an empty string when the `.git/shallow` file does not exist.
|
||||||
|
- Fix some documentation typos.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Removed Android NDK r25 armv7 and x86 dependencies brought back by mistake while merging v2.1.0 from the dev branch to the master branch.
|
||||||
|
|
||||||
## [2.1.0] - 2024-08-16
|
## [2.1.0] - 2024-08-16
|
||||||
|
|
||||||
This is a minor release focusing mainly on bringing OpenXR-compatible hand tracking support (`XR_EXT_hand_tracking`) and Head-mounted Display automatic detection for adjusting wrist tracker offsets automatically at runtime.
|
This is a minor release focusing mainly on bringing OpenXR-compatible hand tracking support (`XR_EXT_hand_tracking`) and Head-mounted Display automatic detection for adjusting wrist tracker offsets automatically at runtime.
|
||||||
@@ -127,6 +142,14 @@ This is a minor release focusing mainly on bringing OpenXR-compatible hand track
|
|||||||
- The `UXRDeviceVisualizationComponent` provided by Unreal Engine is used in the SGPawn class as ControllerVisualizerLeft and ControllerVisualizerRight for implementing the wrist tracking hardware visualization feature. However, it is not compatible with the new OpenXR system in certain scenarios. For instance, when the motion controllers serve as wrist tracking hardware since the SenseGlove plugin is now introduced to the engine as an `OpenXRHandTracking` system, it causes the UXRDeviceVisualizationComponent to visualize the wrist tracking hardware at coordinates (0.0f, 0.0f, 0.0f) instead of their actual location and rotation in the world. This happens because the component incorrectly registers them as inactive, possibly because it's assumed hand tracking and motion controllers cannot be in use at the same time. Currently, we use this feature solely for debugging, and we have an alternative in the form of wrist-tracking debug gizmos, which can be toggled on or off via the settings system. In future releases, we might remove this feature due to its incompatibility, unless we find a solution to make the `UXRDeviceVisualizationComponent` work with the new system. Alternatively, we may develop our own version of the `UXRDeviceVisualizationComponent`.
|
- The `UXRDeviceVisualizationComponent` provided by Unreal Engine is used in the SGPawn class as ControllerVisualizerLeft and ControllerVisualizerRight for implementing the wrist tracking hardware visualization feature. However, it is not compatible with the new OpenXR system in certain scenarios. For instance, when the motion controllers serve as wrist tracking hardware since the SenseGlove plugin is now introduced to the engine as an `OpenXRHandTracking` system, it causes the UXRDeviceVisualizationComponent to visualize the wrist tracking hardware at coordinates (0.0f, 0.0f, 0.0f) instead of their actual location and rotation in the world. This happens because the component incorrectly registers them as inactive, possibly because it's assumed hand tracking and motion controllers cannot be in use at the same time. Currently, we use this feature solely for debugging, and we have an alternative in the form of wrist-tracking debug gizmos, which can be toggled on or off via the settings system. In future releases, we might remove this feature due to its incompatibility, unless we find a solution to make the `UXRDeviceVisualizationComponent` work with the new system. Alternatively, we may develop our own version of the `UXRDeviceVisualizationComponent`.
|
||||||
- Although the SenseGlove OpenXR implementation is fully compatible with the `IOpenXRHMD` interface and the `FOpenXRHMD` `XRTrackingSystem`, it is not compatible with the `FOculusXRHMD` backend provided by the Meta XR plugin. The same issue likely applies to the VIVE OpenXR plugin. So, if these plugins are enabled in your project, the SenseGlove OpenXR will not function as intended, effectively breaking the plugin's functionality. It seems these plugins are necessary in order to make the fallback to the hand-tracking feature work on Android. While we may add support and compatibility with Meta XR and VIVE OpenXR plugins in the future, for the time being, if your project requires these plugins, we advise continuing with the `v2.0.x` release of the SenseGlove Unreal Engine plugin until this issue is addressed.
|
- Although the SenseGlove OpenXR implementation is fully compatible with the `IOpenXRHMD` interface and the `FOpenXRHMD` `XRTrackingSystem`, it is not compatible with the `FOculusXRHMD` backend provided by the Meta XR plugin. The same issue likely applies to the VIVE OpenXR plugin. So, if these plugins are enabled in your project, the SenseGlove OpenXR will not function as intended, effectively breaking the plugin's functionality. It seems these plugins are necessary in order to make the fallback to the hand-tracking feature work on Android. While we may add support and compatibility with Meta XR and VIVE OpenXR plugins in the future, for the time being, if your project requires these plugins, we advise continuing with the `v2.0.x` release of the SenseGlove Unreal Engine plugin until this issue is addressed.
|
||||||
|
|
||||||
|
## [2.0.8] - 2024-07-15
|
||||||
|
|
||||||
|
This is a bugfix release that contains a somewhat important bugfix backported from the next release of the plugin as documented below.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix a bug where the SGPawn right-hand grab colliders' default size is mistakenly set to the default value for the left-hand grab colliders at CDO initialization time.
|
||||||
|
|
||||||
## [2.0.7] - 2024-05-29
|
## [2.0.7] - 2024-05-29
|
||||||
|
|
||||||
This is a bugfix release with no actual plugin code changes, only fixing issues with binary assets incompatible with UE versions earlier than 5.4.
|
This is a bugfix release with no actual plugin code changes, only fixing issues with binary assets incompatible with UE versions earlier than 5.4.
|
||||||
@@ -192,13 +215,6 @@ This is a patch release with no code changes.
|
|||||||
|
|
||||||
This is a bugfix release.
|
This is a bugfix release.
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- A fallback to HMD and wrist tracker hardware auto-detection mechanism has been added to be triggered in situations when automatic detection of the wrist tracker hardware is desired, e.g., either by not setting it explicitly, or setting it to the default None value.
|
|
||||||
- Added the SGHeadMountDisplay utility class, exposed to both C++ and Blueprint, in order to easily gather information about the HMD at runtime.
|
|
||||||
- Added the SGTypes header to the SenseGloveTypes module in order to define and share SenseGlove module types through this header across the plugin modules.
|
|
||||||
- Added ESGHeadMountDisplayDevice enum with supported HMDs list.
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fix a bug inside both SGVirtualHandComponent and SGWristTrackerComponent where the connected glove's UObject instance gets destroyed and re-instantiated every frame. With this fix now the glove instance will be created or destroyed only when a glove connects to or disconnects from the system.
|
- Fix a bug inside both SGVirtualHandComponent and SGWristTrackerComponent where the connected glove's UObject instance gets destroyed and re-instantiated every frame. With this fix now the glove instance will be created or destroyed only when a glove connects to or disconnects from the system.
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
│
|
│
|
||||||
├── SenseGloveBackend (responsible for initialization and deinitialization of the backend libraries)
|
├── SenseGloveBackend (responsible for initialization and deinitialization of the backend libraries)
|
||||||
│
|
│
|
||||||
├── SenseGloveBackendKismet (exposes Blueprints-specific functionality from the SenseGloveBackend module)
|
├── SenseGloveBackendKismet (exposes Blueprint-specific functionality from the SenseGloveBackend module)
|
||||||
│
|
│
|
||||||
├── SenseGloveBuildHacks (uses Exceptions and RTTI, internally used for compiler-specific build hacks)
|
├── SenseGloveBuildHacks (uses Exceptions and RTTI, internally used for compiler-specific build hacks)
|
||||||
│
|
│
|
||||||
@@ -27,33 +27,33 @@
|
|||||||
│
|
│
|
||||||
├── SenseGloveConnectImpl (uses Exceptions and RTTI, intended for internal use only)
|
├── SenseGloveConnectImpl (uses Exceptions and RTTI, intended for internal use only)
|
||||||
│
|
│
|
||||||
├── SenseGloveConnectKismet (SGConnect functionality exposed to Blueprints)
|
├── SenseGloveConnectKismet (SGConnect functionality exposed to Blueprint)
|
||||||
│
|
│
|
||||||
├── SenseGloveCore (exposes part of the SGCoreCpp low-level API to C++)
|
├── SenseGloveCore (exposes part of the SGCoreCpp low-level API to C++)
|
||||||
│
|
│
|
||||||
├── SenseGloveCoreImpl (uses Exceptions and RTTI, intended for internal use only)
|
├── SenseGloveCoreImpl (uses Exceptions and RTTI, intended for internal use only)
|
||||||
│
|
│
|
||||||
├── SenseGloveCoreKismet (SGCoreCpp functionality exposed to Blueprints)
|
├── SenseGloveCoreKismet (SGCoreCpp functionality exposed to Blueprint)
|
||||||
│
|
│
|
||||||
├── SenseGloveDebug (a utility debug module)
|
├── SenseGloveDebug (a utility debug module)
|
||||||
│
|
│
|
||||||
├── SenseGloveDebugKismet (exposes Blueprints-specific functionality from the SenseGloveDebug module)
|
├── SenseGloveDebugKismet (exposes Blueprint-specific functionality from the SenseGloveDebug module)
|
||||||
│
|
│
|
||||||
├── SenseGloveEditor (the Editor module)
|
├── SenseGloveEditor (the Editor module)
|
||||||
│
|
│
|
||||||
├── SenseGloveInterop (internally used for interoperability between RTTI disabled/enabled modules)
|
├── SenseGloveInterop (internally used for interoperability between RTTI disabled/enabled modules)
|
||||||
│
|
│
|
||||||
├── SenseGloveKismet (exposes Blueprints-specific functionality from the SenseGlove module)
|
├── SenseGloveKismet (exposes Blueprint-specific functionality from the SenseGlove module)
|
||||||
│
|
│
|
||||||
├── SenseGloveLog (the internal log module)
|
├── SenseGloveLog (the internal log module)
|
||||||
│
|
│
|
||||||
├── SenseGloveSettings (the plugin's settings manager)
|
├── SenseGloveSettings (the plugin's settings manager)
|
||||||
│
|
│
|
||||||
├── SenseGloveSettingsKismet (exposes Blueprints-specific functionality from the SenseGloveSettings module)
|
├── SenseGloveSettingsKismet (exposes Blueprint-specific functionality from the SenseGloveSettings module)
|
||||||
│
|
│
|
||||||
├── SenseGloveTracking (provides XR_EXT_hand_tracking support, HMD auto-detection, and SenseGlove device tracking)
|
├── SenseGloveTracking (provides XR_EXT_hand_tracking support, HMD auto-detection, and SenseGlove device tracking)
|
||||||
│
|
│
|
||||||
├── SenseGloveTrackingKismet (exposes Blueprints-specific functionality from the SenseGloveTracking module)
|
├── SenseGloveTrackingKismet (exposes Blueprint-specific functionality from the SenseGloveTracking module)
|
||||||
│
|
│
|
||||||
├── SenseGloveTypes (exposes various enums from the backend libraries and also types from the SenseGlove module)
|
├── SenseGloveTypes (exposes various enums from the backend libraries and also types from the SenseGlove module)
|
||||||
│
|
│
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
- [ ] Get tracking input from sources other than a SenseGlove device.
|
- [ ] Get tracking input from sources other than a SenseGlove device.
|
||||||
- [ ] Be able to assign behaviors to different objects (meshes) in the scene (e.g. Slider, Hinge, basic Grabables, etc).
|
- [ ] Be able to assign behaviors to different objects (meshes) in the scene (e.g. Slider, Hinge, basic Grabables, etc).
|
||||||
- [ ] Make it so developers can define or extend their own behavior(s) to an object through Code / Blueprints (e.g. I want a car door that is like a slider, but follows a path rather than a straight line).
|
- [ ] Make it so developers can define or extend their own behavior(s) to an object through Code / Blueprint (e.g. I want a car door that is like a slider, but follows a path rather than a straight line).
|
||||||
- [ ] Make the hand(s) able to push around physics-driven objects (for as much as their behaviors allow) (in backlog).
|
- [ ] Make the hand(s) able to push around physics-driven objects (for as much as their behaviors allow) (in backlog).
|
||||||
- [ ] Be able to grab objects with up to 2 hands (and move them around with both hands at the same time in a way that seems realistic).
|
- [ ] Be able to grab objects with up to 2 hands (and move them around with both hands at the same time in a way that seems realistic).
|
||||||
- [ ] Ensure that our virtual hands (and the objects they hold) do not phase through other physics objects (e.g. walls and tables).
|
- [ ] Ensure that our virtual hands (and the objects they hold) do not phase through other physics objects (e.g. walls and tables).
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
| | **Windows (MSVC 2017)** | **Windows (MSVC 2019)** | **Windows (MSVC 2022)** | **Linux x86-64 (Native Toolchain)** | **Linux AArch64 (Native Toolchain)** | **Meta Quest Stand-alone (Android NDK)** | **HTC VIVE Stand-alone (Android NDK)** | **UE Marketplace Version** | **Azure DevOps Version** |
|
| | **Windows (MSVC 2017)** | **Windows (MSVC 2019)** | **Windows (MSVC 2022)** | **Linux x86-64 (Native Toolchain)** | **Linux AArch64 (Native Toolchain)** | **Meta Quest Stand-alone (Android NDK)** | **HTC VIVE Stand-alone (Android NDK)** | **UE Marketplace Version** | **Azure DevOps Version** |
|
||||||
|:--------:|:-----------------------:|:-----------------------:|:-----------------------:|:-----------------------------------:|:------------------------------------:|:----------------------------------------:|:--------------------------------------:|:--------------------------:|:------------------------:|
|
|:--------:|:-----------------------:|:-----------------------:|:-----------------------:|:-----------------------------------:|:------------------------------------:|:----------------------------------------:|:--------------------------------------:|:--------------------------:|:------------------------:|
|
||||||
| **5.4** | ❌ | ❌ | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x (r25b) | ❓ | ✅ v2.1.0 | ✅ v2.1.0 |
|
| **5.4** | ❌ | ❌ | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x (r25b) | ❓ | ✅ v2.1.1 | ✅ v2.1.1 |
|
||||||
| **5.3** | ❌ | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x (r25b) | ❓ | ✅ v2.1.0 | ✅ v2.1.0 |
|
| **5.3** | ❌ | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x (r25b) | ❓ | ✅ v2.1.1 | ✅ v2.1.1 |
|
||||||
| **5.2** | ❌ | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x (r25b) | ❓ | ✅ v2.1.0 | ✅ v2.1.0 |
|
| **5.2** | ❌ | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x | ✅ v2.1.x (r25b) | ❓ | ✅ v2.1.1 | ✅ v2.1.1 |
|
||||||
| **5.1** | ❌ | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x (r25b) | ❓ | ⚠️ v2.0.1 | ⚠️ v2.0.2 |
|
| **5.1** | ❌ | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x (r25b) | ❓ | ⚠️ v2.0.1 | ⚠️ v2.0.2 |
|
||||||
| **5.0** | ❌ | ⚠️ v1.6.x | ⚠️ v1.6.x | ⚠️ v1.6.x | ⚠️ v1.6.x | ⚠️ v1.6.x (r21e) | ❓ | ⚠️ v1.6.1 | ⚠️ v1.6.1 |
|
| **5.0** | ❌ | ⚠️ v1.6.x | ⚠️ v1.6.x | ⚠️ v1.6.x | ⚠️ v1.6.x | ⚠️ v1.6.x (r21e) | ❓ | ⚠️ v1.6.1 | ⚠️ v1.6.1 |
|
||||||
| **4.27** | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x (r21e) | ❓ | ⚠️ v1.3.1 | ⚠️ v1.4.3 |
|
| **4.27** | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x | ⚠️ v1.4.x (r21e) | ❓ | ⚠️ v1.3.1 | ⚠️ v1.4.3 |
|
||||||
|
|||||||
@@ -66,14 +66,14 @@ For users familiar with the basics, this section explores advanced features of t
|
|||||||
- [Safe Glove Access in Blueprint](../advanced-topics/safe-glove-access-blueprint/)
|
- [Safe Glove Access in Blueprint](../advanced-topics/safe-glove-access-blueprint/)
|
||||||
- [OpenXR](../advanced-topics/openxr/)
|
- [OpenXR](../advanced-topics/openxr/)
|
||||||
- [Consuming FXRMotionControllerData](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/)
|
- [Consuming FXRMotionControllerData](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/)
|
||||||
- [Blueprints](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md)
|
- [Blueprint](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md)
|
||||||
- [C++](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md)
|
- [C++](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md)
|
||||||
|
|
||||||
## 🔌 Low-Level API
|
## 🔌 Low-Level API
|
||||||
|
|
||||||
This section delves into the SenseGlove low-level API:
|
This section delves into the SenseGlove low-level API:
|
||||||
|
|
||||||
- [Low-Level Blueprints API](../low-level-api/blueprint.md)
|
- [Low-Level Blueprint API](../low-level-api/blueprint.md)
|
||||||
- [Low-Level C++ API](../low-level-api/cpp.md)
|
- [Low-Level C++ API](../low-level-api/cpp.md)
|
||||||
|
|
||||||
## 📑 Appendix
|
## 📑 Appendix
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"FileVersion": 3,
|
"FileVersion": 3,
|
||||||
"Version": 1,
|
"Version": 1,
|
||||||
"VersionName": "2.1.0",
|
"VersionName": "2.1.1",
|
||||||
"FriendlyName": "SenseGlove",
|
"FriendlyName": "SenseGlove",
|
||||||
"Description": "Integrating the SenseGlove haptic controller into Unreal Engine",
|
"Description": "Integrating the SenseGlove haptic controller into Unreal Engine",
|
||||||
"Category": "Virtual Reality",
|
"Category": "Virtual Reality",
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user