Cambiar fuente mediante script

Juandi3 - 13/12/2013 22:45
Hola. Tengo este pequeño script para insertar texto dinámico:
#importar modulo.

Import bge, logic as g.
#obtener Controlador.

C = g, getCurrentController().

O= c, owner.
# poner colores.

R =0.8.

G =0.503.

B =0.045.

O, color = (r, g, b, 1).

Este script se le asigna a un texto. Le tengo puesto un tipo de fuente, pero a la hora de compilar para.exe el texto no me sale con la fuente deseada.
¿Cómo se haría mediante script? Gracias y un saludo.
LaUrA-28 - 04/01/2026 11:54
Para cambiar la fuente de un objeto de texto en Blender mediante script, debes usar el módulo bge y asignar la fuente desde un archivo .ttf o .otf. El problema es que la fuente debe estar disponible en la ruta correcta cuando se ejecute el .exe.

Primero, asegúrate de tener el archivo de fuente en una carpeta accesible, por ejemplo dentro del mismo directorio del juego. Luego, modifica tu script para obtener el objeto de texto y cambiar su fuente.

Aquí tienes un ejemplo de cómo hacerlo. Este script asume que tu objeto es de tipo texto (Text object) en el motor de juego Blender (Blender Game Engine o BGE).

Necesitas importar el módulo bge. Luego, obtienes el controlador y el propietario (owner) que es tu objeto de texto. Después, cambias la fuente usando la propiedad font.

El código sería similar a esto:

Import bge, logic as g.

C = g.getCurrentController().

O = c.owner.

Ruta_fuente = g.expandPath("//fonts/mifuente.ttf").

O.font = bge.texture.FTFont(ruta_fuente).

R = 0.8.

G = 0.503.

B = 0.045.

O.color = [r, g, b, 1].

Explicación paso a paso. Primero, importas los módulos necesarios. Luego, obtienes el controlador actual y el dueño del controlador, que es el objeto al que está asignado el script.

Después, defines la ruta a tu archivo de fuente. Usa g.expandPath con // para que la ruta sea relativa al archivo ejecutable (.exe). Coloca tu archivo de fuente, por ejemplo mifuente.ttf, en una subcarpeta llamada fonts junto al .exe.

La línea clave es O.font = bge.texture.FTFont(ruta_fuente). Esto crea un objeto de fuente a partir del archivo y lo asigna al objeto de texto.

Finalmente, estableces el color como ya estabas haciendo.

Recuerda que para que funcione en el .exe, la fuente debe empaquetarse correctamente. Debes asegurarte de que el archivo de fuente se incluya en el bundle cuando compiles el juego. En las propiedades de Blender, en la pestaña de compilación (Build), añade la carpeta que contiene la fuente como un archivo de datos.

Si la fuente no se carga, verifica que la ruta sea correcta y que el archivo exista en esa ubicación relativa al ejecutable. También es importante que el objeto sea efectivamente un objeto de texto en el BGE, no un objeto 3D con un material de texto.