🆕

原生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 场景
🚧

生成 APK

通过直接从 Spline 生成 Android Package 文件(APK),为 Android 设备导出 3D 内容。

了解更多关于 Android Package (APK) 的信息。

生成 AAB

通过直接从 Spline 生成预构建的 Android 应用程序包文件(AAB),为 Android 设备导出 3D 内容。

了解更多关于 Android App Bundles (AAB) 的信息。

👉下一步

🆕Android Package(APK)