WIF - La Community Italiana di The Battle for Wesnoth

Wesnoth Italian Forum
La Community Italiana di The Battle for Wesnoth uno dei migliori giochi multiplayer online gratis open source, a turni di ambientazione fantasy. Iscriviti a wifper partecipare ai tornei online, allo sviluppo di nuove estensioni (campagne, mappe, ere, scenari, fazioni) e a tutte le iniziative di w.i.f. per questo meraviglioso gioco strategia . Giocare gratis on line non è mai stato più facile.

Se stai cercando giochi multiplayer online, giochi di strategia, giochi a turni, giochi open source, giochi gratuiti o giochi fantasy, vieni a giocare online in multiplayer con noi! Questo è il forum che cercavi.
25 Maggio 2018, 11:30:34 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
 Notizia
VENITE A TROVARCI NELLA CHAT DI W.I.F.
- per organizzare partite ed incontri Ghigno  -
Ti aspettiamo!
Ricerca avanzata  
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Creazione nuova unità - problemino col WML  (Letto 72 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Adiray-X
Giovane Avventuriero
**
Scollegato Scollegato

Messaggi: 57



« inserita:: 15 Maggio 2018, 19:10:41 »

Salve a tutti,

Stavo mettendo a punto le animazioni di una nuova unità che avevo creato e arrivando alla parte WML per animare l'attacco corpo a corpo ho riscontrato un "problema" (che non so se può definirsi tale, magari è una stupidata, ma non me ne intendo tantissimo di WML perciò ho pensato di vedere se qualcuno di più esperto poteva darmi una mano).
L'animazione è questa qui: braccio teso lateralmente
[ Allegato: Non sei abilitato a vedere gli allegati ]
Si forma l'arma
[ Allegato: Non sei abilitato a vedere gli allegati ]
Arma formata
[ Allegato: Non sei abilitato a vedere gli allegati ]
Frame di attacco (che non ho ancora fatto. Inoltre ci sono 13 immagini in cui compare la spada, che per ragioni ovvie non posso mettere tutte qui)

Ora quello che io desideravo fare, era avere la prima parte dell'animazione (la comparsa dell'arma) col personaggio fermo davanti al nemico ed avere l'unità che inizia a muoversi per colpire solo quando l'arma finisce di comparire. Tuttavia, scrivendo ciò
Codice:
[attack_anim]
    [filter_attack]
            name=Aiguille
        [/filter_attack]
       
        start_time=-350
        [frame]
        image="units/Douziens/Xelor-attack-[1~13,base].png:250"
        [/frame]
        [frame]
        image="units/Douziens/Xelor-3.png:75"
        [/frame]
        [frame]
                 #frame non realizzati
        [/frame]
    [/attack_anim]

Il personaggio inizia a muoversi già creando la spada. Volevo quindi sapere se esiste un modo per far apparire l'arma in mano al personaggio prima che attacchi senza che però si muova, e che il movimento inizi solo quando vi sono i frame in cui colpisce. Pensavo a qualcosa di simile a ciò
Codice:
[pre_movement_anim]
     [frame]
            image="units/Douziens/Xelor-mov-[1,2,3,4].png:50"
            halo="halo/Xelor_Teleportation/Xelor-teleportation-[1~7].png:28"
        [/frame]
    [/pre_movement_anim]
    [post_movement_anim]
        [frame]
            image="units/Douziens/Xelor-mov-[4,3,2,1].png:50"
            halo="halo/Xelor_Teleportation/Xelor-teleportation-[7~1].png:28"
        [/frame]
    [/post_movement_anim]
    [movement_anim]
        [frame]
            image="units/Douziens/Xelor-mov-base.png"
        [/frame]

dove vi è un animazione prima e dopo il movimento.
Grazie in anticipo se qualcuno riesce a chiarirmi questa cosa,
Buon giuoco a voi !
Registrato
Argesilao
Maestro di Battaglia
****
Scollegato Scollegato

Messaggi: 197



« Risposta #1 inserita:: 15 Maggio 2018, 21:04:34 »

Avrei bisogno di un chiarimento: in pratica tu hai un'unità NON adiacente all'unità nemica che deve attaccare; imposti il suo movimento in modo che vada ad attaccare il bersaglio scelto con l'attacco di tipo aiguille; quello che vuoi ottenere è che, PRIMA di iniziare il movimento di avvicinamento al bersaglio, appaia la spada nella mano dell'unità attaccante, quindi l'unità attaccante si muova nella posizione adiacente al bersaglio ed infine esegua l'attacco?

Se il caso è questo è un problema  Indeciso perchè usando il tag [pre_movement_anim] la spada apparirebbe nelle mani del personaggio ogni volta che l'unità compie un qualunque movimento anche solo per spostarsi sulla mappa; ma in questo caso è inutile usare il tag [pre_movement_anim] e basta inserire la comparsa della spada all'inizio del tag [movement_anim].

 Il tag [attack_anim], invece, si attiva solo quando l'unità deve eseguire un attacco di un certo tipo, e poiché l'attacco viene eseguito solo quando l'unità attaccante è adiacente a quella attaccata, inevitabilmente si attiva solo dopo i tag di animazione del movimento, se è previsto un movimento di avvicinamento al bersaglio prima dell'attacco.

Sospetto che, sempre se ho capito esattamente qual'è la situazione che vuoi ottenere, la soluzione non esista in WML, se non forse parziale: potresti inserire nel tag [pre_movement_anim] un controllo per verificare che il settore di coordinate $x1,$y1, cioè il settore di arrivo del movimento, sia oppure no adiacente ad un settore occupato da una unità nemica, e nel primo caso si attivi l'animazione di apparizione della spada.
A grandi linee sarebbe una cosa simile:
[pre_movement_anim]
    [if]
        {controllo di adiacenza con un settore controllato da un nemico, detto tra noi un bel casino}
    [/if]
    [then]
        {serie di frame con l'apparizione della spada}
    [/then]
[/pre_movement_anim]

Queste sono le mie conclusioni, ma spero di essere smentito almeno in quelle più pessimistiche  Ghigno; spiacente di non essere stato più costruttivo, spero almeno di essere stato utile (e di avere capito esattamento cosa volevi realizzare)

Argesilao
Registrato

Quello che non ti uccide ti rende più menomato

Il caso non esiste, esiste solo l'inevitabile
(Yuko Ichihara)

Sai tu qual sia in questa nera valle la risultanza ed il premio di ogni sacrifizio umano? Calci nel deretano!
(Brancaleone da Norcia)
Argesilao
Maestro di Battaglia
****
Scollegato Scollegato

Messaggi: 197



« Risposta #2 inserita:: 15 Maggio 2018, 21:31:37 »

ma in questo caso è inutile usare il tag [pre_movement_anim] e basta inserire la comparsa della spada all'inizio del tag [movement_anim].

Mi sono appena reso conto che questa è una stupidaggine: si avrebbe la sequenza di apparizione della spada ripetuta in ogni settore in cui l'unità  Imbarazzato
Registrato

Quello che non ti uccide ti rende più menomato

Il caso non esiste, esiste solo l'inevitabile
(Yuko Ichihara)

Sai tu qual sia in questa nera valle la risultanza ed il premio di ogni sacrifizio umano? Calci nel deretano!
(Brancaleone da Norcia)
Adiray-X
Giovane Avventuriero
**
Scollegato Scollegato

Messaggi: 57



« Risposta #3 inserita:: 15 Maggio 2018, 21:36:34 »

Avrei bisogno di un chiarimento: in pratica tu hai un'unità NON adiacente all'unità nemica che deve attaccare; imposti il suo movimento in modo che vada ad attaccare il bersaglio scelto con l'attacco di tipo aiguille; quello che vuoi ottenere è che, PRIMA di iniziare il movimento di avvicinamento al bersaglio, appaia la spada nella mano dell'unità attaccante, quindi l'unità attaccante si muova nella posizione adiacente al bersaglio ed infine esegua l'attacco?

No, no, forse non mi sono spiegato benissimo in effetti. Il [pre_movement_anim] l'ho messo lì come esempio di quello che volevo realizzare. In sostanza, quelle che vorrei è, quando la mia unità adiacente all'unità nemica, deve colpirla, evochi la sua arma stando ferma, e solo una volta che ha l'arma tra le mani si sposti in avanti per colpire (non sto parlando di movimento tra caselle, ma semplicemente il movimento che compie l'unità attaccando, questo movimento [ Allegato: Non sei abilitato a vedere gli allegati ] quando la mia unità va sulla casella avversaria durante l'attacco).

Se prendo come esempio il WML del movimento io vorrei una cosa simile, una sorta di [pre_attack_anim] per capirci che si attivi prima che l'unità colpisca effettivamente il nemico. Qualcosa come
Codice:
[pre_attack_anim]
      #evocazione arma
[/pre_attack_anim]
[attack_anim]
      #colpo
[/attack_anim]
in modo che il personaggio se ne stia fermo al centro della SUA casella mentre evoca l'arma, e solo DOPO aver evocato l'arma vada sulla casella nemica, colpendo.
Spero di essere riuscito a chiarire, scusa se confondo piu che altro  Indeciso
Registrato
Argesilao
Maestro di Battaglia
****
Scollegato Scollegato

Messaggi: 197



« Risposta #4 inserita:: 15 Maggio 2018, 21:55:02 »

Oh bella! In verità ti eri spiegato bene, ma ho travisato perché, in teoria, questo codice

Codice:
[attack_anim]
     [filter_attack]
            name=Aiguille
        [/filter_attack]
        
        start_time=-350
        [frame]
         image="units/Douziens/Xelor-attack-[1~13,base].png:250"
        [/frame]
        [frame]
         image="units/Douziens/Xelor-3.png:75"
        [/frame]
        [frame]
                 #frame non realizzati
        [/frame]
    [/attack_anim]

dovrebbe fare esattamente quello che ti proponi di ottenere; sono io che ho fatto delle considerazione non necessarie.

Forse la soluzione è più semplice del previsto; puoi provare ad aumentare il valore assoluto dello start-time: avendo 13 frame di 250 ms l'uno prova a settarlo a -3250.

Registrato

Quello che non ti uccide ti rende più menomato

Il caso non esiste, esiste solo l'inevitabile
(Yuko Ichihara)

Sai tu qual sia in questa nera valle la risultanza ed il premio di ogni sacrifizio umano? Calci nel deretano!
(Brancaleone da Norcia)
Adiray-X
Giovane Avventuriero
**
Scollegato Scollegato

Messaggi: 57



« Risposta #5 inserita:: 15 Maggio 2018, 22:29:20 »

Oh bella! In verità ti eri spiegato bene, ma ho travisato perché, in teoria, questo codice dovrebbe fare esattamente quello che ti proponi di ottenere; sono io che ho fatto delle considerazione non necessarie.
Forse la soluzione è più semplice del previsto; puoi provare ad aumentare il valore assoluto dello start-time: avendo 13 frame di 250 ms l'uno prova a settarlo a -3250.

No, non funziona. Ho gia provato (ed ho comunque rifatto la prova ora per esserne sicuro) il personaggio crea l'arma mentre sta andando verso il nemico, in questo modo.
[ Allegato: Non sei abilitato a vedere gli allegati ]
Credo che l'unità inizi a muoversi a partire dal start_time, poco importa cosa si faccia. In pratica cambiando i ms si muove solo piu lentamente, ma il problema rimane lì
Registrato
Adiray-X
Giovane Avventuriero
**
Scollegato Scollegato

Messaggi: 57



« Risposta #6 inserita:: 16 Maggio 2018, 15:51:18 »

Ok ! Ci sono riuscito. Ravanando un poco sul forum ufficiale e nei file .cfg delle unità sono riuscito a trovare i comandi [draw_weapon_anim] e [sheath_weapon_anim], che permettono un'animazione prima e dopo una serie di attacchi
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a: