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 : 6eme Partie


Les strikers


Un striker est un perso qui peut venir aider le votre à un moment ou a un autre au cours d'un match. Le striker est plus ou moins indépendant de votre perso. De ce fait, il doit avoir ses propres sprites, animations et actions. A l'heure actuelle, Mugen ne permet pas de prendre un autre perso du jeu et de l'utiliser comme striker (comme c'est le cas de KOF). Il faudra donc inclure sprites, animations et actions du striker DANS les fichiers de votre perso. Réservez lui une place dans votre palette, dans votre SFF, dans votre AIR et dans votre CNS (réservez-lui des numéros d'actions qui ne seront pas utilisés par votre perso - numéros 6000 à 8000 par ex).

Préparation

La première chose à faire est de choisir le perso que l'on veut utiliser comme striker. Prenez en un qui ait un lien avec le perso que vous créez et qui vienne du même jeu, pour conserver une certaine logique ou du moins, une même ambiance graphique (mélanger persos réalistes de KOF et plus cartoons SF ça fait quand même un peu bizarre). Puis regardez quel(s) coup(s) vous voulez lui faire exécuter.

Une fois ces choix effectués, ripez les sprites et incluez les dans le SFF de votre perso principal. Le mieux est de réserver une partie de sa palette pour les couleurs du striker ainsi on pourra modifier ses couleurs indépendamment du perso principal ou de ses effets spéciaux. Faites ses animations et incluez les également dans le AIR de votre perso principal.

La partie préparation maintenant terminée, on peut passer à la prog du striker proprement dite.

Programmation du striker

Pour programmer un striker, nous utiliserons l'action Helper. Cette action nous permet de créer des éléments aux comportements plus complexes qu'un projectile et qui peuvent être indépendants du perso principal : une sorte de perso à l'intérieur du perso principal.
Les helpers utilisent les fichiers SFF, AIR et CNS de leur parent (ici le perso principal) ainsi que presque toutes leurs constantes. Par contre, ils ont leus propres variables, totalement indépendantes de celles du perso principal. Vous pouvez donc avoir deux var(1), deux var(2), etc... Lorsque vous vous trouverez dans le state du helper, Mugen regardera la variable du helper. Autrement, il regardera celle du parent.

Le helper que nous allons programmer à titre d'exemple apparaîtra dans les airs. Il atterrira, fera son attaque puis disparaîtra. Sa programmation se fera en plusieurs phases.

1ère phase : la création du striker.

Lorsque l'on effectuera une commande spécifique, notre perso ira dans un state spécifique et appellera son striker. Ce state n'a rien de particulier : il suffit de jouer l'animation lorsque le perso appelle son striker et de retourner au stance lorsque celle-ci est terminée. Au cours de ce state, nous créerons le striker avec une action helper. Exemple :

[StateDef 2000]
Type = S
MoveType = I
Physics = S
Anim = 2000
SprPriority = 1
VelSet = 0,0
Ctrl = 0

[State 2000, create striker]
type = helper
trigger1 = time = 0
name = \"striker\"
ID = 7000
pos = -350, -200
postype = back
facing = 1
keyctrl = 0
ownpal = 1
pausemovetime = 0
supermovetime = 0
stateno = 7000

[State 2000, end state]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

Le striker que nous venons de créer s'appelle striker (n'oubliez pas les guillemets) et il a pour code d'identification le numéro 7000. Ces deux informations nous permettrons de vérifier combien nous avons de strikers de ce type à l'écran. Ainsi dans le CMD, parmi les conditions pour appeler le striker, nous inclurons : triggerall = numhelper(7000) = 0. Cela nous empêchera de pouvoir créer ce striker alors qu'il est déjà à l'écran.
Ce striker, nous le créerons à l'arrière du personnage ( postype = back), à 350 pixels horizontalement par rapport au centre de l'écran et à 200pixels au dessus de notre personnage. Le striker sera par ailleurs tourné dans le même sens que le perso ( facing = 1). Attention : le pos et le facing dépendent du postype : en fonction du postype mis, le pos et le facing seront interprétés différemment !

Ce striker sera totalement indépendant du perso principal : il ne pourra pas être contrôlé keyctrl = 0 et il aura sa propre copie de la palette ownpal = 1 (si le perso principal est sous l'influence d'un PalFx, le striker ne le sera pas). Toutefois le striker sera immobilisé par les pauses et les super pauses du perso principal ( pausemovetime = 0 ; supermovetime = 0).

Enfin, le striker sera créé dans le state 7000.

2ème phase : l'arrivée du striker.

Nous venons de voir que le striker sera créé dans le state 7000. Il faut maintenant définir ce que devra faire le striker dans ce state. En l'occurrence, le perso est créé dans les airs. Il faut donc d'abord le faire atterrir :

[StateDef 7000]
Type = A
MoveType = I
Physics = A
Anim = 7000
SprPriority = 1
VelSet = 0,0
Ctrl = 0

[State 7000, hit override]
type = HitOverride
trigger1 = time = 0
attr = SCA
slot = 0
time = -1
stateno = 7050

[State 7000, end state]
type = ChangeState
trigger1 = vel y >= 0
trigger1 = pos y >= -1
value = 7001

Deux choses à noter sur les deux actions de ce state : on force le perso à atterrir lorsqu'il est près du sol et on envoie le perso dans un state particulier si il reçoit un coup. Pourquoi ne laisse-t'on pas le perso atterrir et recevoir un coup naturellement ? Comme je l'ai indiqué, le helper utilise les states, les animations et les sprites du perso par défaut. Si on le laisse agir, il utilisera donc l'animation du perso lorsqu'il atterrira et lorsqu'il se prendra un coup (faites un essai pour voir le résultat).

Pour l'atterrissage, une autre solution consisterait à changer le physics dans le statedef (mettre physics = N) et à ajouter de la gravité artificiellement (avec l'action gravity). Mais il faudrait de toute façon changer de state lorsque le perso est proche du sol.

Concernant le HitOverride :
- le attr indique sur quels coups le HitOverride fonctionne. Ici tous.
- le slot indique dans quel emplacement ce HitOverride doit être stocké (ici le 0 ; 8 emplacements sont disponibles)
- le time indique combien de temps cette action doit durer. Ici elle est active pour toute la duré du state.
- enfin, le stateno indique à Mugen dans quel state aller si le perso se fait toucher par une attaque.

Voici le state où va aller le striker si il se fait toucher par une attaque :

[StateDef 7050] ; Le perso tombe par terre
Type = A
MoveType = H
Physics = N
Anim = 7050
SprPriority = -2
VelSet = 0,0
Ctrl = 0

; pour changer un peu, on utilise un gravity associé à un physics = N
[State 7050, gravity]
type = gravity
trigger1 = 1

[State 7050, end state]
type = ChangeState
trigger1 = vel y >= 0
trigger1 = pos y >= -1
value = 7051

[StateDef 7051] ; Le perso se relève
Type = S
MoveType = H
Physics = S
Anim = 7051
SprPriority = 1
VelSet = 0,0
Ctrl = 0

[State 7051, velocity] ; on repositionne le perso correctement
type = VelSet
trigger1 = time = 0
x = 0
y = 0

[State 7051, position] ; on repositionne le perso correctement
type = PosSet
trigger1 = time = 0
y = 0

[State 7051, end state] ; le perso se barre (on voit ce state tout de suite après)
type = ChangeState
trigger1 = AnimTime = 0
value = 7002



 
   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.