Je ne connais malheureusement pas beaucoup de monde au panthéon qui pourrait aider...
Il y a deux grand types d'animation dans le TESc : les faciales (??? jamais touché) et les comportementales (j'ai juste observé). Je sais qu'on peut mettre des conditions sur les comportementales, mais pas de script... Je ne connais aucune animation réellement scriptée, mais s'il serait possible de faire une animation composée par un script.
D'après ce que j'ai compris, tu voudrais qu'après avoir parlé à un PNJ, ce dernier fasse quelque chose (du hoola hop par exemple) pendant un certain temps et sur font de musique ?
Tu devra créer une quête de contrôle pour contrôler l'animation et le son le temps du morceaux, mais tu peux utiliser celle de ton dialogue
Quête en Start Game Enabled avec Priority à 60 ??? -> Dépend de ce que tu veux faire.
Y attacher un script de type quête bien sur, du genre :
Code : Tout sélectionner
scn MyQuest
short animStep
float fQuestDelayTime ;variable réservée des développeurs qui permet de changer la fréquence d'exécution d'une quête
Begin GameMode
; Initialisation
if (animStep == 1)
StreamMusic Random
set timer to 3.15 ;la durée du mp3
set fQuestDelayTime to 0.01 ;accélérer lexécution de la quête pour qu'elle suive la musique, sinon, toute les 5s
set animStep to 2
; Le script a fait une frame donc on va jouer le morceau et l'animation
elseif (animStep == 2)
RefDuPNJ.PlayGroup Idle NuméroAnimation ;ou voir site renseigné plus bas
StreamMusic "Data\Music\MonMod\mamusique.mp3"
set animStep to 3
elseif (animStep == 3)
if (timer > 0)
set timer to (timer - GetSecondsPassed)
else
RefDuPNJ.PickIdle
set animStep to 0
StreamMusic Random ;peut-être pas utile
set fQuestDelayTime to 5
endif
endif
End
Tu aura besoin de ce site :
http://cs.elderscrolls.com/constwiki/in ... _Functions
Je n'ai pas encore utilisé la musique donc il faudra tester et san aucun doute adapter le script à ce que tu veux, mais comme ça tu as une idée de principe.
Tu devra mettre la dernière ligne de ton dialogue en "Goodbye" pour que le PNJ raccroche la conversation. Et sur le script attaché, tu devra mettre un truc du genre
pour lancer le bloc de code de la quête (qui elle est en exécution même quand elle fou rien)
Juste un truc si ta quête dois s'exécuter toujours très vite, autant mettre la ligne set fQuestDelayTime to 0.01 en début de code et ne la faire qu'une fois à l'aide d'une condition et d'une variable verrou
Code : Tout sélectionner
if (DoOnce == 0)
set DoOnce to 1
set fQuestDelayTime to 0.01
endif