私は装備されたキャラクターを持っています。私は骨のノードを調べることができます。もし私が手動でそれらの骨にローテーションを適用すると、キャラクターが新しい姿勢に切り替わるのが分かります。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] ;
カメラの後ろにあるとき、頭はまっすぐなままです。
"Box"ノードに追加するだけでビルボードの制約がうまく働きますが、リグメッシュのボーンに動作させる方法が見つかりませんでした... そして、私は何も見つかりませんでしたSCNIKConstraintを動作させる方法はまったくありません。