Universitat Jaume I - Video game Design
and Development Degree
Design and development of an editor for customizing a
character for fantasy video games in Unity
Author: Oxana Vorobieva, [email protected]
Tutor: Raúl Montoliu Colás
Academic course : 2015/2016
2
Abstract This document represents the results of the subject with the code VJ1241, Final Project. In
this document includes the description, development and design of an application in Unity 5
which its purpose is to customize characters.
A game with a good character creator has a significant edge over other games in its genre.
While it’s not the only element that makes a good game by a long shot, a great character
creator lets players who like customization really get into their characters, allowing them to
micromanage even the smallest aspects of their appearance. A character implies an
humanoid as the term refers to creation of a character in the classic role playing games, it
doesn’t refers to beasts nor fantastic animals, as they’re referred as creatures, and not
characters. In this project a character creator is going to be developed, this includes the
application and the art content. In particular its planned to be mainly a human male and
female It is going to be on 3D graphics and the characters are going to be stylized, this means
that the models are not realistic, and goes with a personal style.
Key words
3D modelling, concept art, animation, character design, creation, game engine
3
Thank-you-note
First I’d like to thank all my classmates and friends that have been with me through the years:
Pablo Rincón, Adrian Hernandez, Adrian Sanchez, Laura Chordá, Jaime Breva Isabel
Lacambra, Linda García, Carmen Pachón, Mario Juliá, Borja Villarino, Javier Serrano, Daniel
Benzal, Fran Sánchez, Luis Moyano, José Luis Recatalá, Yolanda Mojena, Álvaro Delgado,
Sergi Escartí… and everyone else with all your opinions, support and advices. All of you are
the best people I’ve met in my life and I’m glad we helped out each other all this time.
To my family that encourage me to study this degree helped me in all I needed and told me to
follow my dreams.
I also thank to all the game artists that inspired me with their work.
I’d like to thank my tutor, Raul Montoliu Colás for all the support to going on this project and
the advices that helped me out to improve and write this project.
4
Design and development of an editor for customizing a character for fantasy video games in Unity
0
Abstract 1
Thank-you-note 2
Chapter 1: Technical Proposal 6
1.1.Introduction 6
1.2.Motivation & context 6
1.2.1 Fantasy Context 7
1.2.2 Video game and Artists Inspirations 8
1.3. Preview of the project 10
1.4. Objectives 12
1.5. Justification 14
1.5.1 VJ1204 - Expressión Artística 14
1.5.2 VJ1212 - Expressión Gráfica 15
1.5.3 VJ1216 - Disseño 3D 15
1.5.4 VJ1221 - Informàtica Gràfica 16
1.5.5 VJ1226 - Diseño de Personajes y Animación 17
1.5.6 VJ1223 - Arte del Videojuego 17
1.5.7 VJ1224 - Ingeniería del Software 18
1.5.8 VJ1227 - Motores de Juegos 18
1.6. Recommended previous knowledge 19
5
1.7.Planification and task division 19
1.7.1 Block 1: Documentation 20
1.7.2 Block 2: Software development 20
1.7.3 Block 3: Game Art 21
1.8. Methodology 22
1.8.1 Risks 23
1.9. Tools 24
Chapter 2: Development of the project 26
2.0 Planification 27
2.1 Concept art 27
2.2 Creating 3D models 30
2.2.1 Body 31
2.2.2 Hair and clothes 47
48
2.3 Development of the application in Unity 55
2.3.1 Analysis 55
2.3.2 General vision of the application 55
2.3.3 How does the application work. Functionality 55
2.3.4 Programming: Scripting 63
2.3.5 Programming: Shaders 64
2.3.6 Lightning and environment 66
Chapter 3: Results 67
6
Chapter 4: Conclusions 68
4.1Game Engines and Unity 69
4.2. Modelling 3D game assets 69
4. 3. Shaders 70
4.4 Changes from the technical proposal 71
4.5 General conclusion of the application 71
Chapter 5: Annex and bibliography 72
7
Chapter 1: Technical Proposal
1.1.Introduction
Everyone loves to have its own character, and live it’s own adventure, nowadays video games
rely on character editors so the players can feel its own unique experience. Developing a
character needs lots of hours for the game development, so the character editor is the fastest
and easiest way to create one for users. Role playing games are the most games which have
its own character editor and it's needed in the video game industry. The purpose of these is to
give players the option of creating unique characters, i.e.: hair color, skin color, eye color,
clothes etc. Many RPGs have this as an option, others have a default character that the player
controls.
The project is about creating a developing a successful character editor in Unity 5, with two
main genders to choose: male and female humanoids with animations and textures made in a
3D application and then imported and scripted in Unity for customization and creating the
interface. Stylization it will be a pillar for the character editor, with simple shapes and vibrant
colors.
1.2.Motivation & context
Everyone likes to design characters, but designing one is a long and tedious process and
needs lots of technical and artistic knowledge, so we need an easy way for the user where no
big knowledge is needed to create lots of characters variations and creating stories.
The creation of game character content will be made with a game engine for importing the 3D
assets containing the features of a human character: hair, eyes, body features, clothes... The
player, can manage and edit lots of aspects of the editor, creating lots of possibilities. The
character creation system will use a simple interface for mesh modification, included in
modern game engines.
8
1.2.1 Fantasy Context
Why fantasy theme? Most games with character creation tool are role playing games, also
there are simulation games (The Sims) or sci fi games (Mass Effect), personally I am more
attracted mostly to medieval fantasy theme because the games I have played and I have more
experience with: Final Fantasy Saga, Golden Sun, Fire Emblem, Elder Scrolls, Warcraft, The
Witcher ... and books I have read: Name of the Wind, Lord Of The Rings, Idhún Memories,
Eragon, Dragonlance Chronicles... which complement my knowledge and is more suitable for
me.
The main theme of the character creator is fantasy and fiction, as appears in many MMORPG
games as we can see at the Figure 1. Character customization gives the player the sensation
of creating their own story with their own characters with different attributes, similar to
classic table role playing games, for example Dungeons and Dragons or Pathfinder.
Figure 1: Character creation in Final Fantasy XIV [6]
Character design is a personal challenge for me every day, there are lots of studies about it:
colour, forms, style and originality are some of the traits that a good character might have.
That is why I would like to focus my final project in this type, character based work.
9
1.2.2 Video game and Artists Inspirations
The main character style design inspirations for the character editor are:
Tetsuya Nomura: He is the main character artist at Square Enix in Japan. Sora, Cloud as seen
in Figure 3[4], Squall, Lightning as seen in Figure 2[8]. These are famous video game
characters in the Final Fantasy Saga and they have name of meteorological events, names in
characters are important because of the meaning that can be contributed to the story or to
the saga.
Figure 2: Official Render of Lightning Figure 3: Official Render of Cloud
10
League of Legends: This free to play video game has a lot of character design and has a lot of
different types of artists. There are a lot characters [3], but the most notable examples are:
Ekko as seen in Figure 4 [5], Ahri, Lux as seen in Figure 5 [11], Katarina, Garen and more. There
are more than one hundred of different character designs, which is common in this game
genre: the MOBA.
Figure 4: Ekko Figure 5: Lux Star Guardian
Blizzard Universe: Samwise Didier [2], art director of Blizzard Entertainment, created most of
the Blizzard universe and characters. Over the past two decades, Blizzard Entertainment has
had a tremendous impact on the world of games and global pop culture. From its humble
beginnings as a three-person console-game development studio in 1991 to the creation of the
blockbuster Warcraft®, StarCraft®, and Diablo® series, Blizzard has a history of crafting
stunning worlds of science fiction and fantasy. The company’s distinctive gameplay and
11
storytelling styles have captivated an international audience numbering in the tens of
millions whose passion cannot be quelled.
In the past year Blizzard announced a new video game called Overwatch [10]. Overwatch is an
upcoming multiplayer first-person shooter in development by Blizzard Entertainment. Unveiled
at BlizzCon 2014, the game emphasizes cooperative gameplay using a cast of various
"heroes", each with their own abilities and roles within a team. The cast of playable characters
in Overwatch was stated as being intended to portray diverse representations of genders and
ethnicities (including males, females, and non-human characters such as robots and a
gorilla). With this, the game is a reference to great character design and interesting cell
shading shader made for the game, making the game to be visually balanced and interesting.
Figure 6: Overwatch®, the new Blizzard Entertainment game, featuring a lot of new
characters.
1.3. Preview of the project
12
In this project for character customization in Unity, the application will be executed on a
PC with different resolution options (maximum 1920x1080 pixels) for the OS Windows 7 or
superior versions. The editor will be composed by The character, the background and the UI.
Figure 8.1: Concept of the interface
The project will be a 3D model character editor which includes the edition of body, (thin, fit
and athletic) the face, clothes, genre, environment and lightning. These options makes the
character editor with variability and different lighting modes to make screenshots.
The application must be user friendly so it won’t be needed any knowledge about 3D modeling
pipeline.
13
The model will be rotatable with a click and drag system and a zoom moving the middle
mouse button, two box interface with options, as see in Figure 8.1.
The left box will provide the information of genre, lightning modes background and a small
description of each feature, the box dialogue on the right, will be a changing dialogue box,
which depends on what feature we want to edit (body, clothes…) it will show different bars
which allow the editing of the different parts. Also in the right dialogue box there will be a
color choice for, which mentioned above, the body, clothes, hairstyle… etc
The UI will be made with Unity , with the canvas feature it can be created easily UI elements
like buttons,sliders, texts, images, scrollbars in minutes (It’s merely a drag and drop thing).
There will be also a Toggle UI option which allows to hide and show the UI for visualization,
and a Take screenshot which will save a .jpeg image, for later editing, use it as wallpaper…
etc.
The intention of the creation of 3D models of this application it will be a minimum of three
different assets parts for the character. These parts are hairstyle, top cloth, bottom cloth and
shoes. This will be a minimum of twelve assets to combine and choose in the application. If
there is time and reusability of 3D models there is a chance to make more than twelve.
1.4. Objectives
To fulfil this project, two objectives types are established: software engineering and art, in
addition a section as objective 0 where includes the subject VJ1241 ‐ Treball de Final de Grau
and its competencies.
1. Objective 0
a. Capacity to develop, display and defend individually in front of a University
court, a project in accord to videogame design and development and with a
14
professional nature in which the competences gained during study are
integrated.
b. Writing a report in English, displaying and supporting orally in front of a
University court an original project of a professional nature in the field of video
games and in which the competences gained during study are integrated.
Therefore, the goal is learning to develop a professional project proposal with
the skills obtained during the degree.
c. Elaborating a project proposal which represents the framework of the project
with a set of objectives, tasks, planification and risks with a justification of the
skills obtained during the degree.
2. Objective 1: Produce an application
a. Making a successful and optimized software program: this project is obviously
a software development, so the realization of a smooth running program and
the establishment and use of software engineering principles in order to obtain
software that is reliable and works efficiently on real machines. This includes
the three main phases of software development: analysis, design and
implementation.
i. Analysis: the analysis of the application for determining the needs and
conditions for the project, like the polycount, texture resolutions, .
ii. Design: the main design of the project is to be user friendly, to achieve
this, a concept is needed with the location of the UI and how is going to
be visualized.
iii. Implementation: this is the core of the functionality of the project, this
objective includes scripting and testing the software.
b. Create exportable 3D models for game engines: There are some game engines
that have character examples for using and testing for the game. With this, it’s
15
very useful to preview the model created when it comes to a game demo or
preview. Obviously it comes handy to fantasy genre demos but it can really
be used to any game where a character is needed. The application will export
into .fbx, .obj and .dae extension files, with Unity's Create Asset.
3. Objective 2: Making professional game art
a. Creating good looking models for the genre is intended: Making good
concept arts art is very important to visualize good looking 3D models because
it gathers all the forms, combinations, color palettes and expressions.
b. Game modeling for animation purposes: When a modeler finishes building a
character, it's a static 3D mesh, almost like a marble sculpture. A character rig
is essentially a digital skeleton bound to the 3D mesh. Like a real skeleton, a rig
is made up of joints and bones, each of which act as a "handle" that animators
can use to bend the character into a desired pose. Character rigging is a tough
task and things like posing, animation and facial expressions are very
important for character. The skeleton will be adjusted to the model that the
editor, with this, an animator can make his own animations without entering on
the 3D modeling and rigging.
1.5. Justification
Extracted from LLEU [7]
http://e-ujier.uji.es/pls/www/!gri_ass.lleu_asignaturas_ob_g?p_titulacion=231
1.5.1 VJ1204 - Expressión Artística
E01 - Capacidad para manejar técnicas y herramientas de expresión y representación
artística.
● E01 - Controlar las leyes de la proporción y composición.
16
● E01 - Dominar las distintas herramientas gráficas y sus recursos expresivos.
● E01 - Producir bocetos a mano alzada de los elementos de los videojuegos.
● E01 - Representar correctamente las proporciones y posturas de la figura humana y
otros elementos susceptibles de ser incluidos en videojuegos (animales, objetos).
Creating concept arts for the editor. Even it not strictly necessary domaining proportions,
expressions and understanding human figure gestures are very important for a good
character design. Block 3 on planification.
1.5.2 VJ1212 - Expressión Gráfica
E02 - Capacidad de visión espacial y conocimiento de las técnicas de representación gráfica,
tanto por métodos tradicionales de geometría métrica y geometría descriptiva, como
mediante las aplicaciones de diseño asistido por ordenador.
● E02 - Comprender los distintos métodos de representación tridimensional sobre una
superficie plana.
● E02 - Desarrollar representaciones espaciales tanto con herramientas gráficas como
informáticas.
● E02 - Producir escenarios de videojuegos basados en distintas perspectivas
espaciales.
The editor must be represented within an environment (the background), lightning (day
modes), ground with a base mesh texture camera and compositing for better visualization of
the game assets. Block 3 on planification.
1.5.3 VJ1216 - Disseño 3D
17
E04 - Capacidad para el diseño y la creación de elementos gráficos.
● E04 - Analizar las características técnicas de las herramientas de diseño 3D.
● E04 - Usar aplicaciones de modelado tridimensional para videojuegos.
Most of the game character assets will be modeled and textured in 3D. Optimization and
topology are very important for a good character rig for movement and expressions. If this
stage is made incorrectly, all the following stages of the character editor would fail and it
would be a begin over again. This is the most important subject and the most related to this
project.Block 3 on planification.
1.5.4 VJ1221 - Informàtica Gràfica
E07 - Conocimiento y aplicación de los métodos para la creación y preservación de imágenes
sintéticas.
IR17 - Capacidad para diseñar y evaluar interfaces persona computador que garanticen la
accesibilidad y usabilidad a los sistemas, servicios y aplicaciones informáticas.
● E07- Analizar las características técnicas de las librerías gráficas para la creación de
imágenes sintéticas.
● E07, IR06 - Explicar los principios básicos de la creación de imágenes sintéticas.
● E07, IR08 - Usar librerías gráficas para la creación de gráficos en 2D y 3D.
● IR17 - Usar librerías para la creación de interfaces de usuario.
With the stylized look, the editor needs shaders programming, shaders are small scripts that
contain the mathematical calculations and algorithms for calculating the colour of each pixel
rendered, based on the lighting input and the Material configuration. Textures are bitmap
images. Block 2 on planification.
18
1.5.5 VJ1226 - Diseño de Personajes y Animación
E06 - Capacidad para el diseño y la creación de personajes animados.
IR07 - Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos
más adecuados a la resolución de un problema.
● E06 - Explicar los fundamentos de la animación por ordenador.
● E06 - Explicar los principios de la creación de personajes.
● E06, IR07 - Analizar las características técnicas de las herramientas de modelado de
personajes y animación 3D.
● E06, IR07 - Usar aplicaciones de modelado de personajes y animación en el contexto
de los videojuegos.
Characters must not be static, this subject goes with the subject “Modelado 3D” the models
need to be rigged and animated so they can suit each other when animated, facial rigging is
an extensive part which also is included here. Block 3 on planification.
1.5.6 VJ1223 - Arte del Videojuego
E09 - Capacidad para realizar el arte de los videojuegos, crear personajes y ambientes.
● E09, G09 - Controlar las herramientas gráficas para crear representaciones con alto
nivel de acabados.
● E09, G10 - Crear ambientes con definición de luces, sombras, texturas y efectos
ambientales.
● E09, G10 - Crear personajes caracterizados y texturizados.
This subject enters on the stylization of the characters which appear in the editor. The
lightning, effects, atmosphere are very important for good and finished character
representation. Block 3 on planification.
19
1.5.7 VJ1224 - Ingeniería del Software
IR16 - Conocimiento y aplicación de los principios, metodologías y ciclos de vida de la
ingeniería de software en el ámbito de los videojuegos.
IR01 - Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas
informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a
la legislación y normativa vigente.
IR02 - Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas
informáticos en el ámbito de los videojuegos,liderando su puesta en marcha y su mejora
continua y valorando su impacto económico y social.
Software engineering is the study and an application of engineering to the design,
development, implementation and maintenance of software in a systematic method. Making
a character editor requires evaluating and control the software creation cycle, like any other
program or video game. Block 1, 2 and 3 on planification are related.
1.5.8 VJ1227 - Motores de Juegos
E08 - Capacidad para diseñar y construir modelos que representen la información necesaria
para la creación y visualización de imágenes interactivas.
E12 - Capacidad para evaluar, usar y extender motores de juegos.
The editor will be made in Unity 5. The game engine will make some process more faster than
made by code: instancing objects, creating an UI quickly. This obviously doesn’t avoid
programming: scripting in the engine respective language is important to make things work
properly. Block 2 on planification.
20
1.6. Recommended previous knowledge
Knowing how to work with modern 3D workflow pipeline and production:
○ Low Poly 3D modelling
○ Sculpting details
○ Retopology
○ UV coordinates and texturing
○ Rigging
○ Animation
It is a project made with a game engine, so it’s strictly necessary knowledge about Unity 5 for
the realization of the project.
Also having programming skills for shaders, which are used to do shading: the production of
appropriate levels of color within an image, to produce special effects or do video
post-processing.
Is not mandatory but anatomy knowledge is recommended, for the production of model
sheets. Model Sheets are precisely drawn groups of pictures that show all of the possible
expressions that a character can make, and all of the many different poses that they could
adopt. These sheets are created in order to both accurately maintain character detail and to
keep the designs of the characters.
21
1.7.Planification and task division
In this table it’s summarized the tasks, the hours and the dependencies, at the parts of
methodology and justification is specified how this tasks are going to be executed. The tasks
are divided in three main blocks which are considered the cores of the project:
Documentation, software development and game art.
1.7.1 Block 1: Documentation
This tasks are associated with the objective 0 mentioned in this project proposal and includes
all the documentation to present and defend the project, with a small analysis of the
application.
Task Hours Dependencies
1.Technical Proposal Elaboration 10h
1.1 Analysis of the application 2h
1.2Memory and presentation redaction 40h Block3, Block2
1.7.2 Block 2: Software development
This block is associated to the specification of the coding and the software design
engineering process of the application.
Task Hours Dependencies
1. Composition of the application 70h
1.1 Design of the application 10 Block 1
22
1.2 Implementation of the editor 15 Block 3
1.3 Creating and scripting the interface 15
1.4 Scripting a mesh editor 30 1.1
2. Illumination, Shaders and Post process effects
25h
2.1 Setting up the lightning 10 1
2.2 Programming the shaders 10 2.1
2.3 Additional effects: water, particles.. 5
1.7.3 Block 3: Game Art
This block is associated to the creation of models with a 3D software tool, following the
production pipeline used in video games.
Tasks Hours Dependencies
1.Concept art and style definition 13h
1.1 Male and female body type shapes 3
1.2 Male and female face type shapes 5
1.3 Cloth Designing 5 1.1 , 1.2
2.Creation of assets 80h
2.1 Modelling Base body low poly meshes 20 1
2.2 Modelling low poly hair 10 1
2.3 Modeling clothes 20 1
2.4 UV mapping 10 2.1
2.5 Texturing 20 2.4
23
3. Rigging and animation 60h
3.1 Setting the bones 10 2
3.2 Setting Inverse kinematics and bone limitations
20 3.1
3.3 Facial Rig 10 3.1
3.4 Creating animations 20 3.2
Total: 300 hours
1.8. Methodology
GitHub platform has been chosen to create the remote repository to store and control
versions of the project on the Internet. Git allows and encourages you to have multiple local
branches that can be entirely independent of each other. The creation, merging, and deletion
of those lines of development takes seconds and it’s ideal for the application.
The methodology for software development will be follow the waterfall model, it is a
sequential design process with the phases of conception (concept art), initiation (generating
models), design (polishing models and finalizing textures), construction ( importing in a game
engine) and testing (looking for errors), as the name indicates the process is made from top
to down.
Why a waterfall model? Principally because it's necessary to create the game assets before
creating the application, without meshes it can’t be imported to Unity to be scripted for later
editions.
Also, every two weeks, make a small report with all the progress made and which task are
completed or not. This will be helpful for the development of the final memory, the report will
include WIP (work in progress) shots, renders, and progress of the character editor. Within the
reports it will be added an evaluation, when the application is setup, it will be made an inquiry
24
with computer science technology and video game students for improving the software
design, this will be benefit because evaluates the program for getting the better results.
The Hair
The hair is going to be low-poly based, this means it won't have fiber simulation and use a
joint-based animation physique. Why choose low poly hair? In first place it’s way more optimal
meshes for a real time render applications than fiber meshes, which are particle systems. To
cover the head it will be needed a lot of hair particles and then calculate all further collisions
so it won’t clip the model. In second place, fiber meshes are suitable for realistic models, as
mentioned before, this project seeks stylized characters.
How it is going to be simulated? As referred before it will use a joint simulation bone within a
spring physique, this features are implemented in unity
The cloth
The cloth it will use the same methodology as the hair, the main difference that it will be
simulated in Unity as it will be real time rendered. Unity includes a Cloth feature which is
suitable for the project.
Why not simulating with a third party 3D application, like Blender, Maya or 3dsMax? The main
reason is that each program has own systems and algorithms for simulations, it can be
exported, but the results are not always as expected. Also, Maya 3dsMax and Blender
simulations are closer to film animations which uses a long process to render and calculate
the simulations and take a lot of time. The second reason is that cloth simulations always can
be slightly modified with scripts in Unity so the simulation acts always as expected for the
application.
Facial Rig
25
In the 3d software application Blender, there can be placed bones to the important points
of the human face: eyelids, lips, teeth, brows and nostrils. With this and controllers for
animators there can be made easy facial expressions to make the character believable. The
animation will be keyframed type animations.
1.8.1 Risks
The risks are variable in this project, the models have to be optimized, the textures have to be
reused for better loading of the application, materials, custom shaders. This is also a lot of
work for one single person and maybe there will be a lot of work to do the application.
1. Triangle polycount of the models, this means lower performance game engines are
real time rendered programs and the polycount limitations is something taking
account for great performance. Also depends on the computer specifications,
specially on the computer graphics card, which task is to render all the polygons and
textures of the application. The recommended triangle count of a desktop application
is 50k-100k in a scene, keep in mind that this is a orientative and not a strict number.
2. Complex meshes, if the mesh is very complex it will be more difficult to edit with
scripts, this applies mostly to face edition and hair edition, although the hair edition
can be solved with physics, it takes a good graphic video card to simulate physics for
the hair.
3. Creating few 3D models so there is less variability: if a task takes more time than
another, not enough assets can be created, so the versatility of the editor can be lost
and furthermore, less character possibilities can be made. It’s not the same creating
three different hairstyles than seven, for example.
4. Risk of realizing more work that is expected: This is a challenging project so there is
a great amount to work to be done, hopefully with the skills achieved in this degree the
project should be completed.
1.9. Tools
26
Tools for software engineering, scripting and documentation:
● Unity 5 It’s with the 3D modeling program, the main tool for the realization of the
application, it’s a free game engine with all the features to make the application very
fast: importing the complete information of a 3D model with mesh, animations and
textures, PBR materials, physics simulations, shaders programming, easy UI
implementation and quick export in different resolutions. This is why Unity is chosen,
because is user friendly and powerful for artists. The programming language that will
be used is C#.
● Monodevelop: Mono is the default scripter editor for Unity 5. The alternative is using
Visual Studio 2015 Community.
● GitHub Repositories: Managing remote repositories includes knowing how to add
remote repositories, remove remotes that are no longer valid, manage various remote
branches and define them as being tracked or not, and more.
● Google Docs: Google docs include excels and forms which will be used to create test
reports, write the memory and make graphics. The alternative would be Microsoft
Office.
Tools for making game art:
● Blender Blender is a fully free/open source 3D tool creation pipeline, Blender's
features include 3D modeling, UV unwrapping, texturing, raster graphics editing,
rigging and skinning, fluid and smoke simulation, particle simulation, soft body
simulation, sculpting, animating, match moving, camera tracking, rendering, video
editing and compositing. This program will be the main tool for making the game
assets, as described in the tasks, it fulfils all the 3D pipeline workflow, with its features
described before. Blender is the alternative to program 3DS Max [13]
● 3ds Max Autodesk 3ds Max, is a commercial and professional 3D computer graphics
program for making 3D animations it has a student version also, it has the same
features as mentioned on Blender.[1]
27
● Substance Painter professional program for baking maps, texturing and exporting
maps. Artists using Substance are empowered by its fully non-destructive and
interactive workflow, allowing to make beautiful art faster than ever. This program will
be used for the part of texturing pipeline, Substance Painter can automatically export
the necessary maps for Unity. [12]
● MakeHuman Makehuman is an open source 3D computer graphics software
middleware designed for the prototyping of photo realistic humanoids. It is developed
by a community of programmers, artists, and academics interested in 3D modeling of
characters. [9]
● Photoshop CS6 it's a commercial program so the alternative it would be the free open
source program Krita.
● Krita: Krita is a free raster graphics editor. Krita is designed to be a digital painting
application. It has been influenced to some extent by software like Corel Painter and
SAI. Krita packs with some key features different than most of its kind, including the
ability to work with both bitmap and vector illustration.
28
Chapter 2: Development of the project In this chapter it will be described all the tasks that has been realized to get the project
working. This chapter is the core of the project were all the important steps on how was made
this project and the difficulties, changes and additional features that the project has.
2.0 Planification
As mentioned in the technical proposal the project will follow a waterfall method project, first
the game assets would be made for the development of the application and the the scripting,
programming and tweaking details are done.
Even there is a waterfall method that follow the project, when a first version of each asset
was generated it was imported to Unity for import-export testing, so internally there was a
prototyping of each game asset, and then iterated to make new changes.
29
2.1 Concept art
Concept art is very important in video games industry and also to visual development.
Concept art must be made in several iterations to achieve the final result that is used to get
character sheets.
Face and style exploration was the first thing that need to conceptualize, the character’s face
is a key feature for our application, in Figure 9 and Figure 10 there are some early concepts
and styles for our models. Finally version 1 and 2 from Figure 9 are chosen.
Figure 9
30
Figure 10
Next step is to establish the cloth design, here are some early concepts that the project wants
to follow, simple cloths with an oriental style is the main inspiration to get into a fantasy.
Heavy armor was not considered for this editor because it would be very bulky so light armor,
makes a nice look to the style chosen. Figure 11 shows some early concepts of female
clothes and hairstyles but they weren’t implemented (there aren’t any colors) Bob cut hairstyle
was made and imported to the application as it’s explained in 3d modelling hair and clothes.
Figure 12 shows male cloth concepts that finally were used on female
31
Figure 11
32
Figure 12
All the concepts were made with Krita open source program. Concepting took 15 hours to
complete.
2.2 Creating 3D models
The creation of the 3D models are all made with Blender free software. All the 3d modelling
follows the 3d pipeline creation content that follows the game industry. This steps can be
made in Blender.
1. Pre production, and concept which was described in the previous section,
2. Modelling low poly with a 3D application.
33
3. Sculpting Details with high resolution subdivided model using brushes
4. Painting and Texturing to give the model colors, textures for the shader to use
them to give results like lightning, reflection and ambient.
5. Rigging creating rigs for the characters and objects that move, and control the
movement to create life-like or stylized animations.
6. Animation this adds motion for the characters, 3D animators create poses on a series
of still images that are referred to as frames. By creating a series of poses and playing
it over a certain amount of frames to can create the illusion of movement. The
animation makes the character believable.
2.2.1 Body
To make the body it’s used a base male model made with the software MakeHuman as seen
in Figure 13 and Figure14. Make human makes semi realistic base models. Then the model is
exported and reimported to blender for editing and make it stylized.
34
Figure 13: MakeHuman base model Figure 14: MakeHuman base model
wireframe
Sculpting high poly
Figure 15: Highpoly end details result
With the base mesh imported, the model is subdivided and ready to be sculpted, the matcap
option is toggled on for the clay sensation and better visualization of the sculpt. Then the
model is subdivided with the multiresolution modifier of Blender and then with the sculpt
mode in blender and begin to add details until the final result is achieved as seen in Figure 15.
The model doesn’t have the T-Pose, because breaks both topology and anatomy rules,
considering humans don't walk around with their arms held out to the side. So the model was
35
modeled that is as close as possible to their most common action, for most people is
walking and standing with the arms near at the torso, only occasionally bringing the arms
up, in this project's case the standing or Idle animation is planned to be made for both of the
models.
Figure 16
For the modelling, it was used anatomic references as guidelines: female head is often oval
shaped and male more square shaped, females as see in Figure 16 have greater hips and less
waist, unlike males. To make this stylized, the hand, the eyes and the feet and other features
were exaggerated.
Why do we need the high poly model, if the application needs models with sparse density of
geometry, this part will be explained at the texturing section.
36
Retopology
The high poly assets aren’t suitable for the application so a retopology is need, the base
model has been changed a lot from the MakeHuman model, so it can be used to get the detail
textures. The highpoly models were duplicated and one of them is switched to the lowest
subdivision level in the multiresolution modifier that we used to sculpt the high poly. This
results to a low polygon model with around 5.000 quads then it's modified to have a correct
topology animation.
UV mapping and Texturing
When the low poly is ready the UV textures are need to be placed. Selecting a ring of vertices
with the operation Mark Seam, tells the UV unwrapper to cut the mesh along these edges.
Then the model is unwrapped and “unfold” in a 2d texture plane with a power of two size
texture, in this case 2048x2048 pixels of size, as seen in Figure 17
37
Figure 17
The power of two size is very important because the texture is processed directly to the
graphics card.When the UV are layered the model is ready to be painted over. This process
algo can be made in Blender because it has also a painting feature but instead the program
Substance Painter will be used, this is only a matter of choice for the easy way to paint.
Before painting, baking textures are needed. Texture baking is the process of transferring
details from one model to another.
The baking tool starts a certain distance out from the model (usually a low-resolution model
for game use), and casts rays inwards towards another model (usually a high-resolution
sculpt). When a ray intersects the 2nd model, it records the surface detail and saves that into
a texture map, using the first model's Texture Coordinates.
Baking tools support multiple map types. High-resolution normals go into a Normal map,
occlusion goes into an Ambient occlusion map, etc.
Substance Painter has integrated bakers as seen in Figure 18 so multiple maps for the
painting process can be made usually the normal map and the occlusion map are used in the
standard shaders of Unity so is important to have good results at baking the textures. When
the textures are baked the model can be painted, when the painting is finished, the set of
maps must be exported for Unity. These maps can be seen at the Figures 19: from top to
bottom and left to right:
Normal Map: Normal maps are 3D bump maps that modify Vertex normals to give the
appearance of higher detailed geometry.
Ambient Occlusion Map: are pre-computed calculations of ambient light bounce on a surface.
38
Metallic Smoothness Map: this is a type of specular map which controls how reflective
the surface is, and can adjust the shape of the reflection. Specular usually simulates only the
reflections of the brightest light sources in a scene. This type is often used in Unity.
Albedo/Diffuse Map: Diffuse and Albedo Maps represent only the base colors of a surface, as
plain texture without any source of light.
Figure 18: Substance Painter Baker with default parameters
39
Figures 19
40
Figure 20: Male base with all the textures applied
41
Figures 21 and 22
Figures 20, 21 and 22 Final result with all the textures applied rendered with Substance
Painter
As seen in the Figure 21, the model is a low poly version with all the maps, with the Figure 22
the wireframe is shown in red lines representing the edges of the model.
42
Figure 23 Figure 24
The painting method is using the default round brush and the spray brush, for more believable
skin the areas of the face where the blood is near to the skin are painted with a soft red color
like the nose, the eyelids and the cheeks, as seen in Figure 23. The roughness map goes from
white (no reflection) to black(reflective as a metal)color In the Figure 24 we can see the
metallic smoothness, the darker areas means that the map is going to reflect more light the
eyelids where are usually wet because of the eye are in darker color, also the lips have more
shininess in the face.
With the fast pipeline of painting texture with substance painter, the albedo base texture can
be modified without modifying the metallic smoothness map or the normal map, with this,
different set of texture colors are made to make different skin colors [14]
The final application has two more selectable colors for the skin.
With all the textures baked and painted, the next step is to make the rigging.
43
Rigging the model
The textures are not needed in when rigging and animating so this can be made starting at
the point of the UV Mapping.
There is a Blender addon that adds a generated skeleton human rig, this is the equivalent to
the biped in 3ds max. This addon is called Rigify and creates a meta rig. The meta rig
operates on the principle that once a rig is created, that rig should no longer need Rigify. This
means you can always distribute rigs created with Rigify to people who do not have it and the
rigs will still function completely.
The first step is to add the meta rig and move the bones to be aligned to the mesh as seen in
the Figure 25 the bones are parented with a correct hierarchy also in the metar rig can be
added more bones that are child of the head bone. This is to use to make facial expressions
as seen in the Figure 26 and 27
Figure 25 Figure 26 Figure 27
When the rig is placed, there is a button that generates widgets which are mostly circles and
lines that cannot be seen in Unity. These widgets makes the animation easy to visualize and
without relying with the bones and options to quickly pose the mesh. But with this only the
skeleton is made, we need to apply weight to the mesh to be animated properly, painting the
44
model with the weight paint mode in blender as see in Figure 28 the influence of the spine
represented with a cube around the model dark blue is for no influence and red is most
influence (in this case yellow is the color that represents most of the influence in the mesh).
Figure 28
45
Weight paint mode works the same as a texture painting, but instead colors the painting is
on the influence for the bones. The influence must be painted and work for all the bones or
the animation would display incorrectly.
In Figure 29 we can see a quick pose before animations for testing purposes
Figure 29
46
The facial rig
The facial rig was one of the most difficult and challenging task that was made for this
project.
There are many ways to make facial rigging in blender but the most common are:
1. Using BlendShapes, Shapekeys and drivers: these options in blender stores a group of
vertices, the objective is to move manually the expressions for the six basic emotions-
anger, happiness, surprise, sadness, fear, and disgust to illustrate this emotions
humans move the eyelids, mouth and eyebrows. Then they can be stored in a driver
animation that interpolates the movement of the expression. This method was tested
but difficulties came up for when importing into unity and some animations were not
shown up.
2. Using bones: with the metarig described previously we use the widgets to create
facial expressions keyframed manually as seen in the Figure 30
Figure 30
47
The controls are organized with rig layers of the face are:
1. The Head bone which its parent of all the facial features.
2. The JawLine Bone which controls the mouth http://i.imgur.com/JBk1jtm.gifv
3. The primary facial controls that controls the lips, nose, lower cheeks eyelids and
forehead http://i.imgur.com/YyVp3dx.gifv
4. The secondary facial controls that controls the brows, the upper cheeks and the
double chin and slightly nose and lip features http://i.imgur.com/hmLowB7.gifv
Combining all the layers, facial expressions and deformations can be made as seen in Figure
31.
Figure 31
48
The facial expressions are covered but what about the eyes and the teeth? The eyes are
spheres that are separated from the model and act independently from the face but still is
child of the face to controll traslations and raotations of the head the pivot of the bone has to
be aligned with the center of the sphere so the movement is correctly, additionally the eye
movement creates the efect of fleshy eyes, where the lid and the lashes move along the eyes:
http://imgur.com/gMSn9yJ
The big widget highlighted with blue in the previous gif, controls the two eyes simultaneously,
the two circles inside is to move the eyes independently.
The teeth and the tongue works similar as the eyes, there are two separate meshes but the
difference is that the teeth translates at the same time as the jaw and doesn’t rotate as the
eyes. A solid version can be seen in Figure 32 and wireframe version in Figure 33
Figure 32 Figure 33
49
Animation
Now that the rig is complete with all the custom bones and movement the animation has to
be completed, since we don't have a mocap or cameras to get animations, keyframed
animation is used.
As mentioned before, animation is only a collection of poses that are interpolated, this gives
the illusion of movement. Since the animations of this project are not too much complicated
it was created for each model 4 animations making a total of 8 animations, that are: Idle, Idle
2, LookItself and Pose, the animations are stored as actions in blender, and Unity separates
the actions as takes for the animator controller.
● The idle animation is the default animation that is going to be shown
● The idle 2 animation is going to be shown when time to time mixed with the idle
animation
● The LookItself animation is going to be shown when the model changes. The next gif,
shows the male model Look Itself animation: http://i.imgur.com/M4L2tz0.gifv
● The Pose animation is going to be selected by the user to show the character unique
pose. This makes the character more believable.
With this the asset creation pipeline described at the beginning of this section has been
made. The models are ready to be imported to a game engine like Unity. The models are
exported with the .fbx extension files.
For the project some pose animations were made so the characters don’t feel like they are
dull or stiff, for this, curves on the animation are used keeping in mind the flow and the rhythm
of the figure like in Figures 33.1 and 33.2, keeping these to concepts adds life and dynamism
into the figures, and are used to lead the eyes towards specific lines, contrasts shapes and
50
forms, making easy to follow and way more interesting. The red lines shows the Flow of
the figure and the blue ones the rhythm.
Figure 33.1 and Figure 33.2
2.2.2 Hair and clothes
Hair and clothes are way less complicated than an organic human body. The pipeline used is
similar as described the previous part. Persevere the steps of assets production pipeline is
51
very important, because 3d modelling is a very destructive method that only works
overwriting existing work. This matter is dealt in depth in the conclusion section.
The Figure 34 shows the process of
making the hair:
In blender a base sphere is added
and its scaled where we want the
hair to be placed.
In sculpt mode in the 3D view toolbar
it's enabled the Dynamic Topology.
With the dynamic topology, most of
the sculpting brushes subdivide the
mesh where more details are
needed. Figures 34, 35 ,36 and 37
show the process.
52
Figure 34 and Figure 35
Figure 36 and Figure 37
Of course a low resolution model is needed for Unity to draw it frame by frame so a
retopology is performed by hand with the snap tool to the closest face. The snap tool as the
name indicates, “sticks” the vertex to the highpoly surface. Why this is needed and not any
other mesh? This is for baking details purposes. The rays that hit the baking tool must be
precise to get good looking details. Most common problems of baking is incorrect baking of
the meshes because the rays hits the wrong direction or not targeting correctly the mesh
resulting in a bad visualization texture errors.But before baking normal maps, Uv seams must
be placed before. The Figure 38 describes the process of retopology from top to bottom and
left to right.
53
Figure 38
Figure 39
54
For the texturing, there was no need for color textures since a shader was going to be
used, instead a grayscale value, similar when baking a ambient occlusion map is painted.
Then in the shader the grayscale texture is blended with the color. Figure 39 and Figure 40
shows the long hair map
Figure 40
Texturing hair and clothes is planned to have lots of textures, but this would result a problem:
given the case of for example 15 hairstyle, and each hairstyle has its own texture then in Unity
is necessary to create 15 Material and load them in the application. This has high
computational cost and is less effective, but there is a method that is often used for texturing
environment which is used in this project: Texture Atlas.
A texture atlas is a large image containing a collection of textures, this method is way more
efficient. Loading one material with a 2048x2048 texture size stored, is more efficient than 15
materials with 512x512, because the graphic hardware treats the texture atlas as a single unit.
For this project, there are four texture atlas: one for each gender collection of hair, and two
atlas maps for the cloth, chest and pants. Texture atlas must be unwrapped most uniformly
possible.
55
Creating texture atlas
Blender has a free official addon named Texture
Atlas, this addon as it’s name indicates is for creating
and baking texture atlas. The steps for creating the
texture atlas are:
1. First we import in a file our models each one
with different materials assigned and each
model has its own texture
2. Then, a texture atlas is added as seen in
Figure 41. In this case we have the models
shirt_01 and shirt_02 in the outliner and in the
properties panel we have created the
male_shirt_atlas
3. Specify the size of the texture atlas
4. Start Manual unwrap
5. Unwrap the two models into one UV texture.
As shown in Figure 42.
6. Finish Manual unwrap
7. Bake the textures in the Bake tab (Figure 41)
8. Delete the unused material and assign a
unique one material for shirt_01 and shirt_02
9. Export to unity the material and textures
Figure 41
56
Figure 42
Besides the albedo and the normal map, there is also a anisotropic highlight map, usually
known as comb map. This map y hand painted where the highlight flow with this method:
1. First a cone map with normal map is needed, like shown in Figure 43
2. With the clone stamp in Krita, the normal cone map is sampled and painted over the
area we want to be highlighted.
3. Final result of the map is shown in Figure 44
57
Figure 43 Figure 44
The figures shown previously shown basically the same pipeline for clothes and male hair so
this can be considered a repetitive task in a way, but the thing is in this project the variety and
modularity is key so this process is compulsory.
The work done for 3d modelling has covered roughly near 200 hours and covers most of the
project work, this is a very important step before working on the application.
58
2.3 Development of the application in Unity
2.3.1 Analysis
In this section it will be shown the analysis for the development of the project. Here it will be
explained the methodology and the functionality.
2.3.2 General vision of the application
Unity 5 game engine was the preference to take this project. The language used is C# for the
scripting, the reason is only a matter of preference, because javascript and C# API in Unity
works the same way.
Before getting on the application, what does the user can change from the character?
In the technical proposal is established that the body, the face, clothes and genre,
environment and lightning. In this project it can be changed the eyes, clothes genre
environment and lightning. In the project we haven’t included the body and face changing
because of the different meshes that would contain, resulting into store lots of complex mesh
faces, and a time consuming task.
2.3.3 How does the application work. Functionality
The functionality will be described with use cases and represents all the functions that the
system does. Mostly is how the UI interacts with the user.
59
UC01- Select female
Description Switches to female model
Related UC02
Steps 1.Open the application 2. Press female sign button
Precondition Male model is active
UC02- Select male
Description Switches to male model
Related UC01
Steps 1. Open the application 2. Press male sign button
Precondition Female model is active
UC03- Select daylight environment
Description Switches to daylight environment
Related UC04
Steps 1. Open the application 2. Select daylight button 3. Disables daybreak button
Precondition Daybreak is disabled
60
UC04- Select daybreak environment
Description Switches to daybreak environment
Related UC03
Steps 1. Open the application 2. Press daybreak environment button 3. Disable daybreak environment button
Precondition Daylight is disabled
UC05- Selecting skin tone
Description Selects skin tones for the character
Related UC01, UC02
Steps 1.Open the application 2.Select skin tone
Precondition None
Comments There are various skin tone colors
UC06- Show Head Panel Details
Description The button shows the right panel details
Related UC07, UC08
Steps 1. Open the application 2. Click the head button
Precondition None
Comments This is part of the centered buttons
61
UC07- Show Chest Panel Details
Description The button shows the right panel
Related UC06, UC08
Steps Open the application Click chest button
Precondition None
UC08- Show Leg Panel Details
Description The button shows the right panel
Related UC06,UC07
Steps Open the application Click leg button
Precondition None
UC09- Change Eye hue value
Description A slider which changes the color of the eye
Related UC06, UC10, UC11
Steps Open the application Select head button
62
Hide leg button Hide arm button Change slider
Precondition Select head button
Comments User must click and drag
UC10- Change Pupil size
Description A slider which changes the pupil size
Related UC06, UC09, UC11
Steps Open the application Select head button Hide leg button Hide arm button Change slider
Precondition Select head button
UC11- Change Cat Eyes
Description A slider which changes catlike eyes
Related UC06, UC09,UC010
Steps 1. Open the application 2. Select head button 3. Hide leg button 4. Hide arm button 5. Change slider
Precondition Select head button
63
UC110- Change Face Slider
Description A slider which changes a feature of the face
Related UC06, UC09, UC11
Steps 1. Open the application 2. Select head button 3. Hide leg button 4. Hide arm button 5. Change slider
Precondition Select head button
Comments There are various sliders that can change the nose, the bridge and the lips.
UC12- Change Hairstyle
Description Switches hairstyles with two buttons
Related UC06, UC13
Steps 1. Open the application 2. Select head button 3. Hide Leg button 4. Hide arm button 5. Select Left or Right button
Precondition Select head button
Comments There are two buttons, left and right button
UC13- Change hairstyle color
Description Switches tones of hairstyles
Related UC06, UC12
64
Steps 1. Open the application 2. Select head button 3. Hide Leg button 4. Hide arm button 5. Select Tones
Precondition Select head button
Comments There are multiple colors to change
UC14- Change Leg Cloth
Description There are two buttons that switches cloth panels
Related UC06, UC08
Steps 1. Open the application 2. Click leg button 3. Select left and right panel
Precondition Select leg button
Comments There are two buttons, left and right button
UC15- Change Chest cloth
Description The button Shows the right panel to change the clothes regarding to the chest
Related UC06,UC07
Steps 1. Open the application 2. Click chest button 3. Select left and right panel
Precondition Select chest button
Comments There are two buttons, left and right button
65
UC16- Take screenshot
Description Takes screenshot of the scene and stores it in a folder
Related UC17
Steps 1. Open application 2. Select camera button 3. Takes a shot 4. Saves it in a local folder
Precondition None
Comments Shots are 1920x1080 pixels size, The UI doesn't show in the final shot
UC17- Hide UI
Description Hides the UI
Related UC 16
Steps 1. Open the application 2. Select Eye button 3. Hides UI
Precondition UI is showing and active
The application shows the main scene a female model with pale skin and a daybreak
environment by default.
At first there is shown one left UI panel, at the top with four buttons and a palette of colors, at
the bottom a brief description of how the editor is used.
In addition there are four floating buttons which are near to certain parts of the human body
which have further interaction with the user.
66
The main buttons that are seen on the left panel are the male and female symbols, which
are represented with Mars and Venus symbols from Greek and Roman mythology. These
buttons switch between female and male models.
The reason why the skin tones are shown in the left panel and not in the right one because it
is considered as the skin tone a general feature and not a specific feature like the hair, the
eyes or the clothes.
The skin tones are represented by squares with a color, the model changes it’s skin tone
coinciding with the color [15].
Finally the other two buttons that are represented with a daybreak and daylight changes the
environment lightning and mood to make the character more believable existing in a scenery
and not in a plain and dull background context.
A floating button is considered as the ones that aren't on the right or the left panel, there are
represented as a rounded button and they are the nearest to the model character. There are
four buttons for the character: Head, Arm, Chest and Leg. When one of these buttons are
clicked by the user a right panel appears with details. The right panel is divided in two with a
top panel and a bottom panel by 50%
● Head button: In the top panel, three sliders appear which changes the Eye Hue, Iris
Size and make Catlike eyes. In addition there are two buttons that change the hair. In
the bottom panel there a color samples.
● Arm Button, Chest Button, Leg Button: when one of them are clicked the application
shows at the top panel two buttons the same as used in the hair, to switch clothes.
As the name indicates, the chest changes the shirt, the leg changes the pants and the
arm changes the bracelets.
67
2.3.4 Programming: Scripting
The main programming of the application is the interaction user and the interface, and the
shader programming.
There is a main script named CharacterManagerthat manages the meshes and the textures
stored in arrays. It is assigned in an empty gameobject in Unity hierarchy and is called by the
buttons, which are child of the canvas. This script manages shirt, hair and pants meshes and
it’s called by the central buttons.
There are several important scripts than are called by the sliders. These scripts are:
● EyeManager Changes the sliders Iris Hue, Iris Size, Catlike Eyes
● BlendShapeManager Changes the rest of the face sliders
● BodyChanger Changes the body parts of the sliders (Hips, Hands, Thighs…)
Finally the other scripts are ToneSelectionwhere is used on the hair and the skin, and it
can be reusable for other colored pieces. With the skin there are textures swapping and the
hair is a shader color material swapping, using the function mat.color =
hexColor(R,G,B,A).The function hexColor converts RGBA numbers to values that go
from 0 to 1. TakeScreeenshot takes a screenshot of the scene, without the UI.
The rest of the scripts controls animations (PanelAnimation) and UI(ChangeButtonState).
2.3.5 Programming: Shaders
The shaders in unity are scripts written with cg/HLSL that is written in a variant of HLSL. Since
the project pursues a stylized look a custom Toon Shader is used. The shader receives
mathematical algorithms that changes the visualization of the model.
For the toon shader uses
● Base texture color which is assigned with UV coordinates,
68
● Normal map for showing the details of the model, sharing the UV coordinates with
the base texture
● Ramp Texture: The ramp texture is a custom hand painted gradient where the lightning
follows the illumination.
● Rim Light: with Rim Color and Rim Intensity. Rim light highlights the edges of a
surface based with the normal maps
● Anisotropic texture map, usually known as comb map. Shading that stretches
reflections and highlights in a direction that runs perpendicular to the grain or grooves
in a surface. Contrast anisotropic shading with the more common isotropic shading,
which scatter light evenly in all directions. Figure 45 and Figure 46 shows how the
light works.
Figure 45 Figure 46
69
Eye shader
The eye shader is procedural shader that is included in Substance Painter. When texturing the
model, the eye texture setting where established and exported in a .sbar format, also known
as a Substance Material ™
Later is imported to unity and assigned it to the eye meshes where the UV maps have been
placed precisely to get a correct visualization. Then via script, access to the Substance
Material™ and assign it to the correspondent sliders. In Figure 47 shows the base texture that
is modified.
Figure 47
The rest of the shaders that are shown in Unity are Standard materials that are in Unity by
default.
2.3.6 Lightning and environment
The environment is Unity’s Terrain and painted with tiling ground textures that were made with
Krita. In unity’s terrain there can be placed vegetation as painting over it. The trees are made
with Unity’s Tree that can make procedural trees adding the leaves and the bark material. and
the grass was hand-painted in Krita. The grass image that works the same as an alpha
texture. Then is imported to unity as seen in Figure 48 and wind factor is applied and the
illusion of grass in movement is done. Leaves as seen in Figure 48.1 were hand-painted in
Krita.[16]
70
Figure 48
Figure 48.1
71
Skybox is also an asset store free, the reason that Farland Skies was chosen it’s because
the stylized nature that fitted so well into the project. Figure 49 shows a part of the Daybreak
skybox.
Figure 49
Nearly 80 hours were spent on this block of programming and developing the application in
Unity. The rest of the hours were occupied on the production of this report.
72
Chapter 3: Results In this chapter it will be shown screenshots and scenes that are in the editor. Additionally at
the end of the chapter, a video showing most of the results is provided. Figure 50 shows the
start scene, the first thing the user can see.
Figure 50
73
Figure 51
74
Figure 52
The application runs smoothly and as shown in figure in Figure 52 a variety of characters are
made. All the changes are made in real time and the characters change expressions and
poses. In Figure 51 there are the sliders that change the facial features.
Video download with the results of the project:
https://mega.nz/#!pBACXIYb!H2qfNfWT6fPFB1esV87k5nThk2GoaIVD-QZdnkYAkyw
75
Chapter 4: Conclusions In this chapter of conclusions there will be discussed different points of the project and how
these have been affected over the time.
4.1Game Engines and Unity
Lots of times I read opinions that Unity is not a game engine with the graphic level of Unreal
Engine 4 or CryEngine, even Unity follows a different PBR system that other game engines
have, Unity doesn't fall short related to graphics.
Some investigations were made at the beginning of the proposal, Unreal has far more
possibilities on graphics that Unity hasn’t. For example a visual shader editor and more
possibilities, otherwise Unreal has a high learning curve and it would surpass the hours of the
project.
Nevertheless that doesn’t mean that Unity can’t create shaders, in their documentation Unity
offers a initial guide for shader programming. This documentation was very important for a
great part of the project: shader programing is a very important point for the aesthetics of a
videogame, the possibility to change calculate mathematically how the light is going to react
a surface and derive from well known models like Phong and Blinn shading.
In our case a Toon shader was needed for the stylized look. In the documentation there was a
startup very simple shader and then modifications were made. With this Unity has left me a
great experience about shader programming, since UNity’s last beta version (5.4) has a great
graphic performance.
4.2. Modelling 3D game assets
Our tool of preference is Blender, mainly because is a free open source program, the
alternative 3D software modelling programs would be a rather expensive license. The only
76
licensed program we dispose is Substance Painter, we considered that is was time saving
for texturing and focus more on the application.
3D modelling is often considered an easy or repetitive task, but 3D modelling focused on
video games is something far more complex than simply adding polygons and apply
materials. Technical knowledge is needed for the models to be optimal displayed at the
screen. Lots of doubts appeared when I started modelling: How many polygons should my
model have? How do I organize textures? How many details should my model have?
In this case there is no steady answer that can be applied to most of the cases different from
a pathfinding algorithm, for example.
For this project my work was based on other video game artists of the industry that post they
work online and generate a breakthrough process, like how the model's topology is distributed
or how are organized texture sets.
In any case, the real challenge for making 3D game assets was the rigging and the animation
part. As it was mentioned before, the 3D assets pipeline is a very destructive process. All the
values and keyframes of the animation are lost if the mesh’s origin, scale or topology are bad,
and causes to the artist to make all over again. So, planning how the 3D pipeline is going to
work through the model is very important or it will cause great loss of work, and time.
4. 3. Shaders
A shader’s job is to take the model and render it to the screen with properties and it will be
affect what's is displayed when the mesh is rendered. There are different types of shaders:
there are Surface Shaders which can be great in performance and Fragment Shaders the
main difference is that Surface Shaders don't need a Vertex function to render, which need to
do more work on the information of the pixel part.
77
So the surface shader was the shader that best fit in the project, with a surface shader
there can be made multiple subshader passes where we can actually combine a Toon Shader
and Anisotropic highlight shader.
4.4 Changes from the technical proposal
This project has suffered some changes and in this section will be explained the motives.
4.4.1 OBJ/.DAE/.FBX exporter
One of the objectives of the projects was that it can be exported the models for 3d artist make
further animations. Investigations on this aspects were made and this wasn’t a light task. This
faced some problems like:
● Exporting assets in general from Unity requires mostly to do it from Unity editor, and
not from the application.
● .FBX format is free since 2005, but the library is written in C++
● .FBX format files are Autodesk’s proprietary and it’s needed a third party library. Only
Unity Editor has a FBX importer, Unity can’t create .FBX files since Unity isn’t a
modelling tool.
● The same applies to the other formats .OBJ and .DAE. It’s not possible to create thing
for usage outside of Unity, unless we code explicitly the exporter which would add
excessive hours on our project.
With this points pointed out, it is concluded that Unity Editor is a Tool for making games and
it's not meant to actually create assets,
4.4.2Number of assets
This it was expected as this is a risk, most of the time was put on animations and facial rig.
Only for clothing assets were made, and four more for hairstyles.
78
4.5 General conclusion of the application
The hours spent on the project are more or less the same as described at the technical
proposal. More hours were spent on animation and rigging as it is a complex task specially
facial rig was a new feature that has to be learnt. The less time consuming task was the post
process effects for the camera. Anti Aliasing, Bloom, Color correction, Tone Mapping and
particles, in this aspect Unity has some predefined script for post processing being able to be
customized and get the effects and results we want.
In general I’m satisfied with the project and all the hard work I have spent in it. I would like it to
push it further in a future, creating more meshes and getting more effects and environments.
I’ve learnt so much on modelling and general good looking visualization to be pleasent with
the eye. This project was in my mind from a long time and I’m glad I could finish this.
Chapter 5: Annex and bibliography
[1]"3d Modeling & Rendering Software | 3ds Max 2016 | Autodesk." 3d Modeling & Rendering
Software | 3ds Max 2016 | Autodesk.
[2]"Art of Samwise — Art of Samwise." Art of Samwise — Art of Samwise. Web.
[3]"Champions." Champions.
[4]"Cloud Strife/Dissidia." Final Fantasy Wiki. Web.
[5]"Ekko, the Boy Who Shattered Time - 3D Model DL." By LoL3DModels on DeviantArt. Web.
79
[6]"FINAL FANTASY XIV Promotional Site." FINAL FANTASY XIV. Web.
[7]"LLEU." LLEU. Web.
[8]"Lightning (Final Fantasy XIII)." Final Fantasy Wiki.
[9]"MakeHuman | Open Source Tool for Making 3d Characters." MakeHuman | Open Source
Tool for Making 3d Characters.
[10]"Overwatch." Overwatch. Web.
[11]"Star Guardian Lux - 3D Model DL." By LoL3DModels on DeviantArt. Web.
[12]"Substance Painter." Allegorithmic.
[13]"Blender.org - Home of the Blender Project - Free and Open 3D Creation Software."
Blender.org. Web.
[14] http://i.imgur.com/hYvDdPk.gifv
[15] http://i.imgur.com/pCUE0l5.gifv
[16] https://www.youtube.com/watch?v=u79ECvR6J8E&feature=youtu.be
"ArtStation." ArtStation. Web.
"Asset Store." Asset Store. Web.
"Cg Programming/Unity." - Wikibooks, Open Books for an Open World. Web
"Gamasutra: David Leon's Blog - Next-Gen Cel Shading in Unity 5." Gamasutra Article.
"The Polycount Newsfeed." Polycount. Web
"Shader Part 1." UnityGems. 16 July 2015.
80
Sketchfab. "Sketchfab - Your 3D on the Web." Sketchfab. Web
Williams, Richard. The Animator's Survival Kit. London: Faber, 2001. Print.
"Writing Shaders." Unity. Web
“Rigify and Blender” Unity. Web