venerdì 20 febbraio 2009

tutorial-blender game engine telecamera con il mouse

ciao a tutti oggi ho trovato il file nel mio computer ,questo file l'ho reperito su
www.tutorialsforblender3D.com a dire il vero non copio mai le cose ma sta volta ho provato a copiare un file e mi è riuscito:) .Premetto che questa guida è di più per me come promemoria perché io stesso non sapevo come si faceva .
Questo tutorial serve a far capire come si può usare la telecamera e a farla comandare dal movimento del mouse facendolo spostare l'ungo lo schermo.


Come si vede dalla stessa foto c'e anche il sito:) da cui l'ho preso.
In poche parole dovete selezionare la telecamera e un oggetto in questo caso un cubo e imparentarli fra di loro facendo alt+p.Ok adesso andate nel menu di sotto e premete F4,vi spunterà il menu della logica del game engine di blender.
il game engine si divide in sensori controllori e attuatori.

I sensori da come dice la stessa parola immette dice che oggetto deve essere attivato.in questo campo premiamo aggiungi oppure add e vi comparirà un manù ok adesso cliccate su quel menu che si può cambiare modalità del sensore e mettetelo in MOUSE e chiamatelo Mouse (con la M maiuscola mi raccomando se no non vi funziona) selezionate l'opzione che dice movement cioè attinente al movimento del mouse.Aggiungiamo un controllore quindi facciamo add oppure aggiungi e selezioniamo anche qui il menù e selezioniamo il campo python immettiamo il nome dello script nel campo(io ho provato a cambiargli nome e gli ho messo il nome più semplice di look . Aggiungiamo un attuatore ,in poche parole ciò che attua tutto i nostri sforzi nel spostare la telecamera.aggiungiamone due attuatori uno chiamato
LookUpDown e l'altro chiamato LookLeftRight
mi raccomando le lettere grandi metteteli per come li ho messi.Adesso se volete abbinare questo tutorial con quello precedente cioè quello per far muovere un oggetto nel game engine diviene una cosa più carina.Ma prima dovete importare il modulo del python il codice qui sotto deve essere salvato dentro un file di testo ed deve essere importato su blender e dopo si deve premere il pulsante del serpente nell'editor di testo integrado di blender.
il codice è questo (ripeto che il codice l'ho preso dal questo sito .

######################################################
#
# MouseLook.py Blender 2.46
#
# Tutorial for using MouseLook.py can be found at
#
# www.tutorialsforblender3D.com
#
######################################################

# import Rasterizer
import Rasterizer

# get controller
controller = GameLogic.getCurrentController()

# get the object this script is attached to
player = controller.getOwner()

# Get sensor named Mouse
mouse = controller.getSensor("Mouse")

# Get the actuators
lookLeftRight = controller.getActuator("LookLeftRight")
lookUpDown = controller.getActuator("LookUpDown")

# get width and height of game window
width = Rasterizer.getWindowWidth()
height = Rasterizer.getWindowHeight()

# define mouse movement function
def mouseMove():

# distance moved from screen center
x = width/2 - mouse.getXPosition()
y = height/2 - mouse.getYPosition()

# intialize mouse so it doesn't jerk first time
if hasattr(player, 'mouseInit') == False:
x = 0
y = 0
# bug in Add Property
# can't use True. Have to use 1
player.mouseInit = 1

# return mouse movement
return (x, y)

# get mouse movement from function
move = mouseMove()

# set mouse sensitivity
sensitivity = 0.0005

# Amount, direction and sensitivity
leftRight = move[0] * sensitivity
upDown = move[1] * sensitivity

# set the values
lookLeftRight.setDRot( 0.0, 0.0, leftRight, False)
lookUpDown.setDRot( upDown, 0.0, 0.0, True)

# Use them
GameLogic.addActiveActuator(lookLeftRight, True)
GameLogic.addActiveActuator(lookUpDown, True)

# Center mouse in game window
Rasterizer.setMousePosition(width/2, height/2)


fine codice

(salvate questo documento in .py oppure fatelo in .txt)
I quali ringrazio per aver offerto a tutti noi di i file di prova.Adesso se volete salvare il gioco fate click in alto a sinistra dove c'è scritto file ==>save game runtime che tradotto in italiano salva come gioco eseguibile .Da ora in poi lo esportiamo e ci giochiamo con i nostri giochi con il mouse.Se volete giocarci da dentro blender dovete premere semplicemente la 'P' però dovete mettere il cursore nella sezione tridimensionale. Ciao e grazie per l'attenzione .

2 commenti:

Unknown ha detto...

mi da un errore quando dichiara la distanza perchè?

Wildlux ha detto...

Questo script funziona solo con la 2.49 e non con quella nuova......