Aller au contenu


Fichier.nif Instable


  • Veuillez vous connecter pour répondre
20 réponses à ce sujet

#1 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 15 mai 2007 - 09:35

hello !  ;)

Tout d'abord excusez-moi d'envahir un peu ce topic avec mes questions, mais lorsqu'on commence à modder une foule de petits problèmes surgissent les uns après les autres.
Voilà le problème:
Pour la modification du mod sur lequel je bosse, j'ai besoin que les NPJ soient dans la position du vacancier en train de ce faire bronzer (allongés donc).
J'ai trouvé le fichier .NIf qui permet de donner cette position au NPJ.

le seul problème, c'est que si on regarde de près  le NPJ à l'air de trembler légérement, et que régulièrement il se met debout une fraction de milliseconde.

j'ai lu quelque part sur le forum, un sujet sur les frames qui sont calculées en permanence, est-ce que le problème vient de là ?, ou vient-il du fichier Meshes lui-même?.
merci de votre aide.
@+
Non ! les dinosaures n'ont pas disparus

#2 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 15 mai 2007 - 09:45

J'ai le même problème, je pense que ça se produit à chaque fin d'animation. LE nif est en réalité une séquence animée qui a une certaine durée, je pense que tu as forcé l'idle du package ia sur celui de l'animation. A chaque fois que l'animation se termine, il doit faire un tirage sur le nouvel idle à exécuter. Dans notre cas c'est le même mais un court instant le pnj doit reprendre sa position par défaut.
Je ne sais pas comment empêcher ça

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#3 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 15 mai 2007 - 14:44

Peut-être pouvez vous utiliser la fonction de script SkipAnim au bon moment (c'est à dire juste avant la fin de l'animation, le temps que le PNJ s'en choisisse une nouvelle) ? A voir, ce n'est pas sur que ça marche et même si c'est bon, ça peut faire baisser le framerate ! :good:
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#4 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 15 mai 2007 - 16:15

Hello  :good:

La fonction SkipAnim d'après le dico des fonctions n'a qu'un état celui d'annuler l'animation en cours. C'est ce que j'ai compris.

Citation

Peut-être pouvez vous utiliser la fonction de script SkipAnim au bon moment (c'est à dire juste avant la fin de l'animation, le temps que le PNJ s'en choisisse une nouvelle) ?
D'accord, mais on fait ça comment ?, dans un script attaché au NPJ ?

En outre le AI Package est vide, il ne devrait pas y avoir de tirage d'Idle, mais là je m'avance peut-être ?.

@+
Non ! les dinosaures n'ont pas disparus

#5 Orann

Orann

    Nérévarine de Pertevue


Posté 15 mai 2007 - 16:47

Je travaille régulièrement avec les animations, et j'ai ce problème également. Je n'ai pas trouvé de solution, et j'ai fini par penser que, malgrè l'inconvénient esthétique des ces "transitions" désagréables, l'avantage de l'animation était supérieur. Donc je les utilise toujours malgrè ce problème... Mais si Nenfëa à une solution scriptée avec Skipanim, je suis preneur  :good:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#6 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 15 mai 2007 - 16:53

Oui, SkipAnim doit être sur un script associé au PNJ. L'idée est que si ton anim dure 20 secondes, tu as un timer qui décompte 19,5 secondes, fais un SkipAnim pendant une seconde le temps que ton PNJ aie pické la bonne animation, et recompte 19,5 secondes, etc...
Ce script donnerait quelque chose comme :
Begin nenScriptAnim

Float timer
Short state

Set timer to ( timer + GetSecondsPassed )

if ( state == 0 )
	if ( timer > 19.5 )
		Set state to 1
		Set timer to ( timer - 19.5 )
	endif
elseif ( state == 1 )
	SkipAnim
	if ( state > 1 )
		Set state to 0
		Set timer to ( timer - 1 )
	endif
endif

End

La question est de savoir si SkipAnim n'empêche pas de picker une animation ? Je dois avouer n'en savoir trop rien, là... :)

Edit : pris de vitesse par Orann ! :good: Mais ma "solution" scriptesque n'est même pas expérimentale, elle reste à expérimenter ! :P
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#7 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 15 mai 2007 - 18:05

Ce que je crains surtout c'est que le skipanim fasse que le PNJ reprenne sa position par défaut (debout les bras ballants) n'ayant plus d'anim. Du coup au lieu d'avoir le PNJ une fraction de seconde instable, il risque de l'être bien plus. Mais ça reste à tester  :good:

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#8 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 15 mai 2007 - 18:56

Bonsoir !

Merci Nenfëa d'avoir pris le temps d'écrire ce script que je vais ,en bon cobaye ,expérimenter de suite.

@+ pour des nouvelles

Edit : au premier essai il se passe ce que Korfandar a prévu :

Citation

Ce que je crains surtout c'est que le skipanim fasse que le PNJ reprenne sa position par défaut (debout les bras ballants)
Mais comme je ne sais pas où trouver le temps que dure l'execution de l'anim, c'est cette donnée essentiel qu'il faudrait pour juger de l'efficacité de ce script.
Non ! les dinosaures n'ont pas disparus

#9 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 16 mai 2007 - 09:55

Voir le messagejeanlouis, le 15.05.2007 à 19:56, dit :

Edit : au premier essai il se passe ce que Korfandar a prévu :

Citation

Ce que je crains surtout c'est que le skipanim fasse que le PNJ reprenne sa position par défaut (debout les bras ballants)
Dans ce cas, SkipAnim est bien a bannir... :paladin:

Les fonctions PlayGroup ou LoopGroup peuvent peut-etre etre utilisees pour eviter d'avoir a chercher l'idle a prendre pour le PNJ, mais la encore, rien n'est moins sur ;
Begin nenEnhancedAnim

float timer

if ( CellChanged == 1 ); Remise a zéro quand on change de cellule
	Set timer to 0
endif

if ( timer <= 0 )
	Set timer to XXX; XXX doit etre légerement inférieur a la durée de l'animation
	PlayGroup "Mon anim" 0
   ; Si PalyGroup marche mal, on peut aussi essayer avec LoopGroup en prevoyant a chaque fois une boucle d'avance
   ; LoopGroup "Mon anim" 2 0
endif

Set timer to ( timer - GetSecondsPassed )

End

La encore, c'est a tester, peut-etre bien que PlayGroup et LoopGroup n'empechent pas cette frame parasite ou le PNJ se remet debout ! :green:

Par contre, comment savoir la durée d'une animation, c'est un secret dont j'ignore toutes les arcanes ! :wizard:
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#10 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 16 mai 2007 - 10:59

Hello  :rolleyes:

j'ai tenté de tester ton dernier script avec PlayGroup et LoopGroup, mais je ne peux pas sauvegarder , ni l'une ou l'autre des versions de ton script, il ne trouve ou ne reconnaît pas le fichier "anim_xxxx.nif"

Ce fichier est pourtant bien trouvé par le jeu, puisque c'est celui qui est à l'origine de mon premier message sur son instabillité.

à ce stade, je ne sais plus ???.

@+
Non ! les dinosaures n'ont pas disparus

#11 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 16 mai 2007 - 13:17

C'est parce que loopgroup et playgroup permettent de jouer des éléments d'animation du fichier nif d'animation. Dans la fiche de ton PNJ clique sur le bouton "Animation", tu aura la liste des animation disponibles. Si le PNJ n'a pas de fichier d'animation joint, ce sont les anim de base (death1, Hit1 plus les idle) sinon ce sont les anim spécifiques du .nif d'animation (généralement des idle 7, 8 ou 9). Ce sont eux qui sont à spécifier dans les fonctions.
Exemple : PlayGroup "Idle7" 0
C'est pareil pour jouer des animations d'activator animés comme l'iris du palais de Vagashan.
Par contre je n'ai aucune idée pour connaître la durée d'une animation d'autant que le détail dans la fenêtre décrivant les anim est explimé en frame...

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#12 Orann

Orann

    Nérévarine de Pertevue


Posté 16 mai 2007 - 13:45

Je crois que le framerate est de 15 frames par secondes pour les anims (en tout cas, c'est ce qui est conseillé par les tutos) donc si on a le nombre de frames, on peut en déduire la durée en secondes.

Sinon, au pire, il faut faire par expérimentation: mesurer dans la preview windows la durée des différents Idle.

Je confirme ce que dit Korfandar: le nom du fichier n'a pas à apparaître dans le script, il s'agit juste d'utiliser les idle du fichier. Tu peux voir un exemple sur le script des banières en exterieur ("outsidebanner" ou quelque chose du genre pour le nom du script).

Bon courage dans ta recherche, j'attends une solution de tout coeur.  :rolleyes:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#13 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 16 mai 2007 - 17:15

Hello !

Cela débute mal: Sur un NPJ test que j'avais crée, le fichier xxx.NIf validé, le AI package vide.

Le bouton d'animation reste grisé donc inaccessible

Citation

Dans la fiche de ton PNJ clique sur le bouton "Animation", tu aura la liste des animation disponibles.
.


J'ai retrouvé le script que tu mas indiqué Orann:

Citation

Tu peux voir un exemple sur le script des banières en exterieur ("outsidebanner"

la ligne loopGroup est rédigée comme suit: LoopGroup, Idle3, 5

donc, il faut que ces informations pour être prise en compte existe quelque part, ce sont celles que l'on retrouve dans la partie gauche de la fenêtre Animation, lorsqu'on peut y accéder évidemment ?.

je poursuis mes recherches

@+
Non ! les dinosaures n'ont pas disparus

#14 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 16 mai 2007 - 17:42

Etrange, la case Bloqué n'est pas cochée ? Essaye en mettant un package AIwander de distance 0 avec tous les idle à 0 sauf 1.
Inspire toi par exemple de l'une des danseuses de la maison des plaisirs terrestres de Suran (par exemple l'Id "nord dancer girl")
Le fichier .nif tu l'as bien mis dans "Add animation file" ?

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#15 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 16 mai 2007 - 18:13

Hello

Citation

Etrange, la case Bloqué n'est pas cochée
Non

Citation

Le fichier .nif tu l'as bien mis dans "Add animation file"
oui, bien sûr

Pas contre, plus ennuyeux, je viens de m'apercevoir que c'est le fichier xxxx.nif en question, qui provoque le blocage de la touche animation.
Si, je remet la touche add Animation File à son état d'origine c'est à dire en attente de fichier éventuel, la case Animation redevient accessible.

C'est pas simple tout ça

@+
Non ! les dinosaures n'ont pas disparus

#16 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 21 mai 2007 - 10:46

Juste pour être sur, tu as bien le fichier Xaaaaa.nif ou .kf correspondant à ton fichier aaaaa.nif et c'est bien le fichier nif sans le X devant que tu mets dans le add anim ?
Si c'est le cas, alors je ne sais pas pourquoi le bonton est désactivé.

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#17 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 21 mai 2007 - 13:10

hello !

Citation

Juste pour être sur, tu as bien le fichier Xaaaaa.nif ou .kf correspondant à ton fichier aaaaa.nif et c'est bien le fichier nif sans le X devant que tu mets dans le add anim ?

restons simple  :wink:

le fichier à associer au PNJ s'appelle Bronze.Nif, il met ce dernier en position allongée.

En cliquant sur Add animation file je vais rechercher le fichier dans son sous-repertoire, je l'ouvre , et le bouton "Add animation file " devient  chemin/Bronze.Nif. C'est à partir de là que le bouton Animation passe en grisé.

Voilà la manoeuvre détaillée.

Merci @+
Non ! les dinosaures n'ont pas disparus

#18 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 21 mai 2007 - 14:59

Dans le même sous-répertoire tu n'as pas un Xbronze.nif ou Xbronze.kf ?

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#19 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 23 mai 2007 - 17:41

Excuses-moi Korfandar pour ma réponse tardive, mais j'avais zappé complétement ta réponse.

Citation

Dans le même sous-répertoire tu n'as pas un Xbronze.nif ou Xbronze.kf

Non, je n'ai pas ces fichiers, est-ce un bien ou un mal ?

Merci @+
Non ! les dinosaures n'ont pas disparus

#20 Korfandar

Korfandar

    Ch'ti dragon normand...dans son trou


Posté 23 mai 2007 - 17:56

A mon avis ça explique pourquoi le bouton d'anim est grisé car sans ces fichiers ton bronze.nif n'est pas une vrai animation juste une position (sans séquence d'anim).
Mais bon, ça ne change pas le problème de l'instabilité... auquel je crains que personne n'ait de réponse.

L'abus de SMS est dangereux pour l'élocution mentale

Le mod qui révèle (presque) tout sur les dwemers : Dwarmor

Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...


#21 jeanlouis

jeanlouis

    814ème majorette évadée


Posté 23 mai 2007 - 18:38

Hello

merci,

Citation

auquel je crains que personne n'ait de réponse
, c'est bien dommage ! :green:

@+
Non ! les dinosaures n'ont pas disparus




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)