【问题标题】:ARKit – How to load a GIF animation in ARSession?ARKit – 如何在 ARSession 中加载 GIF 动画?
【发布时间】:2018-03-20 08:13:30
【问题描述】:

我正在开发一个使用 ARKit 和 SceneKit 框架的应用程序。我能够渲染我的 3D 对象、创建叠加层等。我想在点击我的一个子节点时加载一个 GIF 动画,如 ARSession 中的叠加层。这可能吗?

我尝试将SKScene 添加为我的SCNScene 的叠加层,如下所示,它看起来不错。

informationOverlay = InformationOverlayScene(size: self.sceneView.frame.size)
self.sceneView.overlaySKScene = informationOverlay

但是如何在SKScene 或SCNNode 中加载这个GIF 文件呢?

【问题讨论】:

  • 增强现实的意义不就是让一切都呈现 3D 而非 2D 吗?
  • @LinusGeffarth 是的,我只加载 3D 模型。但是有一个要求,我需要在我的 3D 模型上显示一个像叠加层一样的动画 gif。
  • “在我的 3D 模型之上” 如“映射到表面”或“屏幕某处”?
  • 如果我点击子节点 A,我应该在子节点 A 上方显示一些空间
  • 它被映射到表面上

标签: swift sprite-kit scenekit ios11 arkit


【解决方案1】:

以下 SO 问题回答了如何在 SKNode 中显示动画: Simple Gif like animation with Spritekit

您可以使用 projectPoint 将 SCNNode(您的 3D 模型)的位置投影到屏幕上的 2D 位置,然后将其用于包含动画的 SKNode 的位置。这样动画将始终面向屏幕。

或者,您可以将包含动画的核心动画层分配给SCNMaterial 的.diffuse.contents 属性,并将其分配给SCNPlane,您可以将其添加到场景中并定位在3D 模型上方。如果您希望该平面面向相机,只需将您的SCNView 的.pointOfView.orientantion 属性分配给包含SCNPlane 的SCNNode。

【讨论】:

  • 如何将包含gif动画的SKNode添加到ARSCNView.scene中?
  • 我尝试将它添加到 CALayer,然后使用diffuse.contents 添加到SCNNode,它正在工作!但是我的 gif 图像只显示一半 :( 如何在 SCNNode 中显示完整的 gif 图像?我尝试更改 CALayer 的边界值和 SCNPlane 的宽度和高度但没有效果。只有 SCNPlane 大小增加,我的 gif 动画仍然显示一半.
猜你喜欢
  • 2013-11-13
  • 2020-01-29
  • 2013-08-04
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 2012-05-24
相关资源
最近更新 更多