Magic Leap Advent Calendar 2020の17日目です。
Magic Leap 1のUE4ネタがないようだったので、それ+先日アップデートされたUE4.26での更新に関する情報まとめます。
丁度タイミング的にUE4.26でMR関連の更新が色々とあったものの、Magic Leap 1は専用のAPIが用意されているところもあり、影響はあったのか気になったので、検証しました記事です。
(Magic Lecp 1のドキュメントにも、UE4.26アップデートに関することは特に何も書かれていない感もあったので。)
** ※今回はMagic Leap用のUE4(Magic Leap UE4 Editor)ではなく、通常のUE4を使用しています。 **
参考
各主要機能検証
アイトラッキング
Magic Leap独自APIになっていないものの、特に更新はないようなので、影響はないようです。
ハンドトラッキング
これはMagic Leap専用のAPIがあり、UE4.26の「GetMotionControllerData」からHand判定をして情報を取得してハンドトラッキング情報として利用することはできませんでした。
従来通りの、GetGestureKeypointTransformで行うようです。
ちなみに、モーションコントローラーのトラッキングについては、MotionControllerコンポーネントを使うパターンでも、「GetMotionControllerData」でController判定するパターンでも動いているので、
メインの入力装置のトラッキングは「GetMotionControllerData」を経由して行うようにすると、簡単に共通化できそうな気もします。
空間マッピング
ARSessionConfigが引き続きLuminARSessionConfigで専用のものを使用していることもあってか、こちらも特に変わり内容でした。
そもそもHoloLensでやっているSpatialMappingベースだと、ARSessionConfigで設定するよりは、MRMeshとMagic Leap専用のMagic Leap Mesh Trackerを使用したものの方がイメージに近い的なところもありますが。
「Toggle ARCapture」でSpatial Mappingを指定して手動で有効化する必要はないようです。
その他アップデートの影響
Zero Iterationが落ちる問題が解決
UE4.25使用時に設定の組み合わせでUE4が落ちて使えない問題があったのが、解決したみたいです。
これは最初対処法が判らなくて、Zero Iterationが使えず困っていましたが、問題なく動くようになったみたいで、地味に嬉しいバグフィックスですね。
ちなみに試した時は以下メッセージが出たため、
Engine is attempting to use the Magic Leap HMD since Zero Iteration is enabled but its required Vulkan extensions have not been enabled
Update the DefaultEngine.ini config of your project to set the [HMDPluginPriority] of MagicLeap higher than other HMDs
or launch the editor with the -hmd=MagicLeap command line arg.
ひとまずDefaultEngine.iniに以下記載を追加しました。
[HMDPluginPriority]
MagicLeap=40
まとめ
UE4.26では、一層OpenXRベースで、XR関連をまとめてきている感がありましたが、
Magic Leap的には、まだある程度専用API等で動かしていく部分は結構ありそうです。
逆に、専用APIになっているが故に、こういったアップデートの影響を受けないという考え方もありますが、
マルチプラットフォーム展開的な観点からは、あまりアプリ側は専用APIで管理はしたくないので、
今後の動向が気になりますね。
(専用のUE4エディタの提供もどこまでやっていくのか含め。)