homuler / MediaPipeUnityPlugin

Unity plugin to run MediaPipe
MIT License
1.83k stars 466 forks source link

StartSceneError #1273

Open Taiga423 opened 1 week ago

Taiga423 commented 1 week ago

Plugin Version or Commit ID

v0.12

Unity Version

2022.3.6f1

Your Host OS

Ubuntu 24.04 LTS

Target Platform

Android

Description

私は今、ハンドトラッキングを使ったVRゲームを開発しようと考えています。そこでStartSceneでまずきちんと動作するかを確認したが、2つのエラーが発生しました。私の行ったことは、エディターにMediaPipeUnityPlugin-allをインポートし、HierarchyにStartSceneをドラッグし、BuildSettingsにStartSceneを登録しただけです。ユニティを始めたばかりのので、基本的なことを落としているだけかもしれません...Windows11でも試してみましたが、ubuntuと同じ黒い背景に文字が浮かぶだけでした。IMG_3408

Code to Reproduce the issue

MediaPipeException: INTERNAL: ; RET_CHECK failure (external/com_google_mediapipe/mediapipe/gpu/gl_context_egl.cc:301) successeglMakeCurrent() returned error 0x3000 Mediapipe.Status.AssertOk () (at Assets/MediaPipeUnityPlugin-all new12.0/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Framework/Port/Status.cs:149) Mediapipe.Unity.GpuManager+d17.MoveNext () (at Assets/MediaPipeUnityPlugin-all new12.0/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/GpuManager.cs:94) UnityEngine.Logger:LogException(Exception) Mediapipe.Unity.MemoizedLogger:LogException(Exception) (at Assets/MediaPipeUnityPlugin-all new12.0/Assets/MediaPipeUnity/Samples/Common/Scripts/MemoizedLogger.cs:221) Mediapipe.Unity.Logger:LogException(Exception) (at Assets/MediaPipeUnityPlugin-all new12.0/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/Logger.cs:72) Mediapipe.Unity.d17:MoveNext() (at Assets/MediaPipeUnityPlugin-all new12.0/Packages/com.github.homuler.mediapipe/Runtime/Scripts/Unity/GpuManager.cs:110) UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/Coroutines.cs:17)

MediaPipeException: MediaPipe Aborted, refer glog files for more details Mediapipe.MpReturnCodeExtension.Assert (Mediapipe.MpReturnCode code) (at Assets/MediaPipeUnityPlugin-all new12.0/Packages/com.github.homuler.mediapipe/Runtime/Scripts/PInvoke/MpReturnCode.cs:48) Mediapipe.Glog.Initialize (System.String name) (at Assets/MediaPipeUnityPlugin-all new12.0/Packages/com.github.homuler.mediapipe/Runtime/Scripts/External/Glog.cs:78) Mediapipe.Unity.Bootstrap+d__16.MoveNext () (at Assets/MediaPipeUnityPlugin-all new12.0/Assets/MediaPipeUnity/Samples/Common/Scripts/Bootstrap.cs:59) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/Coroutines.cs:17) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) Mediapipe.Unity.Bootstrap:OnEnable() (at Assets/MediaPipeUnityPlugin-all new12.0/Assets/MediaPipeUnity/Samples/Common/Scripts/Bootstrap.cs:36)

Additional Context

初めは文字の列がかなり多かったのですが、アドバイスを受けてBuildSettingsにStartSceneを登録したところ1枚目の画像のようになりました。IMG_3409また、samplesceneのhand tracking単体だとカメラから映像は出力されていましたが、指や関節を認識していることが分かる棒(マーカーと言うのかな?)は出ていませんでした。

homuler commented 1 week ago

まず、Graphics APIはOpenGLではなくVulkanを使ってください。 cf. https://github.com/homuler/MediaPipeUnityPlugin/wiki/FAQ#internalexception-internal--eglmakecurrent-returned-error-0x3000

ただし、以下に書くように MediaPipeUnityPlugin-all を開けば自動的にVulkanに設定されると思います。

エディターにMediaPipeUnityPlugin-allをインポートし、HierarchyにStartSceneをドラッグし、BuildSettingsにStartSceneを登録した

MediaPipeUnityPlugin-allを使う場合、そのままプロジェクトとして開いてください。Hierarchyを操作する必要もなく、そのままStartSceneを開いて実行してください(他のシーンでも良いです)。

もし既存のプロジェクトにプラグインをインポートする場合は、unitypackageかtarballをリリースページからダウンロードするのが簡単だと思います(MediaPipeUnityPlugin-allのプロジェクトを使ってビルドすることもできますが)。

Taiga423 commented 1 week ago

Vulkanをインストールし、Graphics APIでVulkanをOpenGLの上に移動させリブートしたところエディタが起動しなくなりました。何か他に変更しないといけない設定はありますか?

homuler commented 1 week ago

Graphics APIでVulkanをOpenGLの上に移動させ

設定変更等はせず、そのままMediaPipeUnityPlugin-allのプロジェクトを開いてみてください(そうでないと、こちらからは原因の切り分けが難しいため)。

エディタが起動しなくなりました。

これはUnityEditor側の問題だと思うので、VulkanでUnityEditorが起動できるように頑張ってもらうしかないです。 Editor.logを見ればたぶんエラーが出てると思います。