SpecificActor



Esta entidad se utiliza para posicionar personajes secundarios en el escenario.


Parámetros de esta entidad:

  • ActorFile
    Introducir aquí el nombre del fichero .act que quieras situar como personaje en el escenario. Este fichero .act ha de estar en la carpeta 'Actors' de 'Entidad 3D'.

  • Motion
    Nombre de la animación que queremos que realice este personaje. Este nombre ha de ser uno de los nombres de animación que contiene particularmente cada fichero .act. Utiliza la utilidad 'Actor View' para ver los nombres de animación del .act que te interese.
    La animación que seleccionemos se realizará de forma continua mientras este personaje esté en el escenario.

  • ASpeed
    Variando este valor podremos regular la velocidad de la animación que hemos establecido en 'Motion'.

  • Rotate X
    Con 'True' haremos que el personaje realice una rotación continua sobre su eje X.

  • Rotate Y
    Con 'True' haremos que el personaje realice una rotación continua sobre su eje Y.

  • Rotate Z
    Con 'True' haremos que el personaje realice una rotación continua sobre su eje Z.

  • RSpeed
    Variando este valor podremos regular la velocidad de rotación del personaje en el caso que la hayamos establecido con Rotate X, Rotate Y o Rotate Z.

  • CommandsFile
    Introduciremos el nombre del fichero de comandos .ini que contiene los comandos que deseamos procesar cuando el jugador toque al personaje. Este fichero .ini ha de estar en la carpeta 'Comandos' de 'Entidad 3D'.

  • Origin
    Son tres cifras (X Y Z) separadas por un espacio que determinan la posición de esta entidad en el escenario. Estos 3 datos normalmente no se modifican aquí y se deja que se modifiquen según movemos esta entidad (con el ratón) desde 'World Editor'.

  • Orientation
    Son tres cifras (X Y Z) separadas por un espacio que determinan la orientación que presentará el objeto en el escenario. Variando estas cifras podremos hacer aparecer nuestro objeto boca abajo, tumbado, ladeado, etc..
    Si ponemos 0 0 0 el objeto se presentará en la orientación inicial de diseño de este objeto 3D.

  • Scale:
    Son tres cifras (escala en X(ancho), escala en Y(alto), escala en Z(largo)) separadas por un espacio. Permiten agrandar o reducir el tamaño inicial de nuestro personaje. Si ponemos 1 aparecerá en el escenario en el tamaño inicial de diseño de este objeto 3D. Si ponemos 2 aparecerá el doble de grande. Si ponemos 0.5 aparecerá a la mitad de su tamaño.

  • Visible:
    Con 'False' haremos que este personaje no aparezca en el escenario. Esto se utiliza en casos en que nos pueda interesar definir la posición de un personaje, pero que al dar comienzo el juego aún no aparezca y que lo hagamos aparecer según el desarrollo de nuestro juego. Esto último lo podremos hacer con el comando 'VIS1'.


    Consulta la sección 'Personajes' para ver un ejemplo de como añadir una entidad de este tipo.



    Personajes interactivos:
    Si no queremos que nuestros personajes sean simples 'estatuas' que no se relacionan con el jugador, tendremos que asociar la entidad 'SpecificActor' de nuestros personajes con algún fichero de comandos .ini para que realicen ciertas acciones según las circunstancias.
    Lo que pueden hacer estos personajes lo determinan los comandos disponibles en 'Entidad 3D', desde decirle algo al jugador (mediante un texto), hasta darle algo al jugador o hacer sonar un fichero de audio con alguna voz grabada.

    A continuación, y a modo de ejemplo, vamos a crear un fichero .ini en la carpeta 'Comandos' y que estableceremos como nombre de fichero .ini en 'CommandsFile' para una entidad de este tipo. El fichero en cuestión contendría lo siguiente:

    IF COND llave_entregada=0
    IF COND 5_dinero.act=1
    ACCI DIAL vende_llave
    ACCI QINV 5_dinero.act
    ACCI PINV 4_llave.act
    ACCI PONE llave_entregada=1
    ELSE
    ACCI DIAL dame_dinero
    ENDIF
    ELSE
    ACCI TEXT No tengo nada mas de tu interes
    ENDIF

    ¿ Que hace todo esto ?. Lo que pretendemos hacer es que un personaje le venda una llave al jugador si este lleva dinero en su inventario. Evidentemente, para este ejemplo necesitaríamos los objetos '5_dinero.act' (para el dinero) y '4_llave.act' (para la llave). También vamos a preparar un par de respuestas por parte del personaje, una para cuando le entregue la llave al jugador y otra para cuando el personaje le pida dinero al jugador a cambio de la llave.
    Estos diálogos han de estar en forma de ficheros en la carpeta 'Comandos' y con la extensión .dlg. Crearemos el fichero 'vende_llave.dlg' conteniendo las lineas siguientes:

    Gracias por tu dinero, te aseguro que lo has
    empleado bien. Toma la llave del salon Rojo
    y ten cuidado con los guardianes.

    También crearemos el fichero 'dame_dinero.dlg' con lo siguiente:

    Si estas buscando la llave del salon Rojo te
    aseguro que no te saldra gratis. Aqui sin
    dinero con conseguiras nada.

    Ya estamos en condiciones de entender el grupo de comandos anterior.
    Recordarte que estos comandos se procesarán sólo cuando el jugador intente tocar al personaje.

    En primer lugar, decirte que utilizo la variable 'llave_entregada' (que me he inventado) para controlar la entrega de la llave al jugador. De esta forma podré presentarle al jugador diversos mensajes en función del valor de esta variable.
    El primer 'IF', comprueba la condición 'llave_entregada=0', lo utilizo para, si no se cumple significará que ya le hemos entregado la llave al jugador, pues le presentamos un mensaje rápido a través del comando 'ACCI TEXT' poniéndole 'No tengo nada mas de tu interes'. Este mensaje aparecerá en la parte superior de la pantalla en azul y desaparecerá en pocos segundos. Como ves, para este mensaje no hemos creado un fichero .dlg ya que opino que para un mensaje tan corto no era necesario.
    Pero volvamos otra vez a la condición que estamos analizando pero esta vez supongamos que la condición se cumple y la variable 'llave_entregada' vale 0 (que sería lo que valdría al comenzar el juego), pues entonces aún comprobamos otra cosa más, ya que el jugador podría llevar el dinero o no. Si lo lleva la condición 'COND 5_dinero.act=1' se cumplirá y por lo tanto se desencadenarán todos los comandos hasta el siguiente 'ELSE', comandos que hacen lo siguiente:

    ACCI DIAL vende_llave
    (pone en pantalla el diálogo que hemos preparado en el fichero 'vende_llave.dlg')

    ACCI QINV 5_dinero.act
    (quita el objeto '5_dinero.act' del inventario del jugador)

    ACCI PINV 4_llave.act
    (pone el objeto '4_llave.act' en el inventario del jugador)

    ACCI PONE llave_entregada=1
    (pone la variable 'llave_entregada' a 1)

    Finalmente si no se cumple la condición 'COND 5_dinero.act=1' es que el jugador no lleva el dinero y por lo tanto no le damos nada y con el comando 'ACCI DIAL dame_dinero' le presentamos el diálogo que tenemos preparado en el fichero 'dame_dinero.dlg'.

    Ya te estarás haciendo una idea de la cantidad de posibilidades que tienes con estos ficheros de comandos .ini, y no sólo en entidades 'SpecificActor' sino en todas las entidades de 'Entidad 3D' que soportan estos ficheros.
    Si combinas adecuadamente comandos y condiciones dentro de otras condiciones, etc... podrás obtener gran cantidad de complejas situaciones que podrán adaptarse a las necesidades del guión de tu juego. Al principio te puede parecer un poco liado, pero con la práctica, si ordenadas bien los comandos y los escalonas correctamente para no ver toda una cascada confusa de comandos, verás que ni de lejos tiene la complejidad que te supondría realizar lo mismo programando en lenguajes de programación.