Aller au contenu


Pathgrid Pour Aitravel Et Aiactivate


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

#1 Vardac Reborn

Vardac Reborn

Posté 28 septembre 2009 - 11:34

Bonjour,

Tout d'abord les AiTravel x, y, z ne semble pas fonctionner correctement car les PNJs à qui j'affecte la commande ne préfère pas bouger ... Sont ils fainéant ? Je m'y prend mal avec la fonction ?

Ensuite les AiActivate, fonctionne très bien mais justement trop bien, au lieu d'activer une fois le levier, se crétin de PNJ s'amuse à l'activé en continue, si bien qu'au final ma herse monte, descend, monte descend, etc ... c'est un peu pénible, ma question est, comment faire pour qu'il ne le fasse qu'une fois ?

Merci

Modifié par Vardac Reborn, 29 septembre 2009 - 17:12.


#2 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 28 septembre 2009 - 12:20

Bonjour Vardac Reborn,

Le mieux, serait que tu copies/colles ton script ici pour qu'on puisse avoir un aperçu du problème.

Citation

Tout d'abord les AiTravel x, y, z ne semble pas fonctionner correctement car les PNJs à qui j'affecte la commande ne préfère pas bouger ... Sont ils fainéant ? Je m'y prend mal avec la fonction ?

vérifie si ton script n'appelle pas AITravel à chaque frame. Il faut appeler cette fonction une seule fois, sinon le PNJ exécute la commande chaque frame et ne bouge pas....

Pour ce qui est de la fonction AIActivate, je n'ai jamais réussi à la faire marcher correctement, j'ai toujours préféré une autre alternative.

dans ton cas, tu pourrais simuler une activation du bouton par un script de ce genre :

... [du code]

AITravel x y z; (tu fais venir le PNJ près du bouton)

 ... 

If ( GetAIPackageDone ); SI le PNJ a fini son déplacement

   ... [On lève la grille]

endif

... [du code]

tu pourras toujours ajouter des conditions supplémentaires, voire un timer gérant un laps de temps entre l'arrivée et l'activation...

mais comme je l'ai dit plus haut, il faudrait un aperçu de ton script pour qu'on puisse vraiment t'aider...

Modifié par Snaïpe, 28 septembre 2009 - 12:22.


#3 Vardac Reborn

Vardac Reborn

Posté 28 septembre 2009 - 12:42

Begin CW_garde_herse_03

Short Hactivate2

If ( GetJournalIndex, "CW_CN" == 110 )
	If ( Hactivate2 == 0 )
		AiActivate, "CW_levier_herse_03"
		Set Hactivate2 to 1
	endif
	If ( Hactivate2 == 1 )
		AiActivate, "CW_levier_herse_03", 0				 ; Pour but de reset l'action
		Set Hactivate2 to 2
	endif
else
	If ( Hactivate2 == 2 )
		AiActivate, "CW_levier_herse_03"
		Set Hactivate2 to 3
	endif
	If ( Hactivate2 == 3 )
		AiActivate, "CW_levier_herse_03", 0				 ; Pour but de reset l'action
		Set Hactivate2 to 4
	endif
endif

end

Begin CW_1er_assault_soldat_01_player

Short Here
float Px
float Py
float Pz
Short done
Short PCSneaking
float timer
short Traveled1

If ( Here == 0 )
	If ( GetJournalIndex, "CW_CN" > 140 )
		Enable
		Set Here to 1
	else
		Disable
	endif
endif

If ( GetJournalIndex, "CW_CN" == 150 )
	If ( done == 0 )
		AiFollow, "Player", 0, 0, 0, 0
		ForceRun
		Set done to 1
	endif
endif

If ( Assault1 == 1 )
	AiFollow, "Player", 0, 0, 0, 0
	Set Assault1 to 0
endif

If ( Assault1 == 2 )
	If ( GetDistance, "CW_Echele_1er_assault" < 500 )
		SetPos, x, -204483.859
		SetPos, y, 146757.750
		SetPos, z, 800.713
		"CW_echelle_1er_assault_01"->SetPos z 460
		Set Assault1 to 0
		Set Traveled1 to 0
	else
		If ( Traveled1 == 0 )
			StartCombat, "CW_IMP_Sergent_3e_regim"
			Set Traveled1 to 1
		endif
	endif
else
	Set Assault1 to 0
endif


If ( Assault1 == 3 )											 ; c'est ce AiTravel qui ne fonctionne pas
	AiTravel, -203249.28, 151109.28, 398.29	  ; c'est ce AiTravel qui ne fonctionne pas
	Set Assault1 to 0											; c'est ce AiTravel qui ne fonctionne pas
endif																; c'est ce AiTravel qui ne fonctionne pas

end

Pour ce qui est de ta proposition c'est pas bête mais cela ne convient pas à mon cas car les références de la herse seront faussée, et ça me vas pas ça.

Modifié par Vardac Reborn, 28 septembre 2009 - 12:43.


#4 abg

abg

    L'ABG pour les civilisés


Posté 28 septembre 2009 - 14:15

Pour ce qui est d'AIActivate, j'en suis au même stade que Snaïpe (marche pas, remplacement pas une "simulation"...)

Pour AITravel, il est impératif que les coordonnées cibles soient dans la même cell que le point de départ du PNJ (ce qui ne va pas être forcément évident dans le cadre d'une bataille si les PNJs sont "en liberté"...)
On peut partiellement contourner cette obligation en décomposant l'ordre en plusieurs étapes amenant d'abord le PNJ à la frontière exacte de cell puis en lui donnant un autre ordre qui va lui faire franchir cette frontière. Pour ça voir le mod "Marchands ambulants", une sacrée usine à gaz qui serait simplifiable (et plus fiable) si seulement Bethesda avait mis des pathgrids en rase campagne...

Enfin AITravel (comme tous les packages IA) fonctionne bien mieux si la cell est équipée d'un pathgrid. Au cas où tu ne connaitrais pas les pathgrids : dans une cell peuplée comme Seyda Nihyn, clique sur le bouton pathgrid du TESC. En résumé, c'est un réseau de chemins préférés que les acteurs vont emprunter pour circuler.
Je te conseille d'ailleurs de t'assurer que Château Morel a un bon pathgrid si tu ne veux pas voir durant la bataille les soldats pédaler dans le vide au bord des chemins de ronde, tenter d'enjamber les parapets ou se coincer derrière le premier tonneau venu. Le pathgrid sera "bon" si durant tes tests tu n'assistes plus à ce genre de comportements  ;)

Edit : En fait, avec 95 PNJs, les pathgrids ne suffiront sans doute pas à la tâche (au motif que les boîtes de collision ne sont pas si tolérantes que ça et les décors pas adaptés, je doute pas exemple que plusieurs PNJs puissent emprunter la même rampe d'escalier "accès au rempart" en même temps sans se coincer...).
Je pense que tu devrais développer ton mod (et tes batailles) en partant du bas, ajoutant les PNJs très progressivement (jusqu'à ce que ça commence à coincer côté FPS et fluidité de circulation), plutôt qu'en décrétant d'office : je veux une bataille à la "siège de Minas Tirith"  :huhu:

Modifié par abg, 28 septembre 2009 - 14:26.

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#5 Vardac Reborn

Vardac Reborn

Posté 28 septembre 2009 - 14:39

C'est donc pour ça que l'ordre de replie ne fonctionnait pas, car il fait un travel du château jusqu'au camp des barbares. Merci abg

Pour ce qui est du pathgrid, cela fonctionne très bien, la rampe est assez large pour 3 personnes et les ponts pour 5 donc ils se débrouille très bien, surtout que mon pathgrid est optimisé, il donne une possibilité de plusieurs chemins différents avec une liasion entre les chemins permettant de changer de voix si besoin (un NPC arrive en face). je pense qu'au niveau des pathgrid je suis incollable ^^. C'est un vrai trafique autoroutier mon château ^^. Et surtout que la première bataille se passe sur la grande place donc ils n'ont aps vraiment les moyens de s'emmêler les pinceaux car les seuls qui utilisent les escalier ce sont les barbares et ils les utilisent pour descendre, donc tous dans le même sens. En tout cas je n'est remarqué aucun problèmes.

#6 abg

abg

    L'ABG pour les civilisés


Posté 28 septembre 2009 - 14:56

 Vardac Reborn, le 28.09.2009 à 15:38, dit :

je pense qu'au niveau des pathgrid je suis incollable ^^. C'est un vrai trafique autoroutier mon château ^^

Aveu dangereux  :huhu: ... Un des futurs volets de Morrowind Renaissance comporte un tricotage de pathgrids généralisé à l'échelle de Vvardenfell (pour en finir avec les PNJs et créatures qui se coincent derrière le premier arbre venu ou qui ne fuient pas correctement)
Je prends bonne note de ta compétence  ;)

Tant que je suis là : une astuce complémentaire de l'AITravel qui peut servir à l'occasion :
Un acteur en AIWander que l'on téléporte brusquement (commande position ou SetPOS...) cherche toujours, s'il y a un pathgrid, à rejoindre le point central de son AIWander. Un jour je me suis amusé à faire rentrer Fargoth depuis le point de chute de Tarhiel jusqu'au village sans AITravel (juste en ajoutant un pathgrid suivant la route avec des balises "jointives" au niveau des limites de cell).  :D
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#7 Vardac Reborn

Vardac Reborn

Posté 28 septembre 2009 - 15:39

Intéressante ton idée, mais j'ai peur que si je ne fait qu'un seul chemin du château au camps des barbares ces crétins de NPC attaque tous à la queulele et qu'ils se bloquent aux échelles où à la porte ^^. Car dans le cas présent mon pathgrid est tellement complet qu'il ne mettrais pas 1/2 seconde avant de trouver un chemin à emprunter et t'inquiète pas, les pnj qui te suivent ne se prennent pas les arbres ou les rochers ^^, les pathgrid les contournent, ou alors sinon ils passent sur certain rocher dont je sais que le PNJ pourra grimper dessus. Nan vraiment j'adore faire des routes avec des pathgrids, c'est marrant ^^, j'en met même dans l'eau, parce que je trouve que les NPC galère dans l'eau sinon, mais attention dans l'eau le pathgrid doit être en 3D car sinon il vont toujours rester au même niveau et si c'est sous l'eau ils vont finir par ce noyer ^^

#8 Orann

Orann

    Nérévarine de Pertevue


Posté 28 septembre 2009 - 21:16

Les pathgrid en 3d fonctionnent bien dans l'eau ? :) Je ne savais pas !
On pourrait avoir un screenshot de tes pathgrids, je suis toujours friands d'astuces pour améliorer les miens :huhu:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

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

#9 Vardac Reborn

Vardac Reborn

Posté 29 septembre 2009 - 10:26

Ils fonctionne aussi dans l'air :) t'a jamais remarqué que quand tu lance lévitation à un NPC ce crétin n'arrive pas à monter ou descendre ? Et bien avec un pathgrid en 3D dans l'air il le fait plutôt pas trop mal. Il y à une screen sur le forum "l'ombre du corbeau" dans modules et création, mais je vais en rajouter une ou deux ici :

http://img33.imageshack.us/img33/3752/pathgrid01.th.jpg
http://img121.imageshack.us/img121/3696/pathgrid02.th.jpg

Modifié par Vardac Reborn, 29 septembre 2009 - 10:37.


#10 abg

abg

    L'ABG pour les civilisés


Posté 29 septembre 2009 - 11:24

 Vardac Reborn, le 29.09.2009 à 11:25, dit :

Ils fonctionne aussi dans l'air :huhu: t'a jamais remarqué que quand tu lance lévitation à un NPC ce crétin n'arrive pas à monter ou descendre ? Et bien avec un pathgrid en 3D dans l'air il le fait plutôt pas trop mal.

Ça fonctionne à court terme mais à long terme et dans un but plus généraliste qu'une simple bataille, ça pause plus de problèmes que tu sembles le croire. Par exemple, les acteurs au sol vont tendre à suivre les paths qui sont en l'air, les volants finissent par se retrouver suivant ceux qui sont au sol (et se coincer dans le premier arbre si jamais tu as tracé le path au sol en contournant les troncs mais sans regarder la canopée). Les PNJs en AIWander sur la plage vont aller se baigner...etc. Moi aussi je traçais des réseaux aussi denses que le tien et puis j'ai fini par m'apercevoir que l'IA n'était pas meilleure pour autant... J'en suis venu à des réseaux plus limités (parce que ce qu'on cherche n'est pas qu'ils aillent partout mais se déplacent en semblant un minimum intelligent  :) )

Deux trucs en vrac et en guise d'exemple sur le tracé de pathgrids :
- Dans une cell équipée, les acteurs mesurent les distances en nombre de balises (et non à vol d'oiseau). S'il y a deux chemins possibles pour aller de A à B, l'un avec 3 balises mais faisant un énorme crochet et l'autre plus direct mais avec 5 balises, ils choisiront le crochet...
- Face à deux chemins équivalents en nombre de balises, les acteurs se tourneront vers le numéro d'index (idx dans la barre d'état du TESCS) le plus faible (balise posée en premier)
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#11 Vardac Reborn

Vardac Reborn

Posté 29 septembre 2009 - 12:07

 abg, le 29.09.2009 à 12:23, dit :

les acteurs au sol vont tendre à suivre les paths qui sont en l'air, les volants finissent par se retrouver suivant ceux qui sont au sol (et se coincer dans le premier arbre si jamais tu as tracé le path au sol en contournant les troncs mais sans regarder la canopée)

Là je t'arrète, car pour le siège je n'ai pas mis de pathgrid pour le vol étant donné que le à moins que le joueur lance un sort de lévitation à tous les soldats, sinon cela ne servirais pas à grand chose. Et puis pour les rare modes où j'ai utilisé le pathgrid permettant de ce déplacer correctement en lévitation je reprend exactement le même que celui au sol en le copiant et le relevant de z 500 et z 1000, je fais 3 étages. Donc ils ne s'embrouille absolument pas. Et si jamais je veux faire le pathgrid d'une lévitation au dessus d'une montagne qu'on ne peu franchir à pied je me débrouille pour que le pathgrid du vol ne soit pas compatible avec celui des terriens. Les balises ne seront absolument pas relié à celle du sol, par aucun points même indirecte.

 abg, le 29.09.2009 à 12:23, dit :

Les PNJs en AIWander sur la plage vont aller se baigner...etc.

Et bien non car je met en distance du AiWander la distance suffisante pour qu'il s'arrête sur la rive de la plage et qu'il ne puisse pas aller plus loin, c'est aussi simple que ça ^^.

 abg, le 29.09.2009 à 12:23, dit :

Moi aussi je traçais des réseaux aussi denses que le tien et puis j'ai fini par m'apercevoir que l'IA n'était pas meilleure pour autant...

La je ne suis pas d'accord, on voix énormément la différence, je trouve, entre un NPC qui va nager sans pathgrid et un qui nage avec, ou pour la lévitation. Bon après je dis pas que un pathgrid pas dense ne fonctionnera pas, ou mal, mais un pathgrid dense ET bien conçut sera, je pense (je peux me tromper), meilleur.

  

 abg, le 29.09.2009 à 12:23, dit :

J'en suis venu à des réseaux plus limités (parce que ce qu'on cherche n'est pas qu'ils aillent partout mais se déplacent en semblant un minimum intelligent  :) )

L'un n'exclue pas l'autre :huhu:

 abg, le 29.09.2009 à 12:23, dit :

Deux trucs en vrac et en guise d'exemple sur le tracé de pathgrids :
- Dans une cell équipée, les acteurs mesurent les distances en nombre de balises (et non à vol d'oiseau). S'il y a deux chemins possibles pour aller de A à B, l'un avec 3 balises mais faisant un énorme crochet et l'autre plus direct mais avec 5 balises, ils choisiront le crochet...
- Face à deux chemins équivalents en nombre de balises, les acteurs se tourneront vers le numéro d'index (idx dans la barre d'état du TESCS) le plus faible (balise posée en premier)

je suis bien d'accord avec toi ^^

#12 elendell

elendell

    Mécano Dell'Arte


Posté 29 septembre 2009 - 16:39

 abg, le 29.09.2009 à 12:23, dit :

Deux trucs en vrac et en guise d'exemple sur le tracé de pathgrids :
- Dans une cell équipée, les acteurs mesurent les distances en nombre de balises (et non à vol d'oiseau). S'il y a deux chemins possibles pour aller de A à B, l'un avec 3 balises mais faisant un énorme crochet et l'autre plus direct mais avec 5 balises, ils choisiront le crochet...
- Face à deux chemins équivalents en nombre de balises, les acteurs se tourneront vers le numéro d'index (idx dans la barre d'état du TESCS) le plus faible (balise posée en premier)
Je n'ai pas vérifié si cette info est déjà dans le <sujet sur les Pathgrids> mais dans le cas contraire, se serait bien de l'y mettre. (Plus facile à trouver que dans un sujet sur "Aitravel Et Aiactivate")...

#13 Vardac Reborn

Vardac Reborn

Posté 29 septembre 2009 - 17:04

On pourrait presque mettre un lien de ce sujet dans le topic des pathgrid

#14 abg

abg

    L'ABG pour les civilisés


Posté 29 septembre 2009 - 17:09

 elendell, le 29.09.2009 à 17:38, dit :

Je n'ai pas vérifié si cette info est déjà dans le <sujet sur les Pathgrids> mais dans le cas contraire, se serait bien de l'y mettre. (Plus facile à trouver que dans un sujet sur "Aitravel Et Aiactivate")...

En fait, c'est tous les posts depuis qu'on a commencé à dériver sur les pathgrids (à peu près par ) qui seraient à téléporter là-bas...
Alternativement, Vardac, tu pourrais ajouter le mot clé "pathgrid" dans le titre d'enfilade car c'est vrai qu'il est dommage de voir ces discussions disparaître dans les tréfonds du forum.
Un jour peut-être, je prendrais mon temps et mon courage pour wiwikifier ce genre de chose  :orthopuristes:
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#15 Vardac Reborn

Vardac Reborn

Posté 29 septembre 2009 - 17:14

wiwikifier == tuto ? (A le langage "abg" pas toujours facile facile ^^ )

#16 abg

abg

    L'ABG pour les civilisés


Posté 29 septembre 2009 - 17:35

 abg, le 29.09.2009 à 18:08, dit :

Un jour peut-être, je prendrais mon temps et mon courage pour wiwikifier ce genre de chose  :rolleyes:

 Vardac Reborn, le 29.09.2009 à 18:13, dit :

wiwikifier == tuto ? (A le langage "abg" pas toujours facile facile ^^ )

Ce n'est pas le "langage abg" mais le jargon de wiwiland. Oui je sais ce n'est pas bien de trop jargonner  :orthopuristes:
Pour le wiwiki, vois le bouton violet en haut à gauche (toi aussi tu peux participer  :grin: )

Pour rester (plus ou moins) dans le thème et continuer à croiser les liens : ce que j'avais posté dans l'enfilade  "Des Pnj Riches, Vivants Et Profonds, Compilons des "trucs" de conception" : Comment le pathgrid influe sur le rendu d'un PNJ
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#17 Vardac Reborn

Vardac Reborn

Posté 29 septembre 2009 - 17:40

Quoi wiwi a un jargon et on me l'avait pas dis !
Oui je connais le wiwiki et oui je pourrais y participer, à voir ^^




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

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