Resultados 1 al 2 de 2

Tema: Todo por script

  1. #1
    Fecha de ingreso
    Jun 2011
    Mensajes
    36

    Blender Todo por script

    Todo por script. Me explico:
    Quiero saber sí, entendiendo que hay que usar cosas como GameLogic. KX_MOUSE_BUT_LEFT, se pueden añadir durante el juego objetos, sensores, controladores y actuadores. Por supuesto todo esto a partir del interprete de Python, es decir, el juego solo deberá tener un Empty son un sensor always y un controlador Python que contenga el script que acceda a la base de datos y lea lo que tiene que ir añadiendo.

    Quiero hacer un juego en el que coja todo, pero todo, desde una base de datos. Y que si eliminara algo en la base de datos, no debería aparecer en el juego. (cuando digo base de datos, pueden ser bases de datos o carpetas que están incluidas en el directorio del juego).

    Quisiera saber que documentación necesito para lograr desarrollar algo tan complejo.

    Mi idea es que termine con algo así:
    Juego: El juego solo carga un script que busca en la carpeta de objetos los archivos txt existentes. Si al menos hubiera uno, añadiría un objeto llamado como el archivo txt (sin el.txt) y leería el txt para obtener las propiedades del objeto. Las propiedades serían, por ejemplo: Materal, cantidad y posiciones de sus vértices, nombre de la malla, texturas, posiciones UV de cada uno de sus vértices, sensores, actuadores, controladores, scripts que deberá ejecutar.

    Archivos txt: Para hacer un txt con los datos del objeto que planeo hacer (un cubo o una esfera, lo que sea) he pensado en hacer un script que coja toda la información del objeto que lo ejecuta y que automáticamente guarde todo como un archivo txt. Para no complicarme diseñando vértice por vértice mediante posiciones XYZ de cada uno de ellos.
    ¿Qué espero con esto? :
    Espero conseguir hacer un juego que pueda actualizarse él solo a base de descargar archivos de texto e imágenes (para las texturas). De esta forma el juego sería siempre manipulable sin necesidad de dividirlo en archivos (*.blend y podría actualizarse realmente rápido, por que sería texto plano e imágenes no muy pesadas lo que habría que descargar.

    Por supuesto no espero que sea tarea fácil. De echo ya me estoy mentalizando para abordar un proyecto tan complejo como el que estoy exponiendo y terminar dándome de cabezazos contra la pared para resolver cualquier problema. (lo cabezazos contra la pared son metafóricos. Para dejarlo claro.).

    Agradecería qué quienes respondan se suscriban por si me surgen más dudas. Un saludo y gracias.

    Posdata: Sé que GameLogic. KX_MOUSE_BUT_LEFT es para detectar la pulsacción del botón izquierdo del ratón, no para hacer nada de lo que yo quiero. Solo quería ponerlo como ejemplo.

  2. #2
    Fecha de ingreso
    Jun 2003
    Mensajes
    12,618

    Todo por script

    No estoy 100% seguro, pero si quieres probar tú mismo, recuerda qué cualquier comando que quieras replicar, lo tienes en la ventana oculta superior que puedes desplegar.

    Así pues, coge tu script principal en el empty, que tendrá que tener un always de una sola ejecución que ejecute un script (temporal, sólo para ver si la prueba de concepto funciona) y copia algunas acciones de las que veas para lanzarlas en el Game Engine y ver si las ejecuta. Por ejemplo, añadir un objeto al que enlazarle un sensor always y un actuador que lo mueva, y ver qué pasa.

    Por ejemplo, algo como esto (aprovecho el ctrl+space o el botón autocompletar para ver algunas opciones extra de las funciones) dentro de un script normal del Game Engine como los de los templates:
    bpy, ops, mesh, primitive_plane_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
    bpy, ops, logic, sensor_add(type=ALWAYS, name=always_de_plano, object=Plane)
    bpy, ops, logic, actuator_add(type=MOTION, name=motion_de_plano, object=Plane).

    Ojo, donde pone Plane, tendrías que obtener el nombre del objeto que has creado, y luego recoger sus sensores o controladores para enlazarlos igualmente mediante script.

    Por ejemplo, suponiendo que tienes el objeto que has creado en la variable obj, el nombre del objeto sería object=obj, name, y luego obtendrías el sensor y actuador con cosas como obj, game, sensors[always_de_plano] y lo mismo controllers.

    A partir de ahí, el tema debería ser igual que con los scripts clásicos: conectarlos y ver si se mueve (o da algún error antes o algo). El paso que ahora mismo no sé es cómo crear un objeto con nombre, para poder recuperarlo de la escena. Suerte, ya nos cuentas qué tal.

Temas similares

  1. Respuestas: 2
    : 07-05-2015, 22:08
  2. Cine y series A todo gas 7
    Por 3dpoder en el foro Cine y TV VFX
    Respuestas: 0
    : 01-11-2014, 22:00
  3. Cómo cambiar un script a un macro script
    Por Miguel-Arte-3D-1990 en el foro Programación y Scripts
    Respuestas: 11
    : 11-03-2012, 22:07
  4. Mi blog personal rigg script y un poco de todo
    Por Melli_intruso en el foro Esta es mi página...
    Respuestas: 0
    : 28-09-2009, 09:57
  5. No todo es 3d
    Por Dai-X en el foro Programas de Diseño 3D y CAD
    Respuestas: 2
    : 24-01-2006, 07:17