diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 4939d95..179fa3a 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -98,3 +98,12 @@ ConnectionType=USBOnly bUseManualIPAddress=False ManualIPAddress= +[/Script/OculusXRHMD.OculusXRHMDRuntimeSettings] +bSupportHandTracking=True +HandTrackingSupport=ControllersAndHands +HandTrackingFrequency=High +HandTrackingVersion=V2 + +[/Script/OpenXRSettings.OpenXRSettings] +bEnableHandTracking=True + diff --git a/Plugins/MosisSDK/README.md b/Plugins/MosisSDK/README.md index dc9e672..fe288bf 100644 --- a/Plugins/MosisSDK/README.md +++ b/Plugins/MosisSDK/README.md @@ -279,11 +279,31 @@ else if (!TriggerPressed && WasTriggerPressed) ## Device Testing +### Installation + +The Android build produces both an APK and an OBB file. **Both must be deployed for each build**: + ```batch -:: Install both apps -adb install -r path\to\MosisService.apk +:: Install APK adb install -r Binaries\Android\MosisUnreal-arm64.apk +:: Create OBB directory and push OBB file +adb shell mkdir -p /sdcard/Android/obb/com.omixlab.MosisUnreal +adb push Binaries\Android\main.1.com.omixlab.MosisUnreal.obb /sdcard/Android/obb/com.omixlab.MosisUnreal/ + +:: Install MosisService +adb install -r path\to\MosisService.apk +``` + +Alternatively, use the generated install script: +```batch +cd Binaries\Android +Install_MosisUnreal-arm64.bat +``` + +### Launching + +```batch :: Launch service first adb shell am start -n com.omixlab.mosis/.MainActivity @@ -291,7 +311,44 @@ adb shell am start -n com.omixlab.mosis/.MainActivity adb shell am start -n com.omixlab.MosisUnreal/com.epicgames.unreal.GameActivity :: Monitor logs -adb logcat -s MosisSDK MosisTest RMLUI +adb logcat -s MosisSDK MosisTest RMLUI LogMosisClient LogMosisSDK +``` + +### Expected Log Output + +Successful connection shows: +``` +LogMosisSDK: serviceConnected callback received +LogMosisClient: onServiceInitialized: true +LogMosisClient: Create: initOS returned true +LogMosisSDK: serviceConnected: MosisClient created successfully +LogMosisClient: onBufferAvailable: 540x960, format=1 +LogMosisSDK: Buffer callback: buffer=0x... +``` + +## Meta Quest Configuration + +### Hand Tracking Support + +The plugin includes hand tracking support to allow launching on Quest devices without controllers. This is configured in `MosisSDK_UPL.xml`: + +```xml + + +``` + +**Note**: Uses `horizonos.permission.HAND_TRACKING` (not the deprecated `com.oculus.permission.HAND_TRACKING`). + +### OculusXR Settings + +Hand tracking is also enabled in `DefaultEngine.ini`: + +```ini +[/Script/OculusXRHMD.OculusXRHMDRuntimeSettings] +bSupportHandTracking=True +HandTrackingSupport=ControllersAndHands +HandTrackingFrequency=High +HandTrackingVersion=V2 ``` ## Version History diff --git a/Plugins/MosisSDK/Source/MosisSDK/MosisSDK_UPL.xml b/Plugins/MosisSDK/Source/MosisSDK/MosisSDK_UPL.xml index f4ff1e1..ca73a08 100644 --- a/Plugins/MosisSDK/Source/MosisSDK/MosisSDK_UPL.xml +++ b/Plugins/MosisSDK/Source/MosisSDK/MosisSDK_UPL.xml @@ -5,6 +5,8 @@ + +