Aller au contenu


Diverses Questions Liées Au Combat...


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

#1 Grilvhor

Grilvhor

Posté 26 avril 2009 - 18:29

Salut,

Est-il possible d'une manière quelconques de detecter quelle attaque porte le PJ( assénné, estoc, hanche ) ????

info: j'ai msi en place un systeme de combo dans mon mod, quand le joueur attaque, l'arme qui n'a qu'un PV disparait et est remplacé par une autre et ect...

Je me demande s'il y existerai un autre moyen de proceder.

Modifié par Grilvhor, 26 avril 2009 - 18:55.

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#2 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 26 avril 2009 - 19:30

Citation

Est-il possible d'une manière quelconques de detecter quelle attaque porte le PJ( assénné, estoc, hanche ) ????

ça aurait été possible si les différents coups avaient des sons différents sleeping.gif

en effet il existe une fonction très puissante qui permet de détecter si tel objet/acteur fait un bruit spécial; on peut donc détecter la plupart des actions d'un acteur ( y compris l'école de magie qu'il utilise )

mais, comme les trois coups ont le même son.... on peut rien faire :) ( sauf modifier le Base Anim, ce qui est fastidieux... )

#3 Havelock

Havelock

    Des fleurs, du rose, un peu de poésie, bordel !


Posté 27 avril 2009 - 08:45

Plutôt que passer par les sons, on ne pourrait pas passer par la détection des touches de directions utilisées par le joueur ? Après tout, le type de coup dépend de la direction utilisée au moment où on l'assène.

Je ne m'y connais pas assez pour en être sûr, mais il me semble avoir déjà vu des mods utilisant ce genre d'astuces...
Il se remit à me jauger du regard;quelque chose en moi chercha des mots à revêtir et ne les trouvant pas, s'enfuit nu dans la nuit. Roger Zelazny.
"Je pense que Mirror's Edge sera extra, mais ils me montrent trop de parkour, je veux voir du gameplay au flingue. J'espère qu'il ne faut pas se contenter de courir et de sauter", Cliff Bleszinki

#4 Nehluxhes

Nehluxhes

    Les mots s'arrêtent à TABRONEH.


Posté 27 avril 2009 - 12:49

Il y a ce mod qui fait la même chose, tu pourrai peut-être t'en inspirer?

Par contre il utilise un exécutable à côté, à toi de voir.

#5 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 27 avril 2009 - 22:10

Voir le messageHavelock, le 27.04.2009 à 09:44, dit :

Plutôt que passer par les sons, on ne pourrait pas passer par la détection des touches de directions utilisées par le joueur ? Après tout, le type de coup dépend de la direction utilisée au moment où on l'assène.

Je ne m'y connais pas assez pour en être sûr, mais il me semble avoir déjà vu des mods utilisant ce genre d'astuces...

oui, mais pour cela, il faudrait avoir la fonction "toujours Meilleure attaque" désactivée. si c'est dit au début du mod, ça va, mais pour ceux qui oublient...

Sinon, oui, une détection de déplacement est envisageable. pas par des collision, pour éviter de gêner le joueur, mais avec des GetPos, ça devrait être faisable. :)

Citation

Il y a ce mod qui fait la même chose, tu pourrai peut-être t'en inspirer?

Par contre il utilise un exécutable à côté, à toi de voir.

Il est impossible de reproduire des mods "morrowind enhanced", parce que le code de l'esp a été compilé par un programme que seul le concepteur de MWE possède, pour qu'il puisse " communiquer " avec l'exécutable.
A oublier, donc :P

Modifié par Snaïpe, 27 avril 2009 - 22:15.


#6 alliop

alliop

    Renaissance de l'art magique.


Posté 27 avril 2009 - 22:44

Voir le messageSnaïpe, le 27.04.2009 à 23:09, dit :

une détection de déplacement est envisageable. pas par des collision, pour éviter de gêner le joueur, mais avec des GetPos, ça devrait être faisable. :shock:
Oui, ça doit pouvoir marcher comme ça. Pour détecter les touches à proprement parler il faut MWSE ou MWE.
Il y a aussi un mod de GanBhurigan nommé "combat moves", qui utilise des activateurs avec un PlaySound muet, mais c'est tout ce que j'en sais, je n'ai aucune idée de la façon dont il les utilise.

Citation

un programme que seul le concepteur de MWE possède, pour qu'il puisse " communiquer " avec l'exécutable.
Non non. Faites une recherche Google sur "MWE DevKit"....

"Bienvenue à toi, lent homme lié, poussif tresseur des vitesses."
Alain Damasio


#7 elendell

elendell

    Mécano Dell'Arte


Posté 27 avril 2009 - 22:51

Voir le messageSnaïpe, le 27.04.2009 à 23:09, dit :

oui, mais pour cela, il faudrait avoir la fonction "toujours Meilleure attaque" désactivée. si c'est dit au début du mod, ça va, mais pour ceux qui oublient...
Je l'avais oubliée cette option. :shock: Mais de toute façon, pouvoir faire des combos implique forcément qu'elle ne soit pas activée, il me semble.

Je trouve l'idée d'Havelock très bonne pour les besoins de Grilvhor.


EDIT :

Voir le messagealliop, le 27.04.2009 à 23:43, dit :

Pour détecter les touches à proprement parler il faut MWSE ou MWE.
Non, on peut s'en passer. Ce n'est pas évident car il n'y a pas de point fixe comme dans le cas d'un véhicule mais j'ai planché sur des scripts qui le permettent. Je ne les ai pas mis sur le forum car je n'ai pas encore eu le temps de les finir mais j'ai suffisamment avancé pour voir que ça fonctionne (même avec Morrowind seul).

#8 alliop

alliop

    Renaissance de l'art magique.


Posté 27 avril 2009 - 23:45

Tu veux dire d'autres touches que celles de déplacement? Ou pour les touches de déplacement sans utiliser "GetPos"? (par GetPos je vois bien, sinon je ne vois pas du tout).... ça m'intéresse! :shock:

"Bienvenue à toi, lent homme lié, poussif tresseur des vitesses."
Alain Damasio


#9 elendell

elendell

    Mécano Dell'Arte


Posté 28 avril 2009 - 04:19

Voir le messagealliop, le 28.04.2009 à 00:44, dit :

Tu veux dire d'autres touches que celles de déplacement? Ou pour les touches de déplacement sans utiliser "GetPos"? (par GetPos je vois bien, sinon je ne vois pas du tout).... ça m'intéresse! :huhu:
Heu... Désolé, je crois que je t'avais mal lu. Je parlais bien de détecter les touches directionnelles en utilisant "GetPos". Mais ce n'est pas si évident parce que je ne le vois jamais dans les "mods", même ceux de véhicules comme "Ranch Pégase". D'où mon erreur d'interprétation.
Relever la position du PJ et la comparer avec celle dans la frame précédente ne suffit pas puisque ça ne dit pas avec quelle touche il a fait ce déplacement (Si on veut détecter les touches, quelque soit l'angle de vision du PJ). Et l'orientation avec la souris n'arrange pas les choses. Sans parler de la vitesse "stat" du PJ et de celle du framerate...  :shock:

Je n'ai par contre pas réussi à détecter correctement les touches discrétion et courir avec Morrowind seul.

#10 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 28 avril 2009 - 05:53

Voir le messagealliop, le 28.04.2009 à 00:44, dit :

Il y a aussi un mod de GanBhurigan nommé "combat moves", qui utilise des activateurs avec un PlaySound muet, mais c'est tout ce que j'en sais, je n'ai aucune idée de la façon dont il les utilise.
peut être avec des GetDistance player. on a un activateur de chaque coté du joueur, a une distance fixe ( merci PlaceAtPC :shock: ) et si cette distance est plus petite sur l'activateur de droite ( par ex. ) on en conclut que le joueur se déplace sur la droite, et on réactualise la position des activateurs pour qu'il se retrouvent de nouveau a la distance fixée du joueur. pour le PlaySound muet, par contre je vois pas...

Modifié par Snaïpe, 28 avril 2009 - 05:54.


#11 alliop

alliop

    Renaissance de l'art magique.


Posté 28 avril 2009 - 13:00

Voir le messageSnaïpe, le 28.04.2009 à 06:52, dit :

un activateur de chaque coté du joueur, a une distance fixe ( merci PlaceAtPC :shock: ) et si cette distance est plus petite sur l'activateur de droite ( par ex. ) on en conclut que le joueur se déplace sur la droite, et on réactualise la position des activateurs pour qu'il se retrouvent de nouveau a la distance fixée du joueur. pour le PlaySound muet, par contre je vois pas...
Ok. Oui, c'est clair. Ca me paraît moins fiable que la comparaison par frame avec une variable traçant la position (pour le cas des figures de combat peu importe si l'on détecte la touche à proprement parler, l'important est de détecter le mouvement) : le moindre caillou avec collisionbox situé dans la zone du "PlaceAt" va fausser complètement la distance, puisque l'activateur se placera à des coordonnées libres différentes.

Pour savoir ce que fait Ganbhurigan le mieux est de regarder ses scripts dans le mod.
Il y a aussi le "combat avancé" de Adull camembérisé par Lespagnol, mais je ne sais pas du tout s'il contient des combos basés sur la détection de mouvement, que ce soit dans sa version VO ou sa VF (adaptée et réduite).

Modifié par alliop, 28 avril 2009 - 13:01.

"Bienvenue à toi, lent homme lié, poussif tresseur des vitesses."
Alain Damasio


#12 elendell

elendell

    Mécano Dell'Arte


Posté 28 avril 2009 - 15:41

Voir le messageSnaïpe, le 28.04.2009 à 06:52, dit :

Voir le messagealliop, le 28.04.2009 à 00:44, dit :

Il y a aussi un mod de GanBhurigan nommé "combat moves", qui utilise des activateurs avec un PlaySound muet, mais c'est tout ce que j'en sais, je n'ai aucune idée de la façon dont il les utilise.
peut être avec des GetDistance player. on a un activateur de chaque coté du joueur, a une distance fixe ( merci PlaceAtPC :peur: ) et si cette distance est plus petite sur l'activateur de droite ( par ex. ) on en conclut que le joueur se déplace sur la droite, et on réactualise la position des activateurs pour qu'il se retrouvent de nouveau a la distance fixée du joueur. pour le PlaySound muet, par contre je vois pas...
Désolé si je suis à côté de la plaque mais je ne retrouve pas le message d'alliop que tu "quotes" (pour être sûr de bien suivre le fil des réflexions).

Ce que tu évoques est le principe que j'ai adopté pour détecter les touches. Sauf que je n'utilise pas des activateurs car après essais, cette méthode rencontrait des problèmes dans certains cas. Idem pour les autres types d'objets qui ne se placent pas toujours comme on veut.

Je ne place donc pas d'activateurs mais calcule des points virtuels à 100 unités dans les 4 directions cardinales.
Le script relève l'angle du PJ, calcule ses sinus et cosinus et relève les coordonnées x et y du PJ. Avec ces éléments, il détermine les positions virtuelles x,y de 4 points à 100 unités chacun, dans les 4 directions. A la frame suivante, il relève la position du PJ et calcule si la distance avec les points virtuels à changée. Si c'est le cas, on sait dans quel sens il s'est déplacé.

Il y a quand même des réglages et aménagements à faire pour tenir compte de la vitesse du PJ et du framerate et si on règle l'écart de détection validant la touche trop grand, il ne détectera pas toujours et si c'est trop petit, il détectera dès fois à tort (notamment quand le PJ pivote trop rapidement). Il peut également y avoir des problèmes quand il se déplace avec une touche mais qu'il est contre un obstacle. Si le PJ a un mur qui le bloque par exemple en face de lui ; s'il est bien en face, il est bloqué mais sil est orienté un peu de travers, appuyer sur la touche avant le déplace sur le côté car le jeu cherche automatiquement à lui faire contourner l'obstacle. Et le script en déduit à tort qu'il a utilisé une touche latérale. Mais ça se résout avec des réglages et conditions supplémentaires.

Ce système nécessite un calcul de racine carrée. Avec Morrowind seul qui n'a pas cette fonction, il faut donc ajouter un script qui calcule la racine carrée. En spoiler, je met un extrait de ces calculs dans le cas d'un véhicule. C'est plus simple que sans véhicule mais le principe reste le même.


Spoiler


#13 Grilvhor

Grilvhor

Posté 11 mai 2009 - 18:35

Salut a vous,

je constate avec plaisir que ce sujet nourri votre curiosité et je vous remerci pour vos suggestions. ;)

Je vais tâcher d'etre plus précis sur mon probleme.

Chaque coup est censé produire un effet different, ce pourquoi j'utilise des armes differentes. De plus je souhaitai verifié le coup porté pour que le combo echou s'il s'agit du mauvais.

Il s'agit nottament de combo en quatre coups dans cette ordre:

sleeping.gif asséné
:pilote: taille
:pilote: estoc
:pilote: attaque finale, aerienne et asséné.

Le pj equipe une arme particuliere qui utilise un messagebox "Quel combo utilisé??"

Alors le pj voit cette arme remplacé par celle qui correspond au premier mouvement du combo.

Lorsque le pj attaque, étant donné que l'arme a 1 PV, elle se désequippe, c'est la seul maniere que j'ai trouvé pour verifier que le coup à été porté.

Alors l'arme du deuxieme mouvement s'equipe sur le pj et un timer se lance.
Une seconde environ pour porter l'attaque suivante, sinon le combo a echoué et le pj retrouve son arme d'origine.

S'il est assez rapide alors il se passe la meme chose et le timer est set to 0 mais toujours lancé.

Si les trois coup sont correctement porté, le joueur doit alors sauté rapidement ( timer ) et alors il se voit conferer l'arme du coup d'achevement.

Lorsque il réatéri il retrouve son arme normal, qu'il ai  porté le coup ou non.

Je n'ai essayer de mod de combo pour le moment, donc je ne peux comparer ma technique a d'autres.

Que pensez vous de mon système??


Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#14 elendell

elendell

    Mécano Dell'Arte


Posté 12 mai 2009 - 03:32

Salut,

Citation

Que pensez vous de mon système??
L'idée est intéressante. Il faut voir ce que ça donnera à la mise en œuvre.

Juste une précision au cas où mais je pense que tu as dû t'en apercevoir : Le combo fonctionnera même si les trois premiers coups sont ratés car la vie de l'arme diminue à partir du moment où l'on frappe en direction de l'adversaire, même si on n'arrive pas à le toucher.

Dès lors, pourquoi ne pas permettre la réalisation du combo (le coup final) même si les 3 premiers mouvements sont faits dans une autre direction que le PNJ ? Cela t'éviterait de faire tous ces changements d'armes car tu n'aurais que la suite de mouvements dans le timing à vérifier.

A part ça, on entendra les sons de chaque changement d'arme mais l'effet sonore résultant ne sera pas forcément négatif.

#15 Kira

Kira

    Top-modeleuse...


Posté 12 mai 2009 - 04:09

Bonjour...

Ne faudrait-il pas vérifier, à toutes fins utiles, que chaque mouvement reste bien dans le cadre de la seconde?...

Il faut prendre en considération qu'un mouvement se compose d'un start, loop start, loop stop et stop...

Pour clarifier ces noms barbares:

1/ Start : Le personnage est debout, en pose neutre, son arme est dégainée, et il arme son coup...
2/ Loop Start : Le personnage abat son arme et se remet en position...
3/ Loop Stop : marque la fin du mouvement d'attaque, là où le mouvement va recommencer si on maintient le bouton d'attaque appuyé...
4/ Stop : Le personnage a son arme levée, et il se replace en position neutre avec son arme à la main...

Je n'ai pas regardé précisément, mais je ne sais pas si le groupe de frame fait réellement une seconde...
Et si ce n'est pas le cas, tu risques de te retrouver avec des vides étranges dans tes combos, à moins que tu ne déclares un temps inférieur à la durée réelle du mouvement, peut-être...
En effet, si tu demande un "PlayGroup" sur une animation sans préciser de flag, l'animation suivante ne se déclenchera qu'une fois la première entièrement jouée...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)




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

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