AGS – Parte 4 – rooms, dialogs, items

CURSOR




Questa sezione e’ molto intuitiva, e’ dove vengono create le interazioni possibili e i loro rispettivi cursori del mouse

e’ possibile attraverso le view avere anche cursori animati

AUDIO (solo in AGS 3.2)


Nella sezione Audio come nella sezione Sprite possiamo organizzare cartelle e importare file, sostanzialmente divisi tra musiche e suoni, inoltre possiamo anche scoltare la preview

AGS supporta i seguenti formati musicali .mp3, .wav, .ogg, .mod, .xm, .it, .voc, .midi, .s3m

lo script per chiamare un sound o una musica è

"script name del file".Play();

Inoltre e’ possibile dare uno script name ai file audio, al contrario della vecchia importazione audio delle versioni precedenti che funzionava cosi’

AUDIO IN AGS 3.1 E INFERIORI


I file vanno messi nelle rispettive cartelle MUSIC and SOUND contenute nella cartella del nostro progetto e rinominate SOUND1, MUSIC1 e seguenti
insomma hanno il nome generico piu’ un numero e vengono richiamati attraverso il numero

INVENTORY ITEM




Come i personaggi gli inventory Item (si creano cliccando col destro sull’opzione del menu)
hanno sia un nome/descrizione che viene mostrato nel gioco sia uno scriptname

Inoltre gli oggetti hanno due frame, uno che rappresenta l’oggetto nell’inventario, l’altro rappresenta il cursore quando si usa l’oggetto

Inoltre il protagonista puo’ gia’ iniziare con l’oggetto nell’inventario (vedi palloncini in Monkey Island 3) mettendo su “true” l’opzione PlayerStartWithItem

Come i personaggi cliccando sull’icona del fulmine (events) possiamo impostare le interazioni, ovvero le reazioni del personaggio quando si guarda, usa un oggetto, si parla

lo ripetero’ piu’ tardi ma intanto anticipo lo script che aggiunge/toglie oggetti dall’inventario

"script name protagonista".AddInventory("script name oggetto");
"script name protagonista".LoseInventory("script name oggetto");

se volete un suono ogni volta che prendete un oggetto aggiungete anche

"scriptnamesuono".Play();

ma su queste cose torneremo piu’ tardi

STANZE(ROOMS)




Passiamo ora alle stanze

Quando creiamo una nuova stanza cliccando sul destro sulla voce Rooms, dobbiamo per prima cosa o impostare una grandezza con i parametri “height”, “weight” oppure importare lo sfondo che vogliamo alla stanza in modo che essa si autoregoli, ricordate che se avete scelto una risoluzione dovete cercare di mantenerne le proporzioni

Le stanze hanno una DESCRIZIONE ma non e’ importante ai fini del gioco, serve piu’ che altro a noi per trovarla meglio nella lista

il numero della stanza e’ invece quello che ci servira’ per utilizzarla negli script

Inoltre possiamo impostare una specifica view per il protagonista nella determinata stanza impostando PlayerCharacterView in Settings

Cliccando sul fulmine otterremo delle opzioni diverse da quelle gia’ viste nei personaggi e negli oggetti

infatti le stanze hanno

Enter rooms after faiden: gli eventi si attiveranno dopo il caricamento della stanza

Enter rooms before faiden: gli eventi si attiveranno prima degli altri presenti nella stanza ( in certi cais puo’ creare dei conflitti)

First time enters in room: questi eventi partiranno solo la prima volta che il giocatore arrivera’ nella stanza

Leaves Room: questi eventi partiranno ogni volta che uno script ci teletrasportera’ in un’altra stanza

Repedeatley Execute: succede subito

Walk off…: si attivano quando si raggiunge uno dei bordi della mappa



Ora passiamo alla caratterizzazione grafica della stanza

Per importare uno sfondo dobbiamo cliccare sul pulsante “change” vicino alla scritta “main background”

sotto al main background ci sono altri frame dello sfondo che possiamo importare per animare la mappa, cliccando su (ad esempio animare un fiume) e che possono essere massimo 5

Ora che abbiamo lo sfondo dobbiamo creare le aree dove si puo’ camminare, le walkable areas

cliccando sul “nothing” vicino allo show this room’s: possiamo scegliere quali elementi della mappa vedere

scegliamo le Walkable areas e appariranno in alto degli strumenti di disegno: matita, linea, secchiello

Sulla tabella del design appare inoltre una finestra in cui possiamo scegliere su quale walkable area agire, per un massimo di 15 a mappa

ora per disegnare l’are usiamo uno degli strumenti di disegno, l’area sara’ quella dove sara’ possibile camminare per i personaggi, ogni area inoltre puo’ avere uno “scaling level” fisso o graduale, lo scaling level indica la grandezza in scala da 0 a 100 dei personaggi che hanno la loro linea di terra nella walkable area (anche quelli secondari se hanno l’opzione dello scaling in “true”)

se scegliamo lo scaling graduale “UseContinuousScaling” dovremo inserire invece lo scaling dall’area della zona piu’ bassa e della zona piu’ alta, il gioco poi regolera’ da solo le varie situazioni


Ora passiamo agli altri elementi delle stanze

EDGES i BORDI


semplicemente possiamo mettere dei bordi personalizzati nei punti che vogliamo nella mappa per poter attivare le condizioni “walk of edge….” di cui abbiamo parlato prima


REGIONS


Le regioni sono aree che hanno degli effetti di luce o di tinta e che possiamo disegnare sempre con gli strumenti delle walkable areas

WALK BEHIND


Questa aree sono quelle che stanno davanti al personaggio quando cammina, quelle in cui passa dietro.
Prendiamo ad esempio un caverna con stalagmiti, se vogliamo che il personaggio quando cammina passi dietro alle stalagmiti dobbiamo disegnare su di esse una di queste aree ( che ha effetto anche su oggetti e personaggi secondari).
Queste aree vengono sempre disegnate con i solit strumenti ma non verranno attivate finche’ non piazzeremo la “baseline”.
Dopo aver disegnato l’area portiamo il cursore sul bordo piu’ alto della mappa ed esso cambiera’ forma, cliccando potremo trascinare in basso la baseline che determinera’ a che altezza dev’essere un personaggio per stare dietro alla walk-behind area.
Per determinare questo AGS guardera’ al pixel piu’ in basso a destra dle frame del determinato personaggio che deve trovarsi sopra alla baseline per essere soggetto alla walk-behind area

HOTSPOTS


Gli hotspot sono i “punti caldi” aree disegnate nella mappa che possiamo evidenziare e nominare e co cui possiamo interagire

esempio: mettiamo che c’e’ un cespuglio disegnato nella mappa, con gli strumenti di disegno degli hotspot riempiamo il cespuglio e nella descrizione della tabella mettiamo CESPUGLIO, poi come al solito cliccando sul fulmine possiamo inserire le varie interazioni

gli hotposto non diventano invisibili ma vengono disabilitati

"scriptnamehotspot".Enabled = true;

o

"scriptnamehotspot".Enabled = false;

ovviamente il processo e’ reversibile, una stanza puo’ contenere al massimo 49 hotspots
ma nessuno di essi puo’ sovrapporsi agli altri perche’ li cancellerebbe


OBJECTS


Gli oggetti sono invece frame che stanno sopra la mappa e per essere inseriti, dopo aver scelto di visualizzare gli “objects” dobbiamo solo cliccare col destro sulla mappa e scegliere “create new object”

Dopodiche dobbiamo, nella sua tabella dargli uno sprite, un nome, uno script name e decidere se parte visibile o invisibile

Anch’esso avra’ le sue interazioni cliccando sul fulmine

gli objecte compaiono e scompaiono così

"scriptnameobject".Visible = true;

oppure

"scriptnameobject".Visible = false ;

facendo un po di pratica sara’ facile capire quali sono le caratteristiche che servono nelle nostre stanze.
Una volta nelle vecchie versioni le stanze avevano di base l’opzioni per impostargli una musica di default ora bisogna inserire nella sezione “Enter Room After Faiden”

"scriptnamemusica".Play();

e la canzone partira’ ogni volta che entreremo nella stanza

DIALOGS




parliamo infine dei dialoghi

La struttura dei dialoghi e’ stata semplificata molto nella versione 3.2

Cliccando col destro creiamo un nuovo dialogo (consiglio di dargli nomi semplici e facili da ricordare) a sinistra abbiamo le domande che potra’ scegliere il giocatore.
A destra lo spazio dove scriveremo lo svolgimento del discorso

Accanto alle domande ci sono le opzioni SAY e SHOW, say vuol dire che il personaggio ripetera’ la domanda dopo averla scelta, show che la domanda parte gia’ visibile e non dev’essere sbloccata da un’altra

Questa e’ la struttura di un dialogo presa da A Cat’s Night

// Dialog script file
@S // Dialog startup entry point
ORAZIO: "Ciao Piccolina"
AGNE: "Ciao!"
AGNE: "Sei qui per giocare?"
return
@1
AGNE: "Ma io voglio giocare"
ORAZIO: "Non hai sentito prima....?"
AGNE: "Voglio giocareeeeeeee!"
ORAZIO: "Ma anch'io da cucciolo ero cosi?"
return
@2
AGNE: "Oh a me piacciono un sacco di giochi"
AGNE: "Inseguire gli insetti"
AGNE: "Dare zampate ai fili che si muovono"
AGNE: "Cercare di prendere le ombre.."
ORAZIO: "Ah ho capito"
ORAZIO: "Ti piacciono i giochi classici"
AGNE: "Sei noioso"
return
@3
AGNE: "Aspetto che succeda qualcosa di divertente"
ORAZIO: "Ad esempio?"
AGNE: "Che passi un insetto"
AGNE: "oppure che qualche filo o tessuto sia mosso dal vento"
ORAZIO: "E da quant'e' che sei li'?"
AGNE: "Da stamattina"
AGNE: "E non e' ancora successo niente"
AGNE: "Che noia!"
return
@4
AGNE: "Solo cose noiose"
AGNE: "cotone, scatoline, vasetti..."
goto-dialog 1
@5
AGNE: "Che noia!"
stop

Come vedete ogni domanda aggiunta aggiunge un @ numerato che indica il suo inizio
la struttura delle frasi e’ molto semplice, richiede solo

"scriptname":" frase";

mentre alla fine dello scmabio di battute possiamo mettere

return : torna alle domande precedenti

stop: chiude il dialogo

goto-dialogX : va’ a un altro dialogo (cambio argomento)

option-off X: quest’opzione non sara’ piu’ visibile fino alla prossimo riavvio della conversazione

option-on X: quest’opzione sara’ visibile fino a che non usciremo dal dialogo

option-on-forever X: quest’ opzione sara’ ora sempre visibile

option-off-forevere X: quest’opzione sara’ ora sempre invisibile

Inoltre possono essere inseriti anche alcuni script nel dialogo come ottenere oggetti mentre si
parla con un personaggio, animazioni (sui personaggi coinvolti) e suoni, altri script invece che interagiscono con le mappe (hotspot e object) non sono compatibili in quanto i personaggi non sono obbligatoriamente collocati in una determinata stanza

Il testo inserito invece dopo @S indica le frasi che verranno
dette a inizio dialogo prima della scelta delle opzioni e deve terminare con un “return”

i dialoghi vengono richiamati con questo script

"scriptnamedialogo".Start ;

Si ringrazia WarioPunk del forum di Arena80 per la guida.

Riguardo a Protagora

Vedi Anche

AGS – Parte 2 – colours, sprites, fonts

Seconda parte della nostra guida su AGS, su colours, sprites e fonts.