近年来,AR不断发展。作为一种增强现实技术,它为用户带来了虚拟与现实世界的融合体验。然而,用户不再满足于简单地将虚拟物品放置在真实场景中来体验AR技术,还希望通过身体姿势触发某种指令,实现更逼真的人机交互功能。例如,在一款AR体感游戏中,用户不需要点击按钮进行频繁的操作,而是可以通过一定的姿势触发;拍摄短视频时,用户无需触碰屏幕,摆出不同姿势即可触发特定效果;健身类应用中,教练进行健身教学时,用户可以摆出相应的姿势进行跟进,系统会识别姿势是否标准。那么,如何利用特定的人体手势识别指令进行人机交互呢?华为HMSCoreAREngine服务提供解决方案,其中人体姿态识别服务提供单人姿态识别能力,识别六种静态姿态并输出识别结果,支持前后摄像头切换,实现融合虚拟世界和现实世界。开发伙伴可以在需要识别动作并触发某些事件的应用场景中使用人体手势识别能力,例如交互界面控制、游戏操作动作识别等触发交互行为,这些都是体感应用的基础核心功能。AR应用提供远距离远程控制和协作能力,丰富应用交互体验。以下是开发者集成AREngine人体手势识别能力的具体步骤。开发步骤开发环境要求:JDK1.8.211及以上版本。安装AndroidStudio3.0及以上:minSdkVersion26及以上targetSdkVersion29(推荐)compileSdkVersion29(推荐)Gradle6.1.1及以上(推荐)在华为终端设备上的应用商店下载AREngine服务器APK(需要在华为应用商店,搜索“HuaweiAREngine”),在终端设备上安装。测试应用的设备:参考AREngine特性软硬件依赖表。如果同时使用多个HMSCore服务,需要使用每个Kit对应的最大值。开发准备在开发应用之前,您需要在华为开发者联盟网站注册为开发者并完成实名认证。具体请参见账号注册与认证。华为以Maven仓库集成方式提供AREngineSDK包。在开始开发之前,您需要将AREngineSDK集成到您的开发环境中。对于7.0、7.0和7.1及以上版本的Gradle插件,AndroidStudio的代码库配置有所不同。请根据您当前的Gradle插件版本选择相应的配置流程。以7.0为例:打开AndroidStudio项目级“build.gradle”文件,添加Maven代码库。在“buildscript>repositories”配置HMSCoreSDK的Maven仓库地址。buildscript{repositories{google()jcenter()maven{url"https://developer.huawei.com/repo/"}}}打开项目级"settings.gradle"文件,配置HMS的Maven仓库地址核心开发工具包。dependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{repositories{google()jcenter()maven{url"https://developer.huawei.com/repo/"}}}}添加依赖项在“dependencies”中添加以下内容编译依赖:dependencies{implementation'com.huawei.hms:arenginesdk:{version}}应用开发1、运行前验证:检查当前设备是否安装了AREngine。如果已安装,它将正常运行。若未安装,App应以适当的方式提醒用户安装AREngine,如主动跳转到应用市场,要求安装AREngine。具体实现代码如下:booleanisInstallArEngineApk=AREngineesApk.isAREngineApkReady(this);if(!isInstallArEngineApk){//ConnectAppMarketActivity.class为跳转到应用市场的activity。startActivity(newIntent(this,com.huawei.arengine.demos.common.ConnectAppMarketActivity.class));isRemindInstall=true;}2.初始化AR场景:AREngine提供了5个场景,包括运动追踪(ARWorldTrackingConfig)、人脸追踪(ARFaceTrackingConfig)、手部识别(ARHandTrackingConfig)、身体追踪(ARBodyTrackingConfig)和图像识别(ARImageTrackingConfig)。3.调用ARBodyTrackingConfig接口初始化人体追踪场景。mArSession=newARSession(context)ARBodyTrackingConfigconfig=newARHandTrackingConfig(mArSession);Config.setEnableItem(ARConfigBase.ENABLE_DEPTH|ARConfigBase.ENABLE.MASK);配置会话信息mArSession.configure(config);4.初始化BodyRelatedDisplay接口,用于渲染SubjectAR类型相关数据。公共接口BodyRelatedDisplay{Voidinit();VoidonDrawFrame(Collection
