Director: behaviour reset camera.

Di: marzolus | 26/09/2020 17:42:48
Ho applicato il behaviour Drag model to rotate ad un oggetto 3d realizzato con c4d.
Ma non riesco a riportarlo alla posizione predefinita.
Non riesco ad applicare il behaviour Reset camera (ho provatto anche ad assegnare allo stesso oggetto un trigger con il pulsante destro del mouse per poterlo riportare alla posizione di partenza, ma non c'è niente da fare).
Il massimo sarebbe avere un pulsante di reset.
Se qualcuno mi sa dare una dritta... Grazie.

Risposte



Ciao Marzolus,
ti ho mandato un file via e-mail, vedi se può esserti utile.
Nel caso ti risolva il problema, poi ci pensi tu a rispondere come hai risolto, ok?

Di: Pablito | 26/09/2020 17:42:48


Grazie Pablito per la tempestività, ma veramente non riesco a capire cosa sia.
Ho seguito alla lettera il tuo pdf ma niente da fare, tutti gli action 3d dei behavior funzionano ma questo no.
Ciao e grazie.

Di: marzolus | 26/09/2020 17:42:48


La giovane comunità ha quindi risposto bene.
Credo grazie anche ad un servizio di centralino molto efficiente... hehehe... sapevo che Ekleipsis ti poteva aiutare.

Di: Pablito | 26/09/2020 17:43:48


Uhmmm, grazie a te per la fiducia in 001design.it.
Vediamo cosa ne pensa la giovane comunità, nel frattempo è possibile spiegare passo passo le fasi del progetto?
In questo modo ci sarebbero maggiori indizi su cui lavorare per risolvere il problema.

Di: Pablito | 26/09/2020 17:43:48

duplicate

Carissimo, tutto il segreto per resettare la posizione sta nel comando "duplicate" che non fa altro che duplicare il vettore di posizione iniziale, così da poterlo riutilizzare per riprendere quella posizione e quindi creare un "reset".
Ti mando il codice che poi devi modificare tu cambiando il member e il nome di model:
property pOrigine
on beginSprite me
--nello script beginsptrite metti questo:
pScene = sprite(me.spriteNum).member
pOrigine = duplicate(member("mondo").model("il tuo modello").transform.position)
dove pScene è la tua scena
mentre pOrigine è una proprietà (come una variabile) che viene impostata non appena viene iniziato lo sprite. Tutto grazie al comando "duplicate".
Poi nel end sprite metti:
on endsprite me
member("mondo").model("il tuo modello").transform.position = pOrigine
end
così che alla fine dello sprite la posizione del modello venga settata = a pOrigine memorizzato nell'handler on beginSprite.

Di: Ekleipsis | 26/09/2020 17:43:48

Grandioso

Grazie Pablito per l'imboccata iniziale e grazie a Ekleipsis per la dritta finale.
Funziona!!!!
Ma un ultima cosa, se io volessi assegnare ad un pulsante un behaviour per lo zoom, uno per il drag e così via quali parametri devo settare?
Grazie ancora per la disponibilità dimostrata.

Di: marzolus | 26/09/2020 17:43:48


Basta utilizzare l'handler "on mouseUp" nel pulsante che deve farti lo zoom e dopo l'handler, scrivere il codice che ti avvicina e allontana la camera. Il comando è: .translate(x,y,z) quindi...
member("mondo").camera("tua camera").translate(0,20,0)
-- o qualsiasi altro numero intero(positivo e negativo).
Devi solo capire qual è l'asse giusto nel tuo mondo, può essee x, y o z.
Devi fare delle prove.

Di: Ekleipsis | 26/09/2020 17:43:48


Grazie Ekleipsis, farò delle prove, poi vi faccio sapere. Grazie ancora.

Di: marzolus | 26/09/2020 17:43:48