Vai al contenuto

Recommended Posts

Ciao a tutti, mi sono da poco munito di virtool e riesco a fare quasi tutto, dalle luci alle telecamere e tutto il resto. Il problema è che non riesco a creare lo script keyboard per camminare e spostarsi nell'ambiente con la tastiera. Cioè il lo creo e lo collego alla camera xò quando esporto in web o in file se premo i tasti non succede nulla. La scena rimane statica... Qualcuno che lo conosce potrebbe spiegarmi il procedimento, dove collegare lo script e tutto il resto? Grazie a tutti quelli che risponderanno!

Ciaoooo

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao!

Non ho ancora Virtools , perchè ho solo la versione 5 di visual basic, quindi non mi girerebbe e quindi non l'ho ancora provato, pero' per il discorso del movimento dell'oggetto all'evento pressione tasto da tastiera il metodo è uguale per qualsiasi programma:

Nel ciclo principale del gioco devi inserire i 3 passaggi essenziali:

1) Interrogazione Tastiera per i tasti premuti (restituira si o no)

2) Se è si attivi l'evento movimento

3) aggiornamento nuove posizioni

In pratica nel tuo ciclo di gioco

DO

Gosub InterrogazioneTastiera

Controllo_Movimento(IdOggetto,Avanti,Dietro,Sinistra,Destra)

Controllo_Camera

Rem Aggiornamento

Gosub AggiornamentoVisualizzazione

LOOP

Ho io un paio di domande per te:

Se uso un qualsiasi sorgente di Vb6 anche semplice , sul mio Vb5 mi da errore RETAINED...ecc.. cosa significa che la versione 5 non comprende un semplicissimo programma scritto in Vb6? :-(

Se dovessi acquistare il VB per Virtool , cosa mi conviene VB6 , Vb.NET o cosa? Si possono commercializzare i prodotti realizzati con il virtool?

Esempio in linguaggio comune per l'interattività:

Supponiamo che il tasto premuto sia una "q" minuscola per farlo spostare in su e una "a" minuscola per spostarsi in giu' (moto uniforme)

1) Interroghi la tastiera :

In genere i nomi comandi di interrogazione sono Inkey$() , KeyPress() , KeyUp(),Keydown() ,KeyState ecc.. (a seconda dei linguagi e dei metodi

Inkey$() per esempio:

QualeTasto$ = Inkey$() per esempio dice: "quale tasto è stato premuto dall'utente?

quindi:

IF QualeTasto$ = "q" THEN Msgbox("E' stato premuto il tasto "q" cosa faccio adesso ???" )

Sviluppo:

IF INKEY$()="q" THEN MuoviOggettoInAvanti

Esempio Struttura movimento basic :

___

....impostazioni iniziali

....caricamenti oggetti

....menu cose varie ecc...

...reset di inizio partita ...

'CICLO DEL GIOCO

DO

'===

'CONTROLLO INPUT DA TASTIERA

'===

IF INKEY()="q" THEN Su=1 ELSE Su=0 :Rem (attiva la direzione in avanti)

IF INKEY()="a" THEN Giu=1 ELSE Giu=0 :Rem (attiva la direzione in dietro)

Controllo_Movimento(IdOggetto,Avanti,Dietro,SX,DX,SU,GIU,ECC)

Controllo_Camera(IdCamera,Target,ecc..)

Rem Aggiorna sincronia schermo

...qui

LOOP

2) Function Controllo_Movimento(IdOggetto,Avanti,Dietro,SX,DX,SU,GIU,ECC)

...qui interroghi le correnti coordinate dell'oggetto

PosY=(qui il comando che TI RESTITUISCE UN RISULTATO sulla posizione dell'oggetto in Y attuale)

PosZ=come sopra per la z

PosX=come sopra per la X

....ecc..

IF SU=1 THEN

PosY#=PosY#+1

ENDIF

IF Giu=1 THEN

PosY#=PosY#+1

ENDIF

...ecc...

QUI Aggiorna posizioni COn i Comandi di visualizza nuova posizione oggetto

ENDFUNCTION

FUNCTION Controllo_Camera(IdCamera,Target,ecc..)

...qui interroghi l'ANGOLO dell'oggetto da puntare o del target

...qui elabori le nuove coordinate della camera

...qui metti le nuove coordinate della camera

...qui aggiorni la camera

ENDFUNCTION

Se vuoi approfondire approfondisco , pero' mi servirebbe una guida analitica per installare per bene il Virtool.

In ogni caso sbircia il codice sorgente dello gnack Tutorial-Game 3D se ti puo' essere utile e vai nel blocco con scritto "Controllo movimento".

Ciao!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie mille per la risposta.. purtroppo non posso aiutarti xkè non ho conoscenze in quel campo... :-( E devo chiederti un' altra cosa... allora, io ho aggiunto lo script "key event" e poi gli ho aggiunto la funzione "move to". Quindi quando premo per esempio la freccia su si attiva la funzione move e si sposta di un tot la camera. I problemi sono:

1° se tengo premuto non continua in quella direzione ma si ferma aspettando una nuova pressione del tasto. 2° io voglio ke la telecamera si sposti(se premuto il tasto su) verso il target della stessa invece va comunque verso la coordinata da me impostata(giustamente:)

Come faccio?

Ciao!!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
....2° io voglio ke la telecamera si sposti(se premuto il tasto su) verso il target della stessa invece va comunque verso la coordinata da me impostata(giustamente:)

Come faccio?

Ciao!!

Ti devi calcolare il Vettore Direzione (e da questo la nuova posiz.) data la posizione attuale della telecamera e data la posizione del Target (ed ovviamnete dato l'incremento di spostamento 'ds').....è un semplice problemino di geometria nello spazio .....attenzione ai segni dei coseni e seni nelle formulette.

:hello:


Modificato da TheShark

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao,

questo è un messaggio generato automaticamente.

Se hai ricevuto questo messaggio è perché la tua discussione è stata spostata e messa nella sezione più appropriata.

Quando crei una discussione ti preghiamo di far attenzione ad inserirla nella sezione corretta in modo che sia più facile per tutti consultare il forum.

grazie per la collaborazione

lo staff di Treddi.com

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Per l'evento movimento in ripetizione devi considerare LO STATO DI LETTURA DEL PULSANTE , in Visual Basic per esempio esiste l'evento

MouseDown <<..Pulsante del Mouse premuto

MouseUp <<..Pulsante del Mouse RIALZATO

MouseClick <<...Equivale al ciclo MouseDown + MouseUp

MouseDoubleClick <<...Equivale al ciclo (MouseDown + MouseUp) 2 volte NELL'INTERVALLO DI TEMPO Max per il riconoscimento come doppio click.

La stessa cosa equivale per la tastiera, il programma interroga la tastiera e puo' sapere per mezzo dei comandi che RESTITUISCONO UN RISULTATO , se il tasto è premuto o RIALZATO, quindi:

KeyDown <<Pulsante premuto

KeyUp <<Pulsante rilzato

KeyPress << Tasto premuto e rialzato (Questo significa che se non rialzi il pulsante l'evento KeyPress non si è verificato PER QUESTO OCCORRE RIALZARE IL PULSANTE"

Quindi devi trovarti il comando che legge lo stato del pulsante desiderato nella sola posizione di PREMUTO e non PREMUTO + (poi) RIALZATO , e supponendo che lo sia aggiornare la posizione, ma cmq questa interrogazione deve essere posta o richiamata all'interno del ciclo principale del gioco di modo che in ogni momento l'utente possa interagire.

Volendo Puoi effettuare il movimento attivando la direzione e continuando il movimento nella direzione attivata anche se lutente ha premuto 1 sola volta il tasto, cioè IF OKTastoPremuto=1 THen DirezioneAvanti=1 ELSE DiezioneAVANTI=0

dopodichè in una procedura SVOLGI le procedure per tutte le direzioni attivate cioè

IF DirezioneAvanti=1 THEN

.. fai Questo e quest'altro per mandarlo avanti

END IF

IF DirezioneDietro=1 THEN

.. fai Questo e quest'altro per mandarlo Dietro

END IF

IF DirezioneDietro=1 THEN

.. fai Questo e quest'altro per mandarlo a SX

END IF

IF DirezioneDietro=1 THEN

.. fai Questo e quest'altro per mandarlo a DX

END IF

ECC...

Come si chiama il comando che hi usto per la lettura e interrogazione del tasto premuto e relativo codice tasto ? KeyDown() , KeyState() , KeyPress(), Inkey$() o altro ????

Ciao!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

State complicando le cose troppo.

Ti allego qui un Behaviour Graph che dovresti importare nella tua scena.

Poi guarda come e fatto il script e adattalo alle tue esigenze (scegli i tasti, scegli la velocita del movimento, inserisci il gruppo degli ogetti con quali vuoi controllare le collisioni ecc.)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Potrei visionarlo anche io questo script anche se non ho Virtools? Se me lo fai vedere , Grazie

Ah, cavoli, si vede che l'allegato non mi funziona.

Metto qui un link:

Quake style camera script

Darty, mi dispiace, ma il formato del script e in formato che usa Virtools, e non e possibile vedere il codice senza avere il software.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Saresti cosi gentile da mettere ancora anche il link del virtools che continuo a cercarlo su google ma non trovo la pagina per visual basic e per il download del virtools ufficiale, poi non lo so ho trovato addirittura un 'altro sito con lo stesso nome di virtools , cioè Virtools Dev e la cifra è enorme... cmq tra un po' vado a dormire.

Grazie per il link! :-)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie per lo script!! E' esattamente quello che volevo!! Grandissimo!! Visto che mi sembra tu sia molto bravo in VT posso chiederti una cosa? Come mai alcune scene me le importa e si vedono gli oggetti nella viewport e altre scene le importa ma il set rimane vuoto? c'è un limite di poligoni o cosa? Io comunque importo da max se può servire per la risp... Grazie

Ciao!!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Come non detto!! Era solo un problema di coordinate che mi sparavano gli oggetti importati lontanissimi dal centro... E questo è a posto! Il nuovo problema è che la scena da me importata, una casa, risulta una volta nel set tutta "sconquassata", cioè muri e porte distribuite alcune giuste e molte o ruotate o spostate nel posto sbagliato... Come è possibile? Ci sono dei criteri di importazione?

Scusate per le frequenti domande... sono un po un rompipalle! :-)

Ciao!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Io penso che sia lo stesso problema comune per tutti gli altri compilatori , io ho risolto IN PARTE altri problemi e questo problema facendo utilizzare ai "miei" modellatori il software ,gratuito e scaricabile dal sito ,di conversione file da 3ds a X con il Panda Exporters e funziona.

Mi piacerebbe aiutarvi con il Virtools , ma non ce l'ho... uffy. :-(


Modificato da DARKTy

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
Saresti cosi gentile da mettere ancora anche il link del virtools che continuo a cercarlo su google ma non trovo la pagina per visual basic e per il download del virtools ufficiale, poi non lo so ho trovato addirittura un 'altro sito con lo stesso nome di virtools , cioè Virtools Dev e la cifra è enorme... cmq tra un po' vado a dormire.

Grazie per il link! :-)

Infatti, il sito era giusto, www.virtools.com

Il programma e Virtools Dev, e costicchia un po. Che e del tutto normale, visto che si tratta di un tool altamente professionale e avanzato. In piu, il Virtools e cross-platform e si usa per creazione dei videogiochi per PC, OSX, XBOX, PS2 e PSP.

Virtools non usa Visual Basic, ma si tratta di un sistema di programazzione che non ha bisogno dei compilatori, anche se e' possibile usarli per le aggiunte in forma dei Plug-in con l'aiuto del suo SDK (usando Visual Studio.NET o CodeWarrior).

Il demo non non e disponibile sul sito, ma se sei interessato per l'utilizzo serio, esiste sempre la possibilita di richiedere una versione di valutazione.

O se sei a Milano o vicino, forse nei prossimi giorni organizerremo una presentazione sulle possibilita del Virtools.

Come non detto!! Era solo un problema di coordinate che mi sparavano gli oggetti importati lontanissimi dal centro... E questo è a posto! Il nuovo problema è che la scena da me importata, una casa, risulta una volta nel set tutta "sconquassata", cioè muri e porte distribuite alcune giuste e molte o ruotate o spostate nel posto sbagliato... Come è possibile? Ci sono dei criteri di importazione?

Scusate per le frequenti domande... sono un po un rompipalle! :-)

Ciao!

Mi sembra strano il tuo problema. Hai usato per caso le instance o referenze dentro max, e poi spostato i centri degli ogetti? Hai provato a esportare la scena in un profgetto separato?

Intanto, prova a applicare un Reset Xform su tutti i mesh in max, prima della esportazione.


Modificato da Angel_of_Dark

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×