Animieren von Charakteren...
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
Animieren von Charakteren...
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?
Aber irgendwie klappt das nicht so wies soll... was kann ich falsch gemacht haben?
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
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.
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.
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
-
- Logik-Lord
- Beiträge: 1089
- Registriert: 12.08.2002, 11:44
- Wohnort: Köln
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.
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.
- DieFüchsin
- Adventure-Gott
- Beiträge: 4406
- Registriert: 12.03.2004, 16:55
-
- Süßwasserpirat
- Beiträge: 258
- Registriert: 22.09.2002, 21:28
- Kontaktdaten:
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.AnimateCharacter(NEV,0,15,1);
wartet allerdings nur 10 game-loops, so dass das 2. Bild nie angezeigt wird.Wait (10);
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.
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
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);
}
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
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
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.
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.
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.
http://www.agsforums.com/yabb/index.php?topic=15536.0
Mit SetplayerCharacter kannst einen anderen Charakter steuern,
aber nicht unsichtbar machen.