Gracias Gracias:  0
Resultados 1 al 2 de 2

Tema: Todo por script

  1. #1
    Miembro Avatar de desiresportal
    Fecha de ingreso
    Jun 2011
    Mensajes
    36

    Blender Todo por script

    Todo por script. Me explico:

    Quiero saber si, 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 debera 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 debera ejecutar, etc...

    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.

    ¿Que 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 dandome de cabezazos contra la pared para resolver cualquier problema. (lo cabezazos contra la pared son metafóricos. Para dejarlo claro.)


    Agradecería que quienes respondan se suscriban por si me surgen más dudas.

    Un saludo y gracias.


    PD: Se que "GameLogic.KX_MOUSE_BUT_LEFT" es para detectar la pulsació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
    Ninja Fever Avatar de Mars Attacks
    Fecha de ingreso
    Jun 2003
    Ubicación
    Castellón
    Mensajes
    12,744

    Re: Todo por script

    No estoy 100% seguro, pero si quieres probar tú mismo, recuerda que 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 con controllers.

    A partir de ahí, el tema debería ser igual que con los scripts clasicos: 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
    Último mensaje: 07-05-2015, 23:08
  2. a todo gas 7
    Por 3dpoder en el foro Cine
    Respuestas: 0
    Último mensaje: 02-11-2014, 00:00
  3. Mi blog personal rigg script y un poco de todo
    Por Melli_intruso en el foro Esta es mi página...
    Respuestas: 0
    Último mensaje: 28-09-2009, 10:57
  4. Se me cae todo
    Por andatalam en el foro Partículas y Dinámicas
    Respuestas: 2
    Último mensaje: 26-05-2006, 15:12
  5. No todo es 3D
    Por Dai-X en el foro Peticiones y Búsquedas
    Respuestas: 2
    Último mensaje: 24-01-2006, 09:17

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •