Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6bd971bc8
|
||
|
|
3088a60d5a
|
||
|
|
e22625ae34
|
||
|
|
30720e5bd5
|
||
|
|
a2b8e186b5
|
||
|
|
882665e386
|
||
|
|
265759e080
|
||
|
|
cac1c475dc
|
||
|
|
8478b7caf8
|
||
|
|
6b2e5dbcf7
|
||
|
|
ae81b15c91
|
||
|
|
5a8feb24ac
|
||
|
|
418133432f
|
||
|
|
0d5c2ee04e
|
||
|
|
edad54bd36
|
||
|
|
bed8269eba
|
||
|
|
598b0942e4
|
+36
-17
@@ -5,20 +5,39 @@ 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/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [v1.4.1] - 2023-05-29
|
||||
## [1.4.3] - 2023-06-01
|
||||
|
||||
This is a bugfix release with focus Android build issues.
|
||||
This is a hotfix release addressing a critical Android crash.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix an android gradle build issue which happens when the games package name won't start with com.senseglove.*.
|
||||
- Supress a grade warning for non-arm64 archs when the build target is android.
|
||||
- Fix a critical Android crash that happens where the default development hand meshes are not found, which means almost always since we don't ship any default virtual hand mesh at the moment.
|
||||
- Minor changelog release formatting fix in order to stay consistent.
|
||||
|
||||
## [1.4.2] - 2023-06-01
|
||||
|
||||
This is a hotfix release addressing a few critical issues.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix build issues with certain compilers when the Unreal Engine version is older than 5.2.
|
||||
- Reintroduced the Virtual Hand and the Wrist Tracker debug gizmos which have temporarily been disabled due to a bug in the settings system.
|
||||
- Some minor changelog fixes.
|
||||
|
||||
## [1.4.1] - 2023-05-29
|
||||
|
||||
This is a bugfix release with a focus on Android build issues.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix an Android Gradle build issue that happens when the game's package name won't start with com.senseglove.*.
|
||||
- Suppress a grade warning for non-arm64 architectures when the build target is Android.
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove dead gradle code from the android module.
|
||||
- Remove dead Gradle code from the Android module.
|
||||
|
||||
## [v1.4.0] - 2023-05-19
|
||||
## [1.4.0] - 2023-05-19
|
||||
|
||||
This release breaks ABI/API compatibility with the previous versions.
|
||||
|
||||
@@ -27,7 +46,7 @@ This release breaks ABI/API compatibility with the previous versions.
|
||||
- Added support for the stable release of Unreal Engine 5.2 (the preview release has been supported since v1.2.0).
|
||||
- Added Linux AArch64 platform support.
|
||||
- Added a new Grab component that can turn any actor into a grabbable object.
|
||||
- Added a new Touch component that enables haptic feedbacks such as Buzz and Force-Feedback commands.
|
||||
- Added a new Touch component that enables haptic feedback such as Buzz and Force-Feedback commands.
|
||||
- Added an optional feature in order to automatically stop all haptics on the EndPlay event, wherever the virtual hand component is used. By default, it's enabled.
|
||||
|
||||
### Fixed
|
||||
@@ -37,7 +56,7 @@ This release breaks ABI/API compatibility with the previous versions.
|
||||
### Changed
|
||||
|
||||
- SenseGlove libraries have been updated to v2.7.1-965f90c with support for Linux AArch64.
|
||||
- The Virtual Hand and the Wrist Tracker debug Gizmos (the intended use is only for SenseGlove developers for really low-level stuff; thus won't affect the users of the plugin at all) have been disabled and will be ignored due to an esoteric bug in the settings systems which has been scheduled to be fixed in the future releases.
|
||||
- The Virtual Hand and the Wrist Tracker debug gizmos (the intended use is only for SenseGlove developers for really low-level stuff; thus won't affect the users of the plugin at all) have been disabled and will be ignored due to an esoteric bug in the settings systems which has been scheduled to be fixed in the future releases.
|
||||
|
||||
### Removed
|
||||
|
||||
@@ -45,16 +64,16 @@ This release breaks ABI/API compatibility with the previous versions.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- This is the last release to support Unreal Engine 4.27 and please keep in mind that the current release is not obtainable through the Unreal Engine Markplace. The latest published version on the Marketplace for 4.27 is v1.3.1. Per Epic's Marketplace policy regarding Code Plugins, we are only able to distribute or update the SenseGlove plugin for the last 3 stable versions of Unreal Engine. As a result, we won't be able to publish updates or bug fixes for the older versions of the Engine except on rare occasions and only through our official repository on Microsoft Azure DevOps.
|
||||
- This is the last release to support Unreal Engine 4.27 and please keep in mind that the current release is not obtainable through the Unreal Engine Marketplace. The latest published version on the Marketplace for 4.27 is v1.3.1. Per Epic's Marketplace policy regarding Code Plugins, we are only able to distribute or update the SenseGlove plugin for the last 3 stable versions of Unreal Engine. As a result, we won't be able to publish updates or bug fixes for the older versions of the Engine except on rare occasions and only through our official repository on Microsoft Azure DevOps.
|
||||
|
||||
## [v1.3.1] - 2023-04-28
|
||||
## [1.3.1] - 2023-04-28
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix RunUAT build issues caused by missing headers.
|
||||
- Minor documentation fixes.
|
||||
|
||||
## [v1.3.0] - 2023-04-28
|
||||
## [1.3.0] - 2023-04-28
|
||||
|
||||
This release breaks ABI/API compatibility with the previous versions in addition to breaking coordinates systems conversions between Unreal Engine and the SenseGlove libraries.
|
||||
|
||||
@@ -65,7 +84,7 @@ This release breaks ABI/API compatibility with the previous versions in addition
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix the wrist tracker miscalculations for the Quest 2 controllers (other headsets might needs fixing as well, in that case future releases will address that).
|
||||
- Fix the wrist tracker miscalculations for the Quest 2 controllers (other headsets might need fixing as well, in that case, future releases will address that).
|
||||
- Minor code improvement and fixes.
|
||||
- Minor documentation fixes.
|
||||
|
||||
@@ -75,13 +94,13 @@ This release breaks ABI/API compatibility with the previous versions in addition
|
||||
- Breaking changes in the SenseGlove/Unreal coordinates systems conversions due to underlying changes in the SenseGlove Core Libraries.
|
||||
- SenseGlove libraries have been updated to v2.6.0-aac3d56.
|
||||
|
||||
## [v1.2.1] - 2023-03-30
|
||||
## [1.2.1] - 2023-03-30
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix RunUAT build issues with Android.
|
||||
|
||||
## [v1.2.0] - 2023-03-28
|
||||
## [1.2.0] - 2023-03-28
|
||||
|
||||
This release breaks ABI/API compatibility with the previous versions.
|
||||
|
||||
@@ -105,7 +124,7 @@ This release breaks ABI/API compatibility with the previous versions.
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed a few thousands lines of archaic pre-public-release dead code.
|
||||
- Removed a few thousand lines of archaic pre-public-release dead code.
|
||||
- Dropped Android NDK r21b binaries used by the older engine versions.
|
||||
- Purged the dead code for dropped engine versions by v1.1.1 (4.22, 4.23, 4.24, 4.25, and 4.26) that carried over to the current version.
|
||||
- Removed redundant SGConnectImpl/SGPlatform.
|
||||
@@ -137,7 +156,7 @@ This release breaks ABI/API compatibility with the previous versions.
|
||||
|
||||
- Whitelist Android as a target platform.
|
||||
- Introduce Android support.
|
||||
- Add third-pary library SGConnect for Android v1.1.0.
|
||||
- Add third-party library SGConnect for Android v1.1.0.
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -179,7 +198,7 @@ This is a minor release focusing on adherence to the Unreal Engine Marketplace G
|
||||
### Added
|
||||
|
||||
- Added the newly acquired Unreal Engine Market Place Offer ID to the .uplugin file.
|
||||
- List the dot files inside FilterPlugin.ini file as well.
|
||||
- List the dotfiles inside the FilterPlugin.ini file as well.
|
||||
- Add the copyright notice to the source files missing it.
|
||||
- Add the SenseGlove SDK license to the third-party license file.
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@ This repository relies on Git LFS for storing binary blobs (e.g. third-party lib
|
||||
| **4.24** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ | ❌ | ⚠️ v1.0.4 |
|
||||
| **4.25** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ | ❌ | ⚠️ v1.0.4 |
|
||||
| **4.26** | ⚠️ v1.0.x | ⚠️ v1.0.x | ❌ | ⚠️ v1.0.x | ❌ | ❌ | ❌ | ⚠️ v1.0.4 |
|
||||
| **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.1 |
|
||||
| **5.0** | ❌ | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x (r21e) | ✅ v1.4.1 | ✅ v1.4.1 |
|
||||
| **5.1** | ❌ | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x (r25b) | ✅ v1.4.1 | ✅ v1.4.1 |
|
||||
| **5.2** | ❌ | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x (r25b) | ✅ v1.4.1 | ✅ v1.4.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 |
|
||||
| **5.0** | ❌ | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x (r21e) | ✅ v1.4.3 | ✅ v1.4.3 |
|
||||
| **5.1** | ❌ | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x (r25b) | ✅ v1.4.3 | ✅ v1.4.3 |
|
||||
| **5.2** | ❌ | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x | ✅ v1.4.x (r25b) | ✅ v1.4.3 | ✅ v1.4.3 |
|
||||
|
||||
* <code>✅</code> Supported
|
||||
* <code>⚠️</code> Not supported by the latest release and might be lacking features
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"Version": 1,
|
||||
"VersionName": "1.4.1",
|
||||
"VersionName": "1.4.3",
|
||||
"FriendlyName": "SenseGlove",
|
||||
"Description": "Integrating the SenseGlove haptic controller into Unreal Engine",
|
||||
"Category": "Virtual Reality",
|
||||
|
||||
@@ -114,6 +114,7 @@ struct USGVirtualHandComponent::FImpl
|
||||
bool IsEditor() const;
|
||||
|
||||
FString GetDefaultMeshPath() const;
|
||||
bool IsUsingDefaultMesh() const;
|
||||
bool IsUsingUserMesh() const;
|
||||
USkeletalMesh* LoadDefaultMesh() const;
|
||||
void SetDefaultMesh() const;
|
||||
@@ -514,6 +515,30 @@ FString USGVirtualHandComponent::FImpl::GetDefaultMeshPath() const
|
||||
return MoveTemp(SkeletalMeshPath);
|
||||
}
|
||||
|
||||
bool USGVirtualHandComponent::FImpl::IsUsingDefaultMesh() const
|
||||
{
|
||||
const USkeletalMesh* CurrentMesh{GetMesh()};
|
||||
if (!IsValid(CurrentMesh))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
const FString CurrentMeshPath(CurrentMesh->GetPathName());
|
||||
const FString LeftHandDefaultMeshPath(GetDefaultLeftHandMeshPath());
|
||||
const FString LeftHandDefaultMeshPathOnly(GetDefaultLeftHandMeshPathOnly());
|
||||
const FString RightHandDefaultMeshPath(GetDefaultRightHandMeshPath());
|
||||
const FString RightHandDefaultMeshPathOnly(GetDefaultRightHandMeshPathOnly());
|
||||
if (CurrentMeshPath == LeftHandDefaultMeshPath
|
||||
|| CurrentMeshPath == LeftHandDefaultMeshPathOnly
|
||||
|| CurrentMeshPath == RightHandDefaultMeshPath
|
||||
|| CurrentMeshPath == RightHandDefaultMeshPathOnly)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool USGVirtualHandComponent::FImpl::IsUsingUserMesh() const
|
||||
{
|
||||
const USkeletalMesh* CurrentMesh{GetMesh()};
|
||||
@@ -555,7 +580,14 @@ USkeletalMesh* USGVirtualHandComponent::FImpl::LoadDefaultMesh() const
|
||||
|
||||
void USGVirtualHandComponent::FImpl::SetDefaultMesh() const
|
||||
{
|
||||
Owner->SetSkeletalMesh(LoadDefaultMesh(), true);
|
||||
// FIXME
|
||||
// Since we dont ship a default virtual hand mesh at the moment, calling SetDefaultMesh causes the following failed
|
||||
// assertion due the fact that the engine won't be able to find the asset at the default location:
|
||||
// Assertion failed: IsInGameThread()
|
||||
// Unable to load /SenseGlove/Meshes/SK_SenseGlove_VirtualHand_*. Objects and Packages can only be loaded from the
|
||||
// One workaround would be disabling the async loading or as an alternative simply disabling this portion of the
|
||||
// code should be a good-enough fix until we address this issue in it's own time.
|
||||
//Owner->SetSkeletalMesh(LoadDefaultMesh(), true);
|
||||
}
|
||||
|
||||
USkeletalMesh* USGVirtualHandComponent::FImpl::GetMesh() const
|
||||
@@ -752,11 +784,8 @@ void USGVirtualHandComponent::FImpl::DrawDebugVirtualHand() const
|
||||
const TArray<TArray<FVector>>& JointPositions{HandPose->GetJointPositions()};
|
||||
const TArray<TArray<FRotator>>& JointRotations{HandPose->GetJointRotations()};
|
||||
|
||||
/// FIXME
|
||||
/// We temporarily ignore the debug settings, as for an esoteric reason it always produces conditions,
|
||||
/// in which the debug gizmo will be drawn!
|
||||
//FSGDebugVirtualHand::Draw(World, WristLocation, WristRotation, JointPositions, JointRotations,
|
||||
// Owner->DebugVirtualHandSettings);
|
||||
FSGDebugVirtualHand::Draw(World, WristLocation, WristRotation, JointPositions, JointRotations,
|
||||
Owner->DebugVirtualHandSettings);
|
||||
}
|
||||
|
||||
void USGVirtualHandComponent::FImplDeleter::operator()(const FImpl* P) const
|
||||
|
||||
@@ -539,10 +539,7 @@ void USGWristTrackerComponent::FImpl::DrawDebugGizmo()
|
||||
const FRotator& Rotation{Owner->GetComponentRotation()};
|
||||
const FSGDebugGizmoSettings& DebugGizmoSettings{Owner->GetWristTrackerDebugGizmoSettings()};
|
||||
|
||||
/// FIXME
|
||||
/// We temporarily ignore the debug settings, as for an esoteric reason it always produces conditions,
|
||||
/// in which the debug gizmo will be drawn!
|
||||
//FSGDebugGizmo::Draw(World, Location, Rotation, DebugGizmoSettings);
|
||||
FSGDebugGizmo::Draw(World, Location, Rotation, DebugGizmoSettings);
|
||||
}
|
||||
|
||||
void USGWristTrackerComponent::FImplDeleter::operator()(const FImpl* P) const
|
||||
|
||||
@@ -1141,6 +1141,7 @@ void ASGPawn::Grab(USGVirtualHandComponent* Hand, AActor* Actor)
|
||||
Pimpl->DisableActorPhysics(Actor);
|
||||
}
|
||||
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 2
|
||||
const bool bAttached = Actor->AttachToComponent(Hand, MoveTemp(AttachmentRules), SocketName);
|
||||
if (bAttached)
|
||||
{
|
||||
@@ -1150,6 +1151,10 @@ void ASGPawn::Grab(USGVirtualHandComponent* Hand, AActor* Actor)
|
||||
{
|
||||
SGLOG_ERROR("Failed to grab the actor with the left hand!", Actor, SocketName);
|
||||
}
|
||||
#else
|
||||
Actor->AttachToComponent(Hand, MoveTemp(AttachmentRules), SocketName);
|
||||
LeftHandGrabState.GrabbedActor = Actor;
|
||||
#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 2 */
|
||||
}
|
||||
|
||||
void ASGPawn::ReleaseLeft()
|
||||
|
||||
@@ -111,7 +111,7 @@ private:
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
meta=(EditCondition="bDrawWristTrackerDebugGizmo", EditConditionHides))
|
||||
FSGDebugGizmoSettings WristTrackerDebugGizmoSettings;
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user