你对VR和AR移动应用是否构思出什么好点子,但又不知道应该如何实现它们呢? 除非你是安卓开发者,同时又是一位经验丰富的3D美术,否则创建实现沉浸式360度体验所需的所有asset可能是一次艰辛的过程。
即便你没有创建3D模型所需的时间,资源或经验,这并不意味着你无法开发出优秀的VR或AR移动应用程序。网络免费了提供大量3D资源,以及存在渲染这些asset所需的众多API,框架和内容库。 在本文中,映维网将与大家深入Poly。这个在线资源库和API为你提供了成千上万的3D asset。在本文结束时,你将能够创建一款在运行时检索3D Poly asset,然后通过Processing for Android库进行渲染的应用程序。 1. 使用Poly显示3D资源 如果你曾经涉足Unity开发,Poly存储库就是类似于Unity Asset Store的存在,但不同点在于Poly的所有内容都是免费。 Poly的众多3D模型都是在创意公用授权条款下授权发布,因此只要给予创作者适当的引用注释,你就可以自由使用,修改和重新混合这些asset。 Poly所有的3D模型都兼容谷歌的VR和AR平台,例如Daydream和ARCore,但你仍然可以随时随地使用它们,甚至可以用于苹果的ARKit。 在检索和显示Poly asset时,你有两种选择。首先,你可以将资源下载到计算机,然后将它们导入Android Studio;或者你可以使用Poly API在运行时检索这些asset。 跨平台,基于REST的Poly API提供对Poly大量3D模型的程序化,只读访问。这比将asset与APK打包在一起更复杂,但在运行时检索Poly asset存在几个好处,最明显的是它有助于控制APK大小,而这可能会影响下载应用程序的人数。 你同时可以利用Poly API为用户提供更多选择。例如,如果你正在开发一款移动游戏,这时你可以允许用户从一系列的角色模型中进行选择。 由于你可以自由修改Poly模型,你甚至可以支持用户调整他们选择的角色,例如改变头发或眼睛颜色,或者将其与其他Poly asset相结合,比如说不同的武器和盔甲。通过这种方式,Poly API可以帮助你提供令人印象深刻的3D asset种类,而且所有这些都只需相对较少的工作量。你的用户将确信你花费了大量时间来精心制作所有这些3D模型。 2. 创建一个3D建模项目 我们将创建一个应用程序,然后在首次启动时检索特定的Poly asset,并根据用户请求以全屏模式显示这个asset。 为了帮助我们检索这个asset,我将使用Fuel,一个用于Kotlin和Android的HTTP网络库。首先使用你选择的设置来创建一个新项目,但在提示时选择“Include Kotlin support(包含Kotlin支持)”。 你对Poly API所做的所有调用都必须包含API密钥,后者是用于标识应用程序并强制执行使用约束。在开发和测试期间,你通常会使用不受限制的API密钥,但如果你有计划发布这款应用程序,则必须使用受Android约束的API密钥。 要创建受约束的密钥,你需要知道项目的SHA-1签名证书,现在我们来获取这一信息: - 选择Android Studio的“Gradle”选项卡(见下图中的光标位置)。这将打开“Gradle projects”面板。
“Run(运行)”面板现在将进行更新,以显示有关项目的大量信息,包括其SHA-1指纹。 3. 创建一个谷歌云平台账号 要获取必要的API密钥,你需要一个谷歌云平台(Google Cloud Platform,GPC)帐户。 4. 获取你的Poly API密匙 注册完成后,你可以启用Poly API并创建密钥: - 转到GCP Console。
- 选择左上角的图标,然后依次选择“API&Services(API与服务)> Dashboard(仪表盘)”。
- 选择“Enable APIs and services(启用API与服务)”。
- 在左侧菜单中,选择“Other(其他)”。
- 选择“Poly API”。
- 单击“Enable(启用)”按钮。
- 稍等一会后将出现一个新的屏幕;打开侧边菜单,然后选择“API&Services(API与服务)> Credentials(信用证书)”。
- 在随后弹出的窗口中,选择“Restrict key”。
- 给你的密匙命名。
- 在“Application restrictions”下选择“Android apps”。
- 选择“Add package name and fingerprint”。
- 将项目的SHA-1指纹复制/粘贴到“Signing-certificate fingerprint”字段中。
- 输入项目的包名称(在你的Manifest和每个类文件顶部)。
- 点击“Save”。
现在你将进入项目的“Credentials”屏幕,其中包含所有API密钥的列表,如你刚刚创建的支持Poly的API密钥。 |