Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 Phylactère

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6
AuteurMessage
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 15:48

Une solution est de jouer l'animation du personnage et le fichier audio correspondant au discours à chaque fois qu'on utilise Phylactere, comme ça :
Code:
player.LockView(player.SpeechView);
player.Animate(player.Loop, 4, eRepeat, eNoBlock);
aSalutLesGens.Play();
player.Phylactere("Salut les gens !");
player.UnlockView();
Et évidemment ça peut se simplifier en une fonction plus générale :
Code:
function Phil(this Character*, String texte, AudioClip* doublage) {
  this.LockView(this.SpeechView);
  this.Animate(this.Loop, 4, eRepeat, eNoBlock);
  if (doublage != null) doublage.Play();
  this.Phylactere(texte);
  this.UnlockView();
}

Le problème majeur que j'anticipe en revanche c'est la synchronisation labiale, là je vois mal comment faire, sinon avoir une copie du personnage hors de l'écran sur laquelle on lance la commande Say et dont on se sert pour copier les frames à chaque cycle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
hanakin
Cliqueur Amateur
Cliqueur Amateur


Nombre de messages : 490

Date d'inscription : 12/09/2012


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 16:16

Salut

kitai toi le roi du codage: vois ce que tu peux faire avec en rajoutant une variable a la place de &1 que l'on rajouterais a la fin de
cEgo.Phylactere("tatatatat",",ePhylactereTalking,VARIABLE);

EN METTANT CECI c.Ego.Say("&1"); A LA LIGNE 466 C'EST PAS MAL

Code:
 Overlay* bulle = Overlay.CreateGraphical(pos_x, pos_y, ds.Graphic, true);
cEgo.Say("&1");
  // Attente

J'ai fait le test j'ai du texte synchro avec une voix
C'est peut etre pas tres clair mon explication

Variable= une variable a mettre a la fin de la commande cEgo.Phylactere("tatatatat",ePhylactereTalking,VARIABLE); qui definirait le numero du speech
et  a la ligne 466 lancer le say avec cette variable
cEgo.Say("VARIABLE");

LE MESSAGE SUIVANT EST PLUS EXPLICITE


Dernière édition par hanakin le Dim 14 Fév 2016 - 17:32, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
hanakin
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 490

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 17:18

bon petit essai
j'ai rajouter une globale variable voix

j'ai rajouter cela dans le header (String voix)

import function Phylactere(this Character* , String s, PhylactereQueueMode Mode = ePhylactereTalking,String voix);

ligne 466 du script j'ai mis ça

cEgo.Say(String.Format("%s",voix));

cela fonctionne si je mets &1 comme variable de base dans la global variable
Code:
function cEgo_Talk()
{
cEgo.Phylactere("Talking to yourself is a sign of madness!",ePhylactereTalking);

}

mais comment faire ça avec la commande du dessus en mettant la viariable a la fin?

Exemple: cEgo.Phylactere("Talking to yourself is a sign of madness!",ePhylactereTalking,&1);

J'ai une erreur ici (ligne 104):
Code:
function noloopcheck Phylactere(this Character* , String str,  PhylactereQueueMode mode, String voix) {

detail de l'erreur:
phylactere234.asc(104): Error (line 104): 'voix' is a global var; cannot use as name for local

Ca marche quand je fais ça en enlevant String voix:
Code:
function cEgo_Look()
{
    voix="&2";
  cEgo.Phylactere("Damn, I'm looking good!",ePhylactereTalking);
}

function cEgo_Interact()
{
    voix="&3";
  cEgo.Phylactere("You rub your hands up and down your clothes.",ePhylactereTalking);
}

function cEgo_Talk()
{
    voix="&1";
cEgo.Phylactere("Talking to yourself is a sign of madness!",ePhylactereTalking);
}

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 144

Age : 44

Localisation : Hyères

Date d'inscription : 29/12/2012


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 18:52

on dirait que vous approchez d'une soluce petit à petit ! sourire

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hanakin
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 490

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 19:05

reflexion faites la deuxieme solution avec voix="&1";
est pas plus mal car phylactere pourras fonctionner aussi sans dialogues car avec la  variable il manquera des parametres si on a pas de speech

tu peux essayer comme ça Threepwood juste pour voir ce que ça donne

Donc recap:
Creation d'une variable global voix en string

dans le script phylactere ligne 466 juste avant //attente mettre:
cEgo.Say(String.Format("%s",voix));

et dans les rooms:

function cEgo_Look()
{
voix="&2";
cEgo.Phylactere("Damn, I'm looking good!",ePhylactereTalking);
}

function cEgo_Interact()
{
voix="&3";
cEgo.Phylactere("You rub your hands up and down your clothes.",ePhylactereTalking);
}

function cEgo_Talk()
{
voix="&1";
cEgo.Phylactere("Talking to yourself is a sign of madness!",ePhylactereTalking);
}

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Threepwood
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
avatar

Nombre de messages : 144

Age : 44

Localisation : Hyères

Date d'inscription : 29/12/2012


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 19:19

Oulala je me suis un peu paumé dans tout ça ! bon de toute façon le doublage ça sera qu'a la fin et j'ai encore au moins  1 an de programmation a faire sur le jeu alors d'ici là on aura trouvé lol  surtout si sur le forum ricain ils s'y mettent aussi sourire


EDIT : ha t'as fait un condensé pendant mon post je look

_________________
Projet en cours : KINGEEKS QUEST
http://kingeeks.blogspot.fr/
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2479

Date d'inscription : 01/08/2006


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 19:23

Il y a une façon un peu plus élégante de faire je pense hanakin, c'est de récupérer le code en début de texte, comme le fait la fonction Say de base.

Tu peux rajouter le code suivant au tout début de la définition de la fonction Phylactere :
Code:
 String voice = "";
  if (str.StartsWith("&")) {
    int i = 1;
    while (str.Chars[i] >= '0' && str.Chars[i] <= '9') i++;
    if (i > 1) {
      voice = str.Substring(0, i);
      str = str.Substring(i, str.Length-i);
    }
  }

Ensuite tu utilises directement la variable textuelle voice dans la commande Say que tu utilises à la ligne 466 dont tu parlais plus haut (après avoir vérifier qu'elle n'est pas vide, avec la fonction String.IsNullOrEmpty)

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !


Dernière édition par Kitai le Dim 14 Fév 2016 - 19:49, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
hanakin
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 490

Age : 51

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: Phylactère   Dim 14 Fév 2016 - 19:48

Merci pour la réponse je savais bien que tu trouverais un truc de mieux clin d\\\\'oeil

_________________
Ce qui est utile à beaucoup l'emporte sur les désirs du petit nombre. (Spock)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://dinomania.chez-alice.fr/index.htm
Contenu sponsorisé




MessageSujet: Re: Phylactère   

Revenir en haut Aller en bas
 
Phylactère
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 6 sur 6Aller à la page : Précédent  1, 2, 3, 4, 5, 6
 Sujets similaires
-
» Phylactère
» [Tutoriel] comment faire des montages rapides avec Photoshop

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Modules et plugins-
Sauter vers: