我有一个被操纵的角色。我可以检索骨骼节点,如果我手动对这些骨骼应用旋转,我会看到角色切换到新姿势。
现在,如果我尝试对同一块骨骼设置约束,它根本不会移动。我尝试过逆运动学约束和简单的广告牌约束,但没办法。
这是获取骨骼的代码:
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工作,在所有。