Jump to content

Johnson_Wu

Verified Members
  • Posts

    16
  • Joined

  • Last visited

Reputation

6 Neutral

Recent Profile Visitors

113 profile views
  1. Hi @Elysia I checked the logs and they all crashed at "No implementation found for void com.htc.vr.unreal.ResourceWrapper.initNative()" I found lots of logs had been suppressed, could you directly launch your content by QUICK LAUNCH like below And share the files under C:\Users\<Your Account>\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+Program+Files+Epic+Games+UE_5.2 after the app crash with us for more check. Or, share the app you packaged. Thanks a lot!
  2. Hi @Elysia First, for the crash while launching app, please make sure the Support Vulkan in project settings is disabled. And could you share the crash log with us to check? Thanks! I recommend you to get started from Virtual Reality Template Map to align the project settings for VR. And follow the documentation to set the project. https://hub.vive.com/storage/docs/en-us/UnrealPlugin/UnrealPluginGettingStart.html BR, Johnson
  3. Hi @rio_nkwt, Here is our ViveOpenXR tutorial for Hand Tracking https://developer.vive.com/resources/openxr/unreal/unreal-tutorials/handtracking/. Will you ever package ViveOpenXRGame/Content/HandTracking/Map/HandTrackingMap.umap, install and play it on Focus3? If you would like to use Vive Business Streaming(VBS) feature, please refer to the documentation https://business.vive.com/us/support/vbs/category_howto/vive-business-streaming.html 1. After you install the VIVE Business Streaming application on PC. Update the server application and android client app by clicking the two buttons below (in the red circle). 2. Launch the VIVE Business app in Focus3. 3. Click VR Preview to play. 4. Then you can see the hand tracking model. BR
  4. Hi @nande, Unfortunately, WaveVR SDK only supports "Wave (L) Trigger Press" which is mapping to "R" on the keyboard and "Wave (R) Trigger Press" to "T" on the keyboard. You can follow the steps below to make it: 1. Added Wave (L) Trigger Press and the R one in your "Input Mapping Context" 2. Added Mapping Context 3. Then use Enhanced Input Action to receive key events. BR
  5. Hi @VRDeveloper2219, We have supported the Simultaneous Interaction on ViveOpenXR 2.2.0, you can refer https://developer.vive.com/resources/openxr/unreal/unreal-tutorials/handtracking/ for more details. Does the feature meet your expectations? BR, Johnson
  6. Hi @UnendlicheMoeglichkeiten, Here comes the solution for quick support by following the code snippet to modify WaveVR SDK. You can use GetHMDWornState after doing so. We will support the function in the next release. You need to modify the following four files and put the attached file ProximitySensorEventListener.java under Plugins\WaveVR\Source\WaveVR\java\com\htc\vr\unreal modified: plugin/Plugins/WaveVR/Source/WaveVR/Private/Platforms/Android/JNI.cpp modified: plugin/Plugins/WaveVR/Source/WaveVR/Private/WaveVRHMD.cpp modified: plugin/Plugins/WaveVR/Source/WaveVR/Private/WaveVRHMD.h modified: plugin/Plugins/WaveVR/Source/WaveVR/WaveVR_UPL.xml prerequisite: The project should be a C++ project Here are the steps: 1. Put the attached file ProximitySensorEventListener.java under Plugins\WaveVR\Source\WaveVR\java\com\htc\vr\unreal 2. modified: plugin/Plugins/WaveVR/Source/WaveVR/Private/Platforms/Android/JNI.cpp // conditions signed by you and all SDK and API requirements, // specifications, and documentation provided by HTC to You." +#include "HeadMountedDisplayTypes.h" + #if PLATFORM_ANDROID #include "RequestResultObject.h" #include "RequestUsbResultObject.h" @@ -231,4 +233,8 @@ extern "C" void Java_com_htc_vr_unreal_VRTransitionBroadcastReceiver_StateOnRece FWaveVRHMD::SetVRTransitionState(state); } +extern "C" void Java_com_htc_vr_unreal_ProximitySensorEventListener_OnHMDWornStateChanged(JNIEnv* LocalJNIEnv, jobject LocalThiz, jboolean isWearing) { + (isWearing) ? FWaveVRHMD::SetHMDWornState(EHMDWornState::Worn) : FWaveVRHMD::SetHMDWornState(EHMDWornState::NotWorn); +} + #endif // PLATFORM_ANDROID 3. plugin/Plugins/WaveVR/Source/WaveVR/Private/WaveVRHMD.h @@ -131,6 +131,7 @@ public: virtual void RecordAnalytics() override { LOG_FUNC(); FHeadMountedDisplayBase::RecordAnalytics(); } virtual bool IsRenderingPaused() const override { LOG_FUNC(); return IHeadMountedDisplay::IsRenderingPaused();/*false*/ } virtual void SetClippingPlanes(float NCP, float FCP) override; + virtual EHMDWornState::Type GetHMDWornState() override { return HMDWornState; } /** IHeadMountedDisplay interface not used*/ virtual void EnableHMD(bool allow = true) override; @@ -156,7 +157,6 @@ public: virtual const float* GetBlueDistortionParameters() const override { LOG_FUNC(); return nullptr; } virtual bool DoesAppUseVRFocus() const override { LOG_FUNC(); return IHeadMountedDisplay::DoesAppUseVRFocus(); } virtual bool DoesAppHaveVRFocus() const override { LOG_FUNC(); return IHeadMountedDisplay::DoesAppHaveVRFocus(); } - virtual EHMDWornState::Type GetHMDWornState() override { return EHMDWornState::Unknown; } //** FHeadMountedDisplayBase interface */ virtual bool PopulateAnalyticsAttributes(TArray<struct FAnalyticsEventAttribute>& EventAttributes) override { LOG_FUNC(); return FHeadMountedDisplayBase::PopulateAnalyticsAttributes(EventAttributes);} @@ -562,6 +562,7 @@ public: static void SetVRTransitionState(bool state); bool IsVRTransitionShowing(); void SetFrameSharpnessEnhancementLevel(float level); + static void SetHMDWornState(EHMDWornState::Type state) { LOG_FUNC(); HMDWornState = state; } private: bool bHmdEnabled; @@ -606,6 +607,8 @@ private: static bool bVRTransitionIsShowning; static bool bIsVRTransitionInUse; //Focus3 and later. + static EHMDWornState::Type HMDWornState; + TArray<FTransform> PoseModeOffsets; uint8_t CachedPoseModes[2] = { 0 }; 4. plugin/Plugins/WaveVR/Source/WaveVR/Private/WaveVRHMD.cpp @@ -2367,3 +2367,5 @@ void FWaveVRHMD::SetFrameSharpnessEnhancementLevel(float level) LOG_FUNC(); mRender.SetFrameSharpnessEnhancementLevel(level); } + +EHMDWornState::Type FWaveVRHMD::HMDWornState = EHMDWornState::Unknown; 5. modified: plugin/Plugins/WaveVR/Source/WaveVR/WaveVR_UPL.xml @@ -163,6 +163,7 @@ import com.htc.vr.unreal.OEMConfig; import com.htc.vr.unreal.SoftwareIpd; import com.htc.vr.unreal.VRTransitionBroadcastReceiver; + import com.htc.vr.unreal.ProximitySensorEventListener; </insert> </gameActivityImportAdditions> @@ -180,6 +181,8 @@ private PermissionCallback mPermissionCallback = null; private OEMConfig mOEMConfig = null; private VRTransitionBroadcastReceiver mVRTransitionBR = null; + private Sensor mProximity = null; + private ProximitySensorEventListener mProximitySensorEventListener = null; ///@Override ///public void setRequestedOrientation(int requestedOrientation) { @@ -289,6 +292,9 @@ mOEMConfig.setDelegate(mVRActivityDelegate); mVRTransitionBR = VRTransitionBroadcastReceiver.getInstance(); + + mProximity = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); + mProximitySensorEventListener = new ProximitySensorEventListener(); </insert> </gameActivityOnCreateAdditions> @@ -348,6 +354,12 @@ mVRActivityDelegate.onPause(); <!--for Permission Manager--> mPM.onPauseAndReturnFail(); + + if (mProximitySensorEventListener != null) + { + sensorManager.unregisterListener(mProximitySensorEventListener); + } + if (isFinishing()) { Log.debug("Activity isFinishing()!"); } @@ -360,6 +372,12 @@ Log.debug("[WaveVR_UPL Additions] onResume()!"); mOEMConfig.onResume(); mVRActivityDelegate.onResume(); + + if (mProximity != null &amp;&amp; mProximitySensorEventListener != null) + { + sensorManager.registerListener(mProximitySensorEventListener, mProximity, SensorManager.SENSOR_DELAY_NORMAL); + } + <!--for Permission Manager--> mPM.onResume(); <!--Workaround to prevent restarting application.--> 6. Rebuild the Development Editor, the GetHMDWornState will take effect. ProximitySensorEventListener.java
  7. Hi @UnendlicheMoeglichkeiten, As I know, the two events WVR_EventType_RenderingToBeResumed and WVR_EventType_RenderingToBePaused had already not been sent anymore because the rendering behavior was changing(the rendering process will not been Resumed or Paused). That is to say, the solution in Unity above does not work now,too. The alternative way for Unity is to listen ProximitySensor which is implement by Andoird API directly. But Unreal Engine does not have the same feature(API) like that, so we need to listen the event by Android API and JNI. The solution is ongoing, I will share the code snippet by next Monday.
  8. Hi @NikitaAksenov, Glad you found the solution and thanks for your code snippet feedback. The reason why the HMD is always enabled is that because WaveVR is only for a standalone device, we will not check if the headset is connecting to PC or not. And we assume there is no other VR plugin that was enabled. Again, thanks a lot!
  9. HI @AKATheBoss, 1. The WaveVR has no plan for supporting UE5.3 yet. The alternative way is to consider our vive openxr SDK https://developer.vive.com/resources/openxr/unreal/unreal-overview/, you can check the features to see if they meet your need first. (Note that the project settings are different from WaveVR) 2. For the crash problem, could you share your log with us to check further. Here are the steps: 1) Make sure the device is connected to PC with USB. (Open Powershell and input "adb devices" to check. 2) Start logging by "adb logcat > log.log" on PC side. 3) Launch the app in HMD (Focus3 headset) 4) "Ctrl + C" to stop logging. 5) The log.log is what we need. Thanks a lot!
  10. Hi @NikitaAksenov, May I know 1. The WaveVR version you are using? 2. The details of how you disable HMD? And please share your log when you encounter the symptom "no image" with us. Thanks!
  11. Hi @Flaxias, Have you ever tried this: Based on the Virtual Reality project of Unreal Engine to align project settings. Import and enable the WaveVR plugin. Then keep both the Instanced Stereo and the Mobile Multi-View ENABLED. Enlarge the New Viewport Resolution: Navigate to Editor -> Editor Preference -> Level Editor -> Play -> Game Viewport Settings -> New Viewport Resolution Select a large resolution (might be 27” monitor for example) BR, Johnson
  12. Hi @Brian-HTX, please update the system ROM and try to launch the app again. If the problem you encountered still exists, please inform us System Version of your device and the log during launching app. ($adb logcat) Thanks!
  13. Hi @Mike12345, because the ViveOpenXR plugin highly depends on the ROM runtime, please update your ROM (Navigate to Settings > General > System update in the launcher) then try. If the issue still exists, please inform us what the System Version of your device is. (Navigate to Settings > General > About > System version). The problem has been fixed since version number 1.0.999.372 on VIVE XR Elite. For VIVE Focus 3, the crash problem will be fixed in the next FOTA (greater than 5.0.999.820). Thanks!
×
×
  • Create New...