Ragazzi è un po' che non vi sento, mi siete mancati :')
Comunque sia: dopo svariate riflessioni ho concluso che l'unico modo di fare un editor decente come serve a me (Per un mio fantomatico gioco in U3D) sia quello di fare un editor in-game (in sostanza come fosse un sandbox)
Ma ho bisogno di una mano:
Come si fa in U3D a ricevere la posizione X Y e Z del mouse nello spazio tridimensionale? (Posso "volare" nell'editor ovviamente)
Come posso fare in modo che se clicco su un modello (o oggetto active di gioco) possa modificarne le proprieta? (In sostanza ho bisogno di un codice che mi restituisca l'ID dell'istanza selezionata per ruotarla ecc..)
poi basta credo.. per lo script di salvataggio del livello non dovrebbe essere COSI' DIFFICILE ... mi sono reso conto che non è difficile creare un'engine di un gioco 3D .. il difficile sono creare i livelli cavolo!
P.S esiste un modo per avere un'interfaccia Windows-style in GM? Mi servirebbero delle combobox o cmq delle tab da cui selezionare gli oggetti per l'editor...
GRAZIE GRAZIE GRAZIE!
[U3D] Aiuto EDITOR 3D , posizionare oggetti.
- Peppo95
- GMI Advanced
- Messaggi: 1613
- Iscritto il: 05/11/2008, 19:10
- Specialità: C Sharp - GML - C
- Contatta:
[U3D] Aiuto EDITOR 3D , posizionare oggetti.
Solite liste mie:
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
per l'hud windows style guarda qua http://gmc.yoyogames.com/index.php?showtopic=367834
- Peppo95
- GMI Advanced
- Messaggi: 1613
- Iscritto il: 05/11/2008, 19:10
- Specialità: C Sharp - GML - C
- Contatta:
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
Wooow spettacolare!
Grazie!
Grazie!
Solite liste mie:
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
- civic71
- GMI Advanced
- Messaggi: 2210
- Iscritto il: 23/10/2003, 17:31
- Specialità: Risotto con zucchine
- Uso: GM:Studio 1.4 Pro
- Località: Jesolo (venezia)
- Contatta:
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
La posizione del mouse è sempre in 2 dimensioni quindi x e y ... la z è ipoteticamente calcolabile dalla z della camera.... anche se poi è relativo al tipo di visualizzazione se dall' alto o dal basso .Come si fa in U3D a ricevere la posizione X Y e Z
Per cercare l'instance presente nel mio editor fatto per un gioco in U3D feci un codice non proprio bello ... ma all'epoca quelle erano le mie conoscenze . Si poteva selezionare un oggetto tramite le frecce direzionali UP e Down . Una volta selezionato esso veniva evidenziato di colore verde.In sostanza ho bisogno di un codice che mi restituisca l'ID dell'istanza selezionata per ruotarla ecc.
Ti riporto questo mio codice che però è relativo al mio gioco e quindi lo dovresti capire ed adattare al tuo gioco :
se premo UP
Spoiler
Se premo Down :
Spoiler
I codici sopra richiamano lo script scr_SearchID :
Spoiler
Step
Spoiler
lo sciprt scr_Green_OtherID :
Spoiler
lo script OtherID :
Spoiler
- Peppo95
- GMI Advanced
- Messaggi: 1613
- Iscritto il: 05/11/2008, 19:10
- Specialità: C Sharp - GML - C
- Contatta:
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
Civic, che la posizione x y z era calcolabile ci ero arrivato è proprio quello il problema, non so i codici con cui calcolarle.. so che esiste una roba del tipo RAY INTERSECTION una cosa del genere ma non riesco a capire come usarla, cioè dovrei calcolarmi non dove punto il mouse, ma siccome è in game l'editor, devo calcolarmi l'x y e z NEL PUNTO di CONTATTO tra una ipotetica linea retta che parte da dove guarda il player, e tra il primo oggetto che incontra..
Solite liste mie:
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
Cè una funzione che restituisce il vettore/direzione in base alla posizione del mouse sullo schermo.
Non ricordo come si chiama fatto sta che puoi usare quel vettore con il ray tracing.
Il ray tracing non è difficile. Purtroppo ho buttato via tempo fa tutti i miei vecchi esperimenti con i quali potevo darti una mano
Non ricordo come si chiama fatto sta che puoi usare quel vettore con il ray tracing.
Il ray tracing non è difficile. Purtroppo ho buttato via tempo fa tutti i miei vecchi esperimenti con i quali potevo darti una mano
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
- Peppo95
- GMI Advanced
- Messaggi: 1613
- Iscritto il: 05/11/2008, 19:10
- Specialità: C Sharp - GML - C
- Contatta:
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
okk, comunque non c'è una guida veramente completa? Quella di civic l'ho gia letta ma non spiega le funzioni avanzate.. C'è un guida che spiega magari con esempi scaricabili, ogni codice? Fosse in italiano sarebbe il TOP
Solite liste mie:
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
1) QUESTO POST NON E' FLAME
Chi lo riterrà tale verrà aspirato da un calamaro gigante.Esattamente questa notte... Muhahaha.
- fra3point
- Membro attivo
- Messaggi: 388
- Iscritto il: 24/08/2010, 15:16
- Specialità: Prog. e 3D Modelling
- Località: L'Aquila
- Contatta:
Re: [U3D] Aiuto EDITOR 3D , posizionare oggetti.
Allora.. Forse posso aiutarti io anche se molto in ritardo.. Avevo fatto questi script per un simulatore di coordinate terrestri.. Il primo script assegna alle variabili point_x, point_y e point_z le coordinate 3D del punto d'intersezione tra il raggio rappresentato dal mouse e l'oggetto che chiama lo script. Il secondo script (che è chiamato dal primo) serve a controllare lo stato del mouse (no, non puoi usare le funzioni built-in di GM se non quelle "direct", cosa che fa proprio questo script.. Dai un'occhiata al tutto, dovrebbero funzionare, anche se ho riadattato qualcosa ora..
[codescript=GetMouseIntersectionPoint]// GetMouseIntersectionPoint(id);
var dist,longi,lati,mousePos;
mousePos=ScreenCoordToVector(-1,mouse_x,mouse_y,camera.number);
longi=CalculateVectorLongitude(mousePos);
lati=CalculateVectorLatitude(mousePos);
dist=CheckRayIntersection(argument0,camera.x,camera.y,camera.z+camera.height,longi,lati,all);
NormalizeVector(mousePos);
CalculateVectorScalarProduct(mousePos,mousePos,dist);
if dist!=100000{ //100000 è il valore ritorato se non c'è intersezione
CheckMouse();
if left_pressed{
point_x=GetVector(mousePos,1)+camera.x-id.x;
point_y=GetVector(mousePos,2)+camera.y-id.y;
point_z=GetVector(mousePos,3)+camera.z-id.z;
}
}
ReleaseVector(mousePos);[/codescript]
[codescript=CheckMouse]//Metti questo script in Begin Step.
//Assicurati di inizializzare le variabili left_down e right_down a false nell'evento Create dell'oggetto che userai
var LMB,RMB;
LMB=keyboard_check_direct(mb_left);
RMB=keyboard_check_direct(mb_right);
left_pressed=false;
left_released=false;
if LMB
{
if !left_down {
left_down=true;
left_pressed=true;
}
} else {
if left_down {
left_down=false;
left_released=true;
}
}
right_pressed=false;
right_released=false;
if RMB
{
if !right_down {
right_down=true;
right_pressed=true;
}
} else {
if right_down
{
right_down=false;
right_released=true;
}
}[/codescript]
[codescript=GetMouseIntersectionPoint]// GetMouseIntersectionPoint(id);
var dist,longi,lati,mousePos;
mousePos=ScreenCoordToVector(-1,mouse_x,mouse_y,camera.number);
longi=CalculateVectorLongitude(mousePos);
lati=CalculateVectorLatitude(mousePos);
dist=CheckRayIntersection(argument0,camera.x,camera.y,camera.z+camera.height,longi,lati,all);
NormalizeVector(mousePos);
CalculateVectorScalarProduct(mousePos,mousePos,dist);
if dist!=100000{ //100000 è il valore ritorato se non c'è intersezione
CheckMouse();
if left_pressed{
point_x=GetVector(mousePos,1)+camera.x-id.x;
point_y=GetVector(mousePos,2)+camera.y-id.y;
point_z=GetVector(mousePos,3)+camera.z-id.z;
}
}
ReleaseVector(mousePos);[/codescript]
[codescript=CheckMouse]//Metti questo script in Begin Step.
//Assicurati di inizializzare le variabili left_down e right_down a false nell'evento Create dell'oggetto che userai
var LMB,RMB;
LMB=keyboard_check_direct(mb_left);
RMB=keyboard_check_direct(mb_right);
left_pressed=false;
left_released=false;
if LMB
{
if !left_down {
left_down=true;
left_pressed=true;
}
} else {
if left_down {
left_down=false;
left_released=true;
}
}
right_pressed=false;
right_released=false;
if RMB
{
if !right_down {
right_down=true;
right_pressed=true;
}
} else {
if right_down
{
right_down=false;
right_released=true;
}
}[/codescript]
draw_text(100,100,"fra3point");
Progetti in corso:
Progetti in corso:
Spoiler
Chi c’è in linea
Visitano il forum: Nessuno e 16 ospiti