Per questo motivo il file common.cns dovrebbe appartenere al personaggio e non al gioco.
Per i meno esperti:
La frenata é un´azione obbligata del personaggio al termine della corsa in avanti: quando interrompe la corsa, il personaggio di "Eclisse dei sentimenti" non puó far altro che frenare, azione che puó conferirgli nuovi attacchi o vietarglieli del tutto finché non ha ripreso la posizione di guardia, al termine della frenata.
Nei personaggi di eclisse dei sentimenti é l´animazione 101.
La frenata in volo é l´animazione 106
Per gli intermedi:
Per rendere un attacco possibile SOLO durante la frenata (ad esempio una spallata):
Prendiamo un attacco possibile quando l´avversario sta in piedi ed ha il controllo:
Quote
; Calcio leggero
[State -1, Light kick]
type = ChangeState
value = 250
triggerall = command = "a"
trigger1 = statetype = S
trigger1 = ctrl
[State -1, Light kick]
type = ChangeState
value = 250
triggerall = command = "a"
trigger1 = statetype = S
trigger1 = ctrl
In metalinguaggio viene circa:
Se viene premuto A
Mentre sta in piedi
E il personaggio ha il controllo
compi l´azione 250.
Ora, vogliamo che il comando possa essere eseguito solo durante la frenata.
Intanto specifichiamo che vogliamo si esegua durante la frenata.
Quote
; Calcio leggero in frenata
[State -1, Light kick during brake]
type = ChangeState
value = 250
triggerall = command = "a"
trigger1 = stateno = 101
[State -1, Light kick during brake]
type = ChangeState
value = 250
triggerall = command = "a"
trigger1 = stateno = 101
La richiesta di essere in piedi é sparita, perché DEVE comunque corrispondere alla situazione della frenata.
La richiesta di avere il controllo va tolta, perché nella frenata non hai il controllo, puoi solo eseguire le mosse previste per la frenata.
Con questi triggers la mossa é possibile solo durante l´animazione 101, e questo apre la strada al secondo concetto del metodo "Eclisse dei sentimenti": L´inversione.
Per i piú esperti:
Partendo dal presupposto che chi voglia studiare questo metodo conosce l´architettura del personaggio, spiego rapidamente che la frenata é un´azione che si attiva al termine della corsa, oppure un´altra animazione che si attiva quando il personaggio riprende una parvenza di controllo in aria.
Osserviamo l´azione corsa nel file common1.cns , che si trova nella cartella "data" nella distro di MUGEN RC 5
Quote
; Run forward
[Statedef 100]
type = S
physics = S
anim = 100
sprpriority = 1
[State 100, 1]
type = VelSet
trigger1 = 1
x = const(velocity.run.fwd.x)
[State 100, 2] ;Prevent run from canceling into walk
type = AssertSpecial
trigger1 = 1
flag = NoWalk
[State 100, 3] ;Prevent from turning
type = AssertSpecial
trigger1 = 1
flag = NoAutoTurn
[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 0
[Statedef 100]
type = S
physics = S
anim = 100
sprpriority = 1
[State 100, 1]
type = VelSet
trigger1 = 1
x = const(velocity.run.fwd.x)
[State 100, 2] ;Prevent run from canceling into walk
type = AssertSpecial
trigger1 = 1
flag = NoWalk
[State 100, 3] ;Prevent from turning
type = AssertSpecial
trigger1 = 1
flag = NoAutoTurn
[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 0
Prendiamo il paragrafo 4
[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 0
In metalinguaggio viene circa:
Quando il tasto avanti non é piú premuto, cambia azione in 0
L´idea alla base della frenata é piuttosto ovvia:
nessuno é in grado di correre e fermarsi in tempo 0, deve "frenare"
nessuno puó interrompere una corsa con un´azione dinamica mentre sta frenando.
Mugen provvede ad emulare una fisica d´inerzia, ma noi vogliamo che il personaggio "punti i talloni per terra"
Partendo dal 4° paragrafo della corsa...
Quote
...
[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 101 ; invece di mandarlo in posizione di attesa, lo mandiamo alla frenata.
ctrl = 0 ; < Mentre sta frenando il personaggio non puó fare altro che mosse permesse durante l´azione di frenata.
;-------------
;BRAKE
[statedef 101]
type = S
Physics = S
Anim = 101
velset = 5,0
sprpriority = 1
[State 101, 4]
type = ChangeState
trigger1 = animtime = 0
value = 0
ctrl = 1
[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 101 ; invece di mandarlo in posizione di attesa, lo mandiamo alla frenata.
ctrl = 0 ; < Mentre sta frenando il personaggio non puó fare altro che mosse permesse durante l´azione di frenata.
;-------------
;BRAKE
[statedef 101]
type = S
Physics = S
Anim = 101
velset = 5,0
sprpriority = 1
[State 101, 4]
type = ChangeState
trigger1 = animtime = 0
value = 0
ctrl = 1
Chiaramente é richiesta una animazione 101 nel file AIR in cui il personaggio interrompe la corsa.
Ora, andiamo nel CNS

Aiuto










