|
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
mds macht Probleme: Monster führt nicht alle definierten Bewegungen aus
Hi,
hab mich mal wieder ans animieren ran gemacht und diesmal sehr viele Animationen erstellt, die MDS ist dementsprechend angewachsen u. ich hab das ganze inzwischen ganz gut durchstiegen.
Allerdings verhält sich das Vieh ingame noch nicht wie ich es in der mds (meiner Meinung nach) definiert habe.
Folgende Fehlverhalten treten auf:
- Die Spinne läuft nicht rückwärts. Hierzu kehre ich eigentlich die vorwärts Animationen um wie es auch z.B. bei anderen Monstern wie dem Molerat gemacht wird.
- Die Spinne springt zwar aus dem Stand, aber die Animation für das Springen aus dem laufen heraus wird nicht abgespielt. //EDIT: Von mir gelöst am 4.1.2009
- Die Animation die beim Wechsel zwischen lauf-Modus und renn-Modus abgespielt werden soll wird nicht gespielt. Vorher hatte ich eine aniBlend, die hat er gespielt, jetzt habe ich eine eigene ani als asc dafür bereitgestellt, die wird nicht abgespielt. Anstelle dessen zuckt die Spinne nur kurz. Vom rennen zu laufen läuft die Spinne dann auch nicht mehr u. der Modus lässt sich nicht mehr wechseln. Erst wenn ich F8 im Marvin-Mode verwendet habe geht’s wieder. Gemeint sind folgende zwei Animationen:
"t_FistRun_2_FistWalk" und "t_FistRun_2_FistWalk"//EDIT: Problem behoben von Neok
Wegen des ersten Problems habe ich test halber mal versucht, die vorwärts laufen Animation so zu definieren wie die rückwärts laufen, also rückwärts abspielen lassen. Da funktioniert dann auch alles. Daran dass die Animation nicht rückwärts abgespielt werden kann liegt es also nicht.
Zugeordnete Gilde ist die Snapper-Gilde, hab aber auch schon Molerat u. Meatbug ausprobiert, keine nennenswerte Veränderung.
Hier mal die mds:
PHP-Code:
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Last Changes:
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Model ("spider")
{
meshAndTree ("spider_body.ASC" DONT_USE_MESH)
registerMesh ("spider_body.ASC")
aniEnum
{
// | KEYWORD | ANI-NAME |LAYER| NEXT-ANI | BI | BO |F |ASC-FILE | DIR |FF |LF
//----------------------------------------------------------------------------------------------------------------------------
//////////////////
// FIST RUN
//////////////////
//Vorwärts:
//Ruhestellung:
ani ("s_FistRun" 1 "s_FistRun" 0.0 0.0 ME "spider_walk_2_run.ASC" F 20 20)
// Loslaufen:
ani ("t_FistRun_2_FistRunL" 1 "s_FistRunL" 0.0 0.0 M. "spider_run.ASC" F 1 24)
// Laufen:
ani ("s_FistRunL" 1 "s_FistRunL" 0.0 0.0 ME. "spider_run.ASC" F 25 44)
// Anhalten:
ani ("t_FistRunL_2_FistRun" 1 "s_FistRun" 0.0 0.0 ME. "spider_run.ASC" F 45 69)
//////////////////
// FIST WALK
//////////////////
//Vorwärts:
// Ruhestellung:
ani ("s_FistWalk" 1 "s_FistWalk" 0.0 0.0 ME "spider_walkAmbient.ASC" F 0 60)
// Loslaufen:
ani ("t_FistWalk_2_FistWalkL" 1 "s_FistWalkL" 0.0 0.0 M. "spider_walk.ASC" F 1 24)
// Laufen:
ani ("s_FistWalkL" 1 "s_FistWalkL" 0.0 0.0 ME. "spider_walk.ASC" F 25 44)
// Anhalten:
ani ("t_FistWalkL_2_FistWalk" 1 "s_FistWalk" 0.0 0.0 ME. "spider_walk.ASC" F 45 69)
//Rückwärts:
// Vorwärts zu rückwärts laufen:
aniAlias ("t_FistWalk_2_FistWalkBL" 1 "s_FistWalkBL" 0.0 0.0 M. "t_FistWalkL_2_FistWalk" R)
// Rückwärts laufen:
aniAlias ("s_FistWalkBL" 1 "s_FistWalkBL" 0.0 0.0 M. "s_FistWalkL" R)
// Rückwärts zu vorwärts laufen:
aniAlias ("t_FistWalkBL_2_FistWalk" 1 "s_FistWalk" 0.0 0.0 M. "t_FistWalk_2_FistWalkL" R)
aniBlend ("t_FistWalkBR_2_FistWalk" "s_FistWalk" 0.2 0.2)
//////////////////
// TURNING
//////////////////
// links rum drehen:
ani ("t_FistRunTurnL" 20 "t_FistRunTurnL" 0.2 0.2 M. "spider_turnL.ASC" F 5 24)
aniAlias ("t_FistWalkTurnL" 20 "t_FistWalkTurnL" 0.2 0.2 M. "t_FistRunTurnL" F)
// rechts rum drehen:
aniAlias ("t_FistWalkTurnR" 20 "t_FistWalkTurnR" 0.2 0.2 M. "t_FistRunTurnL" R)
aniAlias ("t_FistRunTurnR" 20 "t_FistRunTurnR" 0.2 0.2 M. "t_FistRunTurnL" R)
//////////////////
// TRANSITIONS
//////////////////
//Renn-Modus nach Lauf-Modus:
ani ("t_FistRun_2_FistWalk" 20 "s_FistWalk" 0.0 0.0 M. "spider_walk_2_run.ASC" R 1 20)
aniAlias ("t_FistRun_2_FistWalk" 20 "s_FistWalk" 0.0 0.0 M. "t_FistWalk_2_FistRun" R 1 20)
// aniSync ("t_FistRun_2_FistWalk" "s_FistWalk")
// aniSync ("t_FistWalk_2_FistRun" "s_FistRun")
//Rennen nach laufen:
aniSync ("t_FistRunL_2_FistWalkL" "s_FistWalkL")
aniSync ("t_FistWalkL_2_FistRunL" "s_FistRunL")
/////////////////////
// FIST STRAFING (Seitwärts laufen)
/////////////////////
// -------------------------------------------------------------------------------------------------------------------------------------
// FIST-RUN STRAFFING
ani ("t_FistRunStrafeL" 1 "t_FistRunStrafeL" 0.2 0.2 M. "spider_walkSide.ASC" R 0 24)
ani ("t_FistRunStrafeR" 1 "t_FistRunStrafeR" 0.2 0.2 M. "spider_walkSide.ASC" F 0 24)
// FIST-WALK STRAFFING
aniAlias ("t_FistWalkStrafeL" 1 "t_FistWalkStrafeL" 0.2 0.2 M. "t_FistRunStrafeL" R)
aniAlias ("t_FistWalkStrafeR" 1 "t_FistWalkStrafeR" 0.2 0.2 M. "t_FistRunStrafeR" F)
/////////////////
// JUMP
/////////////////
//Sprung aus Stand:
ani ("t_Stand_2_Jump" 1 "s_Jump" 0.0 0.0 MF "spider_jump.ASC" F 1 27)
//Sprung aus Laufen heraus:
ani("t_FistRunL_2_Jump" 1 "s_Jump" 0.2 0.2 MF "spider_jump.ASC" F 14 27)
//In Luft, 1 Frame vor aufkommen:
ani ("s_Jump" 1 "s_Jump" 0.0 0.0 MF "spider_jump.ASC" F 28 28)
//Aufkommen:
ani ("t_Jump_2_Stand" 1 "" 0.0 0.1 M. "spider_jump.ASC" F 29 40)
//Aufkommen und weiterrennen:
aniBlend ("t_Jump_2_FistRunL" "s_FistRunL" 0.2 0.2)
//////////////////
// FALLDOWN
//////////////////
// Fallen:
ani ("s_FallDn" 1 "s_FallDn" 0.0 0.0 MF "spider_falldown.ASC" F 0 0)
// Aufkommen:
ani ("t_FallDn_2_Stand" 1 "" 0.0 0.0 M. "spider_falldown.ASC" F 1 10)
}
}
Ich hoffe hier kennt sich jemand so gut damit aus.
Hab schon den Ein oder Andern gefragt, der sich damit eigentlich ganz gut auskennt u. niemand konnte bis jetzt richtig helfen.
Geändert von Player140 (04.01.2009 um 22:40 Uhr)
Grund: Weiteres Problem gelöst
-
kann es sein das
Code:
//Renn-Modus nach Lauf-Modus:
ani ("t_FistRun_2_FistWalk" 20 "s_FistWalk" 0.0 0.0 M. "spider_walk_2_run.ASC" R 1 20)
aniAlias ("t_FistRun_2_FistWalk" 20 "s_FistWalk" 0.0 0.0 M. "t_FistWalk_2_FistRun" R 1 20)
auf dem falschen layer liegen? ich glaube die müssen auf layer 1 oder 2 aber nich 20...
What do you think I am? Human?
- the Architect
-
Das würde erklären warum mein Gobbo nur sterben, und fallen konnte^^
♥ HolyWater ♥ YAY xD
-
außerdem heißt dad nicht
Code:
// Rückwärts laufen:
aniAlisas ("s_FistWalkBL" 1 "s_FistWalkBL" 0.0 0.0 M. "s_FistWalkL" R)
sondern
Code:
// Rückwärts laufen:
aniAlias ("s_FistWalkBL" 1 "s_FistWalkBL" 0.0 0.0 M. "s_FistWalkL" R)
kann aber auch sein das du das nur hier falsch geschreiben hat, weil da doch eigtl. ne fehlermeldung kommen müsste, bin mir aber nich sicher ob der bei falschen Keywords meckert oder es einfach nur auslässt.
zu dem Springen aus dem laufen, kanns es vllt sein das der dafür extra ne Ani braucht, jedenfalls is es in der HumanS.mds so, du solltest mal die "HUM_JUMP_M01.ASC"(Frame 6 - 29) mit der "HUM_RUNLJUMP_M01.ASC" (Frame 0 - 20) vergleichen
What do you think I am? Human?
- the Architect
Geändert von Neok (05.04.2008 um 19:15 Uhr)
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
Super
1. Das Problem mit der Wechselanimation (Punkt 3) ist behoben, es lag an dem Animationlayer, komischerweise Dacht das wäre egal und hab die 20 beim Kopieren der lauf-wechsel-ani übernommen.
2. Der Fehler mit dem "aniAlisas" ist mir nicht aufgefallen, auch nach mehrmaligem durchlesen. Entweder ist er neu rein gekommen oder ich bin doch ein Maulwurf Aber leider hat das das Problem nicht behoben, der Fehler steckt noch wo anders Habs aber oben trotzdem mal mit editiert.
Zitat von Neok
zu dem Springen aus dem laufen, kanns es vllt sein das der dafür extra ne Ani braucht, jedenfalls is es in der HumanS.mds so, du solltest mal die "HUM_JUMP_M01.ASC"(Frame 6 - 29) mit der "HUM_RUNLJUMP_M01.ASC" (Frame 0 - 20) vergleichen
überprüf ich gleich mal. Aber "t_FistRunL_2_Jump" hab ich ja auf jeden Fall.
Edit: Ne, also alle Anis die dafür nötig sind müssten definiert sein, das ist was zählt. Im Moment nutze ich halt noch die gleiche animation wie beim Laufen, das wird die Engine aber nicht weiter stören, die Animation wird intern dann eh extra gespeichert.
Geändert von Player140 (05.04.2008 um 22:22 Uhr)
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
So, hab lang nicht weiter gemacht an der Spinne, ist aber nicht vergessen
Heute hatte Schatti ein paar Animationsprobleme, dabei bin ich irgendwie auch wieder auf meine Spinne zurück gekommen u. hab ein wenig dran gewerkelt um endlich diese Fehler weg zu bekommen.
Hab viel mit anderen Monstern experimentiert, dabei ist mir aufgefallen dass die Monster beim Springen aus dem Rennen heraus u.a. die Animation t_FistRunR_2_Jump abspielen. Definiert hab ich diese schon u. hab dort auch immer den Fehler gesucht, jetzt hab ich aber gemerkt dass bei einigen Monstern die zwar diese Animation abspielen die Animation gar nicht im compiled Verzeichnis liegt (Molerat). ICh frag mich eh was FistRunR sein soll, also hab ich geschaut was es noch für Animation mit FistRunR gibt bei anderen Monstern. Dabei hab ich noch t_FistRunR_2_FistRun gefunden, wozu auch immer das gut sein soll... Mehr jedoch nicht mit FistRunR im Namen.
Hab also diese Animation auch mal mit in mein Skript für die Spinne gebaut, und siehe da... es funktioniert
Ich finde das zwar alles andere als logisch, freue mich aber dass ich das Problem endlich lösen konnte. Das gibt wieder Motivation weiter zu animieren. Das Animieren ist ja eigentlich gar nicht das Problem, was immer wieder demotiviert ist diese Fehlersucherei und teilweise nicht nachvollziehbare Verhalten von Gothic was die mds anbelangt.
Hier noch mal in der Kurzform:
Die Zeile...
aniBlend ("t_FistRunR_2_FistRun" "s_FistRun" 0.2 0.2)
...wird benötigt damit der Sprung aus dem Rennen heraus funktioniert:
ani("t_FistRunL_2_Jump" 1 "s_Jump" 0.2 0.0 M. "spider_jump.ASC" F 14 27)
aniAlias ("t_FistRunR_2_Jump" 1 "s_Jump" 0.2 0.0 M. "t_FistRunL_2_Jump" F)
Für Sprung aus dem Stand braucht man u.a. die Zeile:
ani ("t_Stand_2_Jump" 1 "s_Jump" 0.0 0.0 MF "spider_jump.ASC" F 1 27)
-
Gut zu wissen
Dürfen wir vllt mal ein kleines Video von der Spinne in Aktion sehen?
What do you think I am? Human?
- the Architect
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
-
Zitat von Player140
ICh frag mich eh was FistRunR sein soll, [...]
In Gothic macht es (aus Sicht der Animationen) einen Unterschied, ob der Charakter mit dem linken oder rechten Bein den Sprung beginnt. Deswegen gibt es eine eigene Animation für das "Springen mit dem rechten Bein".
Man kann in der Konsole den Zeitfaktor verringern (time multiplier), um die Animationen besser zu kontrollieren. Die Tastenkombination zum Aktivieren der Animationsinformationen will mir gerade nicht einfallen.
ps: Ich erinnere mich dunkel, in Gothic 2.5 oder 2.6 ein "Problem" (das keiner bemerkt hat ) behoben zu haben, dass der Spieler unter Umständen die falsche Sprunganimation abspielte (das linke Bein war beim Beginn vorne, aber der Sprung wurde mit dem rechten Bein ausgeführt).
"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
Geändert von NicoDE (05.01.2009 um 08:32 Uhr)
-
What do you think I am? Human?
- the Architect
Geändert von Neok (05.01.2009 um 15:21 Uhr)
-
So ich möchte schnell auch ein Problem hier schildern.
Und zwar ist mir aufgefallen, dass die Engine eine bestimmte Animation die in jeder MDS definiert ist, einfach nicht abspielt. Und zwar handelt es sich um die Animation, die im Fist Modus bzw. in jedem anderen Waffenmodus das Rennen ins Laufen blenden soll.
Im Fistmode wäre das konkret die Animation: T_FistRunL_2_FistRun
Die Engine spielt also die S_FistRunL und im Anschluss gleich die S_FistRun.
Also 2 State Anis direkt hintereinander...
Habt ihr ne Idee?
Liegts evtl auch am linken oder rechten Bein?
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
^^Meine Vermutung ist ja immer noch dass die Animation bewusst nicht abgespielt wird weil das Monster/Mensch noch weiter laufen würde weil die End-Animation noch abgespielt wird und es deswegen vielleicht Probleme gab in den Betatests?
Z.B. ein Mensch soll zu WP_x laufen und läuft immer ein stück weiter weil noch die stehen bleiben Animation gespielt wird.
@NicoDE: Danke für die Info, das mit Bein L bzw R abspringen klingt logisch
Allerdings hat die Spinne 8 Beine, ich glaub da blick ich nicht mehr durch mit linkem Bein und rechtem Bein. Woran macht das die Engine eigentlich aus, ob gerade das linke oder rechte Bein vorne ist?
-
Diese Ani wird ja nur im Fistmode nicht gespielt...
Im normalen Lauf- oder Gehmodus wird die ja abgespielt...
Also kanns an der WP Theorie nicht liegen.
Ich finds ja schon komisch dass diese Ani in jeder MDS drin ist...
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
Ist sie vllt. drin weil sonst wieder irgendwas anderes nich gehen würde? Schon mal so eine Ani importiert? Obwohl dann könnte man auch einfach ein Anialias hernehmen.
Vllt. wirklich ein fehler in der Engine der niemandem aufgefallen ist der das Abspielen der Ani verhindert.
Zitat von Neok
Edit: Also ich hab grade mal nachgeguckt wie das ist, wenn man mit Monster Rückwärtsläuft...
Und es wird mir angezeigt das da die Ani "T_FISTPARADEJUMPB" ausgeführt wird, ich diese aber oben bei in der MDS nicht finde (...oder ich habs auf die Schnelle überlesen )
Werd mal schauen. Ist mir auch schon aufgefallen dass das die meisten oder alle Monster so machen, vllt. können die im Fist mode wirklich nicht richtig rückwärts laufen. Werds bei Gelegenheit ausprobieren
Geändert von Player140 (06.01.2009 um 03:34 Uhr)
-
Zitat von Schattenlord34
Ich finds ja schon komisch dass diese Ani in jeder MDS drin ist...
Was nicht bedeuten muss, dass sie auch abgespielt werden muss (was aber auch nicht bedeuten muss, dass sie fehlen darf...). Es gibt feste Animationsbedingungen und -folgen, die dafür sorgen, dass eine Animation nur selten abgespielt wird.
Nur als (frei erfundenes) Beispiel: t_FistRunL_2_FistRun wird nur abgespielt, wenn der Charakter zum Stehen kommen wird (Kollision) oder s_FistRunL noch nicht zu 10% oder mehr als 90% abgespielt wurde. Wenn der Charakter nicht zum Stehen kommen wird und s_FistRunL mehr als 40% und weniger als 60% abgespielt wurde, dann wird t_FistRunR_2_FistRun abgespielt.
Durch die komplexe Kombination/Logik von Code und Daten kann es, im Laufe der Zeit, durch die Änderungen dazu gekommen sein, dass eine Animation gar nicht mehr abgespielt wird - und manchmal, zu allem Überfluss, trotzdem vorhanden sein muss.
Gruß Nico
"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
-
Hast du denn ne Idee wie ich trotzdem den Walkcycle mit einer Ani beenden kann?
Das Problem ist, dass das abruppte Wechseln der 2 Anis durch eine "besondere" Fortbewegungsart total schlecht aussieht.
Ich habe das Monster jetzt zur Zeit einfach im normalen Modus, da es dort wenigstens diese Ani abspielt, aber das macht es momentan auch nicht besser. Weil wenn es "die Waffe zieht" (in den FistMode wechselt) dann wars das ja wieder...
-
Benutzer, die ihr Benutzerkonto per E-Mail bestätigen müssen
Wenn die Engine die Ani einfach nicht abspielt wird da wohl wenig zu machen sein, oder?
Vielleicht mit dem E Flag für beide Animationen versuchen.
-
Den hatte ich auch schon gesetzt bei beiden Anis
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|