Post not yet marked as solved
Hello
With Unity you can import an animation and apply it to any character. For example, I import a walking animation and I can apply it to all my characters.
Is there an equivalent with SceneKit? I would like to apply animations by programming without having to import for each character specifically
Thanks
Post not yet marked as solved
Hello, I'm trying to understand physics by placing objects but I have a positioning problem. In fact, I create a floor with static physics and then a static block as well. I position the two elements at position 0 but the block crosses the ground by half.
Why?
this is my playground
import SceneKit
import PlaygroundSupport
// create a scene view with an empty scene
var sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
var scene = SCNScene()
sceneView.scene = scene
// start a live preview of that view
PlaygroundPage.current.liveView = sceneView
// default lighting
sceneView.autoenablesDefaultLighting = true
sceneView.allowsCameraControl = true
sceneView.debugOptions = [.showPhysicsShapes]
// a camera
var cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 3)
scene.rootNode.addChildNode(cameraNode)
// Make floor node
let floorNode = SCNNode()
let floor = SCNFloor()
floor.reflectivity = 0.25
floorNode.geometry = floor
floorNode.physicsBody = SCNPhysicsBody(type: .static, shape: nil)
scene.rootNode.addChildNode(floorNode)
// Add box
let cube = SCNNode(geometry: SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0))
cube.geometry?.firstMaterial?.diffuse.contents = UIColor.red
cube.position = SCNVector3(0, 0, 0)
cube.physicsBody = SCNPhysicsBody(type: .static, shape:SCNPhysicsShape(geometry: cube.geometry!, options: nil))
scene.rootNode.addChildNode(cube)
thanks !
Post not yet marked as solved
Hello
I try to understand the movement of a character with physics. To do this, I imported max into the fox2 file provided by Apple. I apply a .static physics to it and I have a floor with static physics and static blocks to test collisions everything works very well except that Max is above the ground.
He doesn't touch my ground. I couldn't understand why until I had the physicsShapes displayed in the debug options. With that I see that if max does not touch the ground it is because the automatic shape is below Max and this shape touches the ground.
So I would like to know why the shape is shifted downwards and how to correct this problem?
I did tests and the problem seems to come from physicsBody?.mass. If I remove the mass, the shape is correct but when I move my character it crosses the walls and when I put it on it is well stopped by the static boxes...
Someone with an idea of how to correct this problem?
This is my simplify code
import SceneKit
import PlaygroundSupport
// create a scene view with an empty scene
var sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
var scene = SCNScene()
sceneView.scene = scene
// start a live preview of that view
PlaygroundPage.current.liveView = sceneView
// default lighting
sceneView.autoenablesDefaultLighting = true
sceneView.allowsCameraControl = true
sceneView.debugOptions = [.showPhysicsShapes]
// a camera
var cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 3)
scene.rootNode.addChildNode(cameraNode)
// Make floor node
let floorNode = SCNNode()
let floor = SCNFloor()
floor.reflectivity = 0.25
floorNode.geometry = floor
floorNode.physicsBody = SCNPhysicsBody(type: .static, shape: nil)
scene.rootNode.addChildNode(floorNode)
//add character
guard let fichier = SCNScene(named: "max.scn") else { fatalError("failed to load Max.scn") }
guard let character = fichier.rootNode.childNode(withName: "Max_rootNode", recursively: true) else { fatalError("Failed to find Max_rootNode") }
scene.rootNode.addChildNode(character)
character.position = SCNVector3(0, 0, 0)
character.physicsBody = SCNPhysicsBody(type: .static, shape: nil)
character.physicsBody?.mass = 5
Thank you!
Post not yet marked as solved
Hello
I would like to move a character in swift with SceneKit. I use a gamePad to move the character. It works well at first but when the camera changes orientation, the character is not going in the right direction at all...