主要观点:展示如何在 iPhone X 上使用 Xcode 9.4.1、Swift 4.1.2 和 iOS 11.4.1 通过 ARKit 实现“吐火”效果,需物理设备且有 TrueDepth 摄像头。
关键信息:
- 创建 AR 应用,选择 SceneKit ,注意主故事板控件为 ARSCNView ,项目结构中有 art.scnassets 可导入 3D 模型和纹理。
- 重写 UIViewController 类的一些函数,ARSCNView 类委托给 ARSCNViewDelegate 协议,在 ARSceneView 类中实现该协议。
- 创建 ARSceneView 类继承自 NSObject 并实现 ARSCNViewDelegate ,包含运行和暂停 AR 会话等函数,在其中处理粒子系统与面部的交互。
- 创建 Mouth 类继承自 SCNNode ,创建 3D 球体作为吐火的表面,添加透明材质。
- 创建 Fire 粒子系统文件,设置粒子系统方向在 z 轴,在 ARSceneView 中引用该粒子系统并设置其发射器为 Mouth 的几何形状。
- 在 didUpdate 函数中通过面部 blendShapes 字典判断嘴是否张开,控制粒子系统的添加和移除。
重要细节: - 代码示例详细展示了各个类和函数的实现及功能,如创建项目、设置配置、处理渲染函数、创建 Mouth 和 Fire 等。
- 强调需物理设备测试,运行应用后可看到面部在 ARSCNView 中,张嘴时火会喷出。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。