Sei sulla pagina 1di 10

Curso Blender Game engine: twitter #b3d Datablocks location rotation scale informacin mnima de un datablock.

empty - null - group datablock ms simple de Blender scene and world tambin son datablocks, que contienen a los dems. materiales y texturas son considerados objetos. iniciar el blender game cambiando la pestaa que pone blender render a game file / user prefs / input / emulate numbed por defecto los keyboard numbers estn asignados a layers y los numpad keys a las vistas de cmara. user prefs - zoom to mouse position - rotate around selection p - play game engine esc - sale del game engine center view shift c

render settings - antialias + rez, etc g - grab x - constrain x (world) x - again constrain x locally gxx - atajo move constrain local x tambin gx10 movera 10 unidades en x

tab- edit mode ctrl tab 1, 2, 3 - vertex, edges, faces dynamics: una vez comienza un game engine tenemos una pestaa ms de physics, dentro de

los atributos. physics type: static, dynamic (fsica simplificada). rigid body en caso de que queramos que calcule el rozamiento activar collision bounds linea de puntos alrededor de objeto marca la forma de calcular la fsica. radius en los atributos controla este parmetro. si collision bounds est activado coge la forma de ste. convex hull utiliza la malla en s, y el clculo se ralentiza. libera utlizada: bullet physics FlipNormals - modo edicin - a, select all - w, special menu - flip normals Al crear un objeto, sin tocar nada, F6 te da un men de configuacin del objeto. capas - tecla m, men capas. shift aade capas visibles. siempre est visible la capa del objeto seleccionado.

Haremos un interactivo en el que si se toca la tecla espacio el objeto salta. Ventana LOGIC EDITOR los nodos se conectan y desconectan a mano. Sensores - recibe mensaje keyboard space (posibilidad de aplicar otras teclas en modificadores) Controladores - operaciones lgicas actuadores - emite mensaje Actuadores - realiza una accin motion localizacin 0 0 1 (L = local, off = global) rotacin fuerza torque - fuerza de rotacin Unir actuador a sensor, te coloca un controlador por defecto

add sensor - touch - se asigna un material. Slo cuando el objeto toca el material se d esta accin. dentro de los sensores hay dos teclas con tres puntos: Activate TRUE level triggering hacen que el botn se repita o no mientras est pulsado. con el primero pulsado, y el segundo no, al mantener pulsado sigue disparando. frequency - espera x logic tics a disparar el siguiente (reloj del game engine, en vez de segundos aadir 2 sensores de teclado ms para controlar movimiento izq, der. telcas left / right arrow. En caso de que la caja contenedora no calcule bien las dinmicas se pueden separar las caras. motion - linear velocity - angular velocity

actuador - edit object add object, track to, dynamics (activa / desactiva dinmicas objetos) touch que al tocar el suelo se desactiva la dinmica edit object empty + bala

seleccionamos dos objetos y parent ctrl p desemparentar ctrl alt p shift b - zoom view blender.org - python API ref API - cada mdulo es distinto, funciona diferente Game Engine Modules Game Logic se pueden crear logicbricks con python. se crea un sensor always para que siempre este activo como controlador se usa python ventana text - templates - game logic basic script general para controlar objetos en el game engine. import bge

def main(): cont = bge.logic.getCurrentController() own = cont.owner sens = cont.sensors['mySensor'] actu = cont.actuators['myActuator'] if sens.positive: cont.activate(actu) else: cont.deactivate(actu) main()

bge - blender game engine bpi - librera blender normal bge.logic.getCurrentController - controlador
bge.events.WKEY

if bge.logic.KK_INPUT_ACTIVE == bge.events.WKEY: si se detecta el input de teclado usa la tecla w con lo siguiente: """ 3 comillas omiten un comentario en python buscar bge.events en blender.org if keyboard.events[bge.events.WKEY] == JUST_ACTIVATED: print("Activate Forward!") #si la tecla w del teclado ha sido activado: print forward python: las booleanas van con mayusculas (True, False) setlinearVelocity ________ www.cgcookie.com - intro to scripting in Blender ________

para comprobar qu est pasando poner un print (player.name)guardar el archivo y ejecutarlo en un teminal. para hacer esto arrastrar el ejecutable de blender a la terminal. en el terminal deberamos ver lo que est pasando. ________ / Users/joaquinalvarezgarreta/Documents/WORK/blender/blenderGameEngine_Taller/ pruebaPython001.blend

//ruta abosoluta misma del archivo ruta relativa mejor para usar en otros ordenadores. render full screen, desktop game autostart render standaloneplayer start - ejecuta esto en vez de p para full screen mode si se guarda el archivo y se abre directamente desde el escritorio se ejecutar el programa. ____

modificador array - para crear pared de cubos

espacio - todas las opciones de Blender set origin - origin to geometry (centrar cursor) _____

script para aplicarle la misma propiedad a todos los objetos import bpy for i in bpy.data.objetcts:

# todos los objectos de la escena if i.select == True: # todos los objetos tienen una propiedad select, si estn seleccionados son True i.game.damping = 1 i.game.radius = 0.2

para saber la propiedad botn derecho sobre la propiedad y copy data path, para pegar despus en ______ Actuator - sound Loop end ______

boolean - true false bpy.context.object #devuelve el objeto seleccionado en el python console cam. + ctrl + space - autocompletar y te da todas las opciones _____ nueva escena crea una instancia de lo que tengas make linksctrl l p para pasar cosas de una a otra file link (reference files) _____ logic bricks asignar propiedades (a la izq del text editor) por ejemplo, el touch de un material activa un actuator property "muerto", value true, que a su vez est conectado a una propiedad "muerto" boolean un sensor podra hacer que cuando la propiedad muerto sea true el objeto dynamic pase a ghost __________ ctrl alt o

import bpy for i in bpy.data.objetcts: # todos los objectos de la escena if i.select == True: # todos los objetos tienen una propiedad select, si estn seleccionados son True i.game.damping = 1 i.game.radius = 0.2 ______ python console ________ add actuator - scene restart - vuelve a empezar escena set scene - cambia de secena resume scene la termina para cambiar de escenas los juegos estn hechos de esta manera. en una escena los personajes, en otra los escenarios en otra fx

add actuator - game start game quit game start game from file debug: load bge.logic.globalDict para poder tener los niveles en distintos ficheros. ________ para disparar animaciones: dope sheet shift s - current frame shift d - duplicate select all botn derecho

dento del dope sheet se puede transformar con normalidad: a - select all s - scale renombrar en el dopesheet la curva: abajo, abrir la ventana action editor, para que aparezcan los objetos y cambiamos el nombre. add sensor touch material asesion add actuator action nombre de la accin que quieres que se dispare opciones: play, ping - pong, etc. marcar start y end frame ________ actuator - state una vez el objeto est en un estado se puede cambiar las propiedades y caractersticas. herido, caer al cabo de un tiempo se recupera...

________ materiales: nombre + nmero de objetos que usan ese material dndole al nmero se crea duplica el material al desplegar los materiales en la lista de materiales pone un 0 estos datablocks se borran al cerrar la escena porque no estn siendo usados. si se quieren conservar se presiona la F, de fake user. con esto se hacen presets de cualquier datablock. por defecto los materiales estn linkados al data, pero se le puede decir que el material est linkado al objeto con esto se puede trabajar con instancias de materiales distintos duplicar alt d - instancias, comparten data ctrl d - copias

instancias de luces ________ Joaquin-Alvarez-Garretas-MacBook-Pro-17:~ joaquinalvarezgarreta$ python >>> pera = 4 >>> manzana = 6 >>> pera + manzana 10 >>> exit Use exit() or Ctrl-D (i.e. EOF) to exit >>> exit () Joaquin-Alvarez-Garretas-MacBook-Pro-17:~ joaquinalvarezgarreta$ _______ ctrl 1-6 subdivisions _______ text editor: format convert all spaces to tabs or spaces si nos ponemos encima de la hilera de columnas y tecleamos un nmero, nos lleva a ste nmero de lnea obj = G.getCurrentScene().objects["Player"] #selecciona objeto Player de la escena. _______

OSC - open sound control incorporado a python abrir file: blenderOSC-ori.blend py: chuleta, OSC.py, OSCartm.py, OSCsend.py, playerscript.py localhost - usar la ip concreta 192.168.1.x, no 127.0.0.1 android andOSC app de mvil con acelermetro, touch y giro.p00 def touch_callback(path, tags, args, source): #resetea la posicion inicial obj["resetori"] = True print("touch", args)

def acc_callback(path, tags, args, source): #obj.applyMovement([0.1*args[0], 0.1*args[1], 0], True) print("acc") def ori_callback(path, tags, args, source): if "oriinicial" not in obj or obj["resetori"] == True: # set start orientation obj["oriinicial"] = mathutils.Vector(args) obj["resetori"] = False else: obj["ori"] = mathutils.Vector(args) obj["rot"] = True server.addMsgHandler( "/touch", touch_callback ) server.addMsgHandler( "/acc", acc_callback ) server.addMsgHandler( "/ori", ori_callback ) #si llega menasje /touch, /acc, /ori ejecuta lo de arriba. esto se llama binding, una forma rpida de conectar un mensaje a una funcin if obj ["rot"] #se interpreta como un condicional, si la propiedad rot de obj existe. es igual que if obj ["rot"] == True _______ no se puede tener una definicin vaca, si no se quiere poner nada usar "return"

Potrebbero piacerti anche