M   E   N   U

  N  E  W  S
    News
       Mugen News
       Site News
       Old News

 D  O  W  N  L  O  A  D
    Characters
       Athena 2001
       Athena 2002
       Neo Athena
       Evil Ryu
       Violent Ken
       Lynn Baker
       Karin
       Sissy
       Sakura
    Hosted
       Diao
       Kyo
    Stages
       Neogeo 1
       Neogeo 2
       Neogeo 3
       Neogeo 4
       EFZ
       EFZ 2
       Melty Blood
       Others
    Add-ons
       Screen Pack
       Tools/Others
       Video

 W  I  P
    Characters
       Mina

 D  O  C  S
    Tutoriels (FR)
       Personnages
       Stages
       Barres de vie
       Screen Pack
       Intro-Fin
    FAQ (FR)
       Lexique
       Mugen
       Personnages
       Stages
       Screen Pack
       Communauté
    Mugen Torch
       Text in French
       Text in English

 A  R  T  S
       Iris-Net



Tutorial Création et Adaptation de personnages sous Mugen par Sunny : 4eme Partie


Projections


Bon, nous allons continuer d'accroître les difficultés en abordant les projections. Je remarque que j'ai utilisé pas mal de termes similaires dans les lignes qui suivent, aussi j'espère que vous ne vous y perdrez pas trop (:p).

Le problème avec les projections c'est qu'il y en a autant que de personnages différents. En conséquence, bien que Mugen dispose de states standards qui décrivent comment doit réagir le perso lorsqu'il est touché, les programmeurs n'en ont inclus aucun pour dire comment il doit réagir lorsqu'il se fait projeter.

Puisque le moteur de jeu ne dispose pas de state standard qui décrive ce qu'il faut faire d'un personnage projeté, il va falloir en inclure un dans nos propres states. Ensuite, il nous suffira de dire au moteur de jeu d'utiliser ce state pour l'adversaire lorsque nous projetterons ce dernier.

En pratique, nous allons donc créer deux types de states pour une projection :
- le state de notre perso en train de projeter.
- le state de notre adversaire en train de se faire projeter.

De plus il faudra créer l'animation du perso en train de se faire projeter car bien entendu, il n'existe pas non plus d'animation ou de numéro d'animation standard pour les persos projetés.

1ère étape : le projeteur


Nous utiliserons deux states pour faire effectuer à notre perso une projection standard :
- un pour la choppe (comme l'appellent certains ^^).
- un autre pour la projection proprement dite.

La choppe


Le state de la choppe à deux objectifs :
- voir si l'adversaire peut être attrapé pour être ensuite projeté.
- dans le cas où il est attrapé, l'envoyer dans nos propres states pour indiquer au moteur de jeu quelles actions il doit lui faire effectuer.

L'animation de la choppe dépend des persos. Dans certains jeux, comme dans Samourai Shodown, le perso dispose d'une animation complète au cours de laquelle il tente d'attraper le perso.

Cependant dans la plus part des jeux de combat, le perso attrape immédiatement son adversaire si ce dernier se trouve à sa portée. Dans ce dernier cas, l'animation de la choppe se limitera à une image d'une durée d'un tick. A vous de choisir quelle image vous voulez utiliser. Puisque généralement la projection se fait avec un coup fort et que le perso est proche de son adversaire, vous pouvez par exemple décider d'utiliser la première animation de votre Short Fierce Attack. Dans le AIR on aura donc quelque chose du type :

[Begin Action 840]
48,0, 0,0, 1

Que vous utilisiez une animation complète ou uniquement une image, il va falloir définir une zone de choppe avec une boîte d'attaque (Clns1).

Si cette boîte d'attaque touche une boîte de collision de l'adversaire, nous considererons que ce dernier s'est fait attrapper et nous le projeterons..

Le state de la choppe se présente comme le state d'une attaque normale :

; Air Throw
;----------
; Attempt
;--------
[Statedef 840]
StateType = A
MoveType = A
Physics = A
anim = 840
sprpriority = 2
ctrl = 0

[State 840, hit def]
type = HitDef
trigger1 = AnimElem = 1
attr = A, NT
hitflag = A
priority = 4, Miss
air.animtype = hard
sparkno = -1
;hitsound =
;guardsound =
air.type = low
snap = 50
P2facing = 1
P1StateNo = 841
P2StateNo = 845

[State 840, end state]
type = ChangeState
trigger1 = AnimTime = 0
value = 620

Toutefois, comme vous pouvez le remarquer, il y a quelques différences.

La première chose à noter est que pour cette projection-ci, si la choppe rate, le perso fait son attaque normale (state 620). Pas besoin donc de lui redonner le contrôle.

La deuxième chose à noter concerne le HitDef. Comme nous n'effectuons pas un coup normal le HitDef a quelques particularités par rapport au HitDef que nous aurions pour une attaque classique :
attr = A, NT : indique que nous effectuons une projection normale aérienne (Air, Normal Throw).
hitflag = A : le perso ne peut projeter que les persos qui sont dans le même état que lui : il ne peut faire de projection aérienne que si ses adversaire sont en l'air et il ne peut effectuer de projections à terre que si ses adversaires sont debout ou accroupis (ici l'adversaire doit être dans les airs).
priority = 4, Miss : si la choppe touche en même temps qu'un coup normal, c'est le coup normal qui doit l'emporter.
Dans le cas où la choppe touche :
sparkno = -1 : pas de spark pour cette projection.
snap = 50 : l'adversaire est placé à cette position.
P2facing = 1 : nous plaçons le perso et son adversaire toujours face à face (au cas où on ait choppé un perso qui nous tournait le dos).
P1StateNo = 841 : notre perso va au state de la projection.
P2StateNo = 845 : l'ennemi va à ce state dans NOTRE CNS. A partir de ce moment, à moins qu'on le renvoie à ses states, il utilisera les nôtres.

La projection


Le state de la projection n'a rien de particulier (pour le moment). Seules actions à effectuer : jouer l'animation de notre perso lorsqu'il projète son adversaire et retourner au stance une fois cette animation terminée (pour les projections aériennes ça peut toutefois être un peu plus complexe - dans le cas de Nako par exemple elle doit d'abord plonger vers le sol avant de retourner à terre). A ces actions standards, nous en rajouterons une autre :

[State 841, invincibility]
type = NotHitBy
trigger1 = 1
value = SCA


L'action NotHitBy rend le personnage insensible aux coups. Il est possible de préciser exactement quels coups ne peuvent le toucher. Ici aucune précision après le SCA (Standing, Crouching, Air), donc le perso sera insensible à tous les coups debouts, accroupis ou aériens. Pourquoi cette invincibilité ? Parce que si le perso en train de projeter est touché pendant sa projection, son adversaire peut se retrouver dans des situations aussi bizarres qu'impossibles (suspendu dans les airs).

Note : La condition trigger1 = 1 sous-entend : vérifier si 1 = 1. Comme c'est tout le temps vrai (on peut pas avoir 1 = 2), l'invincibilité est appliquée à tous les ticks.



 
   Home
   About
   FAQ
   Disclaimer
   Staff/Thanks
   Contact



   Forum in french
   and english.

   Iris-Net



   
   Delta Park
   Sunny World
   Neoxfight Studios
   Mike Mugen
   Gods Anger
   Matmut's Creations
   Byakko
   :o domain
   Fun Factory
   Mugen Guild
   Anime Mugen
   Shin Mugen





Cute Mugen | © 2002 - 2004 | All Rights Reserved.