私のシーンには以下が含まれます。
シーンのルートにある静止体
_firstNode = [[SCNNode alloc] init];
_firstNode.position = SCNVector3Make(0, 0, 0);
_firstNode.geometry = [SCNSphere sphereWithRadius:950];
_firstNode.geometry.firstMaterial.diffuse.contents = [UIColor greenColor];
_firstNode.physicsBody = [SCNPhysicsBody staticBody];
[[scene rootNode] addChildNode:_firstNode];
ピボット プロパティが (0,-1200,0) にあるダイナミック ボディ
_secondNode = [[SCNNode alloc] init];
_secondNode.position = SCNVector3Make(0, 0, 0);
_secondNode.pivot = SCNMatrix4MakeTranslation(0, -1200, 0);
_secondNode.physicsBody = [SCNPhysicsBody dynamicBody];
_secondNode.physicsBody.physicsShape = [SCNPhysicsShape shapeWithGeometry:[SCNSphere sphereWithRadius:2] options:nil];
[[scene rootNode] addChildNode:_secondNode];
両方のノードが rootNode の子であるため、ピボットは静的ノードの中心にあります。アイデアは、X 軸を中心に _firstNode を中心に _secondNode を回転させる SCNAction を実行し、必要に応じて Y 軸を中心に回転するために applyTorque を実行することです。
そのコードは今のところ問題ありません。問題は、_firstNode は静的なままですが、_secondNode.pivot を _firstNode のジオメトリの表面にプッシュしていることです。ただし、単に _firstNode の physicalsBody を取り除いても、問題は解決しません。