[Résolu] Stopper l'animation d'un PNJ pour en lancer une autre
Stopper l'animation d'un PNJ pour en lancer une autre
Bonjour,
Je reviens avec un nouveau problème :
J’aimerais qu’un PNJ apparaisse dans ma cell et que jusqu’a un stage donné de ma quête (stage 120) qu’il reste « blessé » ( utilisation de l’Idle : « WoundedLdleMarker » ) puis une fois que le stage de quête atteint 120 le PNJ se lève et cours vers moi pour entamer un dialogue.
Pour ce faire j’ai fais deux scènes :
1) Une ou le PNJ est obliger a utiliser un IdleMarker ( « Use idle Marker »)
2) Une seconde avec un « travel » + un « start conversation »
Séparément les deux scènes fonctionnent bien mais si je lance la première ( « Use idle Marker ») avec un MaScene.start() puis qu’au stage 120 je fais un MaScene.stop() suivit d’un MaScene2.start()
Mon PNJ reste « blessé » au sol.
J’ai également tenter un MaScene2.Forcestart()
Mais le résultat est le même .
C’est comme si la première scène n’avait pas de fin et que donc la seconde ne peux pas se lancer.
L’un d’entre vous aurait il une idée pour résoudre ce petit problème qui a quand même déjà occupé 3 soirées complètes ?
D’avance merci a vous,
Daan.
Je reviens avec un nouveau problème :
J’aimerais qu’un PNJ apparaisse dans ma cell et que jusqu’a un stage donné de ma quête (stage 120) qu’il reste « blessé » ( utilisation de l’Idle : « WoundedLdleMarker » ) puis une fois que le stage de quête atteint 120 le PNJ se lève et cours vers moi pour entamer un dialogue.
Pour ce faire j’ai fais deux scènes :
1) Une ou le PNJ est obliger a utiliser un IdleMarker ( « Use idle Marker »)
2) Une seconde avec un « travel » + un « start conversation »
Séparément les deux scènes fonctionnent bien mais si je lance la première ( « Use idle Marker ») avec un MaScene.start() puis qu’au stage 120 je fais un MaScene.stop() suivit d’un MaScene2.start()
Mon PNJ reste « blessé » au sol.
J’ai également tenter un MaScene2.Forcestart()
Mais le résultat est le même .
C’est comme si la première scène n’avait pas de fin et que donc la seconde ne peux pas se lancer.
L’un d’entre vous aurait il une idée pour résoudre ce petit problème qui a quand même déjà occupé 3 soirées complètes ?
D’avance merci a vous,
Daan.
Modifié en dernier par daan le 10 mai 2013, 19:36, modifié 1 fois.
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Re: Scène qui ne se lance pas.
As-tu essayé, dans le fragment de stage où tu bascules d'une scène à l'autre, de faire stopper l'animation (en jouant un "idlestop" de mémoire) avant de lancer l'autre scène?
Cela devrait résoudre ton problème.
Cela devrait résoudre ton problème.
Re: Scène qui ne se lance pas.
Bonjour,
Je n'ai rien fais avec un "idlestop" , comment dois je m'en servir ?
je ne trouve rien de claire sur le wiki.
D'avance merci .
Daan
Je n'ai rien fais avec un "idlestop" , comment dois je m'en servir ?
je ne trouve rien de claire sur le wiki.
D'avance merci .
Daan
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Re: Scène qui ne se lance pas.
La méthode du bourrin pour tenter de stopper l'animation (et voir si ça vient de là) :
debug.sendanimationevent(nomdelactor, "Idlestop")
ou
debug.sendanimationevent(nomdelactor, "BleedOutStop") (si l'anim event lancé par l'idle est "BleedOutStart", cela devrait fonctionner. Tu attends quelques dixièmes de secondes avant de lancer l'autre scène (wait) après avoir demandé l'anim event "bleedoutstop"
debug.sendanimationevent(nomdelactor, "Idlestop")
ou
debug.sendanimationevent(nomdelactor, "BleedOutStop") (si l'anim event lancé par l'idle est "BleedOutStart", cela devrait fonctionner. Tu attends quelques dixièmes de secondes avant de lancer l'autre scène (wait) après avoir demandé l'anim event "bleedoutstop"
Re: Scène qui ne se lance pas.
bonjour,
Alias_DMN_Alias_Anack etant un alias qui pointe vers mon PNJ,
j'ai testé avec :
mais cela n'a rien changer In Game.
j'ai ensuite testé avec :
sans plus de résultats , toutefois pour ce dernier teste j’admets ne pas bien avoir compris ce que tu voulais dire par :
Ou puis je retrouvé cette "option" ?
D'avance merci ;
Daan.
Alias_DMN_Alias_Anack etant un alias qui pointe vers mon PNJ,
j'ai testé avec :
Code : Tout sélectionner
AnackBlessee.Stop()
debug.sendanimationevent(Alias_DMN_Alias_Anack.GetActorReference(),"IdleStop")
AnackTravelEtConv.start()
j'ai ensuite testé avec :
Code : Tout sélectionner
AnackBlessee.Stop()
debug.sendanimationevent(Alias_DMN_Alias_Anack.GetActorReference(),"BleedOutStop")
AnackTravelEtConv.start()
peux tu m'en dire plus sur le sujet ?...si l'anim event lancé par l'idle est "BleedOutStart"...
Ou puis je retrouvé cette "option" ?
D'avance merci ;
Daan.
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Re: Scène qui ne se lance pas.
Dans le gestionnaire d'animation du CK, quand tu sélectionne une idle animation, tu vois l'animation event associé dans la fenêtre de droite.
Le sendanimationevent sert à lancer une animation sans passer par les idle (action située entre l'idle et le moteur gérant les animations).
Certains events d'animation bloque l'appel à d'autres events. Ainsi, quand un event d'animation "bleedoutstart" est lancé, il devient très difficile de lancer des animations non "compatibles" avec l'état du gestionnaire d'animations. (Certaines animations "prioritaires" arrivent à faire cesser l'event cependant (celle faisant boire une potion par exemple stoppera une majorité d'animations).
Dans le cas présent, il me semble que l'event correspondant à l'animation que tu évoques est le "bleedoutstart" qui peut être annulé par un "bleedoutstop" (animation de l'état blessé à terre à debout puis retour à l'état idle de base). Il faut cependant, quand on utilise des animationevent (et sans doute les playidle) faire attention à la temporisation des ordres envoyés. L'ordre consécutif à un event bloquant pas mal de choses doit avoir lieu APRES que l'animation soit finie dans la plupart des cas (mis à part les loop).
Donc, il faut une temporisation de quelques secondes entre ton sendanimation "bleedoutstop"(2 secondes il me semble (utility.wait(2)) et la suite des évènements.
On peut faire du "bricolage" pour forcer un peu les animations à se stopper.
Car, des fois, il est obligatoire de passer (pour les events seulement) par d'autres animations pour revenir à l'état de base (idlestop ou idleplayer).
l'anim event "IdleDrinkPotion" est prioritaire sur pas mal de chose et permet de "casser" une animation aussi.
Exemple de "cassage" d'animation (forcer l'arrêt d'une animation sur le joueur) :
Debug.SendAnimationEvent(playerref, "IdleDrinkPotion")
utility.wait(0.05)
Debug.SendAnimationEvent(playerref,"Idlestop")
utility.wait(0.1)
Le plus simple est souvent de jouer avec les idle et les playidle mais il faut parfois mettre les mains dans le cambouis pour permettre des enchainements d'animations non prévus à la base.
Si passer par une scène ne marche par bien, tu peux tenter de lancer un bleedoutstart à partir du stage de quête et un bleedoutstop suivi d'une reinitialisation (cassage d'animation) dans le stage suivant avant de lancer la scène suivante.
Le sendanimationevent sert à lancer une animation sans passer par les idle (action située entre l'idle et le moteur gérant les animations).
Certains events d'animation bloque l'appel à d'autres events. Ainsi, quand un event d'animation "bleedoutstart" est lancé, il devient très difficile de lancer des animations non "compatibles" avec l'état du gestionnaire d'animations. (Certaines animations "prioritaires" arrivent à faire cesser l'event cependant (celle faisant boire une potion par exemple stoppera une majorité d'animations).
Dans le cas présent, il me semble que l'event correspondant à l'animation que tu évoques est le "bleedoutstart" qui peut être annulé par un "bleedoutstop" (animation de l'état blessé à terre à debout puis retour à l'état idle de base). Il faut cependant, quand on utilise des animationevent (et sans doute les playidle) faire attention à la temporisation des ordres envoyés. L'ordre consécutif à un event bloquant pas mal de choses doit avoir lieu APRES que l'animation soit finie dans la plupart des cas (mis à part les loop).
Donc, il faut une temporisation de quelques secondes entre ton sendanimation "bleedoutstop"(2 secondes il me semble (utility.wait(2)) et la suite des évènements.
On peut faire du "bricolage" pour forcer un peu les animations à se stopper.
Car, des fois, il est obligatoire de passer (pour les events seulement) par d'autres animations pour revenir à l'état de base (idlestop ou idleplayer).
l'anim event "IdleDrinkPotion" est prioritaire sur pas mal de chose et permet de "casser" une animation aussi.
Exemple de "cassage" d'animation (forcer l'arrêt d'une animation sur le joueur) :
Debug.SendAnimationEvent(playerref, "IdleDrinkPotion")
utility.wait(0.05)
Debug.SendAnimationEvent(playerref,"Idlestop")
utility.wait(0.1)
Le plus simple est souvent de jouer avec les idle et les playidle mais il faut parfois mettre les mains dans le cambouis pour permettre des enchainements d'animations non prévus à la base.
Si passer par une scène ne marche par bien, tu peux tenter de lancer un bleedoutstart à partir du stage de quête et un bleedoutstop suivi d'une reinitialisation (cassage d'animation) dans le stage suivant avant de lancer la scène suivante.
Re: Scène qui ne se lance pas.
Bonjour Gerauld,
Tous d’abord merci pour ton aide.
Apres avoir tenter un :
je l’ai placé dans ce même stage , toujours entre les deux scènes et tous marche impec .
Je m’interroge juste sur un dernier point :
Tu parle d’un « Gestionnaire d’animation » dans le CK et d’« event associé dans la fenêtre de droite ».
Est ce la fenêtre des « fournitures » dont tu parle ?
Si non, peux tu me dire où je trouve ce « Gestionnaire d’animation » ?
Encore merci pour ton aide.
Daan
Tous d’abord merci pour ton aide.

Apres avoir tenter un :
entre les deux scènes dans le stage de ma quête sans résultat j’ai utiliser ton exemple de « cassage » d’animation.Debug.SendAnimationEvent(Alias_DMN_Alias_Anack.GetActorReference(),"bleedoutstop")
utility.wait(0.3)
je l’ai placé dans ce même stage , toujours entre les deux scènes et tous marche impec .
Je m’interroge juste sur un dernier point :
Tu parle d’un « Gestionnaire d’animation » dans le CK et d’« event associé dans la fenêtre de droite ».
Est ce la fenêtre des « fournitures » dont tu parle ?
Si non, peux tu me dire où je trouve ce « Gestionnaire d’animation » ?
Encore merci pour ton aide.
Daan
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Re: Scène qui ne se lance pas.
Je t'avais un peu oublié mon cher Daan.
Réponse :
Gestionnaire d'animations : Menu Gameplay => animations dans le CK.
Tu retrouves les animations par fichier hkx de chaque race. Chaque animation a son nom d'idle (utilisable avec playidle), correspond à un animation event (utilisable avec sendanimationevent) et possède ou non des conditions.
Modifier des animations vanilla peut provoquer de gros bugs donc, il vaut mieux créer de nouvelles que de toucher l'existant.
Concernant les furnitures : explorateur d'objets => woldobjects => furniture.
Réponse :
Gestionnaire d'animations : Menu Gameplay => animations dans le CK.
Tu retrouves les animations par fichier hkx de chaque race. Chaque animation a son nom d'idle (utilisable avec playidle), correspond à un animation event (utilisable avec sendanimationevent) et possède ou non des conditions.
Modifier des animations vanilla peut provoquer de gros bugs donc, il vaut mieux créer de nouvelles que de toucher l'existant.
Concernant les furnitures : explorateur d'objets => woldobjects => furniture.
Hors-sujet
N'oublie pas la balise résolu dans le titre du sujet si c'est bon. 

Re: [résolu]Scène qui ne se lance pas.
Bonjour,
Daan.
Pas de soucis , merci pour la réponse.Je t'avais un peu oublié mon cher Daan.
Daan.
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332