【发布时间】:2018-02-22 20:58:58
【问题描述】:
好的,我在这里使用 ARKit 和 SceneKit,但我无法查看其他仅处理 SceneKit 的问题,该问题试图拥有 .dae 格式的模型并加载各种动画以运行该模型 - 现在我们在 iOS11 似乎有些解决方案不起作用。
这是我获取模型的方法 - 从一个未应用动画的基本 .dae 场景。我正在使用 Maya 导入这些 -
var modelScene = SCNScene(named: "art.scnassets/ryderFinal3.dae")!
if let d = modelScene.rootNode.childNodes.first {
theDude.node = d
theDude.setupNode()
}
然后在Dude课上:
func setupNode() {
node.scale = SCNVector3(x: modifier, y: modifier, z: modifier)
center(node: node)
}
需要轴的缩放和居中,因为我的模型不在原点。那行得通。然后现在使用一个名为“Idle.dae”的不同场景,我尝试加载动画以便稍后在模型上运行:
func animationFromSceneNamed(path: String) -> CAAnimation? {
let scene = SCNScene(named: path)
var animation:CAAnimation?
scene?.rootNode.enumerateChildNodes({ child, stop in
if let animKey = child.animationKeys.first {
animation = child.animation(forKey: animKey)
stop.pointee = true
}
})
return animation
}
我打算为我导入 Xcode 并将所有动画存储在其中的所有动画场景执行此操作
var animations = [CAAnimation]()
第一个 Xcode 说 animation(forKey: 已弃用,这似乎不起作用(据我所知)我的模型去中心化并缩小到原来的巨大尺寸。它搞砸了它的位置,因为我希望让模型在动画中移动,例如,会使我的游戏中的实例化模型捕捉到相同的位置。
和其他尝试会导致崩溃。我对场景工具包非常陌生,并试图掌握如何正确地为我在场景中任何地方实例化的 .dae 模型设置动画 -
-
在 iOS11 中如何加载一组动画以应用于其 SCNNode?p>
-
你是怎么做到的,所以这些动画可以在模型上运行,无论模型在哪里(而不是将它捕捉到其他位置)?
【问题讨论】:
-
遇到完全相同的问题,我也尝试使用 SCNSceneSource 加载动画,但它不起作用。如果您找到任何解决方案,请告诉我
-
.dae 格式是否包含动画?我是否尝试过为此使用 Alembic (.abc)?
标签: swift augmented-reality scenekit arkit maya