使用基于 Vulkan渲染器,你可以在 Android 项目中嵌入原生 3D 内容。
这个原生渲染器使你能够将 Spline 中制作的所有 3D 设计的互动性带到 Android 设备上,并充分利用它们的原生性能。
要求
按照以下步骤设置并使用 Spline Android Runtime。
1. 下载并安装 Android Studio
要使用 Spline 原生嵌入功能,你需要将 Spline Android Runtime 集成到 Kotlin 或 Java 项目中。这意味着你必须安装 Android Studio 以构建 Android 应用程序。Android Studio 在 Windows 和 Mac 上均可使用。
- 您可以从 Android 开发者网站 下载最新版本的 Android Studio。
开始使用
按照以下步骤开始在你的 Kotlin 或 Java 项目中使用 Spline Android Runtime 进行原生 3D 嵌入。
平台支持
Spline 使用最新技术在 Android 设备上渲染 3D 内容。
它可以在 Android 7.0 及以上版本的手机、平板电脑、Wear OS、桌面、电视和汽车设备上运行,但我们建议使用 Android 10.0 以上版本,并支持Vulkan 。
语言和库支持
Spline Android Runtime 可与 Kotlin 和 Java 一起使用。
Android Studio 模拟器
Android Studio 模拟器上的性能并不代表最终在物理设备上运行的 3D 场景的性能。根据你的开发硬件,Android 模拟器有时只使用 CPU(较慢)或 GPU(较快)来渲染图形。然而,设备上的 3D 场景将始终使用 GPU。
1. 添加 Spline Android Runtime
打开项目的 build.gradle.kts
文件,并在依赖项下添加以下代码行。
implementation("design.spline:spline-runtime:+")
注意:这将始终运行最新版本的 Runtime。
在 build.gradle.kts
文件中进行更改后,确保按下“Sync Now
”按钮来应用更改。
你可以在 Maven 上找到 Spline 的 Android Runtime:https://central.sonatype.com/artifact/design.spline/spline-runtime/overview
有关更多信息,请参阅 Android 关于添加依赖项的文档。
2. 导入 Spline Android Runtime
要导入 Spline Android Runtime,确保始终在使用 Spline Runtime 的文件顶部添加以下代码。
import design.spline.runtime.SplineView
对于云端嵌入,你需要允许你的应用访问互联网。为此,可以在 AndroidManifest.xml
文件 your-app-name/manifests
中添加以下两行代码:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3. 使用 Spline Android Runtime
3.1 从 Spline 导出
- 在顶部工具栏中,点击“
导出
”按钮打开导出面板; - 在 Android 平台下,选择“
Embed
”选项。
确保返回导出面板并按“更新
”按钮,以在应用中查看对场景所做的所有更新。
要在本地加载你的 Spline 场景,可以使用代码片段下方的“将场景下载到本地
”按钮。
3.2 与 Android Studio 项目集成
由于嵌入代码片段使用了 AndroidView,请确保在嵌入 Spline 场景的文件中包含以下代码行:
import androidx.compose.ui.viewinterop.AndroidView
从云端
- 复制代码片段并将其粘贴到
MainActivity.kt
文件中,或粘贴到你希望嵌入 Spline 场景的位置。
import design.spline.runtime.SplineView
@Composable
fun MyView() {
AndroidView(
factory = { ctx ->
SplineView(context).apply {
// fetching from cloud
loadUrl("https://build.spline.design/r7vufRzuTnbHle7G/scene.splinecontent")
// fetching from local
// loadResource(R.raw.scene)
}
}
)
}
- 如果不使用本地文件,你可以将“
fetching from local
”的代码注释掉或完全删除。
从本地
- 使用代码片段下方的“
将场景下载到本地
”按钮获取你的 Spline 场景的本地副本,格式为.splinecontent
文件; - 将
.splinecontent
文件导入到 Android Studio 项目的your-app-name/res/raw
文件夹中; - 复制代码片段并将其粘贴到
MainActivity.kt
文件中,或粘贴到你希望嵌入 Spline 场景的位置; - 注释掉“
fetching from cloud
”的代码,并取消注释“fetching from local
”的代码。
import design.spline.runtime.SplineView
@Composable
fun MyView() {
AndroidView(
factory = { ctx ->
SplineView(context).apply {
// fetching from cloud
// loadUrl("https://build.spline.design/r7vufRzuTnbHle7G/scene.splinecontent")
// fetching from local
loadResource(R.raw.scene)
}
}
)
}
- 当使用多个本地文件时,你可以更改
R.raw.[file-name]
中的文件名。如果文件名为demo.splinecontent
,代码应为:R.raw.demo
。 - 有关将资源添加到项目的更多信息,请参阅 Android 关于应用资源的文档。
4. 发布和分发你的应用
有关发布到 Google Play 商店的更多信息,请参阅 Android 关于发布应用的文档。
功能支持路线图
预计 Vulkan 渲染器的所有 Spline 功能将在 2024 年第四季度全面覆盖。以下是每项功能当前状态的列表。该列表将每周更新,直到所有功能完全支持。
功能 | 状态 | 备注 |
参数化形状 | ✅ | |
非参数化形状 | ✅ | 细分、3D路径、文本、布尔已处理。 |
材质 | ✅ ⏰ | 轮廓和视频图层支持即将推出。 |
事件与状态 | ✅ | |
物理 | ✅ | |
游戏控制 | ✅ | |
后期处理 | 🚧 | |
粒子 | 🚧 | |
变量 | ✅ ⏰ | 时间变量和本地存储支持即将推出。 |
动画模型 | 🚧 | |
环境阴影 | 🚧 | |
多场景 | 🚧 | |
UI 场景 | 🚧 |