- Learn
- Guida Papervision3D
- Animare la Telecamera
Animare la Telecamera
La telecamera può essere animata come qualsiasi altro oggetto. Tuttavia, vista la sua fondamentale importanza, possiede alcune proprietà e funzioni dedicate al movimento.
Orbita intorno ad un oggetto
Ad esempio se desideriamo girare intorno ad un oggetto possiamo usare la funzione orbit:
orbit( pitch:Number, yaw:Number, useDegrees:Boolean = true, target:DisplayObject3D = null):void
oppure scrivere la funzione di rotazione tramite la trigonometria:
camera.x = distanza * Math.cos(t) * Math.sin(p); camera.y = distanza * Math.cos(p); camera.z = distanza * Math.sin(t) * Math.sin(p);
dove t
sono i gradi dell’ascissa, p
dell’ordinata e distanza
il raggio della sfera. In questo modo eliminiamo ad esempio il fastidioso errore dell’orbit di ribaltare la scena ogni volta che compie un giro completo della circonferenza.
Soggettiva
Oltre a ruotare la camera intorno ad un oggetto così da poterlo esaminare, ci capiterà di volerci muovere in soggettiva per esplorare l’ambiente virtuale.
Prima di tutto scopriamo che ogni volta che importiamo una scena esterna questa avrà un sistema di riferimento proprio. Questo fatto potrebbe crearci non pochi problemi, ma possiamo risolverli trasformando il sistema di riferimento della nostra camera tramite
transformView(transform:Matrix3D = null):void
Una volta ottenuto un sistema di riferimento unico, DisplayObject3D
ci mette a disposizione 6 metodi per muoverci comodamente al suo interno:
moveBackward(distance:Number)
moveDown(distance:Number)
moveForward(distance:Number)
moveLeft(distance:Number)
moveRight(distance:Number)
moveUp(distance:Number)
Infine per ruotare rispetto all’asse verticale esiste un apposito metodo
public function yaw(angle:Number):void
Ora abbiamo tutti gli strumenti per poterci muovere all’interno della nostra scena. Ci basterà assegnare le nostre funzioni agli eventi della tastiera così da poter muovere liberamente la nostra camera. Nell’esempio sottostante abbiamo assegnato alle frecce la possibilità di muoverci paralleli al piano come nei giochi 3D in soggettiva.
var tasto =""; stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); function keyDownHandler(event:KeyboardEvent):void { if (event.keyCode==37) tasto= "sinistra"; if (event.keyCode==39) tasto= "destra"; if (event.keyCode==38) tasto= "avanti"; if (event.keyCode==40) tasto= "indietro"; } function onEnterFrame(e:Event):void { if (tasto=="avanti") { camera.moveForward(50); } if (tasto=="indietro") { camera.moveBackward(50); } if (tasto=="sinistra") { camera.yaw(-5); } if (tasto=="destra") { camera.yaw(5); } tasto = ""; renderer.renderScene(scena, camera, viewport); }
Se vuoi aggiornamenti su Animare la Telecamera inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Tutela del diritto d’autore, quel che c’è da sapere tra moda, sentito dire e strategia
La proprietà intellettuale ci urta e ci intriga, ci annoia e ci sorprende. La verità è che è pervasiva, perché […]