在scenekit ios swift中约束对象相对于另一个对象的位置和旋转

时间:2017-10-01 10:22:04

标签: ios swift animation scenekit scnnode

我是iOS和scenekit的新手。 我有一个scn场景,其中包含一个人体(皮肤和骨骼)的装配模型。还有另外两个包含枪和动画的collada(.dae)文件。如何将喷枪连接到模型的手上,以便在动画时用模型的手旋转。

我已经探索过SCNSkinner和SCNIKConstraint但是找不到办法。目前,枪支物体的位置是静止的,不会随手移动。

WorkingDirectory=/opt/tomcat/bin

1 个答案:

答案 0 :(得分:1)

  

模型?.rootNode?.addChildNode(枪)

这会将枪附着在模型的物体上,而我假设您的动画是通过Skinner / Armature控制的。变换设置在电枢上,电枢又使主要对象变形/变形。

因此,让枪成为衔铁根骨的孩子应该有效。

(在Objective-c中写下答案,希望对你来说没问题)


    SCNNode * armatureRootBone = [model.rootNode childNodeWithName:@"amt_root" recursively:YES];

    [armatureRootBone addChildNode:gun];

此外,如果手臂需要额外的旋转和移动,那么枪需要是手臂根/控制骨的孩子。