----2021.06.01-----
因为项目需要,需要研究利用UE引擎开发VR下纯手势交互,不使用VR控制器,在VR环境下纯用人的手作为控制器,同场景中的内容交互。
当前,纯手势交互可用的方案有限。除了Oculus的quest2内置了手势识别功能,其它头显都没有直接支持的,需要融合外部设备,比如leapmotion,uSens 的Fingo(这个现在还没有开卖)等手势识别模块
觉得外挂的太麻烦,就先用Quest2试试效果。
但是Quest2的使用和开发,必须首先解决科*上网,否则免谈。
在解决网络问题后,要配置如下环境
1. UE4工程环境,不能使用Epic发布的UE引擎版本,因为UE自带的OculusVR插件只到1.51版本,而支持手势功能的开发插件需要1.61版本,这个版本只能去下载Oculus的UE4引擎源码分支,自己编译才行
https://github.com/Oculus-VR/UnrealEngine/tree/4.26
编译完成后(这个漫长过程就不写了,反正解决上网问题后,基本按步骤来就好,就是要等段时间,可以去看几个电影),
启动编译的引擎程序,可以看到插件是1.61
同时,项目设置也有了手势识别的相关设置
Oculust提供了不少sample项目,其中HandSample是最基本的,HandsTrainSample是一个较复杂的示例
2. 配置Oculus Link环境
去下载安装Oculus Home
注意C盘不够用,就用命令行指令指定目标盘 OculusSetup.exe /drive=D
Quest2上做一些设置,打开link,开启手势支持之类
但当我配好环境后,发现一个蛋疼的问题,Oculus Quest2的手势支持,竟然只能在移动模式下使用,连接SteamVR是不能开启的。 这样,就不能在PC发布的程序中进行这个功能的调试了,只能把程序装到设备上运行才能运行手势控制
(2021.6.8 重要更正,以上结论不正确, Quest2的手势识别,可以在PC连接模式下开启,配好Oculus Link,steamVR正常连接后,UE的PC模式下也能够启用手势识别,自带的例子都能在PC上正常运行和调试)
3. 编译Quest2应用还需要Android NDK-21以上版本, 又去安卓网站 https://developer.android.com/ndk/downloads 下载了NDK r21e,下载完毕后解压,并在UE中设置NDK参数
4. 打包测试:连接设备,开启各种访问权限,启动编译的UE4.26.2 Oculus版本,打开HandSample,使用启动到Oculus设备的指定,等待编译上传。最后几步的时候,激活头显,程序可以上传成功
5. 之后需要深入研究 https://developer.oculus.com/documentation/unreal/unreal-engine/ Oculus对UE的API接口,后续有进展再更新
网上还查到两家VR手势算法公司,还没研究