我有一个操纵角色。我可以检索骨骼节点,如果我手动将旋转应用到这些骨骼,我会看到角色切换到新的姿势。SceneKit约束如何与骨骼一起使用?
现在,如果我尝试为同一个骨骼设置一个约束,它根本就不会移动。我尝试了逆运动学约束和简单的广告牌约束,但没办法。
下面是代码,以获得骨:
SCNNode *man = [scene.rootNode childNodeWithName:@"Man" recursively:YES] ;
SCNNode *bodyOfMan = [man childNodeWithName:@"Body" recursively:YES] ;
SCNNode *bodyRealSkeleton = bodyOfMan.skinner.skeleton ;
SCNNode *headBone = [bodyRealSkeleton childNodeWithName:@"mixamorig_Head" recursively:YES] ;
如果我这样做:
headBone.rotation = SCNVector4Make(0,1,0,45) ;
我得到这样的结果,显示出头部旋转正确
如果我这样做:
SCNBillboardConstraint *constraint3 = [SCNBillboardConstraint billboardConstraint] ;
headBone.constraints = @[constraint3] ;
当它应该跟在相机上时,头部会保持直线前进。
如果我只是将它添加到“盒子”节点,但是我找不到任何方式使它对我的装配好的网格骨骼起作用,广告牌约束就能很好地工作...... 而且我找不到任何完全可以使SCNIKConstraint工作。