CarstenF hat geschrieben:
Aber die Bones ordnen doch (im Allgemeinen bzw. U.U.) den Vertices ganz andere Nodes zu als die Instantiierung des Meshes durch den Node?
Das stimmt. Für den Fall, dass ein Mesh durch Bones defomiert wird, ist der mesh-instanziierende Node eigentlich nicht mehr von Bedeutung. Der Node kann aber trotzdem Kinder haben, zum Beispiel die Skelett-Nodes - das hängt dann davon ab, wie Dein Grafiker und das verwendete Modellierungsprogramm das handhaben.
In diesem wie in dem obigen Fall lautet die Frage bzw. der springende Punkt:
Woher soll der User-Code wissen, was nun gewollt bzw. gemeint ist?
Haben wir ein statisches Mesh geladen das mehrfach instantiiert werden soll und versehentlich Bones enthält, oder haben wir ein animiertes Mesh geladen dass versehentlich mehrfach in der aiNodes Hierarchie erwähnt wurde?
Aus den vorliegenden Szenendaten ist dann gar nicht mehr zu erkennen, wo genau nun das Versehen liegt. Das ist aber auch egal, würde ich sagen... man hat dann halt zwei Instanzen des Meshes, die sich synchron bewegen. Falls das wirklich jemals vorkommen sollte und Du partout genau dieses File brauchst, löschst Du halt eine der Instanzen. Ansonsten wäre eher ein Ruf in Richtung der Grafikabteilung angebracht, was der Unsinn soll :-)
Bei den Splitterwelten machen wir das übrigens so: anhand der Bone-Namen wird der Teil der Hierarchie identifiziert, der das Skelett darstellt. Der wird dann als Szenegraph-Hierarchie nachgebildet und dem Mesh-Node untergeordnet. Ich empfehle, dabei auch eventuelle Nicht-Bone-Zwischennodes mitzunehmen, weil die Grafiker manchmal solche Zwischennodes einfügen, um sich das Animieren zu vereinfachen.