Frictional Games Forum

Full Version: Tutorial_1 in Spanish
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Nightwolf

Here is a few phrases translated by me. (i know they are a few mistakes, just made it at work... lol)

If there is enough interest, i will finish them all.

Edit: Finished tutorial 1

TUTORIAL 1.1 – INTRODUCIÓN

Este primer tutorial es DE OBLIGADA LECTURA. Trata de los requerimientos específicos de los archivos y carpetas para usar el motor (HPL). Leélo para evitarte un dolor de cabeza antes de ponerte a crear modelos, mapas y todo eso.

Cuando tratamos de archivos y carpetas para el directorio HPL, hay un par de importantes factores que debes saber. ¡HPL ignora los directorios! Esto significa que si dos archivos comparten el mismo nombre en directorios distintos, HPL no será capaz de distinguirlos, así que tomará el primero que encuentre.

¡Por eso es muy importante que los archivos tengan siempre un nombre único!

¿Parece extraño? Es una elección para permitir mover y tener localizado los archivos más fácilmente al escribir scripts y otros archivos del juego. Esto significa que si quieres escuchar un sonido en el juego, te puedes referir simplemente al nombre del archivo, en vez de referirte a la ruta exacta del archivo..

HPL no busca en todos los directorios por su cuenta, tienes que indicar a HPL los directorios dónde buscar. Esto se realiza en el HPL Helper que edita el archivo ”resources.cfg”. En el tutorial, utilizaremos HPL helper para editar el archivo “resources.cfg”.

Primero, vayamos al directorio ”redist” y creemos una nueva carpeta llamada ”mystuff”. Ejecuta HPL Helper y por defecto, deberías estar en la pestaña settings (configuración) , esta es la parte de HPL Helper que queremos utilizar..
Click en ”Add” (añadir) para localizar tu, recién creado directorio, y añádelo a la lista. Si lo has realizado correctamente, ahora verás /mystuff al final de la lista.

Continuemos y agreguemos más directorios; primero movamos el directorio del tutorial al directorio redist. Queremos hacer esto porque contiene archivos que usaremos en nuestro tutorial. Utilizando HPL Helper agrega los siguientes directorios:

• tutorials
• tutorials/tutorial_1
• tutorials/tutorial_2
• tutorials/tutorial_3
• tutorials/tutorial_4
• tutorials/tutorial_5

La lista del directorio de recursos en HPL helper debería mostrar los nuevos directorios. Para ver si lo has realizado correctamente, vamos a intentar abrir un modelo de prueba. Cuando lo hayas hecho, pulsa en el botón “Save to File” (“Guardar Archivo”) para guardar la configuración. Vayamos a la pestaña ”Models” en HPL Helper y elige browse (mostrar archivos y carpetas). Navega hasta la carpeta tutorial_1 y elige el archivo ”tut_woodbox.dae” y comprueba si puedes verlo pulsando el botón view button. Si todo funciona correctamente, podrás ver una bonita caja de madera en el visor y hacienda click izquierdo podrás hacer que se mueva.

Aquí finaliza el tutorial de directorios

TUTORIAL 1.2 – CREANADO TU PRIMER MODELO

Usar HPL para crear juegos require tanto conocimiento y tiempo como cualquier motor avanzado para crear nuevos contenidos/mods. Lo que difiere de HPL del resto es que no utiliza un editor de mapas específico; en vez de ello, se permite utilizar un programa de modelado 3D. El único requerimiento es que el editor 3D soporte el formato COLLADA, http://collada.org.
Lo siguiente sera el inico de como crear un modelo básico y hacer que funcione en el juego. Tras ésto, veremos como crear una habitación y hacer que nuestro modelo aparezca. Este tutorial utilizará texturas ya creadas; los detalles sobre las texturas vendrán después..

Para empezar busca y localiza el modulo/extension de tu editor que permita siporte para COLLADA. Instalalo, inicia el editor y asegúrate de que puedes exporter e importer archivos. Es importante que marques la opción ”export polygons as triangles” (exportar polígonos como triángulos) a la hora de exportar en collada.

La primero por hacer en tu editor 3d es asegurarte también que las unidades sean iguales a 1 metro. El motor HPL utiliza el estándard SI para todas las unidades.

Crea un cubo, con las dimensiones 1m*1m*1m y déjalo en el centro del proyecto. Este cubo necesitará una textura, para hacerlo más sencillo, ya tenemos una textura creada y lista para ser usarla

Podemos encontrarla en la siguiente ruta ”tutorials/tutorial_1/tut_woodbox.jpg”

Agrega la textura al cubo, no la renombres ni la muevas. Deberías tener un bonito cubo con una superficie de madera. Graba el proyecto donde quieras, este archivo puedes tenerlo en la carpeta que quieras.

Probemos el modelo y veamos si funciona en el juego. Expórtalo como un archivo collada y graba el archivo en el directorio ”mystuff”, renombrando el archivo a ”mystuff_woodbox.dae”. Ahora, usando HPL Helper abre el archivo desde la pestaña ”Models” (modelos)

Si todo funciona, tendremos un cubo de Madera a la vista. ¡Si intentas hacer clic y moverlo, no funcionará! Si recuerdas el anterior tutorial, funcionaba en ese cubo de madera, pero ahora no funciona en éste otro porque el modelo que hemos creado no tiene un colisionador (collider). Esto es algo que tendremos que añadir.

Vuelve al editor 3D, y haz una copia de la caja de madera. No lo muevas, déjalo exactamente en la posición original. Ahora renombra el nuevo nodo a ”_collider_box_1”. Lo que hace al crear este texto ”_collider” es especificar el tipo de colisión que tendrá la “caja” (box) y finalmente márcalo con un”1”. El inicio de “_” funciona como un indicador para el motor de que esa geometría es especial, los otros “_” son separadores entre las diferentes propiedades

Se pueden utilizar distintos tipos de colisionadores, caja, esfera, cilindro y más. Para conocer la lista exacta, se puede consultar el archivo creation document (documento de creación). Los modelos más complejos pueden llegar a tener varios colisionadores, y puedes usar tantos como quieras, pero la idea es intentar que sea lo más simple posible.

En tu proyecto, deberías tener al menos 1 nodo que sea la caja original y un nodo que sea el nuevo _collider (colisionador). Exporta el modelo de nuevo y ábrelo usando HPL Helper. Si lo haces correctamente deberías poder ver una caja que puedes mover.

No vamos a entrar en detalle, pero es bueno crear siempre un grupo para tus modelos (mesh) y colisionadores (colliders). Más adelante puede que construyas modelos con más de una pieza; digamos que una puerta, donde se quiere un frame estático, pero que el jugador pueda abrir y cerrar. Para esto necesitas hacer un frame y la puerta como objetos separados en el editor 3d, y agruparlos con sus respectos colisionadores.


TUTORIAL 1.3 – ARCHIVOS ENTIDAD (ENTITY)

Cuando hayas completado un modelo, querrás agregarle unas propiedades específicas. Como de qué tipo de material se compone, qué peso, como reacciona con el entorno y con el jugador. Para esto, necesitas crear un archivo de entidad, que es básicamente un archivo de texto, que contiene toda la información; un archivo XML para ser más exacto..

Para empezar, usaremos un archivo ya existente.. Utilizando un editor de texto simple (preferiblemente wordpad o algo mejor, no notepad) abre el archivo ”tut_woodbox.ent” ubicado en la carpeta tutorials/tutorial_1.

Esto es un archivo de entidad muy sencillo. Veamos qué contiene.

<MAIN
Name="tut_woodbox"
Type="Object"
Subtype="Normal"
/>

Estos no son muy importantes. Para simplificar, siempre escribe el nombre del archivo tras Name=””. Type (tipo) and Subtype (Subtipo) normalmente no se cambian Type suele ser ”Object” (objeto) para la mayoría de los modelos, si haces un modelo que se puede coger, por ejemplo la dinamita en Penumbra, debes cambiar el tipo a Type=”Item”. El Subtype hasta ahora no se cambia y no tiene uso excepto como Normal. Para más detalles sobre los diferentes tipos, echa un vistazo al documento GameEntityVars (Variables de las Entidades)

<PHYSICS
SubName = "pCubeShape1"
Collides = "true"
HasPhysics = "true"
Material="Dyn_Wood_Box"
Mass="30"
InertiaScale = "1 1 1"
AngularDamping = "0.1"
LinearDamping = "0.1"
BlocksSound = "false"
/>

La mayoría de estos se explican solos. SubName (Sub nombre) es importante, siempre debe ser el nombre del modelo. Y será más importante aún, cuando tengas un modelos compuesto de diferentes partes; de otra forma, el motor no será capaz, por ejemplo, de distinguir qué parte de la puerta es estática y cuál no.

Material=”” indica el material del que está compuesto el objeto, esto se usa para proporcionar al objeto una fricción, sonido, y todo lo relacionado del material compuesto. La lista de los materiales se puede encontrar en la pestaña ”Materials” del HPL Helper , en el menú ”physics material” (física de materiales)

Angular y Linear Damping (NT: ¿Humedad?), juguemos un poco con estos parámetros. Usando HPL Helper, bajo la pestaña ”Models” (modelos) abre el archivo ”tut_woodbox.ent”. Esto abrirá el archivo tut_woodbox.dae file PERO además le asignará las propiedades del archivo ent. Ahora gira la caja un poco, lánzala y observa su comportamiento. Volvamos al editor de texto y cambiemos los siguientes valores por AngularDamping = "1" y LinearDamping = "1" y salva los cambios. Vuelve a HPL Helper y de nuevo abre el archivo. Ahora si rotas y giras la caja, verás que su comportamiento ha variado y se mueve más lentamente. Esto es porque tiene un valor más alto de humedad. Como siempre, podemos encontrar más información al respecto en el documento de creación.

<GRAPHICS
ModelFile = "tut_woodbox"
CastShadows = "true"
/>

ModelFile =”” (archivo del model) este es el nombre del modelo (.dae) al que asignamos propiedades. Esto significa que puedes crear un único modelos y varios archivos de entidad, cada uno de ellos con diferentes propiedades, usando el mismo modelo.

<GAME
InteractMode = "Push"
/>

Aquí puedes modificar los distintos comportamientos del modelo Push (empujar) significa que si tienes esa misma caja de madera en el juego, tan solo podrás empujarla. Si lo cambias a “grab” (coger) podrás desplazar la caja con ella a cuestas. Si es una puerta, puedes “move” (moverla) y le dará la función de moverla de manera realista con el ratón. Estas son puertas típicas, cajones, válvulas, etc. Además pueden tener algunas configuraciones más, como siempre, consulta el documento de creación de contenido y GameEntityVar para informarte con más detalle.

La forma más sencilla de empezar con un archivo de entidad, es crear una copia de uno que ya existe, y utilizarlo como base para tu nuevo objeto. Elige un archivo de entidad que sea similar al objeto que quieras crear. A la larga es importante que comprendas que todo está en el archivo de entidad..

Así que vamos a crear nuestro primer archivo ”mystuff_woodbox.dae”. Empieza copiando el archivo ”tut_woodbox.ent” al directorio mystuff. Nómbramos como ”mystuff_woodbox.ent” y ábrelo en un editor de texto.

<MAIN
Name="tut_woodbox"
Type="Object"
Subtype="Normal"
/>

Cambia el nombre a mystuff_woodbox.

<PHYSICS
SubName = "pCubeShape1"
Collides = "true"
HasPhysics = "true"
Material="Dyn_Wood_Box"
Mass="30"
InertiaScale = "1 1 1"
AngularDamping = "0.1"
LinearDamping = "0.1"
BlocksSound = "false"
/>

Asegúrate de que SubName es el nombre de tu modelo en el editor 3D. Para probar un material diferente, borra ”Dyn_Wood_Box” y cámbialo por ”Metal”.

<GRAPHICS
ModelFile = "tut_woodbox"
CastShadows = "true"
/>

Cambia ModelFile a ”mystuff_woodbox”. Si deseas cambiar CastShadows a to false (falso) si no quieres que el modelo proyecte sombras.


<GAME
InteractMode = "Push"
/>

Cambia ”Grab” (coger) en vez de ”Push” (empujar)

Ahora graba el archivo y ábrelo en HPL Helper. Si todo funciona, deberías poder ver un caja de madera como antes. La única diferencia es que debería caer al suelo debido a la gravedad, si abres el archivo da directamente, quedará en el aire hasta que interactúes con ella.

Date cuenta que en HPL Helper InteractMode (modo de interactuar) Push (empujar) y Grab (coger) no hace diferencia alguna. Solo funciona cuando tienes el objeto en el juego. Que es lo que nos va a llevar, por supuesto a ¡cómo tener el modelo en el juego! Para que esto suceda, que una cosa más por hacer y lo veremos en el siguiente capítulo.


TUTORIAL 1.4 – REFERENCIAS

Las Referencias son archivos que creas e importas en tus niveles para decirle al motor qué entidad debe ser cargada, dónde debe ser cargada y cómo debe ser nombrada..

Para crear una referencia, abre el proyecto ”mystuff_woodbox”. Esto debe ser tu proyecto de trabajo y no el archivo .dae, aunque realmente no importa cual utilices realmente.

Borra todo en el proyecto, EXCEPTO el modelo original, el modelo de la caja. Renombra el nodo a ”_ref_mystuff_woodbox_woodbox1”. Como puedes haber adivinado, esto es muy similar a cómo crear un colisionador ”_ref” (referencia) es el texto que indica al motor que es una referencia, ”mystuff_woodbox” indica al juego dónde encontrar el archivo y finalmente ”woodbox1” es qué objeto tendrá en el juego. El nombre se utiliza, por ejemplo, en los scripts.

No grabes el proyecto, tan solo exportalo a un nuevo archivo collada Puedes nombrarlo como “ref_mystuff_woodbox.dae”. Ahora tienes un archivo de referencia, pero para verlo en el juego, necesitas un nivel. Pero antes de pasar el Tutorial 2, donde crearemos un nivel, hablaremos detenidamente sobre cómo funciona exactamente un archivo de referencias.

El archivo de referencia actual, no es PARA NADA importante. Lo que es importante es “_ref_mystuff_woodbox_woodbox1” para el juego. Donde almacenas el archivo de referencias no es importante, el archivo de referencias tan solo se utiliza para colocar objetos correctamente en el juego. Para lo que al juego se refiere, puedes poner cualquier objeto que quieras, siempre y cuando lo nombres correctamente.

Si quieres poner un personaje en el juego, no necesitas realmente agregar ese personaje como referencia, sino sería suficiente con tener un cubo que se llamase ”_ref_characterfile_charactername”. Pero para que sepas dónde ponerlo exactamente en el nivel, lo lógico es usar el mismo modelo como tu referencia, así como para poder saber a dónde debe estar mirando. Así pues, siempre utiliza como referencia, una copia exacta del modelo al que estás referenciando..

Algo también importante sobre las referencias: Indican al juego el archivo de ENTIDAD y no al archivo de MODELO. Cuando el juego carga un nivel, encuentra todos los objetos nombrados _ref y entonces carga los archivos de entidad que referencian. Cuando cargamos un archivo de entidad, recibe todas las propiedades del modelo, como podrás recordar, es el archivo de entidad que contiene el nombre del modelo y además le asigna las propiedades. Conduciendo al modelo cargado al juego, con las propiedades especificadas.

Ahora, vamos a crear un nivel, y así poder probar finalmente nuestro modelo en el juego.
Reference URL's