原生3D嵌入到iOS

⚠️
该功能目前为BETA版,并将在未来几个月内进行开发。预计将于2024年初完全整合。

借助我们基于 Metal 的渲染器,您现在可以在 SwiftUI 项目中嵌入原生 3D 内容。

这个原生渲染器使您能够将 Spline 中 3D 设计的所有交互性带到 Apple 设备上。它还充分利用 iPhone、iPad 或 Mac 等 Apple 设备的所有本机性能。

要求

请按照以下步骤进行设置,来使用 Spline iOS Runtime。

1. 注册Apple ID或加入Apple开发者计划

  • 想要开始在您的设备上测试您的应用程序,您需要一个免费的 Apple ID
  • 想要在 App Store 上发布您的应用程序,您需要注册 Apple 开发者计划

有关 Apple ID 和 Apple 开发者计划会员资格之间差异的更多信息,请参阅 Apple 关于选择会员资格的文档。

团队 ID

为了让您在 Xcode 中构建应用程序,您可能需要一个团队 ID。

了解如何在 Apple 文档中查找您的团队 ID:找到您的团队 ID

2.下载并安装Xcode

📦
当前 Xcode 版本从 15.0 开始支持。

要使用 Spline 本机嵌入,您需要将 Spline iOS 运行时集成到 Xcode 项目中。这意味着如果您想构建 iOS 应用程序,则必须安装 Xcode。 Xcode 仅适用于 macOS。

入门

请按照以下步骤开始通过 Spline iOS Runtime在 Swift 项目中使用本机 3D 嵌入。

平台支持

Spline 正在使用最新技术在 Apple 平台上渲染 3D 内容。

设备
OS最低要求
芯片最低要求
iPhone
iOS 16.0 及以上
A13 及以上
iPad
iPadOS 16.0 及以上
A13 及以上
Mac
macOS 13.0 及以上((通过 Mac Catalyst 或专为 iPad 设计)
Apple Silicon
Vision Pro
实验支持(开发中)
M2
Apple TV
未支持
-
Apple Watch
未支持
-

语言和库支持

Spline iOS 运行时使用 SwiftUI 和 Swift。

1. 将 Spline iOS Runtime的包添加到 Xcode

想要通过 Swift Package Manager 添加,请在 Xcode 中选择“文件”>“添加包依赖项”。

在包查找器中搜索 spline-ios 或输入完整的存储库 URL:https://github.com/splinetool/spline-ios

有关更多信息,请参阅 Apple 的有关向应用程序添加包依赖项的文档。

2.导入Spline iOS Runtime

要导入 Spline iOS Runtime,请确保始终将以下代码添加到使用 Spline Runtime的文件顶部。

import SplineRuntime

3. 使用Spline iOS Runtime

3.1 从Spline导出

  1. 在顶部工具栏中,按导出按钮打开导出面板;
  2. 在“Apple 平台”下,选择“Embed嵌入式”选项。

请务必返回导出面板并按更新按钮以查看对应用程序中的场景进行的所有更新

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

要禁用Spline的logo,您需要有效的超级或超级团队订阅。

在“加载”选项下,您可以为场景选择加载程序的类型。

image

3.2 与您的 Xcode 项目集成

通过云端

  1. 复制代码片段并将其粘贴到您的 ContentView Swift 文件中;
import SplineRuntime
import SwiftUI

struct ContentView: View {
	var body: some View {
		// // fetching from local
		// let url = Bundle.main.url(forResource: "scene", withExtension: "splineswift")!

		// fetching from cloud
		let url = URL(string: "https://build.spline.design/8DX7ysrAJ3oDSok9hNgs/scene.splineswift")!

		try? SplineView(sceneFileURL: url).ignoresSafeArea(.all)
	}
}
  • 如果不使用本地文件,您可以保留fetching from local的注释或将其完全删除。
  • 如果您想在没有标题栏的情况下全屏显示您的体验,请使用 .ignoresSafeArea(.all)
  • 使用多个云嵌入时,您可以使用相同的代码片段并更改string后的 URL。

通过本地

  1. 使用代码片段下方的“下载”按钮以 .splineswift 文件形式获取Spline场景的本地副本;
  2. .splineswift 文件导入到 Xcode 项目的根文件夹中;
  3. 复制代码片段并将其粘贴到 ContentView 上;
  4. 注释掉fetching from cloud,取消注释从本地代码获取。
import SplineRuntime
import SwiftUI

struct ContentView: View {
	var body: some View {
		// fetching from local
		let url = Bundle.main.url(forResource: "scene", withExtension: "splineswift")!

		// fetching from cloud
		// let url = URL(string: "https://build.spline.design/8DX7ysrAJ3oDSok9hNgs/scene.splineswift")!

		try? SplineView(sceneFileURL: url).ignoresSafeArea(.all)
	}
}
  • 当使用多个本地文件时,您可以在 forResource 之后更改文件名。
  • 如果文件名是 scene.splineswift,代码应如此所示: forResource: "scene"

4.发布和分发您的应用程序

有关发布到 App Store 的更多信息,请参阅 Apple 关于分发应用程序进行 Beta 测试和发布的文档。

下载 Xcode Demo

通过使用云 iOS 嵌入下载 Xcode demo项目来了解其工作原理。

Spline iOS 头像.zip626.3KB

步骤:

  1. 在 Xcode 上,转到“文件”>“打开”并选择包含您的项目的解压文件夹;
  2. 选择您的构建设备 - 确保使用您的物理设备(iPhone、iPad、Mac),因为模拟器当前无法预览样条线场景;
  3. 按 ▶️ 构建您的项目。

在构建之前

您可能需要进入“签名和功能”,在“签名”下手动添加您的团队。

另外,请确保将捆绑包标识符更改为唯一的标识符。

可能的警告

构建应用程序时,即使应用程序正确构建,嵌入中也可能会显示一些错误。请参阅下文以查看警告及其解释。

"Spline scene file is in an unknown format”

导出的文件太旧、运行时太旧或者文件可能已损坏。

"Spline scene file URL could not be reached”

当运行时无法从网络下载 .splineswift 文件时会显示它。这可能是因为 URL 无效,或者只是网络连接无法正常工作。

功能支持路线图

Metal 渲染 的所有 Spline 功能的全面覆盖预计将于 2024 年初准备就绪,以下是每个功能的当前状态列表。该列表将每周更新一次,直到一切都得到完全支持。

功能
状态
笔记
参数化二维形状
参数化三维形状
非参数化三维形状
3D 路径、车床、细分网格已烘焙(暂时)- 即将推出全面支持
材质图层
视频层支持即将推出。 轮廓图层中的某些设置尚不支持。
状态
基础过渡
物理
游戏控件
高斯泼溅
变量
交互
✅ ⏰
触发区域和碰撞事件即将推出
动作
✅ ⏰
即将全面支持
后处理
✅ 
点光源
🚧
动画模型
🚧
多场景
🚧
仅导出主要场景

生成应用程序

将 3D 内容导出到 iOS 等 Apple 平台的另一种方法是直接从 Spline 生成预构建的 Xcode 项目。