我有一個操縱角色。我可以檢索骨骼節點,如果我手動將旋轉應用到這些骨骼,我會看到角色切換到新的姿勢。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工作。