Hola de nuevo. Traigo algún pseudoproblema nuevo con el Game Engine y Python. Os cuento: Basándome en unos archivos que he descargado de aquí, que sirven para interconectar Blender y touchosc, una aplicación para el móvil, estoy usándolo para mandar mensajes osc desde Blender a Grasshopper.
Básicamente de todo lo que ahí viene estoy usando un archivo de configuración donde especifico puertos y direcciones IP de emisor y receptor, un archivo osc demasiado complejo como para que yo lo entienda o sepa meterle mano y que no sé cómo (ni si se puede) meter dentro del.blend, y por último, para cada objeto que necesito que mande un mensaje, tengo que crear otro script tal que así:
El problema es que, si tengo diez objetos que quieran mandar mensajes, o un mismo objeto que quiera mandar varios mensajes diferentes (propiedades), tengo que crear un archivo diferente con esa configuración para cada uno de los mensajes que quiera mandar.Código:import Gamelogic as gl. From osc import osclient, oscmessage. # get controller and Owner. Controller = gl, getcurrentcontroller(). Owner = controller, Owner. Client = osclient(). Msg = oscmessage (). # gl, client is a tuple in GL with IP and port. Msg, setaddress(/1/toggle1). Msg, append(Owner[text]). Client, sendto (msg, gl, client)
Si quiero mandar dos propiedades de un mismo objeto y pongo algo así.
No funciona. Tengo que crear dos archivos diferentes, uno para cada propiedad, aplicados ambos a ese objeto. Si son objetos diferentes, cada objeto debe tener su script adjunto.Código:[.]. Msg, setaddress(/1/fader4). Msg, append(Owner[text]). Client, sendto (msg, gl, client). Msg, setaddress(/1/toggle1). Msg, append(Owner[text2]). Client, sendto (msg, gl, client)
Por lo tanto mi pregunta es: ¿cómo podría hacerlo usando sólo un archivo? Un script que lo asigne con un always a un empty, por ejemplo, y que vaya listando: mandar propiedad text del objeto1 como /1/fader1, text del objeto2 como /1/fader2, text del objeto3 como /1/fader3, etc.
Supongo que habrá que importar la lista de objetos dentro del script y luego cambiar el Owner del script por el objeto en cuestión, pero no sé muy bien cómo hacerlo, así que, os pregunto.
Vaya, y otra cosa, en vez de mandar propiedades de juego del objeto, ¿sería posible mandar otras cosas, como la posición, por ejemplo? Gracias de antemano.