Compare commits

...
17 Commits
Author SHA1 Message Date
Mamadou Babaei b6bd971bc8 bump the plugin version to v1.4.3 2023-06-01 23:30:20 +02:00
Mamadou Babaei 3088a60d5a update the changelog 2023-06-01 23:30:20 +02:00
Mamadou Babaei e22625ae34 fix a critical Android crash that happens where the default development hand meshes are not found 2023-06-01 23:30:19 +02:00
Mamadou Babaei 30720e5bd5 add a complementary internal method to IsUsingUserMesh, IsUsingDefaultMesh for checking various hand meshes 2023-06-01 23:30:19 +02:00
Mamadou Babaei a2b8e186b5 fix the changelog release formatting and drop the v prefix in the release titles 2023-06-01 23:30:18 +02:00
Mamadou Babaei 882665e386 bump the plugin version to v1.4.2 2023-06-01 21:44:38 +02:00
Mamadou Babaei 265759e080 update the changelog 2023-06-01 21:44:38 +02:00
Mamadou Babaei cac1c475dc fix the changelog typos and errors 2023-06-01 21:44:37 +02:00
Mamadou Babaei 8478b7caf8 minor grammatical fix 2023-06-01 21:44:37 +02:00
Mamadou Babaei 6b2e5dbcf7 update the changelog with unreleased changes 2023-06-01 21:44:37 +02:00
Mamadou Babaei ae81b15c91 fix an edit condition parsing failure that caused a bug in the settings
system where the virtual hand and the wrist tracker debug gizmos where
always drawn, regardless of chosen settings
2023-06-01 21:44:36 +02:00
Mamadou Babaei 5a8feb24ac fix error C2440: 'initializing': cannot convert from 'void' to 'bool' when engine versio is < 5.2 2023-06-01 21:44:36 +02:00
Mamadou Babaei 418133432f fix typos in the changelog 2023-06-01 21:44:35 +02:00
Mamadou Babaei 0d5c2ee04e fix a typo in the changelog 2023-06-01 21:44:35 +02:00
Mamadou Babaei edad54bd36 fix the changelog 2023-06-01 21:44:34 +02:00
Mamadou Babaei bed8269eba fix a typo in the changelog 2023-06-01 21:44:34 +02:00
Mamadou Babaei 598b0942e4 minor fix in the changelog 2023-06-01 21:44:33 +02:00
7 changed files with 83 additions and 33 deletions
+36 -17
View File
@@ -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.
+4 -4
View 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
View File
@@ -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: