• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

236
Views
SceneKit: nodo con esqueleto animado que no se mueve

Tengo una aplicación SceneKit con 2 archivos .scn en la carpeta art.scnassets. El ship.scn base que viene con el proyecto y un nuevo archivo orcIdle.scn que agregué yo mismo.

Cuando llamo a este código en este barco, lo mueve correctamente:

 self.myScene = SCNScene(named: "art.scnassets/ship.scn")! // Set the scene to the view let ship = (myScene.rootNode.childNode(withName: "ship", recursively: false))! ship.position = SCNVector3(0, 0, -5) self.sceneView.scene = myScene

Cuando llamo al mismo código en mi archivo orcIdle, coloca el orco exactamente en (0,0,0)

 self.myScene = SCNScene(named: "art.scnassets/orcIdle.scn")! // Set the scene to the view let orc = (myScene.rootNode.childNode(withName: "orcIdle", recursively: false))! orc.position = SCNVector3(0, 0, -5) self.sceneView.scene = myScene

aquí hay capturas de pantalla del nodo de archivo:

Este es el archivo de envío predeterminado incluido en el proyecto por Xcode.
ingrese la descripción de la imagen aquí

Este es mi archivo orcIdle.

ingrese la descripción de la imagen aquí

Como puede ver, es exactamente el mismo código pero 1 se mueve y el otro no. Además, en la esquina superior derecha de las imágenes, puedo ajustar el valor Z allí. Funciona para .ship, pero no para .orcIdle.

¿Es un problema de escala? ¿Alguna idea?

Aquí hay una nueva captura de pantalla con la mayor parte del gráfico de escena que puedo capturar. ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Por lo general, debe seleccionar la jerarquía superior de un esqueleto (como el nodo root ) para mover la geometría, ya que su malla estaba vinculada al esqueleto. Si el esqueleto del modelo es considerablemente más profundo en la jerarquía, use la sintaxis de subíndice .childNodes[x] para obtener la articulación deseada.

Pero una solución basada en su archivo .scn es la siguiente: cree un objeto topNode y coloque root y LOD_Group dentro de él.

ingrese la descripción de la imagen aquí

Así que tu código debería verse así:

 let scene = SCNScene(named: "art.scnassets/orcIdle.scn")! orc = scene.rootNode.childNode(withName: "topNode", recursively: true)! orc.position = SCNVector3(0,0,-20)
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error