Tema: Guía: Empezar con Unity3D

Mensajes

  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    NoxWings » 16 AGO 2014  1:39
    He puesto un post muy parecido en alguna respuesta privada a algún compañero del foro y en algún post de ayuda. Os dejo aquí en forma de guía para que os sirva a todos aquellos que teneis interés en iniciaros un poco en Unity3D etc. en vista de que ultimamente hay bastantes interesados.

    ---------------------

    Tutoriales y el idioma

    En primer lugar el tema de conseguir material para aprender a usar unity3D en español lo habrá, pero ninguno es oficial y no creo que ninguno esté a la altura de los tutoriales oficiales.
    Para estas cosas toda la buena documentación está en inglés. Pero lo bueno es que los videos de unity son cortitos y muy fáciles de seguir.

    Decidir qué rama o "rol" quieres aprender

    Lo más probable es que quieras en principio trastear un poco y después decidir que tipo de demo o juego quieres hacer, pero antes de nada deber saber que realizar un juego involucra distintas ramas de especialización.

    Las más definidas por así decirlo son por un lado la "creación de contenido" (modelos 3D, texturas, animaciones...) y la "programación del gameplay" (la lógica del juego) . Lo normal y lo más realista es centrarse completamente en una de las 2 ramas y conocer un poco lo básico de la otra.

    En el caso de la mayoría de vosotros ahora mismo probablemente no conoceréis mucho de ninguna de las dos ya que estáis empezando, pero no os preocupéis por que nadie nace sabiendo.

    IMPORTANTE: En esta guía os indicaré qué tutoriales seguir para dar vuestros primeros pasos en el uso básico del motor y en la programación de gameplay. Tanto si elegís profundizar en la programación de gamepley o en la creación de contenido a todos os vendrá bien seguir los tutoriales.


    Pros y contras de cada "rol"

    Cada uno de las 2 ramas o "roles" que hemos dicho tienen sus pros y sus contras. Os aseguro que tratar de aprender las 2 en profundidad no es una opción muy viable.

    Si el rol que más te gusta y al que decides dedicar más tiempo es:

    1.- La creación de contenido:
    PROS
    Podrás controlar el aspecto visual de los objetos de juego, qué forma tienen exactamente, qué texturas, las animaciones exactas que quieras etc. Esto es una enorme ventaja, por que a diferencia de ejemplos de código de programación no hay apenas material gratuito para poder hacer un prototipo y menos si buscas algo medianamente específico.
    CONTRAS
    La mayoría de artistas 3D, animadores etc. conocen también cómo programar, pero a un nivel básico. Me explico, es normal que un diseñador sepa programar, eventos propios de la creación de mapas como pueden ser por ejemplo añadir la lógica de un ascensor, o una cámara de vigilancia o incluso cierta lógica sobre los personajes pero es probable que te sientas perdido si necesitas realizar otro tipo de lógica diferente a la de los tutoriales.

    2.- Programación de gameplay:
    PROS
    Especializarse en esta rama implica que a diferencia de los diseñadores deberás poder controlar como funciona todo en el juego, que causa cada reacción cómo son las mecánicas de juego etc. Pero no solo eso, si consigues aprender a pensar en terminos de POO (programación orientada a objetos) podrás por ejemplo crear tu propio protocolo de red que extienda el de unity (que deja mucho de desear por defecto) o aprender a crear una inteligencia artificial decente y elaborada de verdad, sistemas de combates innovadores, o incluir soporte para cosas que no vienen de serie en el propio motor creando plugins etc.
    CONTRAS
    Normalmente es complicado encontrar modelos 3D, con su esqueleto y animaciones para poder jugar un poco con ellos y hacer algún prototipo. Por otro lado es necesario también aprender unos conceptos básicos sobre diseño 3D como qué es una malla, un mapeado UV, qué es un mapa de normales etc.


    "Prerrequisitos" o trasfondo propio

    ¿Tienes algún tipo de trasfondo en algo previamente? Me refiero, ¿Tienes nociones previas de programación o de scripting? o ¿Sabes modelar animar etc?

    En mi caso previamente antes de meterme con esto ya sabía programar (soy ingeniero informático).
    No es que sea estrictamente necesario saber programar pero si ya sabes programar en algún lenguaje aprender a usar el motor es trivial, pero si no, no solo se trata de aprender a usar el motor si que loo más importante es coger las nociones más básicas para programar al menos.


    EMPECEMOS CON LOS TUTORIALES BÁSICOS

    En cualquier caso, sepas programar o modelar ya o no, yo empezaría con la sección de tutoriales de unity3D, donde podreis encontrar bastantes listas de reproducción muy facilitas de seguir aunque están en inglés. Al final os dejo el link donde están todas las listas[1], pero no empeceis con ninguna por el momento, iremos paso a paso y os iré comentando en qué orden verlos para ir avanzando paso a paso y cuales necesitais ver y cuales no.

    IMPORTANTE: Os recomiendo completamenta que vayais probando todas estas cosas mientras vas viendo los videos por que se te queda todo mucho mejor.

    Antes de nada voy a hablaros de unos pocos conceptos básicos sobre Unity3D y otros motores de videojuegos.

    Lo primero que vais a encontrar seguún abrais el editor de unity es una vista de la escena o "scene".
    Una "scene" es un como un mapa, un espacio 3D que podeis utilizar para incluir contenido de cualquier tipo a vuestro juego. En el mismo proyecto podeis tener la cantidad de escenas que querais con las transiciones que sea entre ellas etc

    Las "Scene" se llenan con objetos de juego o "GameObjects".
    Un "GameObject" es básicamente un punto y una orientación en el espacio. Estos "GameObject" pueden estar directamente incluidos en la escena o formar parte de una jerarquia de otro "GameObject". Cuando un objeto de juego está dentro de la jerarquia de otro significa que si su superior en la jerarquia se mueve, él tambien lo hace.

    Pensad por ejemplo en la tierra y en nosotros. Cuando la tierra se mueve nosotros nos movemos con ella. O cuando nos montamos en el coche y éste se mueve, nosotros lo hacemos con él. Pues así se comportan también las jerarquias de "GameObject"

    Estos "GameObject" al fin y al cabo son solo puntos vacios en el espacio pero a los que podeis añadir multiples componentes ó "Component".
    Los "Component" son de diferentes tipos y añaden contenido en ese punto del espacio. Por ejemplo, podemos añadir un "Mesh Renderer" a un "GameObject" el cual hará que en esa posición del espacio de muestre una malla 3D, o un "Box Collider" que hará que el objeto colisone con el entorno como si fuera una caja.

    Entre estos "Comonent" hay uno especial que es el "Script".
    Los "Script" son ficheros de texto que el motor de Unity3D interpreta y ejecuta y en los cuales puedes especificar el comportamiento de los "GameObject", "Component" y cualquier otra cosa que exista en el motor.

    1.- Introducción al editor

    *Sección "Editor":
    http://unity3d.com/learn/tutorials/modu ... ner/editor
    Sólo los videos de la dificultad "begginer". Te enseñan a moverte por el editor de Unity y a trastear un poco con él.
    No te recomiendo los videos "intermediate" por que implica programar modificaciones para el editor y no son estrictamente necesarias.


    2.- Tutoriales de programación

    Ahora si no sabes nada de programación o de scripting (no sabes qué es una variable, una función, objetos, clases y como usarlos)
    Aunque esto no es lo normal, en la documentación de unity han hecho también unos pequeños vídeos para introducir a la gente a esto.

    Para programar en unity3D se pueden utilizar 3 lenguajes distintos: C#, Javascript o Boo (este último no conozco ni he visto de nadie que lo use).
    Mi recomendación es utilizar C# más que nada por que aparte de que es algo más rápido que javascript, en los tutoriales oficiales de unity lo utilizan.

    *Sección "Scripting":
    http://unity3d.com/learn/tutorials/modu ... /scripting
    Sólo los videos de "begginer", te enseñan esos conceptos básicos de programación para que puedas saber luego seguir el resto de tutoriales de como programar con el motor.
    Los videos de "intermediate" son útiles pero no te recomiendo por que no son fáciles de seguir si no has programado antes y ya hay bastante por asimilar con los de "begginer".

    3.- Tutoriales básicos del motor

    *Sección "Graphics":
    http://unity3d.com/learn/tutorials/modu ... r/graphics
    Los videos de "begginer" también. Te muestran los componentes básicos que se puedes usar que se vean en el motor.

    *Sección "Physics":
    http://unity3d.com/learn/tutorials/modu ... er/physics
    En estos videos te enseñan a usar la simulación de componentes físicos y como programar por ejemplo reacciones cuando colisionan 2 objetos, o como modificar sus propiedades etc.

    *Sección "Audio":
    http://unity3d.com/learn/tutorials/modu ... nner/audio
    Esta es solo un video y es muy sencillita

    *Sección "Animation":
    http://unity3d.com/learn/tutorials/modu ... /animation
    Esta es una de las más interesantes, enseña a usar el sistema de animaciones. Cómo poner animaciones a las mallas y también como conseguir que las animaciones se entremezclen bien etc.


    ------------------------------------------
    Referencias

    [1] Link a todas las listas de tutoriales --> http://unity3d.com/learn/tutorials/modules
    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold
    2 0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    NoxWings » 16 AGO 2014  1:44
    Reservo este post para añadir más adelante una parte de la guia de nivel intermedio-avanzado
    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold
    0 0
  • altair28

    Colaborador

    18 Ago 2013 16:58

    Mensajes: 7886

    Ubicación: En mi mundo virtual

    altair28 » 16 AGO 2014  13:00
    Muy interesante, le pongo una chincheta, que creo que puede ser de mucha ayuda para todo el que quiera iniciarse en la creación de contenidos. Gracias por el aporte
    Mi PC: I5 3570K OC 4,2GHz. Gainward GTX1080 Phoenix GS. 16 Gb RAM
    0 0
  • qlic3d

    1 Ago 2014 17:19

    Mensajes: 85

    qlic3d » 16 AGO 2014  14:05
    Muchas gracias,de momento motor instalado y las primeras pruebas.
    Thanks.
    0 0
  • gotmog

    13 Abr 2014 22:03

    Mensajes: 1040

    gotmog » 16 AGO 2014  23:25
    Cojonudo , me estan entrando unas ganas que pa que.
    0 0
  • blade75

    23 Abr 2014 18:05

    Mensajes: 307

    blade75 » 17 AGO 2014  13:59
    Hola

    Estupendo Hilo

    Os pongo un enlace de un tutorial muy bueno donde hablan de muchas de las clases que Unity usa y la jerarquía entre ellas. Es un poco antiguo pero creo que para hacerse una idea es más que suficiente. Además está en español.

    http://unityscripts.blogspot.com.es/search/label/00_INTRODUCCION?&max-results=3

    También os pongo un artículo donde se explica muy bien conceptos de la física de Unity:

    http://3dgep.com/physics-in-unity-3-5/


    Espero que os sirva como lo ha hecho conmigo.

    Un saludo
    Mi PC: I5 4790K OC 4GHz. Gigabyte G1 Gaming GTX970. 16 Gb RAM
    0 0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    NoxWings » 17 AGO 2014  14:11
    "blade75":Hola

    Estupendo Hilo

    Os pongo un enlace de un tutorial muy bueno donde se hablan de muchas de las clases que Unity usa y la jerarquía entre ellas. Es un poco antiguo pero creo que para hacerse una idea es más que suficiente.

    http://unityscripts.blogspot.com.es/search/label/00_INTRODUCCION?&max-results=3

    Espero que os sirva como lo ha hecho conmigo.

    Un saludo


    Ouch al ver tu link y ver que usan javascript acabo de recodar una cosa, ¡No he comentado nada sobre los diferentes lenguajes para programar en Unity! Gracias por el aporte y de paso por recordarme el este tema.
    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold
    0 0
  • Cdaked

    Colaborador

    18 Ene 2014 12:42

    Mensajes: 7475

    Ubicación: Hospitalet de Llobregat (Barcelona)

    Cdaked » 23 SEP 2014  22:58
    Me parece muy bien este hilo. En cuanto a lenguajes, parece que se usa mucho el C#. ¿Recomendáis algún IDE y compilador gratuito? Yo en el trabajo uso Objetive C (iOS), .NET (C# y Basic) y java para Android.

    ¿Se puede usar C y/o C++? Me ha parecido ver que sólo se pueden añadir como plungins para la versión PRO.
    0 0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    NoxWings » 24 SEP 2014  15:21
    "Cdaked":Me parece muy bien este hilo. En cuanto a lenguajes, parece que se usa mucho el C#. ¿Recomendáis algún IDE y compilador gratuito? Yo en el trabajo uso Objetive C (iOS), .NET (C# y Basic) y java para Android.

    ¿Se puede usar C y/o C++? Me ha parecido ver que sólo se pueden añadir como plungins para la versión PRO.


    IDE y compilador viene monodevelop ya integrado en unity e incluido con el instalador de unity y el workflow es una gozada. Todo el mundo usa eso.

    C se puede usar solo como plugin, importando luego las funciones de C a C# normalmente con dllimport. C++ no estoy seguro hasta que punto se podrá importar, ya que como no tiene un ABI (application binary interfaces) estándar como tiene C...
    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold
    0 0
  • Moli_Alejandro

    23 Dic 2016 09:31

    Mensajes: 38

    Ubicación: Granada

    Moli_Alejandro » 6 MAR 2017  20:35
    Buenas hoy mismo he estado probando como crear mi propia apk, he ido redactando un borrador conforme iba haciendo las cosas, os lo comparto aquí, por si os sirve de ayuda.

    Se trata de un borrador, perdonad si se obvian algunos pasos, se explica como se puede crear una aplicación utilizando Unity y desarrollando en un PC con Windows:
    drive.google.com/open?id=0B1nBmgC5HxjlN280bGxIbUtweVE
    Ingeniero informático interesado en proyectos de realidad aumentada.
    3 0

Usuarios navegando por este foro:

2 Anónimo