Animiertes Objekt wird nicht korrekt gerendert

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Spark Fountain

Betreff: Animiertes Objekt wird nicht korrekt gerendert

BeitragMi, Mai 15, 2013 14:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe Community,

ich habe mir kürzlich die Software MakeHuman heruntergeladen, und mal einen Charakter erstellt. Den habe ich nach Milkshape importiert und dann ein Skeleton hinzugefügt (mit Animationen und so), um es wieder als .b3d zu exportieren.
Dann habe ich außerdem einen Schraubenzieher modelliert, den die Figur in die Höhe halten kann. Dafür gibt es eine Animation, die ich sowohl für das Mensch-Mesh, als auch für das Schraubenzieher-Mesh angewendet habe; aber beide Modelle wurden separat exportiert als .b3d. Das hat den Grund, dass man die Möglichkeit haben soll, den Schraubenzieher auch weg zu stecken, und dann soll er ja nicht an dem Mensch-Modell mit dran hängen.

Jetzt aber zum eigentlichen Problem: In meiner Testumgebung kann ich die Kamera beliebig um die Figur drehen, und habe festgestellt, dass es manchmal aus einigen Perspektiven dazu kommt, dass der Schraubenzieher unsichtbar wird. - Natürlich meine ich nicht den Moment, wenn ich mich hinter der Person befinde und ihn logischerweise nicht sehen kann; sondern auch wenn ich von vorne, leicht seitlich, auf die Figur schaue, wie sie sich mit dem Schraubenzieher in der Hand bewegt. Dann verschwindet dieser manchmal kurzzeitig, manchmal auch komplett. Ich muss dann den Kamerawinkel erst wieder etwas verändern, um ihn wieder sichtbar zu machen.

Folgendes habe ich schon probiert:
Arrow Beide Objekte skaliert. Ich dachte, es läge vielleicht daran, dass der Schraubenzieher (zumal es nur ein dünner Zylinder mit Textur ist), zu klein wäre und es deshalb zu Render-Fehlern kommt. Also hab ich sowohl den Mensch, als auch den Schraubenzieher um den Faktor 10 skaliert. Das Problem trat nach wie vor auf, in derselben Weise wie zuvor.
Arrow Camera-Range verändern: Ich habe als Parameter für das Nah-Clipping 1, 0.1 und schließlich 0.01 probiert. Hat nichts gebracht.
Arrow Animation stoppen: Damit kommen wir der Sache näher. Zuerst hab ich beide Animationen gestoppt, aber das Problem bestand weiterhin. Dann hab ich beide Meshes statt mit LoadAnimMesh nur mit LoadMesh geladen. Und siehe da: Jetzt gab es keine Render-Fehler mehr!

Hat jemand von euch eine Idee, wie man diesen Render-Fehler bei Animationen beheben kann? Es liegt wahrscheinlich daran, dass beide Objekte sehr dicht beieinander sind, bzw. sich auch überlappen während der Animation...


Vielen Dank schonmal!

Tankbuster

BeitragMi, Mai 15, 2013 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
LoadAnimMesh und LoadMesh machen völlig unterschiedliche Sachen. Bei LoadMesh wird einfach nur ein Mesh geladen. Bei LoadAnimMesh allerdings auchnoch die VertexGroups,Unterobjekte, ect.
Wenn du auf ein Bestimmtes Teil des Meshs zugreifen willst, musst du Findchild benutzen.

Nichtmal das sollte bei einem Bone-animierten Objekt funktionieren:
Code: [AUSKLAPPEN]

Anim_objekt=LoadAnimMesh("blabla.b3d")
EntityColor Anim_objekt,255,0,0

Das Ergebnis wäre, dass die Objektgruppe die Farbe nicht ändert.

mit LoadAnimMesh geladene Objekte sollte man deshalb ehr als Objektgruppe als als wirkliches Objekt betrachten.

Außerdem kann es sein, dass durch fehlerhaften Export die Nullpunkte der Vertex-Gruppen verändert werden. Oder, je nachdem wie du modelliert hast, die Sachen auch verdreht sind. Ob du ein Objekt drehst, oder die Vertexe umpositionierst (Bei Blender Object Mode <> Edit Mode) macht einen wahnsinnigen Unterschied, wenn das exportscript damit nicht umgehen kann, dann tschüss schönes Modell.
Twitter
Download Jewel Snake!
Windows|Android

Spark Fountain

BeitragMi, Mai 15, 2013 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke erstmal für die Antwort. Allerdings glaube ich nicht, dass es ein Problem mit dem Exportskript gibt, zumal das Objekt wie gesagt nur manchmal gerendert wird und manchmal wieder nicht. Wenn es aber dann dargestellt wird, sind Position, Winkel etc. immer korrekt.

Gibt es sonst eine andere Lösung, den Schraubenzieher zu animieren? Würde es z.b. einen Unterschied machen, wenn ich das Modell statisch lade und dann mit LoadAnimSeq die Bewegung hinzufüge? Oder müsste ich da das Menschmodell unterteilen in Gliedmaßen, und dann den Schraubenzieher als Child von der Hand definieren? ( Würde das klappen, oder beeinflusst die Animation gar nicht die eigentliche Position des Objekts? Also bleiben die Positionskoordinaten gleich, obwohl ein Objekt durch eine Bone-Animation verschoben wird? Sorry, hab da leider keine Ahnung von...)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group