Escolar Documentos
Profissional Documentos
Cultura Documentos
CAROLINE PEREIRA
LAGES (SC)
2008
CAROLINE PEREIRA
LAGES (SC)
2008
MODELAGEM E ANIMAÇÃO DE PERSONAGENS HUMANÓIDES 3D
CAROLINE PEREIRA
BANCA EXAMINADORA:
Prof. Ângelo Augusto Frozza, M.Sc. Prof. Viviane Duarte Bonfim, M.Sc.
UNIPLAC UNIPLAC
Prof. Wilson Castello Branco Neto, Dr. Prof. Ângelo Augusto Frozza, M.Sc.
Professor de TCC Coordenador de Curso
3D Três Dimensões
RGBA Red-Green-Blue-Alpha
NUM Numérico
FPS First Person Shooter
TCC Trabalho de Conclusão do Curso
URL Uniform Resource Locator
UNIPLAC Universidade do Planalto Catarinense
RESUMO
Cada vez mais os jogos estão inseridos na vida das pessoas, em várias faixas de idade
em todo o mundo. A modelagem 3D, vem ganhando cada vez mais força, devido o
crescimento desta indústria de entretenimento. Com base nisto, foi realizado um
estudo detalhado sobre quais técnicas são utilizadas para a criação de modelos
humanóides 3D. As técnicas utilizadas para a criação destes modelos levam em
consideração fatores que resultam em modelos com algumas características como:
bom desempenho, mobilidade e interação, tanto para animações quanto para
desenvolvimento de jogos. Este estudo também apresentou como pode ser feito o
emprego destas técnicas dentro do software Blender , que é utilizado para a criação de
modelos, levando em consideração fatores como iluminação, câmeras e renderização.
Algumas técnicas para modelagem são descritas, entre elas o Edge-loop, que trabalha
diretamente com vértices, gerando modelos com baixo número de polígonos, a Base
Mesh, que utiliza figuras para criar a base do modelo e também softwares que podem
ser utilizados para a criação da Base, como o Make Human. O Software Blender é um
software livre que possui algumas características como oferecer funcionalidade para
modelagem, renderização, animação e pós-produção, que são detalhadas neste
trabalho.Características que tornam o modelo utilizável para ambientes de
programação também foram tratadas. O Modelo do conteúdo deste trabalho também
contou com a Armature, estrutura que torna possível que o modelo realize
movimentos, tanto em animações quanto em futuras inclusões dentro de ambientes de
programação. Essas inclusão também foram comentadas, utilizando como ambiente de
programação o Java 3D.
Palavras-chave: Blender, Modelagem 3D, Java 3D, Base Mesh, Edge Loop
ABSTRACT
Each time more the games are inserted in the life of the people, in some bands of age
in the whole world. The modeling 3D, comes gaining each time more which had force,
the growth of this industry of entertainment. On the basis of this, was carried through
a study detailed on which techniques is used for the creation of models humanóides
3D. The techniques used for the creation of these models take in consideration factors
that result in models with some characteristics as: good performance, mobility and
interaction, as much for animações how much for development of games. This study
also it presented as the job of these can inside be made techniques of the Blender
software, that is used for the creation of models, leading in consideration factors as
illumination, cameras and renderização. Some techniques for modeling are described,
between them the Edge-Loop, that works directly with vertices, generating models with
low number of polygons, the Mesh Base, that uses figures to also create the base of the
model and softwares that they can be used for the creation of the Base, as the Make
Human. Blender Software is a free software that possesss some characteristics as to
offer functionality for modeling, renderização, animation and after-production, that
are detailed in this work. Characteristics that also become the usable model for
programming environments had been treated. The Model of the content of this work
also counted on the Armature, structure that becomes possible that the model carries
through movements, as much in animações how much in future programming
environment inclusions inside. This inclusion had been also commented, using as
surrounding of programming the Java 3D.
Keywords: Blender, Modeling 3D, Java 3D, Base Mesh, Edge Loop
SUMÁRIO
RESUMO ....................................................................................................................... X
ABSTRACT .................................................................................................................11
1 INTRODUÇÃO ..........................................................................................................1
1.1 Apresentação .............................................................................................................1
1.2 Descrição do problema ..............................................................................................2
1.3 Justificativa ................................................................................................................2
1.4 Objetivo geral ............................................................................................................3
1.5 Objetivos específicos .................................................................................................4
1.6 Metodologia ...............................................................................................................4
2 TÉCNICAS DE MODELAGEM DE PERSONAGENS HUMANÓIDES............6
2.1 Modelagem 3D ..........................................................................................................6
2.2 Conceitos de modelagem 3D .....................................................................................8
2.2.1 Perspectiva sob a visão humana ....................................................................................... 8
2.2.2 Cor ................................................................................................................................... 10
2.2.3 Iluminação ....................................................................................................................... 10
2.2.4 Radiosidade e Ray-tracing .............................................................................................. 11
2.2.5 Câmeras ........................................................................................................................... 12
2.3 Modelagens de personagens ....................................................................................13
2.3.1 Técnica Edge-loop ........................................................................................................... 13
2.3.2 Base Mesh ........................................................................................................................ 14
2.3.3 Softwares Make Human ................................................................................................... 15
2.4 Animação 3D ...........................................................................................................16
2.4.1 Framerates ...................................................................................................................... 17
2.4.2 Quadros-chave ................................................................................................................ 17
2.4.3 Tipos de interpolação ...................................................................................................... 18
2.5 A teoria do movimento ............................................................................................18
2.5.1 Movimento humano e animal .......................................................................................... 19
2.6 Conclusões ...............................................................................................................21
3 PROCESSO DE MODELAGEM DE PERSONAGENS 3D ................................22
3.1 Requisitos dos personagens .....................................................................................22
3.2 Modelagem do personagem .....................................................................................23
3.2.1 Forma inicial da boca e da face ...................................................................................... 24
3.2.2 Criando os olhos.............................................................................................................. 25
3.2.3 Moldando a cabeça ......................................................................................................... 30
3.2.4 Criando a boca ................................................................................................................ 31
3.2.5 Criando o pescoço e os ombros....................................................................................... 34
3.2.6 Criando o tronco e as pernas .......................................................................................... 37
3.3 Criação do esqueleto................................................................................................43
3.3.1 Colocando a armadura nos braços ................................................................................. 46
3.4 Iluminação e renderização .......................................................................................49
3.4.1 Adicionar uma câmera .................................................................................................... 50
3.4.2 Iluminação ....................................................................................................................... 50
3.4.3 Renderização ................................................................................................................... 52
3.5 Conclusão ................................................................................................................53
4 ANIMAÇÃO DOS PERSONAGENS .....................................................................54
4.1 Animando o personagem .........................................................................................54
4.1.1 Animando a face .............................................................................................................. 59
4.2 Inserindo o personagem dentro do ambiente de programação Java 3D ..................60
4.2.1 Java 3D ............................................................................................................................ 61
4.2.2 Grafo de cena do Java 3D ............................................................................................... 62
4.2.3 Interfaces e classes base do pacote Loader .................................................................... 63
4.2.4 Carregar objetos 3D utilizando loaders.......................................................................... 66
4.2.5 Carregando Arquivo.obj.................................................................................................. 66
4.2.6 Inserindo o Modelo dentro do Cenário ........................................................................... 67
4.3 Inserção do modelo dentro de C++ com Plungin Blitz3D ......................................68
4.4 Modelo dentro de um ambiente 3D .........................................................................70
4.5 Conclusões ...............................................................................................................71
5 CONSIDERAÇÕES FINAIS ...................................................................................72
RERÊNCIAS BIBLIOGRÁFICAS ...........................................................................74
APÊNDICES ................................................................................................................76
1 INTRODUÇÃO
1.1 Apresentação
1.3 Justificativa
1.6 Metodologia
2.1 Modelagem 3D
deveriam interagir com o usuário, executando tarefas das mais variadas. Em 1968, a
única interação com o usuário eram os cartões perfurados, o que dificultava a
variedade de utilidades da máquina. Foi daí que nasceu a idéia de utilizar gráficos e
desenhos para facilitar o trabalho. Assim nasceu a Evans & Sutherland, uma empresa
pioneira no ramo da computação gráfica. Sua principal atividade era a criação de
aplicações gráficas para simulação. Nela nasceram os primeiros conceitos de desenho
vetorial, representação tridimensional em ambiente bidimensional, mapeamento de
texturas, entre outros avanços (STRACCIA, 2002).
Com a evolução do hardware e, principalmente, do software, viu-se coisas
inacreditáveis no cinema. Quem diria que, em 1991, se veria um ser de metal líquido
se transformar numa pessoa (Exterminador do Futuro 2). Em 1993 os dinossauros
voltaram à vida através do computador, em Jurassic Park. Em 1995 o primeiro filme
criado no computador, Toy Story (STRACCIA, 2002).
Nos dias de hoje, vive-se várias revoluções ao mesmo tempo. Uma delas é a
democratização das ferramentas de animação e computação gráfica. Praticamente
todos os softwares de animação acabaram sendo migrados para a plataforma Windows.
Há alguns anos, para se ter um equipamento capaz de rodar esses softwares, era
necessário uma plataforma Silicon Graphics (sob o custo de pelo menos US$
10.000,00), e um programa de animação que custava a metade, ou até mais que o valor
do hardware (STRACCIA, 2002).
Muitas produtoras de animação se aproveitaram dos baixos custos atuais pra
entrar no mercado e mostrar o seu valor. Outros fatos importantes que estão
revolucionando o mundo da computação gráfica:
O cinema digital, que está reduzindo os custos e facilitando a
manipulação das imagens e cenas no computador;
As novas ferramentas de animação, que estão eliminando as tarefas
repetitivas e dando mais tempo aos artistas para aprimorarem as técnicas
mais complexas;
Hardwares cada vez mais poderosos, que estão diminuindo o tempo de
render e de pré-visualização.
8
Porém se este dado estiver colocado em cima de uma mesa e for observado num
ângulo de aproximadamente 45 graus em relação à própria mesa, será possível ver até
três faces ao mesmo tempo, a de cima e duas laterais. Desta forma, existem três pontos
de fuga, ou uma perspectiva de três pontos.
2.2.2 Cor
2.2.3 Iluminação
Um dos fatores importantes para obter imagens com alto grau de realismo é a
utilização correta de iluminação do ambiente dos objetos. A mudança na intensidade
de luz refletida ao longo de uma superfície de um objeto fornece informações sobre a
forma e a curvatura da superfície desse objeto. Se não for gerada uma variação na cor
1
NEIDER, J.; DAVIS, T.; MASON, W. OpenGL Programming Guide (AddisonWesley, 1993).
11
dos pontos da superfície, a identificação do objeto pode ser tornar difícil (AZEVEDO;
CONCI, 2003).
É através da iluminação que obtém aquele reflexo perfeito em metais e vidros,
sombras bastante convincentes e uma coloração natural dos objetos.
Como exemplo, seguem cinco tipos de iluminação utilizados pela ferramenta de
modelagem 3D Blender e, também, o Java 3D, as quais serão utilizadas para o
desenvolvimento deste trabalho. Esses tipos também comuns na maioria das
ferramentas de modelagem 3D disponível no mercado:
Lamp: Simula a iluminação obtida com uma lâmpada, ou seja, a luz se
propaga em todas as direções;
Spot: O efeito obtido com esse tipo de iluminação é similar ao daqueles
canhões de luz, que direcionam o faixo para um determinado ponto. Ele
projeta um cone de luz indicando o alvo a ser iluminado;
Área: Esse tipo de luz tem um componente similar ao tipo spot, com a
diferença de que não é gerado o cone de luz. Pode-se compará-lo a um
refletor que ilumina indiretamente uma determinada parte da cena;
Sun: Resulta em uma iluminação na qual a luz possui uma intensidade
constante e é distribuída em todas as direções. É como se a cena
estivesse sendo iluminada pela luz solar;
Hemi: Esse tipo é muito peculiar, pois simula uma iluminação obtida
através de um refletor de formato hemisférico, como uma abóboda. Em
outros softwares de modelagem ele pode ser encontrado com o nome de
luz omni sua característica principal é não projetar sombras.
Quando um objeto é atingido por uma luz, parte dela é absorvida e parte é
refletida. Se o objeto se encontra no caminho dessa luz refletida ela o atinge também e
depois é novamente refletida. O processo se reflete até que não haja mais objeto a ser
iluminado pelo raio de luz dentro da cena. Esse fato é conhecido como radiosidade e se
encontra disponível nos softwares que efetuam a renderização, utilizando a técnica do
12
2.2.5 Câmeras
O uso de câmeras é muito importante, seja para gerar imagens estáticas, seja
para animar uma cena. Deve-se ter um cuidado extra ao escolher a posição que a
câmera deve ocupar para não correr o risco da cena ser truncada em alguma parte
(ALVES, 2006).
Além do posicionamento correto da câmera é imprescindível uma escolha de
tipo (ou tamanho) de lente que seja adequado ao resultado que se espera obter. O tipo
de lente padrão do Blender é de 35mn, mais é possível configurar esse valor entre 1mn
e 250mn (ALVES, 2006).
Configurações de lentes menores que 50mn são comumente denominadas
lentes de ângulo aberto, devido ao fato do campo de visão captada ser maior que o
campo de visão do olho humano. Nesse caso, os efeitos de perspectivas são gerados,
podendo até mesmo haver distorção das imagens. Por outro lado, lentes maiores que
50mn aproximam a cena mais do que você conseguiria com seus olhos. Elas são
chamadas de lentes telefoto. A principal característica dessas lentes é que tentam
aplanar a perspectiva dos objetos (ALVES, 2006).
13
poligonais aparentes?
A resposta para isso foi simples: se o movimento do rosto é feito através de
músculos, o 3D teria que se movimentar da mesma forma. Um exemplo de base Edge-
loop na Figura 2.
Essa técnica consiste em através da Base Mesh importar uma imagem para
servir de base para a construção do modelo 3D desejado (ALVES, 2006). A Figura 3
apresenta um exemplo da técnica.
Esta é uma das técnicas mais utilizada, porém deve-se tomar cuidado, pois o
uso somente dela ao invés de gerar um modelo que tenha a possibilidade de
dinamismo, pode gerar uma estátua, sem possibilidade de se movimentar. Por isso,
combinada com esta técnica utiliza-se também a técnica Edge-loops, citada
anteriormente (TABAJARA, 2006).
15
2.4 Animação 3D
2.4.1 Framerates
2.4.2 Quadros-chave
2.6 Conclusões
geralmente são representados através de triângulos. Porém, para criar objetos com um
alto grau de definição se exige um grande número de polígonos. Mas muitas vezes isso
não é possível, então se opta pelo corte de alguns polígonos, sempre tomando cuidado
para a imagem não ser prejudicada. Para evitar a perca de detalhes essa técnica
geralmente não abrange a cabeça do modelo, pois com baixo número de polígonos,
detalhes pequenos como os dos olhos passam despercebidos. Quando a técnica é
aplicada deve-se tomar cuidado especialmente com partes pequenas, dependendo do
número de polígonos reduzidos. Um exemplo de modelagem utilizando essa técnica
pode ser observado na figura 10.
último o tronco e as pernas. A técnica utilizada para a modelagem dos personagens foi
a Edge Loop.
Primeiro esboça-se uma boca. Não existe um padrão para isso, e depende do
modelo que se deseja criar. Após esboçar a boca é necessário utilizar o ALT BMB
sobre o Edge Loop, isso selecionará todos os vértices, como mostrado na Figura 10.
Para habilitar edição de novo dos vértices basta pressionar a letra O e dar à
25
boca uma forma movendo alguns vértices com o G. Para isso, pode-se usar duas vistas;
a vista frontal (TECLADO NUM 1) e a vista lateral (TECLADO NUM 3) para melhor
visualizar o rosto e dar a ele forma.
Para a modelagem dos olhos, foram criados dois espaços em que os olhos
são encaixados. Assim, moldam-se as malhas de vértices criando esses espaços. Este
tipo de olho, colocado no espaço criado entre os vértices, chama-se olho socket.
Segue alguns passos:
Fazer um círculo cortado (Ctrl R) selecionando o local em que são
26
colocados os olhos;
Em seguida, selecionam-se os vértices e apagam-se as bordas. Para apagar
somente as bordas dos vértices deve-se pressionar X e em seguida opção
Edge. Os vértices permaneceram, mas a bordas são eliminadas. Isto faz
um buraco na malha, como mostra na Figura 14;
Um detalhe importante é que o olho deve ser separado da face, para que
possa rodar livremente. Isto não será possível se juntar os vértices da malha existente.
Em vez disso, vai-se acrescentar um outro objeto a malha.
Para criação de um novo objeto, deve-se alterar para o modo Object (tecla
TAB) e depois adicionar um objeto UV Sphere (tecla de espaço, opção Add >> Mesh
>> UV Sphere). A partir deste ponto é solicitado o fornecimento do número de
segmentos e anéis. Para este caso foram utilizados 8 anéis. Pode-se também clicar na
seta ou botões LMB Image. Após, sobre a caixa para digitar este valor. A Figura 15(a)
mostra o objeto criado.
Após isso, adiciona-se uma malha automaticamente e o modo muda para o
Modo Edição. Volta-se, então, para Object Mode (TAB), movendo-se o olho para o
lugar desejado. Usando os botões G e S pode-se aperfeiçoar o olho. é necessário alterar
27
(a) (b)
FIGURA 15 - Adicionando uma Sphere (a) e localizando o olho no
local criado
Após o olho estar posicionado no local desejado, para poupar tempo pode-se
duplicá-lo. Existem algumas maneiras de fazer isso, uma delas é o chamado
espelhamento, que faz algo semelhante a um espelho, simetricamente idêntico ao
objeto original (no caso o olho), porém neste caso não será satisfatório, pois se precisa
manter a separação entre a malha do olho e a da face. Então será seguido outro passo
para duplicar o olho separadamente. Primeiramente deve-se estar no Modo Object.
Após deve-se selecionar a malha, e usar a ferramenta Snap Shift, mostrada na figura
16. Selecionando-se então o olho, com o olho ainda selecionado, utiliza-se Shift+D
para duplicar o olho. E Ctrl + M >> informando ‘X’ como posição do local para
espelhar a duplicata do olho. Voltando então para o modo padrão. A Figura 17
apresenta os dois olhos posicionados.
28
Após isso, pressiona-se Ctrl+R para obter mais alguns vértices, puxando
então os novos vértices para frente e para baixo com o G pressionado, começando a
formar a pálpebra. Repete-se esta ação quantas vezes for necessário, formando-se uma
pálpebra, como pode ser visto na Figura 21.
30
Foi, então, deslocados três vértices, alongado-os para formar o pescoço para
baixo, como na extruturação do peito na frente e atrás as costas (Figura 31).
35
ganhe forma, ao longo do braço a grossura dos anéis deve ser alterada, para que ele
fique o mais parecido possível com braço humano.
Levando em consideração que este modelo, por ser voltado a jogos, e não
poder conter um número elevado de polígonos para se tornar mais leve, a mão não foi
muito detalhada. Para isso, basta alongar mais alguns anéis de vértices, um pouco mais
grossa, para se diferenciar do restante do braço (Figura 34).
superior (tecla S), para facilitar o trabalho (Figura 35). Sendo, então, fechada a mão, e
criado o polegar.
Para modelar o polegar, criou-se uma extrusão (extrude), fazendo com o que
polígono selecionado fosse expandido, se exteriorizando, dando forma ao polegar visto
na figura 35.
Após isso, foi modelada a raiz da perna, tornando-a um pouco mais circular.
A exteriorização das pernas seguiu o mesmo princípio da criação dos braços. A Figura
40 apresenta as pernas criadas.
Depois disto basta selecionar todos os vértices e moldar, para que fique com
formas mais humanas. Tentando deixar o maior número de vértices possíveis no local
onde formam os joelhos, assim facilitando posteriormente, a etapa de animação. A
figura 41 apresenta esta modelagem.
40
Ao final desta etapa da modelagem o modelo pode ser visto na figura 47.
43
Para animar o personagem é impossível mover vértice por vértice, por isso,
no Blender e em algumas outras ferramentas de modelagem, usa-se a Armature, que
serve como uma base, que funciona como um esqueleto, fazendo com que o objeto se
mova, neste caso o personagem.
Uma armadura deve ser composta de muitos ossos. Cada osso pode ter
alguns vértices atribuídos. Assim, quando um osso se move, apenas os vértices
atribuídos a ele se movem. A meta é estabelecer os ossos de modo que ao mover um
osso, haja um suave movimentação do osso vizinho, para se tornar um movimento
mais real. Nesta etapa foi utilizado o Mirror modifier para facilitar o trabalho.
Para isso, com a malha selecionada, acessa-se o botão editar e, na opção
Mirror Modifier, clica-se em aplicar (aplicando o modificador Mirror para fazer o
espelhado dos vértices reais) como mostra a figura 48. Basta clicar na mensagem e
44
Para incluir uma armadura, deve-se selecionar a opção Add Armadure Object
pressionando a tecla de espaço, opção add, selecionando armature.
Assim que é adicionada a armadura, a qual é composta por um único osso.
Como com as malhas, existem dois modos Object e Editar, e quando se adiciona uma
armadura entra-se automaticamente no modo Editar. Pode-se dizer que está no modo
Editar quando se vê amarelo (selecionado) ou rosa (não selecionado) nas extremidades
dos ossos. Cada osso tem um ROOT (início do osso) e um TIP (final do osso).
Com a armadura selecionada, algumas definições importantes sobre a edição
podem ser encontradas, dentre elas:
45
Com esses detalhes observados, basta, a partir deste primeiro osso, adicionar
os demais, sendo a coluna formada. A Figura 62 apresenta a coluna com os ossos que a
compõem.
Com um osso selecionado, ainda é possível alterar o nome do osso na opção
Modificar botões do painel armadura dos Ossos (Armature Bones). Esta é uma etapa
importando, onde foi selecionado cada um dos ossos da coluna vertebral nomeados.
Nesses casos, os nomes foram a partir das bases, spine1, spine2, spine3, spine4,
spine5, pescoço e cabeça.
46
Deve-se ter cuidado com os nomes desses ossos. Depois de formar os dois
lados (direito e esquerdo) dos ossos, os mesmo são nomeados. Porém como eles são
equivalentes, é padronizado a inclusão das letras L e R para identificar como direito
(rigth) e esquerdo (left). A figura 54 apresenta os osso, criados e nomeados.
Após isso, é realizado o mesmo procedimento para criação dos ossos das
pernas e pés. Primeiramente foi criado os ossos que unem as duas pernas com o
restante do corpo (figura 55), fazendo com que esses ossos funcionem como eixo o
48
personagem.
Nesta etapa é possível escolher qual lente da câmera é a mais adequada para
o personagem, o Blender possui vários tipos de lentes, como descrito no capítulo 2. No
modelo da figura 58 a lente da câmera é de 20mn.
3.4.2 Iluminação
Após a criação das lâmpada Hemi, e com ela ainda selecionada, foi
pressionada Alt+R para limpar rotação. Assim, a sua direção ficou indicada por uma
longa linha tracejada: que agora é apontada para baixo. Pode-se mover a lâmpada para
qualquer lugar, neste caso a lâmpada, foi deixada um pouco a frente do modelo. Como
apresentado na figura 60.
3.4.3 Renderização
Para visualizar melhor o modelo, o mesmo deve ser renderizado, assim pode-
se ver como o modelo fica com os ajustes de iluminação. Neste caso, a cena só possui
um objeto, as mudanças não foram muito significativas, mas em casos de mais objetos
em cena, a renderização se torna muito importante. Na figura 61 pode-se ver o modelo
renderizado.
3.5 Conclusão
Uma nova janela de configuração é criada. Esta janela deve ser alterada
para o tipo Action Editor, como apresenta a figura 64.
55
Na janela de ação existem várias linhas, ou canais, e cada uma tem um nome
que corresponde a um osso na armadura selecionada. Cada canal está ligado ao osso.
Quando se seleciona um osso, o canal correspondente é selecionado, o mesmo
acontece se um canal é selecionado, o osso correspondente também é selecionado. Na
Figura 67 é apresentado o canal lower_arm.l selecionado.
FIGURA 67 - Canais
4.2.1 Java 3D
Cada cena gráfica deve possuir um único universo virtual, representado por
um objeto tipo VirtualUniverse. É o universo virtual que o desenvolvedor irá
preencher com geometrias, luzes e outros elementos. O objeto locale serve para definir
uma área geográfica no universo virtual que por default é centrada na coordenada 3D
(0, 0, 0).
Um grafo de cena pode conter muitos subgrafos, porém, por mais simples
que seja o programa, tem que se criar no mínimo dois subgrafos: o primeiro,
denominado de subgrafo de contexto, contenham os objetos que fazem parte da cena
virtual (geometrias, luzes, cenário etc.) e o outro denominado subgrafo de
visualização, possuirá todos os objetos necessários para criar, posicionar, direcionar e
movimentar a câmera virtual, pois mesmo que se tenha criado o cenário, sem a câmera
o seu mundo virtual não poderá ser visualizado (MALFATTI e FRAGA, 2008a). A
figura 74 mostra essa divisão do grafo de cena.
Essa divisão ocorre pelo fato de que é preciso separar os objetos
responsáveis pela câmera dos objetos que estão na cena, pois caso contrário, sempre
que movimentar a câmera, os objetos do cenário se movimentaram junto com ela.
Como exemplo, um jogo FPS (First Person Shooter), em que o cenário pelo
63
qual anda o personagem possui vários objetos em movimento. Pode-se dizer então que
todos os objetos do cenário, bem como o próprio cenário, estarão contidos no subgrafo
de contexto. Já o braço do personagem e sua arma (supondo que o FPS seja estilo
Doom) estarão contidos no subgrafo de visualização, pois devem movimentar-se
juntamente com a câmera. A figura 75 apresenta um exemplo desta representação em
um grafo de cena.
FIGURA 75 - Jogo FPS e uma possível representação para o seu grafo de cena
comportamentos na cena.
LOAD_LIGHT_NODES: Permite o carregamento de objetos tipo
Light na cena.
LOAD_SOUND_NODES: Permite o carregamento de objetos do tipo
sound na cena.
LOAS_VIEW_GROUPS: Permite o carregamento de objetos do tipo
view (câmera) na cena.
Além das interfaces, o pacote Loader tem as seguintes classes base que
implementam estas interfaces:
LoaderBase: Implementa: Loader - Classe base abstrata que pode ser
usada como um ponto inicial para um Loader. Um Loader para um
formato de arquivo específico poderia estender esta classe e implementar
seus métodos.
66
Como essas classes são geralmente utilizadas para a criação de novos Loaders,
não iremos nos deter em seus métodos.
Após serem feitos mais estudos, se viu que o Java 3D juntamente com a IDE
NetBeans 6.1 nem sempre é a melhor opção para a criação de jogos, com isto uma
nova opção foi encontrada, devido a grande aceitação por parte de programadores
especializados em jogos, também se apresentará a inserção do modelo dentro de um
ambiente de programação em C ++, no caso o Visual Studio, utilizando também um
Plugin do próprio Blender, o Blitz3D.
O Blitz3D possui a sintaxe Basic e tem suas funcionalidades gráficas
baseadas em DirectX. É uma ferramenta ideal para desenvolvimento de jogos,
aplicativos gráficos, simuladores e realidade virtual para pequenas empresas, projetos
de baixo custo, desenvolvedores autônomos, ou para iniciantes.
Ele encapsula DirectX e fornece uma interface simples e intuitiva para
manipular essa poderosa API. Dessa forma, você pode criar aplicativos surpreendentes
69
Câmera
W = Cima
S = Baixo
4.5 Conclusões
BICHO, A.L.; SILVEIRA JR, L.G.; CRUZ, A.J.A.; RAPOSO, A.B. Programação
Gráfica 3D com OpenGL, Open Inventor e Java 3D. Revista Eletrônica de Iniciação
Científica (REIC). Vol. II, n. I, Março 2002. SBC, Brasil. Disponível em: <
http://www.tecgraf.puc-rio.br/~abraposo/pubs/reic2002/ProgramacaoGrafica.pdf>.
Acesso em: 16 junho 2008.
SBC. Jogos e educação. Computação Brasil, Bento Gonçalves, ed. 0327, p. 19,
jun.jul.ago. 2007.
SENNA, O. A arte interativa. Computação Brasil, Bento Gonçalves, ed. 0327, p. 16,
jun.jul.ago. 2007.
APÊNDICE 1 – ARTIGO...........................................................................................72
Apêndices I - Artigo
Resumo. Cada vez mais os jogos estão inseridos na vida das pessoas, e em várias
faixas de idade, com o crescimento dessa indústria o artigo tem como objetivo
demonstrar algumas técnicas utilizadas para a criação de modelos, utilizando o
Software de modelagem 3D Blender. Os modelos criados tanto podem ser inseridos
dentro de um ambiente de programação 3D, quanto utilizados para a animação. As
técnicas utilizadas para a criação do modelo levam em consideração fatores que
resultam em modelos com bom desempenho, mobilidade e interação.
Abstract.. Each time more the games are inserted in the life of the people, and in
some bands of age, with the growth of this industry the article have as objective to
demonstrate to some techniques used for the creation of models, using the Software
of modeling 3D Blender. The models bred in such a way can be inserted inside of a
programming environment 3D, how much used for the animation. The techniques
used for the creation of the model take in consideration factors that result in models
with good performance, mobility and interaction.
1. Introdução
2. Técnicas de modelagem 3D
A modelagem tridimensional ou modelagem 3D é uma subárea da computação gráfica que
tem como objetivo a criação de objetos em três dimensões.
Possivelmente o processo mais complexo e mais gratificante de modelagem em 3D
com certeza é a modelagem de um personagem. Construí-lo do começo ao fim, do rascunho à
animação, é um dos pontos máximos de qualquer modelador 3D (TABAJARA, 2006).
Infelizmente, não basta apenas saber desenhar e modelar um personagem bonito, para que
esse trabalho seja reconhecido e tenha chances de mercado. É preciso um pouco mais. É
preciso que sua modelagem, além de ser atrativa, seja funcional. Para que isso ocorra existem
várias técnicas, dentre elas: Edge-loop, Base-Mesh.
2.3 Softwares
Outra forma para construir modelos 3D é utilizando softwares que constituem partes
específicas do modelo e depois podem ser importado pelo Blender, ou outro software
utilizado para a modelagem 3D.
O software Make Human é um dos softwares que vem auxiliar na construção de
modelos humanóide. Ele pode ser usado como uma espécie de plugin do Blender, e é capaz de
gerar um modelo humanóide completo, possibilitando vários ajustem que podem contribuir e
muito para a construção do modelo final.
Ele é um software de fácil manipulação que permite regulagens como, peso, altura,
formatos de boca, nariz, olhos, testa, cabeça, mãos, ombros, massa muscular, etc. Porém os
79
modelos gerados por ele são a melhor opção para modelos que serão utilizados dentro de
ambientes de programação, pois os modelo gerados possuem muitos vértices, e isso torna o
personagem modelo lento e pouco funcional.
2.4 Blender
O Blender é uma ferramenta gráfica que permite a criação de conteúdo 3D e oferece
funcionalidade para modelagem, renderização, animação e pós-produção. Através de recursos
como o Game Engine, o Blender gerencia conteúdos interativos 3D com execução remota,
entre outros recursos, e ainda é uma ferramenta gratuita e de fácil acesso, com base nestes
atributos este foi o Software escolhido para a produção dos modelos.
Outros fatores dos softwares também tem influencia direta sobre os modelos criados
como, cores, iluminação, Radiosidade e Ray-tracing, e câmeras. E o uso de recursos como, o
uso de Framerates, quadros chaves e interpolações.
para isso, depende do modelo que se deseja criar. Depois disso começa-se a dar forma a parte
da frente do rosto, alongando esses vértices, sempre buscando dar alguma forma a eles. A
seqüência de imagens da figura 1 demonstra esses passos.
Para a modelagem dos olhos, foram criados dois espaços onde os olhos são
encaixados, assim, moldam-se as malhas de vértices, criando esses espaços. Este tipo de olho,
colocado no espaço criado entre os vértices, chama-se olho socket.
Um detalhe importante é que o olho deve ser separado da face, para que possa rodar
livremente. Isto não será possível se juntar os vértices da malha existente. Em vez disso, vai-
se acrescentar um outro objeto a malha. O olho, com isso o Blender tratará o malha existene
como um objeto, e os olhos como outro. O que poderá dar ações diferentes para cada um
deles.
Para criar o objeto que será o olho deve-se adicionar o UV Sphere. A partir deste
ponto é solicitado o fornecimento do número de segmentos e anéis. Para este caso foram
utilizados 8 anéis.
Após isso, adiciona uma malha automaticamente e o modo muda para o Modo Edição.
Volta-se então para Object Mode, movendo-se o olho para o lugar desejado. Usando os botões
G e S pode-se aperfeiçoar o olho.
Após isso, usa-se a técnica Set Smooth e adiciona-se um modificador Subsurf para
fazer o olho ficar com uma aparecia mais suave, sem tantos vértices.
Após o olho já estar posicionado no local desejado, para poupar tempo pode-se
duplicá-lo, existem algumas maneiras de fazer isso, uma delas é o chamado espelhamento,
que faz algo semelhante a um espelho, algo simetricamente idêntico ao objeto original (no
caso o olho), porém neste caso não seria satisfatório se ele fosse espelhado diretamente, pois
se precisa manter a separação entre a malha do olho e a da face, então para isso é necessário
primeiro isolar o objeto olho, e espelha-lo separado do restante da malha
Como já comentado anteriormente, os olhos terão movimentos separados dos do rosto,
para isso ser possível é necessário colocar os olhos em uma camada diferente da camada onde
o rosto estiver. Para isso se tem a matriz de botões na parte inferior da janela 3D (botões
Layer), ou as teclas numéricas na linha superior do teclado. Os olhos serão movidos para
Camada 2.
A próxima etapa na criação desse personagem foi o preenchimento das lacunas dos
olhos, criando-se as pálpebras. Para isso, move-se os vértices ao redor dos olhos chegando o
mais perto possível dos olhos, até que não haja nenhuma lacuna, entre o olho e o rosto
Para concluir a modelagem da cabeça foram necessários vários ajustes, sempre girando em
81
torno da localização dos vértices e o número dos mesmos. Para isso foi aumentado o tamanho
dos vértices, fazendo com que a cabeça ficasse com uma forma oval. Desta forma selecionam-
se alguns vértices e vai expandindo-os para trás. Por fim basta fechar os buracos restantes,
sempre buscando alongar 4 vértices por vez, para manter uma malha mais firme.
Para aprimorar a boca se arrasta os vértices que formam os lábios para traz formando
um buraco em direção ao interior da boca. Faz-se isso até que toda a boca receba um
alongamento de vértices, e isso forme a cavidade Oral. Após isso, foram criados alguns
vértices com o objetivo de dar mais volume aos lábios, e por fim, foi realizado um aumento de
vértices, até o fechamento da boca. Com a criação desses vértices, foi possível fazer uma
distinção entre face, lábios e boca. Sendo a partir deste ponto necessário basicamente pegar os
vértices e move-los. Ao final o modelo deve estar parecido com o da figura 2.
ganhe forma, ao longo do braço a grossura dos anéis deve ser alterada, para que ele fique o
mais parecido possível com braços humanos.
Levando em consideração que este modelo, por ser voltado a jogos, e não poder conter
um número elevado de polígonos justamente para se tornar mais leve, a mão não foi muito
detalhada. Para isso basta alongar mais alguns anéis de vértices, um pouco mais grossa, para
se diferenciar do restante do braço. A mão possui apenas um dedo, o polegar.
A modelagem do tronco, segue os mesmo princípios apresentados anteriormente,
bastando realizar a extrusão dos vértices, sendo que no final do tronco, foi necessário criar um
espaço para as pernas. Fazendo com que posteriormente elas possam ser encaixadas. E e o
espaço entre as duas penas deve ser fechado.
Após isso, foi modelada a raiz da perna, tornando-a um pouco mais circular. A
exteriorização das pernas seguiu o mesmo princípio da criação dos braços.
Depois disto bastou selecionar todos os vértices e moldar, para que ficassem com
formas mais humanas. Tentando deixar o maior número de vértices possíveis no local onde
formam os joelhos, assim facilitando posteriormente, a etapa de animação.
Por fim os pés foram criados, selecionando-se alguns vértides da frente do tornozelo e
aumentado-os, fazendo todo o contorno do pé e depois preenchendo as laterais com a criação
de novos vértices. Ao final desta etapa da modelagem o modelo pode ser visto na figura 3.
Blender e em algumas outras ferramentas de modelagem usa-se a Armature, que serve como
uma base, que funciona como um esqueleto, fazendo com que o objeto se mova, neste caso o
personagem.
Uma armadura deve ser composta de muitos dos ossos, Cada osso pode ter alguns
vértices atribuídos. Assim, quando um osso se move, apenas os vértices atribuídos a ele se
movem. A meta é estabelecer os ossos de modo que ao mover um osso, haja um suave
movimentação do osso vizinho, para se tornar um movimento mais real. Nesta etapa foi
utilizado o Mirror modifier, para facilitar o trabalho.
Primeiramente o Mirror modifier habilitado, feito isso, foi acrescentado o esqueleto ou
armadura. Para tirar proveito das ferramentas de modelagem simétricas, fez-se com que o
centro da armadura ficasse no o centro do personagem.
Para incluir uma armadura, deve-se selecionar a opção Add Armadure Object. É
adicionada a armadura, a qual é composta por um único osso, basta a partir deste primeiro
osso, adicionar os demais, sendo a coluna formada.
Com um osso selecionado, ainda é possível alterar o nome do osso na opção Modificar
botões do painel armadura dos Ossos (Armature Bones). Esta é uma etapa importando, onde
foi selecionado cada um dos ossos da coluna vertebral nomeados. Nesses casos, os nomes
foram a partir das bases, spine1, spine2, spine3, spine4, spine5, pescoço e cabeça. Para se
criar os ossos do braço foi selecionada a ponta do Spine4, e clica-se Shift+E para criar um
novo osso. Com a ponta do ombro ainda selecionado, sendo os mesmo passos seguidos até
colocar todos os ossos no braço.
Após isso, foi realizado o mesmo procedimento para criação dos ossos das pernas e
pés. Primeiramente foi criado os ossos que unem as duas pernas com o restante do corpo,
fazendo com que esses ossos funcionem como eixo o personagem.
Depois de criados, os ossos foram nomeados, levando em consideração os mesmos
padrões dos ossos do braço. Após a criação de todos os ossos, bastou a realização de alguns
ajustes tais como tamanho e posicionamento, melhorando o esqueleto do personagem. Os
ossos criados sofrem uma hierarquia, pois um osso de hierarquia superior, faz com que todos
os seus inferiores se movimentem. Esta hierarquia deve ser configurada, informando quem
será o pai e o filho. Os ossos neste etapa são identificados como Bone.
Assim, o bone pai tem controle sobre o bone abaixo dele na hierarquia, se move o
bone pai, o bone filho se move junto, mas se mover o bone filho o bone que está acima dele
na hierarquia não se move junto.Ao final desse processo, o modelo deve estar com a
Armadura completa e os ossos nomeador, com na figura 4.
84
4. Animação do personagem
Nessa etapa foi criada uma série de movimentos, utilizando o esqueleto montado e
apresentado na etapa anterior. No Action Editor que foram criadas as ações faciais,
movimentos de cabeça, braços etc.
Será apresentada aqui uma animação, somente para explicar alguns princípios da
animação, sendo os mesmos repetidos posteriormente. Para isso é feito um movimento com o
braço do modelo. Deve-se deixar a opção o Auto IK off, para que possa-se mexer o osso do
braço.
Com os ossos na posição, pode-se acrescentar as chaves. Uma chave descreve a
orientação de um osso: a sua localização, rotação, e tamanho. De modo geral, só se deseja
adicionar as chaves para os ossos que realmente fazem algum movimento.
Na janela de ação existem várias linhas, ou canais, e cada uma tem um nome que
corresponde a um osso na armadura selecionada. Cada canal está ligado ao osso. Quando se
seleciona um osso, o canal correspondente é selecionado, o mesmo acontece se um canal é
selecionado, o osso correspondente também é selecionado.
85
Na Figura 5 pode-se notar alguns pontos amarelos, estas são as chaves da animação. Eles
estão alinhados ao longo de uma linha verde, que indica que o quadro de animação.
Atualmente se está no frame 3, sendo todas as chaves acrescentadas neste frame.É através
desses frames que são feitas as animações.
Passando para o frame 5 e habilitando a opção auto keyframing o Blender insere
automaticamente um novo quadro chave caso seja movido um osso.
Na figura 6 pode ser observado um quadro chave, sendo que foi movimentado o osso
lower_arm.l. As chaves velhas então desmarcadas em branco e as novas chaves são
selecionadas em amarelo.
Será apresentado agora uma animação onde o personagem dará alguns passos. Para isso, foi
adicionada uma nova ação, sendo o nome desta nova ação Walkcycle. Moveu-se então o
spine1 um poço no eixo Z e dobrou-se um pouco as pernas.
Com base nos estudos sobre animação realizados no capítulo 2, onde foram vistos
bibliografias sobre movimento humano e animal, tentou-se mover, os ossos que de forma a
simular uma caminhada verdadeira. Como em uma caminhada humana os braços também
precisam ser animados. Nesse momento é importante mudar várias vezes a posição da câmera,
buscando se alcançar um grau de realidade maior
A cada movimento criado, é importante que se crie o ponto Chave no Action Editor,
especificando também, o número de frames entre esses pontos. Após marcar todos os pontos
chaves, e ajustar os frames, segue mais algumas instruções.
Um movimento de caminhada perfeito, pode usar vários frames e ser bem demorado,
pois quanto mais frames, maior o movimento do osso, e mais próximo da perfeição. Neste
modelo a parte da caminhada possui 21 frames.
86
6. Considerações Finais
Para realização deste trabalho foram estudadas várias técnicas de modelagem, e também
foram realizados estudos sobre a ferramenta Blender e outras ferramentas que poderiam ser
utilizadas para contribuir com o trabalho.
Os objetivos específicos foram atingidos, as melhores técnicas foram levantadas, o
modelo foi desenvolvido utilizando uma delas, no caso Edge Loop. A técnica foi escolhida,
devido ao número de vértices que ela utiliza o que possibilita a modelagem de personagens
que podem ser utilizados para jogos.
No capítulo de animação, a inclusão do personagem desenvolvido tratando da inclusão
do mesmo em um ambiente de programação, no caso, o Java 3D, pois se verificou que a
maioria dos personagens modelados são utilizados para jogos, era de grande valia abordar
esse assunto.
7. Referências Bibliográficas
BICHO, A.L.; SILVEIRA JR, L.G.; CRUZ, A.J.A.; RAPOSO, A.B. Programação
Gráfica 3D com OpenGL, Open Inventor e Java 3D. Revista Eletrônica de Iniciação
Científica (REIC). Vol. II, n. I, Março 2002. SBC, Brasil. Disponível em: <
http://www.tecgraf.puc-rio.br/~abraposo/pubs/reic2002/ProgramacaoGrafica.pdf>.
Acesso em: 16 junho 2008.
SBC. Jogos e educação. Computação Brasil, Bento Gonçalves, ed. 0327, p. 19,
jun.jul.ago. 2007.
SENNA, O. A arte interativa. Computação Brasil, Bento Gonçalves, ed. 0327, p. 16,
jun.jul.ago. 2007.