11.1 Basic Actions.
A complexidade da armação Rigify tem em mente que as acções do personagem sejam definidas manualmente, permitido a concepção de acções ricas de pormenores num tempo de desenvolvimento relativamente curto.
O recurso a processos automáticos de definição de animação, seja por utilização de acções disponíveis, como por exemplo as da enorme base de dados da CMU, seja por recursos a animações concebidas especificamente para o personagem, por exemplo por recurso à Kinect, dispensaria claramente a utilização de uma estrutura tão complexa como a Rigify, que, aliás, só torna o processo mais complexo.
A utilização de processos de animação automatizados faz mais sentido no cinema de animação, em que as acções são mais complexas e diversas, do que nos jogos 3D em que as acções são mais simples, em menor número, e se desenvolvem em ciclos repetitivos.
Começaremos por ver como definir manualmente as acções básicas de um personagem de um jogo 3D, nomeadamente, o ciclo de espera, o ciclo de caminhada, e ciclo de corrida. Nas secções seguintes veremos como utilizar animações pré-definidas, recorrendo ao Add On Motion Capture Tools desenvolvido por Benjy Cook no GSoC 2011 Project.
Veremos depois como definir manualmente diversas acções de ataque e defesa.
Por fim veremos como conceber acções com base em dados recolhidos através da Kinect.
11.1.1. Idle.
O ciclo de espera pode ser mais ou menos longo e mais ou menos complexo, podendo ser composto pela sequência de diversas acções.
Um ciclo curto não deverá ser demasiado complexo sob pena de se tornar visualmente demasiado repetitivo e pouco natural.
Pode ver no vídeo em baixo exemplos de ciclos de espera de personagens dos RPG’s Dragon Age 1 e 2. Note como, nomeadamente em DA1 as mesmas acções são partilhadas pelos diversos personagens. Note como as acções mais complexas são muito espaçadas.
Tome-se a si mesmo como exemplo. Coloque-se numa situação de espera e observe como evoluem as diversas partes do seu corpo.
Note nomeadamente como a distribuição do peso do corpo evolui ao longo do tempo e como dessa evolução resulta uma alteração da flexão das pernas a que corresponde uma alternância da posição do plano das ancas e dos ombros. Observe a existência de pequenos tiques no posicionamento das mãos e da cabeça.
Abra o ficheiro Blender salvo na última secção.
Partimos aqui do princípio de que o Add On Rigify está activo na configuração padrão. Caso contrário active-o.
Como a espada está inserida nas bolsas do arreio é necessário
que as bolsas acompanhem a sua dinâmica. Seleccione o osso
SwordHarnessUp, [RMB].
No contexto Bone Constraints da janela de propriedades,
especifique o valor 1.0 para Influence do restritor Child
Of cujo alvo é o osso SwordHanessControl e 0.0 para
Influence do restritor Child Of cujo alvo é o osso
HanessUp Control.
Seleccione o osso SwordHarnessDown e repita o mesmo procedimento.
Abra uma janela Timeline na base da janela 3D.
Abra uma janela Dope Sheet à esquerda da janela 3D e altere o seu contexto para Action Editor.
Na barra da janela Dope Sheet, pressione o botão New
para criar uma nova acção e designe-a por Idle.
Pressione F para que a acção, mesmo que não esteja associada a nenhum objecto, não seja eliminada quando fechar o Blender.
Note que pode deslocar à direita e à esquerda a barra das janelas utilizando a roda do rato, [MW].
Na barra da janela Timeline active Automatic Keyframe,
de modo a que as transformações sobre os ossos activos
sejam registadas automaticamente sem que para tal seja
necessário dar uma ordem explícita.
Vamos começar por manipular os ossos das pernas através da cadeia de cinemática inversa e os ossos dos braços através da cadeia de cinemática directa.
Em modo pose, seleccione o osso foot.ik.L, [RMB]. No painel
Rig Main Properties da janela de propriedades da janela 3D
desloque o cursor FK/IK todo para a direita e o cursor
Auto-Stretch IK todo para a esquerda.
Repira o procedimento para o osso foot.ik.R.
Seleccione o osso hand.ik.L, RMB]. Desloque os cursores
FK/IK e Auto-Stretch IK todos para a esquerda.
Repira o procedimento para o osso hand.ik.R.
Vamos criar uma acção de espera em que os pés do personagem não mudam de posição e o personagem muda ciclicamente de perna de apoio.
Pose 1.
Coloque-se na primeira frame, [Shift]+[LA].
Seleccione os ossos foot.ik.L e foot.ik.R e coloque os pés em V. Para isso, desloque-os recorrendo aos controladores x e y, e faça uma rotação em z, [R] > [Z].
Note na janela Dope Sheet que foram inseridas
keyframes para cada um dos ossos que manipulou.
Seleccione o osso torso e, em Right Ortho, [3], utilize
o controlador z para fazer flectir um pouco as duas pernas.
Seleccione o osso hips e rode-o, [R], para a esquerda, de
modo a que a perna esquerda fique direita, enquanto que
a perna direita continua flectida.
Tenha o cuidado de não rodar excessivamente a anca de tal modo que o pé esquerdo acabe por levantar do chão.
Seleccione o osso chest e rode-o, [R], para a direita, ou seja, na direcção contrária ao osso das ancas.
Seleccione o osso torso e desloque-o para a direita
utilizando o controlador x.
Seleccione o osso head e endireite a cabeça, [R].
Seleccione, [RMB], os ossos upper_arm.fk.L e
upper_arm.fk.R e aproxime-os, [R], do tronco.
As palmas das mãos estão demasiado viradas para a frente. Seleccione, [RMB], os ossos upper_arm.fk.L e upper_arm.fk.R e rode-os sobre y local, [R] > [Y] > [Y], de modo a rodar a posição das mãos.
Vamos agora puxar os braços para trás da linha dos
ombros e flecti-los ligeiramente.
Em Rigth Ortho, [3], seleccione, [RMB], o osso upper_arm.fk.L e rode-o, [R], ligeiramente para trás.
Seleccione, [RMB], o osso forearm.fk.L e rode-o, [R], ligeiramente para a frente.
Passe a Left Ortho, [Ctrl]+[3], e repita os procedimentos para os ossos upper_arm.fk.R e forearm.fk.R.
Seleccione, [RMB], o osso chest e, em Top Ortho, [7], rode-o
ligeiramente avançando o ombro direito relativamente ao
ombro esquerdo.
Observe na janela Dope Sheet como para cada um dos osso
manipulados, e só para estes, foi criada uma keyframe.
Faça pequenos ajustes à posição de cada um destes ossos até que a posição do personagem lhe pareça suficientemente natural.
Pose 2.
Avance para outra frame. De momento não é importante a
temporização da acção. Poderemos alterá-la em qualquer
altura, inclusivamente dentro do contexto Unity.
Coloque-se, por exemplo, na frame 11, [Shift]+[UA].
Na janela 3D, seleccione todos os ossos a que está associada uma keyframe, [Shift]+[RMB].
Note que que janela Dope Sheet os ossos seleccionados passam a ter o nome colorido a branco.
Na barra da janela 3D, passe para o buffer a posição dos
ossos, pressionando o botão correspondente, ou [Ctrl]+[C],
e copie a sua posição reflectida, pressionando o botão
correspondente, ou [Shift]+[Ctrl]+[V].
Obtemos assim facilmente a segunda pose, correspondente simplesmente à posição reflectida da primeira pose.
Note que a segunda pose não tem de corresponder exactamente a uma posição reflectida da primeira. Aqui assim resulta porque que trata de um método extremamente expedito de mudar a posição da perna de apoio e de todos os ossos a esse movimento associados.
Faça os ajustes que considerar relevantes à posição de cada um dos ossos.
Na janela Timeline, pressione [LMB], arraste o rato entre a frame 1 e a frame 11, e observe o movimento do personagem mudando a perna de apoio.
Dependendo da posição em que colocou os pés na frame 1, poderá haver um deslizar da posição dos pés mais ou menos significativo, o que não é desejável.
Se pretendêssemos que o personagem mudasse a posição dos pés quando troca a perna de apoio teríamos de desenvolver uma acção mais complexa de modo a que o movimento parecesse natural. Como se disse estamos a desenvolver uma acção em que os pés não mudam de posição.
Para corrigir o eventual deslizar da posição dos pés seleccione,
[Shift]+[RMB], na janela Dope Sheet, as keyframes dos ossos
foot.ik.L e foot.ik.R, e elimine-as, [X].
Pose 3 / Pose 1.
Vamos agora definir a terceira pose, que é idêntica à primeira, ou seja, corresponde ao regresso do personagem à perna de apoio em que se encontrava no início do ciclo Idle.
É importante que a acção constitua um ciclo em que a primeira e última pose sejam iguais para que possa ser repetida indefinidamente sem que se note a transição entre ciclos.
Coloque-se na frame inicial, [Shift]+[LA], e avance para a
frame 21, [Shift]+[UA] > [Shift]+[UA].
Na janela Dope Sheet seleccione todas as keyframes seleccionando, [RMB] a keyframe no topo.
Transfira-as para o buffer pressionando o respectivo símbolo na barra da janela, ou [Ctrl]+[C].
Copie-as para a frame 21, pressionando o respectivo
símbolo na barra da janela, ou [Ctrl]+[V].
Com o rato sobre a janela Timeline, coloque-se na frame 20, [LA], e especifique-a como a última frame, [E]. Pressione [Alt]+[A] e observe a animação, verificando que não existe descontinuidade no ciclo.
Ficam assim definidas as poses principais de um ciclo Idle. Vamos agora enriquecer a acção introduzindo pequenas variações secundárias.
Details.
Coloque-se na primeira frame, [Shift]+[LA].
Com o rato sobre a janela Timeline seleccione todas as keyframes, [A].
Escale a acção 20 vezes, [S] > 20.
Note que é importante que a linha temporal se encontre na frame 1 quando faz o escalamento porque é a linha temporal que define o pivot de escalamento. A última pose passará a estar na frame 401.
Com o rato sobre a janela Timeline, coloque-se na frame 400 e especifique-a como a última frame, [E].
Coloque-se na frame 151. O modo mais expedito é fazer a
especificação da frame actual na janela Timeline.
Na janela Dope Sheet, seleccione a keyframe de topo da
pose 1, [RMB], de modo a seleccionar todas as keyframes,
e passe-as para o buffer, [Ctrl]+[C].
Copie a pose 1 para a frame 151, [Ctrl]+[V].
Coloque-se na frame 351. Na janela Dope Sheet, seleccione
a keyframe de topo da pose 2, [RMB], de modo a seleccionar
todas as keyframes, e passe-as para o buffer, [Ctrl]+[C].
Copie a pose 2 para a frame 351, [Ctrl]+[V].
Note que na posição intermédia de transição de perna de apoio,
frame 175 e 375, o personagem tem as pernas flectidas,
o que não é natural.
Coloque-se na frame 175, seleccione o osso torso e desloque-o
em z, utilizando os controladores.
Na janela Dope Sheet, seleccione, [RMB], a keyframe inserida,
passe-a para o buffer, [Ctrl]+[C], coloque-se na frame 375, e
copie a keyframe, [Ctrl]+[V].
Pressione [Alt]+[A] e observe a animação.
O personagem permanece sobre a primeira perna de apoio durante 200 frames, transita da primeira para a segunda perna de apoio durante 50 frames, permanece sobre a segunda perna de apoio durante 200 frames, transita da segunda para a primeira perna de apoio durante 50 frames, e repete o ciclo.
Coloque-se na frame 101, rode a cabeça para a (sua)
direita, [R].
Entre a frame 1 a frame 101 o personagem roda lentamente a cabeça para a sua esquerda, voltando na frame 151 à posição inicial.
Coloque-se na frame 300, passe a Right Ortho, [3], e
incline a cabeça ligeiramente para trás, [R].
Na janela Dope Sheet, seleccione keyframe da cabeça da
frame 201, [RMB], passe-a para o buffer, [Ctrl]+[C],
coloque a linha temporal na frame 280, e copie a
keyframe, [Ctrl]+[V].
Entre a frame 280 e 300 o personagem inclina a cabeça para trás, olhando para cima, voltando na frame 351 à posição inicial.
Coloque-se na frame 1. [Shift]+[LA].
Seleccione, [RMB], os ossos f_index.R, thub.R, f_middle.R, f_ring.R e f_pinky.R.
Pressione [S] e de imediato [LMB], de modo a inserir
uma key frame para cada um dos ossos se modificar a
sua posição.
Passe as keyframes para o buffer, [Ctrl]+[C], coloque-se
na última frame, [Shift]+[RA], e copie as keyframes, [Ctrl]+[V].
Coloque-se na frame 70 e copie as keyframes, [Ctrl]+[V].
Repita o procedimento para as frames 90 e 110.
Coloque-se na frame 80 e escale, [S], rode, [R], e
translade, [G], os ossos, fechando parcialmente a mão.
Coloque-se na frame 100 e escale, [S], rode, [R], e
translade, [G], os ossos, esticando o dedos.
Seleccione as últimas 4 poses dos dedos, [B], e
passe-as para o buffer, [Ctrl]+[C].
Coloque-se na frame 120 e copie as poses, [Ctrl]+[V].
Entre as frames 70 e 150 o personagem distende os músculos das mãos por duas vezes.
Se necessário, seleccione todas as keyframes dos ossos dos dedos, [B], e ajuste a escala temporal, [S].
Se uma pose lhe parecer demasiado exagerada, ou se tiver
duas poses idênticas e quiser modificar ligeiramente uma
delas para que não fiquem exactamente iguais, é mais expedito
recorrer à funcionalidade Relax, na tabela de propriedades da
janela 3D, do que modificar a pose por manipulação dos ossos
envolvidos.
A operação poderá ser feita relativamente a todos os ossos da pose ou apenas àqueles que seleccionar.
Por exemplo, coloque-se na frame 100 e seleccione os ossos dos dedos implicados na pose, [Shift]+[RMB]. Na tabela de propriedades da janela 3D pressione Relax e arraste o rato sobre a janela. Pode ver que os dedos modificam a sua posição, aproximando da posição da pose imediatamente anterior ou posterior.
Pode controlar os parâmetros da funcionalidade no painel Relax Pose.
Coloque-se na frame 85, seleccione, [RMB], o osso upper_arm.fk.L e aproxime, [R], o braço do tronco.
Repita o procedimento para o braço direito e para outras frames, fazendo oscilar os braços conforme lhe pareça natural.
Fica assim terminada a acção Idle.
11.1.2. Walk.
Procure na Web imagens e vídeos de referência de ciclos de caminhada. Tenha em atenção nomeadamente os exemplos dos sites Endless Reference's channel e Shutterstock.
Pode ver no vídeo em baixo exemplos de ciclos de caminhada de personagens do RPG Dragon Age 2.
Classicamente, num ciclo de caminhada é considerada a existência de 5 poses, referenciadas no desenho em baixo.
Na verdade a estas 5 poses corresponde apenas metade do ciclo de caminhada, havendo ainda a considerar as poses 6 a 8 em que o personagem assume posições simétricas das poses 2 a 4, e a pose 9, igual à pose 1, que fecha o ciclo.
Poderá ver na maior parte das referências à construção de um ciclo de caminhada que as poses são definidas em sequência, pose1, pose2, pose 3 e pose 4. Na verdade esta abordagem não tem qualquer vantagem, pelo contrário, introduz uma série de imposições às curvas de interpolação que é necessário corrigir mais tarde. Não é esta a técnica que vamos adoptar.
Na verdade, as poses fundamentais são a pose 1, Contact, e a pose 3, Pass.
Apenas por diferente definição destas duas poses dará à evolução do personagem um carácter completamente diferente.
As poses 2 e 4 resultam naturalmente dos ciclos de cinemática directa e inversa, sendo apenas necessário especificar as alturas mínimas e máximas do torso ao solo.
Optou-se por não definir a acção Walk com base explícita num vídeo de referência, por se considerar que tal contribuiria para uma excessiva complexidade da exposição que desviaria a atenção dos pontos fundamentais.
Ainda assim, é uma opção que pode ser seguida, quer tomando o vídeo como referência numa janela auxiliar quer mesmo colocando-o como background da janela 3D.
No vídeo de apoio ao texto foi utilizado o vídeo original, Athletic Male Standard Walk , do qual foi, recorrendo ao contexto Video Sequencer, retirado um conjunto de frames (107) correspondente a um ciclo de caminhada, tendo sido simultaneamente escalado com um factor de velocidade 107/81. No contexto Node Editor foi depois criado um vídeo com cada uma das frames invertidas, tendo resultado o vídeo 0001-0081 que é utilizado.
Abra o ficheiro Blender resultante da secção anterior.
Na barra da janela Dope Sheet, pressione o símbolo X para quebrar a ligação ao ciclo Idle.
Pressione o botão New para criar uma nova acção e designe-a
por Walk.
Pressione F para que a acção, mesmo que não esteja associada a nenhum objecto, não seja eliminada quando fechar o Blender.
Em modo pose, seleccione todos os ossos da armação Warrior_ControlRig e reponha as posições iniciais, [Alt]+[G], [Alt]+[R], [Alt]+[S].
Tal como para a acção Idle, manipularemos os ossos das pernas através da cadeia de cinemática inversa e os ossos dos braços através da cadeia de cinemática directa.
No painel Rig Layers da tabela de propriedades da janela 3D,
de modo a diminuir a complexidade visual e facilitar a
selecção dos ossos de interesse, deixe apenas activos,
para além dos ossos head, torso e root, os ossos da
cadeia de cinemática directa dos braços e da cadeia
de cinemática inversa das pernas.
Em modo pose, seleccione o osso foot.ik.L, [RMB]. No painel
Rig Main Properties da janela de propriedades da janela 3D
desloque o cursor FK/IK todo para a direita e o cursor
Auto-Stretch IK todo para a esquerda.
Repira o procedimento para o osso foot.ik.R.
Seleccione o osso hand.ik.L, RMB]. Desloque os cursores
FK/IK e Auto-Stretch IK todos para a esquerda.
Repira o procedimento para o osso hand.ik.R.
Na barra da janela Timeline active Automatic Keyframe,
de modo a que as transformações sobre os ossos activos
sejam registadas automaticamente sem que para tal seja
necessário dar uma ordem explícita.
Pose 1 / Pose 9.
A pose 1, Contact, corresponde ao momento em que o
personagem toca o chão com o calcanhar do pé fronteiro.
Os dois pés tocam o chão e estão à distância máxima do ciclo de caminhada, tal como os braços, que estão em contra ciclo com as pernas.
O tronco está elevado à altura média do ciclo de caminhada.
A abertura das pernas e dos braços e a inclinação do tronco para a frente, ou para trás, pode ser mais ou menos prenunciada, dependendo do carácter mais ou menos determinado que quiser dar à evolução do personagem.
Na vista frontal a inclinação dada aos ombros e ancas,
a abertura dos braços e o modo como o pé se aproxima,
ou cruza mesmo a linha média, são também determinados
pelo carácter que quer dar à evolução do personagem.
Cabe-lhe a si escolher se pretende um ciclo mais ou menos natural, agressivo, ou provocante.
Coloque-se na frame 1, [Shift]+[1].
Em Front Ortho, [1], seleccione, [RMB], o osso foot.ik.L e, utilizando o controlador x, aproxime o pé esquerdo do eixo central.
Repita o procedimento para o osso foot.ik.R.
Seleccione, [RMB], o osso upper_arm.fk.L e aproxime,
[G], o braço do tronco.
Repita o procedimento para o osso upper_arm.fk.R.
Seleccione, [RMB], o osso upper_arm.fk.R e rode-o sobre
o seu próprio eixo, [R] > [Y] > [Y].
Seleccione, [RMB], o osso forearm.fk.R e rode-o, [G], de modo a flectir o braço direito, colocando a mão numa zona frontal às ancas.
Em Right Ortho, [3], seleccione, [RMB], o osso
torso e rode-o, [R], inclinando ligeiramente o
troco para a frente.
Com o controlador z puxe ligeiramente o osso torso para baixo.
A altura do troco ao chão depende da abertura e flexão que vier a dar às pernas. Após a colocação dos pés é provável que seja necessário corrigir o posicionamento em z do osso torso.
Não desloque o osso torso em y.
Seleccione, [RMB], o osso foot.ik.L, desloque-o
para a frente, [G], e rode-o, [R], de modo a colocar
o calcanhar no chão.
Seleccione, [RMB], o osso foot.ik.R, desloque-o para trás, [G], e rode-o, [R], de modo a colocar a ponta no chão.
Seleccione, [RMB], os ossos, toe.L e toe.R e rode-os, [R], corrigindo a sua posição.
Com o controlador z corrija a posição do osso torso de modo a que os pés toquem o chão.
Seleccione, [RMB], o osso upper_arm.fk.L rode-o, [G],
para trás. Seleccione, [RMB], o osso forearm.fk.L e
flicta, [G], ligeiramente o braço.
Coloque convenientemente o braço direito controlando os ossos upper_arm.fk.R e forearm.fk.R.
Passe a Front Ortho, [1]. Seleccione, [RMB], o osso
hips e rode-o ligeiramente em z, [R] > [Z] > -5, de
modo a avançar a anca da perna esquerda (a perna que
está em avanço).
Rode-o agora de modo a elevar a anca esquerda (da perna que está em avanço), [R] > [Y] > -5.
Seleccione, [RMB], o osso chest e rode-o ligeiramente em z, [R] > [Z] > 5, de modo a avançar o ombro do braço direito (o braço que está em avanço).
Rode-o agora de modo a elevar o ombro direito (do braço que está em avanço), [R] > [Y] > 5.
Seleccione, [RMB], o osso shoulder.L e rode-o ligeiramente em z, [R] > [Z] > 5, de modo recuar o ombro esquerdo (do braço que está em atraso).
Seleccione, [RMB], o osso shoulder.R e rode-o ligeiramente em z, [R] > [Z] > 5, de modo a avançar o ombro direito (do braço que está em avanço).
Seleccione o osso head e corrija, [R], [R] > [Z], a posição da cabeça.
Em Right Ortho, [3], corrija, se necessário a posição dos braços e dos pés.
Definida a pose 1 está definida a pose 9.
Coloque-se na frame 1, [Shift]+[LA]. Na janela 3D
seleccione todos os ossos, [A].
Transfira a pose para o buffer, [Ctrl]+[C]. Coloque-se na frame 81 e copie a pose [Ctrl]+[V].
Nota1: É mais prático seleccionar todos os ossos e eliminar posteriormente os não relevantes do que seleccionar um a um na janela 3D apenas o ossos envolvidos na acção.
Nota2: Os procedimentos acima podem ser feitos na janela Dope Sheet. Aponta-se esta solução porque na sequência é mais fácil definir a pose 5.
Pose 5.
A pose 5, Contact, é obtida por cópia simétrica da pose 1,
não sendo necessário qualquer especificação da posição
dos ossos, a menos que se pretenda torná-las de algum
modo dissemelhantes.
Note que nas poses do vídeo de referência as posições, obviamente, não são completamente simétricas.
Coloque-se na frame 41 e copie a pose invertida,
pressionando [Shift]+[Ctrl]+[V] ou utilizando o
símbolo na barra da janela 3D.
Na janela Dope Sheet seleccione, [B], as keyframes dos ossos não relevantes na acção e elimine-as.
Defina a frame 80 como a última e pré-visualize a animação, [Alt]+[A].
Pode ver que o ciclo walk está praticamente definido, sendo que os únicos elementos que parecem menos apropriados são a não elevação dos pés e a inexistência de uma pequena oscilação do tronco.
Nota: Tal como para o ciclo Idle não é por agora relevante a temporização da acção, que poderá ser alterada em qualquer altura. As farmes 41 e 81 justificam-se pela existência de uma combinação de teclas, [Shift]+[UA]/[DA] que permite a evolução de 10 em 10 frames.
Pose 3 / Pose 7.
A pose 3, Pass, corresponde ao momento em que as duas
pernas se cruzam trocando de posição relativa.
Para além da pose 1, a definição desta pose é essencial na caracterização do ciclo de caminhada. Através da alteração do posicionamento do corpo nesta pose pode dar à acção um ar mais ou menos natural, furtivo, agressivo, etc.
O troco elevou-se relativamente à posição anterior mas ainda não atingiu a altura máxima ao chão.
Não especifique uma altura excessiva para o pé. Num ciclo de caminhada natural os pés pouco se elevam relativamente ao chão.
Os braços estão na linha média e completamente distendidos, e a linha dos ombros deverá estar praticamente na horizontal.
Coloque a linha temporal na frame 21.
Seleccione o osso foot.ik.R, [RMB], puxe o pé direito, [G], um pouco para trás de modo a que os dois joelhos fiquem aproximadamente na mesma posição em y, e rode-o, [R], colocando a biqueira a pouca distância do chão.
Seleccione, [RMB], os ossos toe.R e toe.L e corrija a sua rotação, [R].
Por enquanto não vamos alterar mais nenhuma das actuais posições dos ossos, ficando assim definida a pose 3.
Definida a pose 3 fica definida a pose 7.
Seleccione, [RMB], os ossos que sofreram alteração na
pose 3, foot.ik.R, toe.R e toe.L, e transfira a
sua posição para o buffer, [Ctrl]+[C].
Coloque a linha temporal na frame 61 e copie a pose invertida, pressionando [Shift]+[Ctrl]+[V] ou utilizando o símbolo na barra da janela 3D.
Note que a informação do osso footik.R é transferida para o osso footik.L. Pode seleccionar, [RMB], a keyframe do osso footik.R na frame 61 e eliminá-la.
Coloque-se na frame 1, [Shift]+[LA], e pré-visualize a animação, [Alt]+[A].
Como pode ver o ciclo de caminhada é neste momento muito satisfatório e podíamos ficar por aqui.
Pose 2 / Pose 6.
Na pose 2, Down, o tronco está elevado à menor
altura do ciclo de caminhada.
Todo o peso está sobre a perna da frente, cujo pé assenta completamente no chão.
Coloque-se na frame 11. Seleccione, [RMB] o osso torso e,
manipulando o controlador z baixe a posição do tronco
até onde lhe pareça que deve ser a sua posição mais baixa.
Ajuíze a posição conveniente com base na flexão das pernas que não deve ser exagerada.
Seleccione, [RMB], o osso foot.ik.L e rode-o, [R], de modo a que o pé assente completamente no chão.
Seleccione, [RMB], o osso toe.L e rode-o, [R], de modo a corrigir a sua posição.
Seleccione, [RMB], o osso foot.ik.R e rode-o, [R], de modo a corrigir a sua posição.
Seleccione, [RMB], o osso toe.R e rode-o, [R], de modo a corrigir a sua posição.
Definida a pose 2 fica definida a pose 6.
Seleccione, [RMB], os ossos que sofreram alteração na pose 2,
torso, foot.ik.L, foot.ik.R, toe.L e toe.R, e transfira a
sua posição para o buffer, [Ctrl]+[C].
Coloque a linha temporal na frame 51 e copie a pose invertida, pressionando [Shift]+[Ctrl]+[V] ou utilizando o símbolo na barra da janela 3D.
Coloque-se na frame 1, [Shift]+[LA], e pré-visualize a animação, [Alt]+[A].
Se necessário corrija aposição dos pés nas outras poses. Por exemplo, pode acontecer que a cinemática inversa esteja em alguns instantes a posicionar o pé abaixo da linha do chão.
Se corrigir alguma pose não se esqueça de copiar a pose inversa.
Pose 4 / Pose 8.
Na pose 4, Up, o tronco está à altura máxima do chão em
todo o ciclo de caminhada.
Apenas a parte frontal do pé traseiro assenta no chão e todo o peso do corpo está sobre ela.
Para além da elevação do tronco e da especificação da posição dos pés, a posição de todos os ossos decorre, em princípio, do ciclo de cinemática directa, não havendo necessidade da sua especificação.
Coloque-se na frame 31. Seleccione, [RMB] o osso torso e,
manipulando o controlador z eleve a posição do tronco
até onde lhe pareça que deve ser a sua posição mais alta.
Ajuíze a posição conveniente com base na flexão das pernas.
Seleccione, [RMB], os ossos foot.ik.L e foot.ik.R e ajuste a sua posição, [G], [R].
Definida a pose 4 fica definida a pose 8.
Seleccione, [RMB], os ossos que sofreram alteração na pose 2,
torso, foot.ik.L e foot.ik.R, e transfira a
sua posição para o buffer, [Ctrl]+[C].
Coloque a linha temporal na frame 71 e copie a pose invertida, pressionando [Shift]+[Ctrl]+[V] ou utilizando o símbolo na barra da janela 3D.
F-Curves.
Pode agora, se o desejar, acrescentar todo o tipo de pormenores que enriqueçam a acção, e/ou, ainda, rectificar algumas pequenas incorrecções resultantes quer das opções feitas relativamente ao posicionamento de alguns dos osso, quer nos valores resultantes da interpolação.
Para proceder a correcções de pormenor e/ou eliminar algumas keyframes que pareçam perturbar a fluidez do ciclo é conveniente actuar sobre as curvas de interpolação (F-Curves), na janela Graph Editor, e não directamente sobre a janela 3D, porque no contexto Graph Editor é mais fácil perceber o que poderá estar eventualmente a perturbar a fluidez da acção.
Dado que as F-Curve resultantes, mesmo que os procedimentos sejam muito semelhantes, podem ter algumas diferenças de forma significativas, dá-se apenas um exemplo de simplificação das curvas. Opcionalmente, pode percorrer exaustivamente todas as curvas e verificar se existem correcções que conduzam a melhorias significativas da acção.
Subdivida a janela Dope Sheet e converta a janela inferior numa janela Graph Editor.
Seleccione, [RMB], o osso torso.
Seleccione o canal Z Location, [LMB] sobre o nome.
Recorde que pode escalar a visualização das F-Curve na horizontal ou na vertical pressionando [Ctrl] e movimentando o rato com [MMB] pressionado.
Como pode ver a curva tem 9 keyframes. Vamos começar por determinar a forma da cuva apenas pela posição do torso no seu ponto mais elevado e pelo seu ponto mais baixo.
Seleccione, [Shift]+[RMB], as keyframes das frames 21, 41 e 61 e elimine-as, [X].
Agora vamos tornar coerente o declive da curva nas transacções entre ciclos, dando assim maior fluidez ao movimento.
Seleccione, [RMB], as keyframes 1 e 81 e rode, [R], os controladores de Bezier de modo tornar os declives aproximadamente iguais.
Damos assim por terminado o ciclo de caminhada.
11.1.3. Run.
Procure na Web imagens e vídeos de referência de ciclos de corrida. Tenha em atenção nomeadamente o vídeo RunCycles em que fez a síntese de alguns dos ciclos de corrida que podem ser encontados na Web, tendo sido todos os ciclos normalizados a aproximadamente 81 frames.
Pode ver no vídeo em baixo exemplos de ciclos de caminhada de personagens do RPG Dragon Age 2.
Classicamente, num ciclo de corrida é considerada a existência de 7 poses, referenciadas no desenho em baixo.
Na verdade a estas 7 poses corresponde apenas metade do ciclo de corrida, havendo ainda a considerar as poses 8 a 12 em que o personagem assume posições simétricas das poses 2 a 6, e a pose 13, igual à pose 1, que fecha o ciclo.
Tal como fizemos para o ciclo de caminhada, vamos construir o ciclo de corrida com base, não na definição sequencial do conjunto de poses, mas na definição da pose 1, Contact e da pose 4, Pass, das quais decorrerão as restantes poses.
No entanto, como verá, contrariamente ao ciclo de caminha, o ciclo de corrida não fica claramente definido com base apenas na caracterização das poses Contact e Pass sendo necessário corrigir significativamente as poses intermédias resultantes do cálculos de interpolação das cinemáticas directa e inversa.
Dada a experiência adquirida no ciclo de caminhada, vamos agora definir a acção com base explícita num dos ciclos de corrida constantes no vídeo RunCycles .
Se se sentir desconfortável com a definição da acção com base explícita no vídeo siga a metodologia apresentada para o ciclo de caminhada.
Dos ciclos disponíveis o mais fácil de utilizar é o vídeo VD102,
por se adaptar melhor às dimensões do personagem. No texto que
segue mostra-se em detalhe a utilização do vídeo VD89.
No vídeo colocado no final do texto está exemplificada
a utilização de qualquer dos vídeos.
Abra o ficheiro Blender com o ciclo Walk.
Na barra da janela Dope Sheet pressione 2 para criar um duplicado da acção Walk.
Designe-a por Run.
Pressione F para que a acção, mesmo que não esteja associada a nenhum objecto, não seja eliminada quando fechar o Blender.
Na janela Dope Sheet seleccione, [B], todas
as keyframes com excepção da pose 1 e elimine-as.
Ficamos assim com uma pose inicial em que a linha dos ombros e das ancas e a posição dos pés e dos braços está já numa posição próxima da posição desejada.
Na barra da janela Timeline seleccione a opção
Active Keying LocRot.
Pressione o botão Automatic Keyframe using Active Keying.
A opção Active Keying deveria ter sido usado no
ciclo Walk para evitar a inserção de keyframes
não relevantes, mas, por lapso, tal não foi referido.
Assim, para além da informação relativa ao posicionamento e rotação, pode verificar que existe provavelmente informação relativa a um conjunto de canais que não são relevantes para a acção (poderá verificar que as F-Curves destes canais são rectas de declive nulo).
Nota: Na acção Run não vamos alterar a posição dos dedos das mãos do personagem. Se desejar fechar ligeiramente as mãos desactive Active Keying, posicione os dedos como deseja, e active Active Keying novamente.
Na tabela de propriedades da janela 3D, [N], active
o painel BackGround Images e coloque o vídeo VD89 em
visão Right.
Ajuste a posição e a escala da imagem.
Coloque-se na primeira frame, [Shift]+[LA].
Seleccione os ossos foot.ik.R e foot.ik.L e ajuste , [G], [R], aproximadamente a posição das pernas à imagem.
O personagem não se ajusta perfeitamente. Considere como factor prioritário de ajuste o ângulo entre a parte superior e inferior das pernas.
Seleccione, [RMB], o osso torso e ajuste, [R],
a inclinação do tronco.
Seleccione, [RMB], o osso head e corrija, [R], a posição da cabeça.
Seleccione, [RMB], os ossos forearm.fk.L, forearm.fk.R,
upper_arm.fk.L e upper_arm.fk.L e corrija a posição
dos braços, tanto em Right Ortho,
como em Front Ortho.
Ainda em Front Ortho, corrija a posição dos joelhos
seleccionando, [RMB] e reposicionando, [G], os ossos
knee_target.ik.L e knee_target.ik.R.
Na janela 3D, seleccione todos os ossos, [A]. Passe a
pose para o buffer, [Ctrl]+[C] ou utilizando
o símbolo na barra da janela 3D.
Coloque-se na frame 81 e copie a pose, [Ctrl]+[V] ou utilizando o símbolo na barra da janela 3D.
Coloque-se na frame 41 e copie a pose invertida, [Shift]+[Ctrl]+[V] ou utilizando o símbolo na barra da janela 3D.
Na janela Graph Editor seleccione, [B], as keyframes dos ossos não relevantes e elimine-as, [X].
Ficam assim definidas as poses 1, 7 e 13, Contact.
Na janela Timeline, seleccione, [LMB], a linha temporal e arraste-a. Pode ver que o movimento do personagem se adapta razoavelmente bem à imagem.
Note que as poses 1 e 13 têm de ser iguais, independentemente da imagem, para que se feche o ciclo de caminhada.
Quanto à pose 7 esta não tem de ser necessariamente simétrica das poses anteriores, se desejar pode ajustar a pose à imagem de referência.
Vamos agora corrigir a posição das pernas e a altura do tronco ao solo nas posições intermédias. Vamos fazer a correcção evoluindo por décadas. Se preferir faça as correcções colocando a linha temporal nas frames que lhe pareçam corresponder às poses clássicas de um ciclo de corrida.
Coloque-se na frame 11. Ajuste a posição das pernas e
a distância do tronco ao solo, seleccionando, [RMB],
os ossos torso, foot.ik.L, foot.ik.R, toe.L, e toe.R.
Seleccione todos o ossos que manipulou, [Shift]+[RMB],
copie a sua posição para o buffer, [Ctrl]+[C], coloque-se
na frame 51, e copie a pose inversa [Shift]+[Ctrl]+[V].
Coloque-se na frame 21. Ajuste a posição das pernas
seleccionando, [RMB], os ossos foot.ik.L, foot.ik.R,
toe.L, e toe.R.
Seleccione todos o ossos que manipulou, [Shift]+[RMB],
copie a sua posição para o buffer, [Ctrl]+[C], coloque-se
na frame 61, e copie a pose inversa [Shift]+[Ctrl]+[V].
Coloque-se na frame 31. Ajuste a posição das pernas e a
distância do troco ao solo, seleccionando, [RMB], os ossos
torso, foot.ik.L, foot.ik.R, toe.L, e toe.R.
Seleccione todos o ossos que manipulou, [Shift]+[RMB],
copie a sua posição para o buffer, [Ctrl]+[C], coloque-se na
frame 71, e copie a pose inversa [Shift]+[Ctrl]+[V].
Na janela Timeline, seleccione, [LMB], a linha temporal e arraste-a par observar o movimento do personagem.
Proceda aos ajustes que considerar convenientes. Nomeadamente, avalie se faz sentido corrigir a posição dos braços, das ancas, e dos ombros, verifique se o pé de apoio permanece no chão e avalie a evolução da distância do tronco ao solo.
Se considerar pertinente corrija a acção acedendo directamente às F-Curves.
Fica assim terminada a acção corrida.