0

我正在尝试为 SceneKit 中 SCNScene 对象的特定部分设置动画(在我的情况下,我想为手的手指设置动画)。我很容易从 Blender 中导入带有相应骨骼的 .dae (COLLADA) 文件,以在模型上生成关节。

override func viewDidLoad() {
    super.viewDidLoad()

    var scene = SCNScene(named: "hand.dae")!
    sceneView.scene = scene
    sceneView.allowsCameraControl = true
    sceneView.autoenablesDefaultLighting = true
    sceneView.backgroundColor = UIColor.lightGrayColor()
}

我的目标是使用用户生成的 0 到 1 之间的值在 iOS 上为这些骨骼设置动画。想象一个 UISlider,您可以在其中来回滚动并看到特定手指根据滑块的值移动。

这是需要的动画截图

假装动画的图像

我尝试通过调用像 Apple 的 Fox 示例这样的动画文件来为模型设置动画:

private var indexFingerAnimation: CAAnimation!
indexFingerAnimation = CAAnimation.animationWithSceneNamed(“move_index_finger.dae”)
indexFingerAnimation = false
indexFingerAnimation = 0.3
indexFingerAnimation = 0.3
indexFingerAnimation = Float.infinity

问题是这是一个全局动画,而不仅仅是食指。此外,它始终是“预定义”动画,而不是由用户输入控制的动画。最终我想混合动画(例如同时移动食指和拇指显示手势)

这可能吗?我很挣扎,因为我不知道如何操作网格的特定部分。我开始研究 MetalKit,但我不清楚这就是解决方案。

任何帮助将非常感激。

4

1 回答 1

-1

我从来没有同时尝试过两个动画,但我可以SCNNode在 dae 文件中旋转两个或多个动画

您必须设置枢轴点并将它们组合在一起

于 2016-10-21T14:22:49.663 回答