Forum MUGENATION: Frenata - Forum MUGENATION

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

Frenata Elemento avanzato

#1 L   puffolotti 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 267
  • Iscritto: 18-February 08

Inviato 15 February 2010 - 22:06

Nei personaggi realizzati con questo metodo sono necessarie due modifiche al file "Common.cns".
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


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


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


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


Chiaramente é richiesta una animazione 101 nel file AIR in cui il personaggio interrompe la corsa.

Ora, andiamo nel CNS
0

#2 L   williamwilson 

  • EvilMugen
  • Gruppo: Moderatore
  • Messaggi: 1374
  • Iscritto: 30-September 06

Inviato 15 February 2010 - 22:31

se spieghi così impariamo a programmare tutti!
:rolleyes:
cmq l'elecbyte da dei suggerimenti sul numero dei gruppi da utilizzare per queste animazioni? tutto sarebbe più semplice e compatibile se fosse standirzato
0

#3 L   puffolotti 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 267
  • Iscritto: 18-February 08

Inviato 16 February 2010 - 00:21

I numeri 101 e 106 sono un po´clandestini: so che non sono riservati e che non lo saranno in futuro, comunque si puó tranquillamente usare 399 e 398, in effetti penso che faró cosí.

terminato il comando "corsa" -> vai all´azione 399, eseguila e quando hai finito -> vai all´azione 0

Quote

[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 399 ; 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.


Anche cosí la modifica al comando "corri se stai camminando e continua a correre finché il tasto "avanti" é premuto" va fatta sul file common.cns, e quindi il file va comunque attribuito al personaggio e non al gioco.
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi