commit 10fb726d0def26593ee33058a878734290128c6f Author: Mamadou Babaei Date: Wed Aug 14 10:39:05 2024 +0200 initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a53e39d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,37 @@ +# Keep CRLF out of the repository +* text=auto eol=lf + +# Always keep config files (even the empty ones under Git, not LFS) +Config/* filter= diff= merge= text + +# In case the git binary/text auto-detection algorithm fails, in order to avoid +# line-ending normalization, treat these files as binary no matter what +*.{uasset,umap,3ds,fbx,flac,gif,jif,jiff,jpe,jpeg,jpg,m4a,mp3,mp4,ogg,png,psd,ttf,wav,webp,xcf} binary + +# LFS: UE4 file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text + +# LFS: raw content types +*.3ds filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.flac filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.jif filter=lfs diff=lfs merge=lfs -text +*.jiff filter=lfs diff=lfs merge=lfs -text +*.jpe filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.m4a filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.webp filter=lfs diff=lfs merge=lfs -text +*.xcf filter=lfs diff=lfs merge=lfs -text + +# LFS: everything under Content/ +Content/**/* filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..570852e --- /dev/null +++ b/.gitignore @@ -0,0 +1,125 @@ +# Explcitly ignore annoying Windows files, regardless of where they are +[Dd]esktop.ini +Thumbs.db + +# Explcitly ignore annoying macOS files, regardless of where they are +.DS_Store + +# Makefile; only in the project root +/Makefile + +# CMake; only in the project root +/CMakeLists.txt + +# QMake / Qt Creator +*.pro +*Config.pri +*Defines.pri +*Header.pri +*Includes.pri +*Source.pri +.qmake.stash +*.autosave +*.pro.user +*.pro.user.* +CMakeLists.txt.user +CMakeLists.txt.user.* + +# Visual Studio +.vs/ +.vsconfig +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb + +# Visual Studio Code +.vscode/ +*.code-workspace + +# Code::Blocks +*.workspace + +# CodeLite +*CodeLitePreProcessor.txt + +# KDevelop +.kdev4/ +*.kdev4 + +# CLion +*CodeCompletionFolders.txt + +# IntelliJ IDE +.idea/ + +# Xcode +*.xcodeproj +*.xcworkspace + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +*.ipa + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* +Plugins/*/Binaries/* + +# Builds +Build/* + +# Whitelist PakBlacklist-.txt files +!Build/*/ +Build/*/** +!Build/*/PakBlacklist*.txt + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* +Plugins/*/Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* + +# Misc +.ignore diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..4492ca8 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,23 @@ +``` +MIT License + +Copyright (c) 2020 - 2024 SenseGlove + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..028bec1 --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# SGBasicDemo OpenXR + +A basic OpenXR-compatible Blueprint demo demonstrating basic functionality such as grab/release, touch with buzz and force-feedback, etc using [the SenseGlove Unreal Engine Plugin](https://www.unrealengine.com/marketplace/en-US/product/the-senseglove-unreal-engine-plugin). + +## Compatibility + +This demo is based on the [SGBasicDemo](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo) example scene. It has been upgraded to be compatible with the SenseGlove Unreal Engine Plugin `+v2.1.0`. + +It's compatible with Unreal Engine `5.2+` and relies on the new experimental HMD-auto-detection for detecting the wrist tracker hardware. Thus, no more per HMD branches are provided. By default, all Android deployment settings have been configured to be compatible with Meta Quest devices (2, Pro, and 3). + +## Video Tutorials and Documentation + +There is [a video tutorial on how to create this demo from scratch (originally created for Unreal Engine `5.2` and the SenseGlove Unreal Engine Plugin `v1.x.x`)](https://youtu.be/jN4VcfXVrTA) available on [the SenseGlove YouTube channel](https://www.youtube.com/@senseglove4021). + +Over time, other relevant tutorials based on this demo have been released. The tutorials based on this demo are as follows (all of which, except the last one, were originally created for Unreal Engine `5.2` and the SenseGlove Unreal Engine Plugin `v1.x.x`): + +- [Setting up Grabbing and Haptic Feedback functionalities (SGBasicDemo)](https://youtu.be/jN4VcfXVrTA) +- [Setting up VIVE Pro & VIVE Trackers in Unreal Engine](https://youtu.be/jvFDNdq_4xQ) +- [Setting up VIVE Focus 3 & VIVE Wrist Trackers in Unreal Engine](https://youtu.be/SGmQevkzsY4) +- [SGBasicDemo: setup throwing objects and physics settings for the real and virtual hands](https://youtu.be/K9Qr_LqgTcY) +- [SGBasicDemo v2: upgrading your projects to the SenseGlove Unreal Engine Plugin v2.0.0](https://youtu.be/VbWfoep-Hsg) + +__NOTE__: We won't provide a video tutorial on how to upgrade the SGBasicDemo to `v2.1.x` version of the SenseGlove Unreal Engine Plugin, but [the SenseGlove Unreal Engine Handbook](https://unreal.docs.senseglove.com/) provides an [upgrade guide to `v2.1.x`](https://unreal.docs.senseglove.com/2.1/misc/upgrade-guide). + +## How to checkout + +The most straightforward way to download this project is to click on the kebab menu (three vertical dots) located at the top-right of the screen and choose Download as Zip to obtain the source code for that branch or tag. + +__NOTE__: Unlike [the original SGBasicDemo](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo) this repository is fully self-contained and ships a compatible version of the SenseGlove Unreal Engine Plugin with itself without relying on Git Submodules. So, once you download it using the kebab menu you can simply start using the project without the extra work of obtaining the plugin separately. So, no need to go through any of [Plugin Installation through the Epic Games Launcher](https://unreal.docs.senseglove.com/2.1/getting-started/installation/epic-games-launcher.html) or [Plugin Installation through Microsoft Azure DevOps Repositories](https://unreal.docs.senseglove.com/2.1/getting-started/installation/microsoft-azure-devops-repositories.html) processes. + +## License + +``` +MIT License + +Copyright (c) 2020 - 2024 SenseGlove + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +```