Animieren von Charakteren...

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Animieren von Charakteren...

Beitrag von DieFüchsin »

Irgendwie hat das bei mir nicht geklappt. Der Charakter soll die Animation ausführen, warten (10) dann einen Satz sprechen, noch einmal warten (10) und die Animation erneut ausführen. Dann nochmal warten (10) und dann laufen.

Aber irgendwie klappt das nicht so wies soll... was kann ich falsch gemacht haben?
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

Wie soll es klappen?
Wie klappt es?
Wie sieht dein Script aus?
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

mein script sieht folgendermaßen aus:

ChangeCharacterView(NEV, 9);
AnimateCharacter(NEV,0,15,1);
Wait(10);
DisplaySpeech(NEV, "OCUNORMALIS!");
AnimateCharacter(NEV,0,15,1);
Wait(10);
ChangeCharacterView(NEV, 8 );
MoveCharacter(NEV, 260, 154);

er läßt die animationen einfach aus, der rest ist normal.
Sharalamude

Beitrag von Sharalamude »

vor jedem AnimateCharacter(...) muss' 'ne Zeile für SetCharacterView(NEV,viewnummer) sein! Dann müsste es klappen. Also anstatt ChangeCharacterView SetCharacterView... bin mir nicht sicher, ob das klappt, es gibt da aber eine hohe Warscheinlichkeit, DASS es klappt.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

hm, weiß nicht, eigentlich änderts bei changecharacterview das aussehen auch, naja ich probiers mal
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

hat leider nicht geklappt :( warum???
Norman
Logik-Lord
Logik-Lord
Beiträge: 1089
Registriert: 12.08.2002, 11:44
Wohnort: Köln

Beitrag von Norman »

Füge mal nach jeder Animate-Zeile ein

Wait(0);

ein und lass den Rest vorerst mal so, wie es ist, also ruhig die dann doppelt auftauchenden Wait-Zeilen jeweils nacheinander stehen lassen, und lass das script dann mal laufen.
Bin mir nicht sicher, ob das was bringt, aber eventuell ist die Pause nach dem Animieren zu kurz, so dass er die anderen Aktionen ausführt, ohne dass man was von der Animation sieht, obwohl er sie beginnt auszuführen, aber dann quasi von den folgenden Zeilen zu früh unterbrochen wird. In dem Fall müsste Wait(0); weiterhelfen.

Wenn nicht, weiß ich spontan auch nix anderes.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

klappt auch nicht :x
was ist denn da los!
kann mir keiner helfen? :(
Sharalamude

Beitrag von Sharalamude »

Das kann doch garnicht nicht klappen :-k
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

AnimateCharacter(NEV,0,15,1);
Der delay-Parameter ist bei dir 15. 0 ist normale Geschwindigkeit, größere Werte verlangsamen die Animation. 15 bedeutet vermutlich, dass immer nach 15 game-loops das nächste Bild der Animation verwendet wird.
Wait (10);
wartet allerdings nur 10 game-loops, so dass das 2. Bild nie angezeigt wird.

Vorschläge:
1. Verwende statt der 15 eine 0 und wenn die Animation dann zu schnell geht, eine 1 oder 2.....

2. Vergrößere die Wartezeit.

3. Wenn die Animation nur ein einziges Mal ablaufen soll, setz den repeat-Parameter auf 0 und verwende
while(character[EGO].animating) Wait(1);
um auf das Ende der Animation zu warten

Tipp:
SetCharacterView(EGO,12); wird verwendet, um kurz mal auf eine andere View (hier 12) umzuschalten, bspw. für eine Animation.
ReleaseCharacterView(EGO); schaltet wieder auf die normale View zurück.
ChangeCharacterView verändert dauerhaft die normale View.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

aaah vielen dank :D
Sanxia

Beitrag von Sanxia »

Ich hänge auch gerade an den Animationen. Ich will das hier einbauen in das room script:

AnimateCharacter(FIGUR,0,10,1);

Figur und 0 sind mir klar, aber welche Bedeutung hat die 10 und 1?? Muss ich noch was anderes scripten, damit die einfach Animation abläuft oder reicht die zeile?
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

die Dritte Zahl ist die Geschwindigkeit, die vierte betimmt, ob die Animation wiederholt wird

P.S. an die Füchsin:

function QuickAnimation(int char, int view, int loop, int delay, int blocking) {
int before = character[char].view;
ChangeCharacterView(char, view);
if(blocking == 0) {
AnimateCharacterEx(char, loop, delay, 0, 1);
}
else {
AnimateCharacterEx(char, loop, delay, 0, 0);
}
ChangeCharacterView(char, before);
}
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Sanxia

Beitrag von Sanxia »

Ich habe folgendes: Zuerst lasse ich eine Animation ablaufen, dann soll eine neue ablaufen und parallel Text dazu, dann kommt eine neue Ani und dann soll der Spieler sich nach links drehen und loslaufen.

Mein Problem ist, wie ich eine vorherige bzw. bestimmte oder abgelaufene Animation abschalte/lösche??

...bei der letzten Sache würde dann die Animation ausgeblendet und der charakter mittels movecharacter bewegt, aber wie stellt man es ein, dass er in eine bestimmte Richtung schaut?

PS: Bei den ersten Anis handelt es sich um eine richtige Animation, wenn er sich dann drehen soll, ist es die EGO Figur. Auch hier habe ich Probleme, denn die Spielerfigur lässt sich nicht ausblenden. :(
Geht es ev. mit SetPlayerCharacter? Weil ich kann unter Characters in AGS nur eine Figur als EGO bestimmen?!

Da das Anfängerprobleme sind und die genannten Sachen IMMER wieder auftauchen, wäre es schön, wenn ihr mir eine Starthilfe geben könntet. :)
Rocco als Gast

Beitrag von Rocco als Gast »

zu der frage wo der charakter hinschaut hier eine url:
http://www.agsforums.com/yabb/index.php?topic=15536.0

Mit SetplayerCharacter kannst einen anderen Charakter steuern,
aber nicht unsichtbar machen.
Antworten