🆕

原生3D嵌入到Android

使用基于 Vulkan渲染器,你可以在 Android 项目中嵌入原生 3D 内容。

这个原生渲染器使你能够将 Spline 中制作的所有 3D 设计的互动性带到 Android 设备上,并充分利用它们的原生性能。

要求

按照以下步骤设置并使用 Spline Android Runtime。

1. 下载并安装 Android Studio

📦
我们建议你使用最新的稳定版本的 Android Studio。

要使用 Spline 原生嵌入功能,你需要将 Spline Android Runtime 集成到 Kotlin 或 Java 项目中。这意味着你必须安装 Android Studio 以构建 Android 应用程序。Android Studio 在 Windows 和 Mac 上均可使用。

开始使用

按照以下步骤开始在你的 Kotlin 或 Java 项目中使用 Spline Android Runtime 进行原生 3D 嵌入。

平台支持

👉
我们推荐使用 Android 10.0 以上版本

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”按钮来应用更改。

image

你可以在 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" />
image

3. 使用 Spline Android Runtime

3.1 从 Spline 导出

  • 在顶部工具栏中,点击“导出”按钮打开导出面板;
  • 在 Android 平台下,选择“Embed”选项。

确保返回导出面板并按“更新”按钮,以在应用中查看对场景所做的所有更新。

要在本地加载你的 Spline 场景,可以使用代码片段下方的“将场景下载到本地”按钮。

image

3.2 与 Android Studio 项目集成

由于嵌入代码片段使用了 AndroidView,请确保在嵌入 Spline 场景的文件中包含以下代码行:

import androidx.compose.ui.viewinterop.AndroidView 

从云端

  1. 复制代码片段并将其粘贴到 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 ”的代码注释掉或完全删除。

从本地

  1. 使用代码片段下方的“将场景下载到本地”按钮获取你的 Spline 场景的本地副本,格式为 .splinecontent 文件;
  2. .splinecontent 文件导入到 Android Studio 项目的 your-app-name/res/raw 文件夹中;
  3. 复制代码片段并将其粘贴到 MainActivity.kt 文件中,或粘贴到你希望嵌入 Spline 场景的位置;
  4. 注释掉“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 场景
🚧