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

Partagez | 
 

 module pour une animation des pnjs (personnages non joueurs)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 272

Date d'inscription : 24/05/2010


MessageSujet: module pour une animation des pnjs (personnages non joueurs)   Jeu 5 Fév 2015 - 14:59

Bonjour,

Alors voici mon souhait ou ma problématique étant l'animation de personnage non joueur en fond, pour rendre les modules plus vivant.

Je me retrouve devant un problème, c'est que le jeu donne l'impression d'être en pause.
Il est très simple d'animer des objets en continue ou même un background, parcontre, pour animer des perso avec l'option animate. noblock en exécution automatique, ou bien walk, ça ne fonctionne pas. Les personnages activent leurs animations uniquement pendant un dialogue mais sinon rien.
Je voudrais des pnjs se baladant et s'activant en continue et qu'il serait possible de solliciter par exemple en allant leur causer. La seule solution que j'ai trouvé (qui est lourde) c'est d'utiliser des objs comme personnages et de les animer en continue ou bien dès qu'on marche sur une zone et de faire en sorte qu'ils se changent en perso (donc d'effacer momentanément l'object ) avec la même coordonné quand on clique sur "parler", mais c'est bof bof !

voili sourire

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
avatar

Nombre de messages : 1275

Date d'inscription : 10/05/2012


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Jeu 5 Fév 2015 - 17:16

Je suis pas bien sur de comprendre ton soucis. On peut animer ou faire balader des persos en mode noBlock en utilisant soigneusement repeatidly_execute_always et des jolis if un peu partout.
Tu as un cas concret a nous soumettre ?

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nothingaboutthedog.blogspot.fr/
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2527

Date d'inscription : 01/08/2006


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Jeu 5 Fév 2015 - 19:06

Moi j'ai bien l'impression que le problème vient justement d'un déclenchement répété de l'animation (probablement dans repeatedly_execute, sans le "always"), ce qui justement la neutralise (problème assez courant). Lors d'un dialogue, seules les commandes dans repeatedly_execute_always continuent à être exécutées, ce qui expliquerait pourquoi (sous l'hypothèse que Animate ne se trouve pas dans le always) l'animation se lance visiblement : durant le dialogue, on cesse de relancer l'animation en permanence.

Concernant un déplacement des personnages en arrière-plan, il faut le coder soi-même, mais je me demande s'il y a pas des modules développés sur le forum anglophone pour faciliter la tâche (il existe notamment des modules de mise en file d'attente pour les déplacements -- "queue"/"queuing" en anglais).

_________________
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 !
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
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 272

Date d'inscription : 24/05/2010


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Ven 6 Fév 2015 - 10:43

Oh, je vais tester avec le always !
D'ailleurs, est-il possible de rajouter la fonction avec le always, dans les script room ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 272

Date d'inscription : 24/05/2010


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Ven 6 Fév 2015 - 12:02

Alors après plusieurs test , voici mes problèmes :

Effectivement, en inscrivant le déplacement du personnage dans le repeatedly_execute de la room, ça le bloque probablement pour la raison que tu as donné car lorsqu'on lance un dialogue il se déplace.

Parcontre, comment utiliser repeatedly_execute_always ?

Mon problème c'est que je ne sais pas trop comment faire un déplacement à entrer dans le repeatedly_execute_always sans que ça fasse friser le jeu !

J'ai tenté avec un système de bool et des While.
En gros, tant que la bool est en false  le perso fait Walk x+1 , arrivé à un certain point ça passe en true et tant que c'est en true le perso fait Walk x-1 ! Croyez le non ou pas, ça bloque le jeu (sans causer d'erreur pour autant)

En mettant plus des if avec un système de bool , ça lance l'animation de déplacement mais le perso fait du sur place


PIRE avec le repeatedly_execute_always, l'animation de fond d'un perso qui avant fonctionnait uniquement lorsqu'on lance un dialogue, là, ne fonctionne plus du tout du tout.
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 : 2527

Date d'inscription : 01/08/2006


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Ven 6 Fév 2015 - 15:29

C'est parce que tu prends pas le problème du bon bout. Je vais essayer d'expliquer plus clairement.
Tu observes les animations se figer parce que tu les relances constamment, à chaque cycle de jeu. Ainsi les personnages restent bloqués sur la même image d'animation, encore et encore. De même pour les déplacements, ils restent bloqués sur l'étape initial de la marche, et ne passent jamais au véritable déplacement.
La solution c'est de ne plus relancer les animations et déplacements à chaque cycle de jeu. En cela utiliser repeatedly_execute_always empire les choses : les animations sont alors relancées à chaque cycle de jeu même lors des dialogues.

Ton idée d'utiliser des if et des bool est sur la bonne voie. L'idée c'est de vérifier que le personnage ne se déplace plus ou n'est plus animé avant de relancer un déplacement ou une animation. Pour cela, les propriétés Moving et Animating te seront probablement utiles.
Un exemple rapide d'un personnage nommé cPNJ qui se déplacera de gauche à droite :
Code:
function repeatedly_execute_always() {
 if (!cPNJ.Moving) cPNJ.Walk(Room.Width-cPNJ.x, cPNJ.y, eNoBlock);
}

_________________
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 !
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
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 272

Date d'inscription : 24/05/2010


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Sam 7 Fév 2015 - 12:44

Oh YES !

Et dire qu'il suffisait d'écrire un if(!cEGO.Moving) ou un if(!cEGO.Animating)

Ca marche bien
Merci

Mais du coup, j'y pense tu pourrais m'expliquer comment se fait-il que cPNJ.Walk(Room.Width-cPNJ.x, cPNJ.y, eNoBlock); fasse bouger le personnage de droite à gauche ?
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 : 2527

Date d'inscription : 01/08/2006


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Sam 7 Fév 2015 - 15:19

filoulefilou a écrit:
Mais du coup, j'y pense tu pourrais m'expliquer comment se fait-il que cPNJ.Walk(Room.Width-cPNJ.x, cPNJ.y, eNoBlock); fasse bouger le personnage de droite à gauche ?
C'est une petite astuce. Mettons que ta pièce fasse 1000px de large, et qu'au début du jeu cPNJ.x vaut 100. Alors la commande Walk lui dira de marcher jusqu'à 1000-100, c'est-à-dire à 900. Le personnage aura arrêté de bouger au moment où il aura atteint cette coordonnée, et alors la commande se relancera. Mais cette fois, elle dira au personnage de marcher à 1000-900, c'est-à-dire à 100. Tu vois le côté cyclique maintenant.

_________________
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 !
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
filoulefilou
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 272

Date d'inscription : 24/05/2010


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Sam 21 Fév 2015 - 11:23

J'ai aussi découvert la fonction SayBackground (que je n'avais jamais utilisée) , c'est très pratique aussi (je pensais naïvement quelle permettait d'afficher un texte dans un cadre)

En fait non, elle permet d'afficher un texte sans mettre le jeu en pause. Funny !

Merci beaucoup (et encore une fois) pour ton aide Kitai (même si j'ai pas finis de te solliciter (";...;") )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hanakin
Cliqueur Amateur
Cliqueur Amateur
avatar

Nombre de messages : 490

Age : 52

Localisation : Angers

Date d'inscription : 12/09/2012


MessageSujet: Re: module pour une animation des pnjs (personnages non joueurs)   Sam 21 Fév 2015 - 12:50

Perso moi j'utilise ce code qui fonctionne en boucle sans blocage

Code:
function room_AfterFadeIn(){
cCharactere.Animate(2,  3, eRepeat, eNoBlock);  //animation du charactere
cCharactere.Walk(830, 56, eNoBlock, eAnywhere); //marche n'importe ou
}
function room_RepExec(){
 //la boucle en continue avec des AddWaypoint
 
 if (!cCharactere.Moving) {
cCharactere.Animate(1,  3, eRepeat, eNoBlock);
cCharactere.AddWaypoint(830, 420);
cCharactere.AddWaypoint(-30, 420);
cCharactere.AddWaypoint(-30, 40);
cCharactere.AddWaypoint(830, 42);
}
  }

_________________
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: module pour une animation des pnjs (personnages non joueurs)   

Revenir en haut Aller en bas
 
module pour une animation des pnjs (personnages non joueurs)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [NabzFood] Module pour Google
» animation halloween
» Personnages de SF issus de "The Movies"
» (Sélé-Blaze et FcB13) demande de signature pour lopes-jeremy[terminer]
» Petite aide pour mémoriser tous les personnages de Touhou du 6 au 12

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: La Boîte à Souhaits-
Sauter vers: