Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
04.09.2007, 20:37
scratch



Hey Leute.

Ich modelliere seit einiger Zeit mit dem XSI Mod Tool und versuche mich momentan an Animationen für Models. Dabei bin ich auf ein kleines Problem gestossen, welches ich bisher nicht lösen konnte.

Ich habe also drei separate Objekte in der Szene, welche sich mit unterschiedlichen Geschwindigkeiten drehen sollen. Also erstelle ich drei separate 3d chains und animiere die Objekte, funktioniert im XSI alles soweit wunderbar. Wenn ich die Szene nun allerdings exportiere bleibt am Ende nur das erste Objekt übrig; die anderen beiden werden scheinbar nicht exportiert (Bones-Optimization?).

Etwa dasselbe Problem dann in einer anderen Szene: Ich animiere ein Schild, welches an einem Tor baumelt. Nach der Exportierung ist nur noch das Schild im HLMV zu sehen (die Animation wird korrekt exportiert).

Die Frage ist im Grunde also einfach: Wie kann ich sicherstellen, dass alle Objekte in einer Szene mit Animationen exportiert werden?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
05.09.2007, 14:39
ganzohnezahl



Hmmm, könntest Du die scene-Datei mal posten?

--

zum Seitenanfang zum Seitenende Profil || Suche
002
05.09.2007, 19:48
scratch



Hier ist die Szene inkl. Textur, anbei ist auch noch eine readme.txt, in der ich beschrieben habe, wie die Animation aussehen soll (allerdings auf englisch, habe das Problem auch anderswo gepostet). Im Grunde sollen die drei Objekte mit unterschiedlichen Geschwindigkeiten auf der Z-Achse rotieren (soll 'nen Wurmloch-Effekt ergeben); leider wird, selbst nach unzähligen verschiedenen Ansätzen, immer nur das erste Objekt+Bone exportiert.

Download: http://www.box.net/shared/yn06uqsob9

Das Model ist noch nicht animiert. Versuch's einfach mal, danke.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
06.09.2007, 14:43
breath-of-death



ohne jetzt herumprobieren zu wollen, vermute ich mal, dass es probleme gibt, wenn du mehr als eine bonechain verwenden willst. Die SourceEngine erwartet pro Model nur eine Chain, bzw erwartet das der exporter und exportiert dementsprechend nur eine. Verpasse den 3 chains n gemeinsamen rootbone (kann einfach n Null-objekt sein. Die bones werden beim exportieren eh in nulls "umgewandelt".), dann halte ich es zumindest für möglich, dass das problem behoben ist. ;) Abgesehen davon würde ich mich in deinem Fall eh nicht mit bonechains rumschlagen. Ein einfachs null, dass die entsprechende drehbewegung ausführt und dem du das objekt als envelope zuweist, ist vollkommen ausreichend.

Das problem mit dem tor ist ähnlich. Das tor musste nem rootbone/root_null zuweisen und damit verknüpfen kannste dann das schild mit nem weiteren bone bzw. null. Auch hier sind bones überflüssig. Die brauchst du nur, wenn du IK oder ähnliches benutzen willst.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
06.09.2007, 19:29
scratch



Danke für die Antwort breath-of-death, ich plage mich seit Tagen mit diesem Problem herum und habe immer noch keine passende Lösung gefunden. Deine Lösung habe ich auch schon (ähnlich) ausprobiert; um auf Nummer sicher zu gehen gerade eben nochmal - funktioniert nicht. Hier ein Screenshot:

http://i86.photobucket.com/albums/k120/scratch8o/unsorted/animation.jpg

Links im Bild der Explorer, wie man sehen kann habe ich die Objekte und Nulls extra nochmal gruppiert. Unten die finale Ansicht im HLMV, die Hierarchie der Nulls wurde korrekt übernommen, allerdings fehlen - wie bei allen anderen Versuchen - zwei der Bones (in diesem Falle Nulls, danke für den Tipp, ist auch einfacher zu handhaben ;)) und damit auch die daran gebundenen Objekte.

Wirklich, dieses Problem wird mir langsam etwas zu ärgerlich. Ich habe dazu in keinem einzigen Tutorial was gefunden, es wird lediglich gesagt, dass alle Objekte in einer animierten Szene extra Bones brauchen - diese Kondition ist erfüllt, aber es geht einfach nicht. :(

--


Dieser Beitrag wurde am 06.09.2007 um 19:29 von scratch bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
06.09.2007, 21:05
breath-of-death



puh, ich habs jetzt grad mal selbst versuch umzusetzen und bei mir klappt alles fehlerfrei. Deinen Fehler kann ich nicht reproduzieren. Aber er scheint bei dir systematisch aufzutreten, wenn du bei zwei verschiedenen modellen und auch, wenn du es von grund auf neu machst, das problem hast.
Probier mal das referenz model und die animation ohne jeglichen optimierungen vom smd exporter zu exportieren. Eigentlich muss dann noch alles da sein, selbst das camera_root. Du kannst zur schnellen Überprüfung auch einfach n blick in die smds werfen. Da steht am anfang, welche objekte enthalten sind. Das wäre jetzt zum Überprüfen, ob irgendwo der exporter mist baut und mehr "optimiert", als nötig ist.
Wenn alles da ist (und davon sollte man ausgehen), ist irgendetwas mit dem model verkehrt. Versuch dann mal folgendes: lösche die "Struktur-Nulls" Vortex, meshes und nulls. natürlich vorher die bonenulls und die meshes direkt dem scene_root unterordnen. danach markierst du alle bonenulls und meshes und erstellst ein Model: Create>Model>New Model. Die Objekte sollten dann direkt dem neuen model untergeordnet sein. Exportiere dann mal. Irgendwie mag source das gerne, wenn man das so macht. Hat bei mir zumindest schon ein paar mal ein model exportierbar gemacht ;)
Das irgendwas mit den zugewiesenen materials oder dem envelope nicht passt, schließ ich aus. Da würd sich der Exporter schon melden...

Die .exp datei ist von der mod-tool version von XSI`, oder (wenn ich mich recht erinner)? die kann man mit der full nicht öffnen.

--

zum Seitenanfang zum Seitenende Profil || Suche
006
06.09.2007, 21:58
scratch



Hm merkwürdig. Selbst mit dem "new model" Versuch hat es nicht funktioniert (der macht allerdings Sinn, habe mal testweise das Airboat aus HL2 geöffnet [ist im SDK enthalten], dort ist auch alles diesem Model-Knotenpunkt untergeordnet. Wusste nur nicht, wie ich dieses Knotenpunkt erstellen kann).

Kannst Du mal detailiert erklären, wie Du es gemacht hast? Ich weiß wirklich nicht, was ich falsch mache. Wenn ich die Objekte ohne Animation exportiere funktioniert es einwandfrei, sobald ich aber Bones / Nulls hinzufüge (selbst ohne diese zu animieren und trotz des "Model"-Knotenpunkts) bin ich zurück beim alten Problem.

Danke für die Mühe!

[Edit]

Yay, ich hab's! Ich habe zum Vergleichen nochmal das Airboat geöffnet und da ist mir aufgefallen, dass das Boot selbst ein einziges Objekt ist. Also habe ich kurzerhand mal mein animiertes Wurmloch genommen, die drei Objekte über Blend zu einem gemacht, und nun geht's.. selbst die Animation funktioniert. Ich brauche nichtmal diesen Model-Knotenpunkt. Endlich, danke!

Nur noch zwei Fragen zum Abschluss:

1) Ist dieser Weg zuverlässig? Ich meine damit, kann dies zu Problemen führen oder ist es eine völlig legitime Methode?

2) Die Animation ist noch nicht ganz tadellos. Am Start und Ende verlangsamt sich die Animation, wie kann ich also die Geschwindigkeit als konstant einstellen?

--


Dieser Beitrag wurde am 06.09.2007 um 22:34 von scratch bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
07.09.2007, 02:26
breath-of-death



na endlich ;)
1) ja, ansich macht man das immer so. ich habs allerdings auch mit 3 einzelnen meshes überprüft und bei mir klappts, naja...
2)das liegt an den fcurves der animation. standartmäßig glättet xsi sozusagen deine animationen. Selektiere dein animiertes objekt, öffne den Animation Editor (Hotkey: 0). Jetzt sind links die animierten parameter angezeigt und im großen fenster rechts daneben die animationskurven für diese einzelnen parameter. Du kannst die parameter einzelnen oder gruppenweise anklicken, die kurven werden entsprechend angezeigt. Deine kurven werden nun schön geschwungen und glatt sein, keine Knicke. Das ist n zeichen für geschmeidige animationen. Nur versaut das die anim am anfang und ende. Die Lösung ist, die steigung des graphen zur anfangs- und endzeit der animation halt gleich zu machen. Da die drehgeschwindigkeit deiner Objekte ja die ganz zeit konstant bleiben soll, kannst du es dir einfach machen. Bevor du jetzt anfängst, an den anfasserpunkte der kurve zu zerren, kannst du einfach anfangs- und endpunkt auswählen und die interpolation auf linear stellen. Dafür gehst du oben ins menü curves>lineare interpolation. Dann sollte alles passen.

--

zum Seitenanfang zum Seitenende Profil || Suche
008
07.09.2007, 18:12
scratch



Danke, klappt nun alles :)

--

zum Seitenanfang zum Seitenende Profil || Suche