你的浏览器不支持canvas

让我们携手共创奇迹!

UE 接Oculus平台SDK

Date: Author: LBD

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。转载请注明来自WindCrazy

参考:https://developer.oculus.com/documentation/unreal/ps-get-started/

这是一篇关于UE如何使用Oculus提供的平台SDK来做一些平台上的功能,如:获取Oculus用户ID,排行榜,好友邀请等。

创建应用程序

需要通过Oculus平台,才能使用平台SDK,他会生成一个App ID,如果不知道应用程序的App ID,则它无法初始化

App ID Used to initialize the Platform SDK

App Secret This secret token is used to make requests to Oculus APIs on behalf of your app rather than a user.

登录到开发者界面点击右上角绿色Create New App

然后输入你应用的名字,然后选择平台我是Quest就选了Meta Quest(App Lab),最后点击创建,刷新页面(此示例名称是UESDKTest);之后点击进入UESDKTest,在左侧边栏点击API就可以看到你的App ID了

配置开发环境

Meta Quest 平台功能直接集成到虚幻编辑器中。

  • 有一个Oculus特供的虚幻引擎,在这里获得,里面包含了Platform SDK

Tag里的名称是按照如下命名 的:“oculus-(UnrealEngineVersion)-(OVRPluginVersion)-(OculusSdkVersion)”, 例如: “oculus-5.1.1-release-1.82.0-v50.4”.

  • 或者使用插件 (OVRPlugin,有好几个名字知道是platformSDK就行了) 提供对虚幻引擎的集成支持,在这里获得

虽然两种办法都可以,但是Oculus官方说:Professional developers who wish to take full advantage of the features available with the Oculus Unreal integration should download and build the Unreal Engine source code.

打开项目在编辑器中选择Edit > Plugins > Virtual Reality >Meta XR(Oculus VR),然后Enabled

选择Edit > Plugins > Online Platform >Online Subsystem Oculus

调整 DefaultEngine.ini 文件以使用 [ProjectDirectory]/Config/DefaultEngine.ini

[ OnlineSubsystemOculus ] 
bEnabled = true
OculusAppId =[ app_id_here ]
RiftAppId =[ rift 应用程序 ID ]

OculusAppId是开发人员仪表板上的API页面检索到的唯一应用程序 ID 。就是咱第一步做的事情(不要中括号比如:OculusAppId =1111111)

RiftAppIdis the App ID if creating a Quest Link App. This ID is different from the OculusAppId.

注意:如果启用Platform Plugin,那么应用程序将需要访问User ID 和User Profile,并且需要Data Use Checkup 流程作为你向 Meta Quest 商店提交的一部分。

配置您的应用程序以进行本地开发

此步骤将允许开发人员在开发过程中运行本地构建的应用程序。具体参考权力检查创建组织并管理用户

权力检查

在start message pump后立马添加Entitlement Get Is Viewer Entitled 节点 .

测试

在测试 Platform SDK 功能之前,必须将应用程序的发布版本上传到开发人员中心。您只需执行一次此操作,然后可以在本地进行测试并进行更改,而无需重新上传。请参阅上传 Meta Quest 的应用程序

我使用UE编辑器上传

移动应用程序签名

  • 签署应用程序。请参阅移动应用程序签名Unreal 小节。
  • 在编辑器中Edit > Project Settings > Platforms > Android修改以下设置
    • Android Package Name- 这应该与开发人员中心设置匹配
    • Store Version- 每次上传 apk 都需要一个唯一的商店版本号,该版本号可以是手动递增的数字。
    • Install Location- Auto

注:如果报错java.io.filenotfoundexception:android.keystore(拒绝访问)这是因为权限问题:你的jdk目录在c盘,当前用户无写入权限。

方法一更改保存目录:就是讲jdk从c盘挪到其它盘。

方法二更改权限:以管理员身份运行CMD。(我用这个)

  1. 键盘按下win键或点击桌面左下角【开始】,输入cmd

  2. 对搜索结果的cmd程序点击【以管理员身份运行】

  3. 重新按照Unreal小节签署应用程序

我这里出现了一个警告Warning:JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore ExampleKey.keystore -destkeystore ExampleKey.keystore -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。

另外,我的keytool.exe在C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08\jre\bin>

Oculus在虚幻中的实例

这里

注意

如果使用MQDH(Meta Quest Developer Hub)进行上传,可能会遇到Actions列下一直在转圈加载或Upload为灰色不可点击,这是由于你的MQDH没有下载cli,你需要把下载的exe文件放在 ~/AppData/Roaming/odh/ovr-platform-util.exe,重启后就可以上传了

参考

Oculus视频-AR & VR at Meta Open Source

MQDH下载:https://developer.oculus.com/documentation/unreal/ts-odh/


对于本文内容有问题或建议的小伙伴,欢迎提出问题