M ay a
por Gustavo L. Braga
MEL
Parte
II
Construção de Interfaces
Q
Figura 1a - Exemplo de utilização do
formLayout
Figura 1b - Com o formLayout os
botões acompanham a mudança de
formato da janela
Figura 2 - Exemplo de utilização do
shelfLayout
Figura 3 - Três tipos diferentes de grupos de controles
uando do lançamento da primeira versão do Maya, uma das características
mais alardeadas pela Alias|wavefront era a possibilidade da criação de
interfaces customizadas para o controle e animação de personagens.
Na época muitos animadores se perguntavam sobre a utilidade deste tipo de ferramenta para os projetos, levando em consideração a complexidade da maioria
dos modelos na época e o tempo que se demorava para a criação de uma interface customizada. Com a crescente busca pela perfeição de movimentos na animação 3D, os personagens estão sendo criados com um número grande de controles, tendo alguns destes personagens nos filmes atuais, centenas de controles.
Desta maneira a animação de um personagem com esta complexidade, sem uma
interface customizada, é um processo lento e que requer, além de uma grande
organização, um conhecimento muito forte da ferramenta pelo animador.
Com a utilização de interfaces customizadas temos uma maior rapidez na criação
da animação, devido ao fato do animador não precisar selecionar objetos, IK handles e outros componentes. Ele simplesmente mexe um slider para modificar e animar o atributo desejado. Este mesmo fato possibilita ainda o uso de animadores que
não conheçam o Maya para criar uma animação e até mesmo cria a possibilidade da
contratação de um animador tradicional para fazer o trabalho. Quando criamos uma
interface com os comandos referentes à animação de um objeto, deixa de existir a
necessidade do conhecimento do software por parte do animador.
Neste artigo veremos alguns conceitos necessários para a criação das interfaces.
Depois de consolidar estes conceitos entraremos nos elementos que podemos
colocar em nossas interfaces e terminaremos com a montagem de um exemplo de
interface para um personagem.
Conceitos
A construção de interfaces é baseada no conceito de hierarquia. A janela está no
topo da hierarquia e todos os elementos que são colocados na janela estão abaixo
na hierarquia. Por exemplo: Uma janela contém um layout que contém um menu,
um campo texto e um botão. Temos a janela como topo de hierarquia. O layout
está em um segundo nível, enquanto que o menu, o campo texto e o botão estão
todos em um terceiro nível hierárquico. Dentro ainda deste panorama, podemos
definir que o layout é filho da janela e pai do menu, campo texto e botão. Este
contexto hierárquico pode ser considerado como elementos que contém outros
elementos. Esta hierarquia pode ser arbitrariamente profunda dependendo de
quantos elementos estão contidos dentro de outros.
Para simplificar a criação de interfaces no Maya não é necessária a especificação
explícita de quem é o pai do elemento criado. Quando uma janela é criada ela tornase automaticamente o pai de todos os próximos controles ou menus criados. Estes
novos elementos irão aparecer dentro desta janela até que o "pai default" (default
parent) seja mudado, explicitamente através do comando setParent ou ainda com a
criação de uma nova janela.
Digital Designer - edição 17
Maya: MEL - Parte II - Construção de Interfaces
Elementos de uma Interface
Layouts são elementos que contém e posicionam outros
elementos dentro de uma janela. Existem diferentes tipos
de layouts especializados para posicionar os seus elementos de diversas formas. Por exemplo: o column layout ajusta os seus elementos na vertical um após o outro, como se
fossem uma lista, assim como o row layout ajusta os elementos lado a lado na horizontal. Estes layouts podem
ainda conter outros layouts possibilitando uma grande
customização. Abaixo temos a relação dos Layouts prédefinidos:
columnLayout
formLayout
frameLayout
gridLayout
menuBarLayout
paneLayout
rowColumnLayout
rowLayout
scrollLayout
shelfLayout
shelfTabLayout
tabLayout
O layout mais utilizado para construção de interfaces é
o formLayout devido a possibilidade de posicionar os seus
"filhos" tanto na forma absoluta como na relativa.
Por exemplo: É possível especificar que um controle permaneça fixo enquanto suas dimensões ficam relativas ao
tamanho da janela. Este conceito é melhor ilustrado no
script 1.
A janela resultante tem o botão A preso ao topo e à esquerda da janela, enquanto que a sua parte inferior é presa
a parte superior do botão B e seu lado direito é limitado a
ser 75% do tamanho da janela. Com a aplicação destas restrições o botão A irá crescer ou diminuir de acordo como o
tamanho da janela. Como visto na figura 1a e 1b. Além do
formLayout, são muito utilizados também os layouts frameLayout, tabLayout, menuBarLayout e shelfTabLayout, os
quais permitem outras possibilidades não necessariamente
relacionadas ao posicionamento de controles "filhos".
Figura 4 - Interface com controles do cone divididos em 3 abas
www.digitaldesigner.com.br
O layout frameLayout contém um botão de abrir/fechar ao
lado do seu título. Quando aberto este layout mostra o seu
conteúdo, caso contrário é mostrado somente o seu título.
Este layout é bastante utilizado na interface do Maya (Exemplo: Attribute Editor). Já o tabLayout contém um número de
outros layouts, cada um destes layouts é acessado através
de uma aba de seleção. O menuBarLayout permite a colocação de uma barra de menus em qualquer parte de sua
janela. Da mesma forma o shelfTabLayout o faz com uma
shelf. Exemplos da utilização deste layouts estão no script 2
e o resultado deste script na figura 2.
Controles
Através do MEL temos acesso a todos os controles existentes no Maya. Existem mais de cinquenta controles prédefinidos prontos para o uso. Entre os mais importantes
temos: buttons, sliders, textFields, scroll bars entre outros.
Em todos os scripts deste artigo temos exemplos de uso
dos controles mais comuns.
Grupos (Groups)
Alguns controles geralmente aparecem juntos nas interfaces. Por exemplo, um slider normalmente tem ao seu
lado um campo para indicar o seu valor, ou ainda um campo editável tem à sua esquerda um texto indicando a
natureza do campo. Grupos são controles colocados
juntos em um comando por conveniência. Pode-se
conseguir o mesmo resultado de um grupo criando-se
individualmente cada controle. Todos os comandos que
criam grupos terminam em "Grp". No script 3 temos
exemplos de utilização de grupos.
Figura 5 - Interface para Personagem - Cabeça
Download

MEL - Parte II