Desenvolupament de videojocs amb Unity Desenvolupament de videojocs amb Unity Alejandro Santiago,...

download Desenvolupament de videojocs amb Unity Desenvolupament de videojocs amb Unity Alejandro Santiago, Xavier

of 123

  • date post

    22-Sep-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Desenvolupament de videojocs amb Unity Desenvolupament de videojocs amb Unity Alejandro Santiago,...

  • Desenvolupament de videojocs amb Unity Alejandro Santiago, Xavier Belanche

    Desenvolupament d’entorns interactius multidispositiu

  • Desenvolupament d’entorns interactius multidispositiu Desenvolupament de videojocs amb Unity

    Índex

    Introducció 5

    Resultats d’aprenentatge 7

    1 Desenvolupament de videojocs amb Unity (Part 1) 9 1.1 El GDD i la fase de producció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Consideracions prèvies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    1.2.1 El codi font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.2 Optimització de Unity i organització de les escenes . . . . . . . . . . . . . . . . . . . 12

    1.3 Configurar el projecte base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4 El disseny del videojoc ’Ellen and the lost IOCStudents’ . . . . . . . . . . . . . . . . . . . . 15 1.5 ’GameManager’, ’LevelManager’ i classes del tipus ’Singleton’ . . . . . . . . . . . . . . . . . 17

    1.5.1 El ’GameManager’: el cicle complet del videojoc . . . . . . . . . . . . . . . . . . . . 17 1.5.2 El ’Singleton’: accés global i persistent a un objecte . . . . . . . . . . . . . . . . . . 23 1.5.3 El ’LevelManager’: encapsular tota la lògica de control d’un nivell . . . . . . . . . . 26

    1.6 ’Input’ del nostre videojoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.6.1 Configurar l”input’ a Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.6.2 Configuració dels botons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.6.3 El control de l”input’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    1.7 Crear les diferent escenes del videojoc (’Splash’ i ’Menú principal’) . . . . . . . . . . . . . . 39 1.7.1 Elaborar el "Menú principal" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    2 Desenvolupament de videojocs amb Unity (Part 2) 47 2.1 Creació de l’escena de joc o ’Level01’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2 Creació de l’escena de resum de nivell o ’LevelReport’ . . . . . . . . . . . . . . . . . . . . . 49 2.3 Els esdeveniments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.4 Creació del personatge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    2.4.1 Gestionar el moviment del personatge amb ’CharacterController’ . . . . . . . . . . . 57 2.4.2 El ’Player Input’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.4.3 El controlador del jugador o ’PlayerController’ . . . . . . . . . . . . . . . . . . . . . 61 2.4.4 ’Animator Controller’ del personatge . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.4.5 Les funcions ’Reset’, ’Awake’, ’OnEnable’ i ’OnDisable’ . . . . . . . . . . . . . . . . 65 2.4.6 El ’FixedUpdate’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.4.7 Rebre impactes o ’Damage’ en el nostre jugador . . . . . . . . . . . . . . . . . . . . 67 2.4.8 Una petita millora: subdividir les habilitats . . . . . . . . . . . . . . . . . . . . . . . 71

    2.5 Creació dels enemics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.5.1 Els components del ’Chomper’ (enemic) . . . . . . . . . . . . . . . . . . . . . . . . 74 2.5.2 L”script EnemyController’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.5.3 El subsistema d’UI a Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.5.4 Dissenyar la UI del videojoc ’Ellen and the lost IOCstudents’ . . . . . . . . . . . . . 78

    2.6 Conclusions finals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

  • Desenvolupament d’entorns interactius multidispositiu Desenvolupament de videojocs amb Unity

    3 Programació gràfica 3D 83 3.1 Creació bàsica d’un ’shader’ a Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    3.1.1 De la geometria a la imatge en pantalla . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.1.2 Anatomia bàsica d’un ’shader’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    3.2 Creació de textures procedimentals amb ’shaders’ a Unity . . . . . . . . . . . . . . . . . . . . 111 3.2.1 Declaració i inicialització de les propietats . . . . . . . . . . . . . . . . . . . . . . . 113 3.2.2 Utilitzar les coordenades UV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 3.2.3 Desplaçament horitzontal de les files . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    3.3 Consideracions finals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

  • Desenvolupament d’entorns interactius multidispositiu 5 Desenvolupament de videojocs amb Unity

    Introducció

    Afrontar el desenvolupament d’un videojoc no es una tasca senzilla ja que moltes vegades és difícil saber per on començar, especialment en projectes grans o quan és dels primers videojocs que desenvolupem. En aquesta unitat intentarem crear una petita guia de tots els aspectes que cal tenir en compte abans de començar i com anar estructurant el desenvolupament d’un videojoc 3D des de zero.

    En el primer apartat, “Desenvolupament de videojocs amb Unity (Part 1)“, estudiarem les parts més importants de la creació d’un videojoc i veureu els fonaments que utilitzarem durant tot el desenvolupament del nostre videojoc. Es podrien entendre com els fonaments o l’estructura de quan es construeix una casa. Veurem quins són els elements bàsics d’un GDD o Game Design Document, algunes pautes que seguirem durant el desenvolupament tant del codi font com de l’organització de les escenes a Unity. Després crearem el projecte des de zero, pas a pas. Primer veurem alguns plug-ins o assets de l’Asset Store. A continuació estudiarem tres dels elements més importants a l’hora de crear un videojoc: el GameManager, el LevelManager i la gestió de l’input. Finalment, començarem amb la creació de les diferents escenes del nostre videojoc.

    En el segon apartat, “Desenvolupament de videojocs amb Unity (Part 2)“, acabarem amb la creació de les diferents escenes del videojoc. Veurem un últim element important dels nostres fonaments: els esdeveniments entre classes implementant el design pattern Observer. A continuació veurem com crear un personatge animat en 3D fent servir l’Animator de Unity. Estudiarem com subdividir totes les possibles accions del personatge en diferents classes petites, per tal que el nostre codi sigui tan petit com sigui possible i eficient. També crearem un controlador de personatges que ens servirà tant per al nostre heroi com per als enemics que col·locarem al llarg del nivell. Afegirem diferents efectes visuals i de so. Finalment, crearem la UI del nostre videojoc, i tancarem el desenvolupament amb l’escena del report del nivell.

    Finalment, a l’apartat, “Programació gràfica 3D” explorareu, de manera pràc- tica, els coneixements que l’envolten, perquè us permeti l’obtenció de resultats immediats, perquè us animin a continuar en la corba d’aprenentatge, sovint força escarpada, de la programació gràfica. Per fer-ho, continuarem investigant el funcionament i les possibilitats de la plataforma Unity; alhora que també haureu de familiaritzar-vos amb coneixements bàsics dels llenguatges de programació. A banda, aquest apartat assumirà el doble objectiu d’explorar també i obrir-vos la porta d’entrada al desenvolupament de shaders amb Unity, perquè els incorporeu en futurs projectes personals i professionals.

    Per assolir els objectius d’aquesta unitat, cal que llegiu els annexos, feu els exercicis i les activitats proposades. En cas de dubte, podeu preguntar al fòrum de l’assignatura, ja que així us podran ajudar els vostres companys o el professor.

  • Desenvolupament d’entorns interactius multidispositiu 7 Desenvolupament de videojocs amb Unity

    Resultats d’aprenentatge

    En finalitzar aquesta unitat, l’alumne/a:

    1. Desenvolupa aplicacions interactives d’entreteniment, permetent la interacció amb els elements en 3D i la participació de diversos usuaris finals simultàniament.

    • Genera entorns interactius en els quals s’integren elements en 3D, i els dona interactivitat.

    • Desenvolupa aplicacions interactives d’entreteniment aplicades al sector educatiu (solucions d’aprenentatge electrònic (e-learning), serious games i TV interactiva, entre d’altres), augmentant la participació de l’usuari en els entorns d’aprenentatge.

    • Desenvolupa aplicacions interactives d’entreteniment per a espais i esdeve- niments multimèdia, destinades a la transmissió de continguts dependents de la interactivitat de l’usuari.

    • Crea entorns interactius de videojocs que permetin la interactivitat entre els elements en 3D, responent a models naturals de comportament físic, a partir d’esdeveniments desencadenats per l’usuari.

    • Posa en producció aplicacions interactives d’entreteniment en diferents entorns i dispositius, verificant la seva funcionalitat i resolent les incidències que puguin sorgir.

  • Desenvolupament d’entorns interactius multidispositiu 9 Desenvolupament de videojocs amb Unity

    1. Desenvolupament de videojocs amb Unity (Part 1)

    Al llarg d’aquest apartat portar