Sprechanimation bei Sprachausgabe
-
- Verpackungs-Wegwerfer
- Beiträge: 76
- Registriert: 09.04.2006, 17:51
- Kontaktdaten:
Sprechanimation bei Sprachausgabe
so, ich hab folgendes Problem:
Ich will, dass mein Charakter während er spricht einfach ständig die Sprechanimation durchläuft bis er aufhört zu sprechen...
Das wäre kein Problem, wenn ich Sprachausgabe + Text anzeigen lassen würde, aber ich will NUR die Sprachausgabe und dann animiert er nicht mehr...
hab versucht das dann folgendermaßen zu lösen
(im global script; repeatedly_execute_always):
if ((cHack.Speaking) && (!cHack.Animating)) {
cHack.ChangeView(2);
cHack.Animate(cHack.Loop, 5, eRepeat, eNoBlock); }
aber es funktioniert absolut NICHTS, denke mal das es daran liegt, das der char nicht im eigentlichen sinne "spricht"...
was kann man da machen?
Ich will, dass mein Charakter während er spricht einfach ständig die Sprechanimation durchläuft bis er aufhört zu sprechen...
Das wäre kein Problem, wenn ich Sprachausgabe + Text anzeigen lassen würde, aber ich will NUR die Sprachausgabe und dann animiert er nicht mehr...
hab versucht das dann folgendermaßen zu lösen
(im global script; repeatedly_execute_always):
if ((cHack.Speaking) && (!cHack.Animating)) {
cHack.ChangeView(2);
cHack.Animate(cHack.Loop, 5, eRepeat, eNoBlock); }
aber es funktioniert absolut NICHTS, denke mal das es daran liegt, das der char nicht im eigentlichen sinne "spricht"...
was kann man da machen?
-
- Verpackungs-Wegwerfer
- Beiträge: 76
- Registriert: 09.04.2006, 17:51
- Kontaktdaten:
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Wenn Du Farbe 63519 (255,0,255) verwendest, ist es durchsichtig.
Die Outline kriegt man mit Game.SpeechFont=0; weg.
Leider kann man die SpeechFont nur global ändern, nicht nur für einen Charakter.
Ich finde es aber sowieso seltsam, dass die Sprechanimation bei "nur Sprache" nicht mehr abgespielt wird.
Werd mir das bei Gelegenheit mal anschauen.
EDIT: So, habs getestet.
Am Anfang des Scripts SetVoiceMode(eSpeechVoiceOnly); und beide Charaktere machen herrlich Mundbewegungen.
Du benutzt nicht zufällig SayBackground?
Die Outline kriegt man mit Game.SpeechFont=0; weg.
Leider kann man die SpeechFont nur global ändern, nicht nur für einen Charakter.
Ich finde es aber sowieso seltsam, dass die Sprechanimation bei "nur Sprache" nicht mehr abgespielt wird.
Werd mir das bei Gelegenheit mal anschauen.
EDIT: So, habs getestet.
Am Anfang des Scripts SetVoiceMode(eSpeechVoiceOnly); und beide Charaktere machen herrlich Mundbewegungen.
Du benutzt nicht zufällig SayBackground?
Use gopher repellent on funny little man
-
- Verpackungs-Wegwerfer
- Beiträge: 76
- Registriert: 09.04.2006, 17:51
- Kontaktdaten:
Nein, ich benutze ganz normal "Say"KhrisMUC hat geschrieben: EDIT: So, habs getestet.
Am Anfang des Scripts SetVoiceMode(eSpeechVoiceOnly); und beide Charaktere machen herrlich Mundbewegungen.
Du benutzt nicht zufällig SayBackground?
also zB:
Code: Alles auswählen
cHack.Say("&1 bla");
hab jetzt einfach mal die schrift "unsichtbar" gemacht, so funzt es jedenfalls.
Keine Ahnung warum es nicht geht wenn ich einfach SetVoiceMode(eSpeechVoiceOnly); benutze...
naja,is zwar ein bisschen umständlicher (weil ich es eigentlich so machen will, dass man es während dem Spiel einstellen kann wie man will), aber immerhin gehts...
ich benutze AGS 2.72
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Ich hab es auch mit Say getestet, nicht im Dialog.
Es scheint ein kleiner Bug in AGS zu sein, ich konnte es nämlich reproduzieren:
Wenn "Lip sync" aktiviert ist, werden die Figuren nicht animiert, sobald VoiceOnly aktiv ist.
Wenn "Lip sync" ausgeschaltet ist, lässt AGS einfach die Animation in einer Schleife durchlaufen, d.h. die Einstellung Sprache/Text ist egal.
Ist aber "Lip sync" aktiviert, erfolgt die Animation auf Basis des Textes; da AGS bei VoiceOnly den zu sprechenden Text wohl einfach auf "" setzt, nimmt die Routine immer das "Default frame for unlisted characters", also 0. Folglich wird der Charakter nicht animiert.
Entweder schaltest Du also "Lip sync" von vornherein aus, oder Du benutzt:
(Und schaltest es wieder ein, wenn der Text angezeigt werden soll.)
Edit: So:
Es scheint ein kleiner Bug in AGS zu sein, ich konnte es nämlich reproduzieren:
Wenn "Lip sync" aktiviert ist, werden die Figuren nicht animiert, sobald VoiceOnly aktiv ist.
Wenn "Lip sync" ausgeschaltet ist, lässt AGS einfach die Animation in einer Schleife durchlaufen, d.h. die Einstellung Sprache/Text ist egal.
Ist aber "Lip sync" aktiviert, erfolgt die Animation auf Basis des Textes; da AGS bei VoiceOnly den zu sprechenden Text wohl einfach auf "" setzt, nimmt die Routine immer das "Default frame for unlisted characters", also 0. Folglich wird der Charakter nicht animiert.
Entweder schaltest Du also "Lip sync" von vornherein aus, oder Du benutzt:
Code: Alles auswählen
SetVoiceMode(eSpeechVoiceOnly);
SetGameOption (OPT_LIPSYNCTEXT, 0);
Edit: So:
Code: Alles auswählen
function SetVM(VoiceMode vm) {
if (vm==eSpeechVoiceOnly) SetGameOption (OPT_LIPSYNCTEXT, 0);
else SetGameOption (OPT_LIPSYNCTEXT, 1);
SetVoiceMode(vm);
}
Use gopher repellent on funny little man
-
- Verpackungs-Wegwerfer
- Beiträge: 76
- Registriert: 09.04.2006, 17:51
- Kontaktdaten: