por blas_dani » Dom Sep 12, 2010 9:08 pm
Hola:
Si, yo también le doy vueltas a este tema.
Asumo que conoces el tema de las matriculas dinámicas, verdad? Sabes que tenemos un placeholder 1_0256_primarydigits_9 (en este caso una matricula con 9 digitos) y que cada digito se textura en el editor 3D con una textura llamada primarynumber_x (siendo x en este caso del 0 al 8 ). El juego lee del csv (fichero con la relación de matriculas que queremos tengan los vagones), escogiendo aleatoriamente del csv una matricula. al escoger la matricula, sustituye los primarynumber_x por las texturas de los numeros (number_0.ace, etc), poniendo en cada casilla el numero que toca según la matricula.
Bien...
Imaginemos ahora que tenemos un vagoncete que, cosas del diseño, tiene en el lateral la matricula de color verde y en el frontal de color rojo. Es una putada, porque no podemos tener un 1_0256_secondarydigits_9 pero hay una manera muy sencilla de solucionarlo. En la textura de los numeros, en vez de poner un numero, ponemos dos. Si suponemos que un numero es una textura de 32x32, ahora usaremos una de 64x32; así pues, para el cero tendremos color verde a la izquierda (32x32) y color rojo a la derecha (32x32). Partimos de nuestro 1_0256_primarydigits_9 y hacemos una copia a la que llamaremos 1_0256_primarydigits_9b. Para mapearlos, tenemos los primarynumber_x creados tambien de tamaño 64x32; mapeamos cada poligono del 1_0256_primarydigits_9 por la izquierda (32x32) y el 1_0256_primarydigits_9b por la derecha (32x32); en el juego, cuando carguemos un vagón saldran las matriculas correctas, una con todos los numeros en verde y otra con los numeros en rojo.
Ahora lo que preguntas.
Una posibilidad, la que usó Repo; crea un csv con una matricula de un digito (por tanto 10 posibilidades). Por tanto tendremos un 1_0256_primarydigits_1 y un primarynumber_0. El primarynumber_0 lo mapeamos de forma que coja toda la cuba.
Creamos 10 texturas (serian el equivalente a los number_x) con 10 mapeados distintos de la cuba, que claro está deben incluir la matricula ya dibujada. Cuando carguemos el vagón éste cogerá una 'matricula' del 0 al 9 y por lo tanto un mapeado distinto.
Otra posibilidad seria usar una mezcla de las dos cosas. Si en el primer ejemplo hemos creado una textura con un numero rojo y otro verde, pues ahora creamos una textura con un numero y el mapeado de la cuba.
Y utlizamos uno de los digitos de la matricula para cambiar aleatoriamente la cuba; por ejemplo el primero (primarynumber_0). Este primarynumber_0 tendrá mapeada toda la textura (cuba + primer numero de la matricula) el resto de primarynumbers sólo tendran mapeado el poligono correspondiente del resto de digitos de la matricula.
Espero que te sirve de ayuda.
Saludos.