[Résolu] Stopper l'animation d'un PNJ pour en lancer une autre

C'est ici que vous pouvez poser vos questions techniques.
Répondre
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Stopper l'animation d'un PNJ pour en lancer une autre

Message par daan »

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.
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
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Scène qui ne se lance pas.

Message par Gerauld »

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.
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: Scène qui ne se lance pas.

Message par daan »

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
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
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Scène qui ne se lance pas.

Message par Gerauld »

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"
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: Scène qui ne se lance pas.

Message par daan »

bonjour,

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()
mais cela n'a rien changer In Game.

j'ai ensuite testé avec :

Code : Tout sélectionner

AnackBlessee.Stop()
debug.sendanimationevent(Alias_DMN_Alias_Anack.GetActorReference(),"BleedOutStop")
AnackTravelEtConv.start()
sans plus de résultats , toutefois pour ce dernier teste j’admets ne pas bien avoir compris ce que tu voulais dire par :
...si l'anim event lancé par l'idle est "BleedOutStart"...
peux tu m'en dire plus sur le sujet ?
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
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Scène qui ne se lance pas.

Message par Gerauld »

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.
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: Scène qui ne se lance pas.

Message par daan »

Bonjour Gerauld,

Tous d’abord merci pour ton aide. :maitre:

Apres avoir tenter un :
Debug.SendAnimationEvent(Alias_DMN_Alias_Anack.GetActorReference(),"bleedoutstop")
utility.wait(0.3)
entre les deux scènes dans le stage de ma quête sans résultat j’ai utiliser ton exemple de « cassage » d’animation.
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
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Scène qui ne se lance pas.

Message par Gerauld »

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.
Hors-sujet
N'oublie pas la balise résolu dans le titre du sujet si c'est bon. ;)
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: [résolu]Scène qui ne se lance pas.

Message par daan »

Bonjour,
Je t'avais un peu oublié mon cher Daan.
Pas de soucis , merci pour la réponse.

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
Répondre

Retourner vers « Entraide sur le Creation Kit »