Enquanto jogava alguns jogos no meu período de folga pessoal, deparei-me com um jogo de sobrevivência 2D / 3D de sobrevivência. Aparentemente, o jogo foi feito em SDL e GLUT (não morrer de fome), mas o que realmente me surpreendeu foram as animações do jogo.
As animações são extremamente suaves e fluentes. Não há distorção durante a animação, o que geralmente acontece nas animações feitas à mão é que os pixels são removidos, as animações são irregulares e simplesmente não são tão suaves. Isso me fez pensar em como eles conseguiram obter essa qualidade de animação. Eles eram realmente feitos à mão (se foram, então deve ter levado um artista muito talentoso), é animação óssea ou eles estão usando outra técnica?
Respostas:
Meu nome é Kevin e sou programador / designer da Klei. Escrevi várias coisas de animação que usamos na série Shank, Mark of the Ninja e Don't Starve.
Nossos animadores trabalham em Flash. Temos o conceito de um 'build' de personagem que é um conjunto de símbolos de partes do corpo com várias visualizações. Dependendo da fidelidade do jogo, existem mais ou menos partes do corpo com mais ou menos 'visão'. Eu acho que Shank teve cerca de 30 partes do corpo com 1-2 dúzias de visualizações cada, enquanto Wilson, da Don't Starve, tem cerca de uma dúzia de partes do corpo com apenas o mesmo número de visualizações. Os scripts JSFL personalizados são usados para analisar as linhas de tempo dos símbolos flash e, em seguida, criar as imagens relevantes como uma série de arquivos PNG de alta resolução, juntamente com um monte de metadados que colamos em um XML.
Dada a construção de um personagem, nossos animadores criam um novo símbolo raiz em outro arquivo para conter um pedaço de animação para esse personagem. Nessa linha do tempo, eles criam o personagem a partir de símbolos de construção e o movem, interpolam etc. para criar animações individuais (que são demarcadas usando rótulos de quadro). O script exportador exporta essas linhas do tempo para XML, observando a transformação 2D de cada peça de construção e qual exibição ela está mostrando.
Com todas essas informações exportadas para XML e PNG, executamos uma série de scripts Python para convertê-los em dados de tempo de execução. Um script reduz o tamanho, atlas e mips todas as texturas e as converte em (um ou mais) formatos compactados, específicos da plataforma. Outro script processa os dados de animação XML em um formato binário mais eficiente para carregar.
Em tempo de execução, é realmente apenas uma questão de mostrar os símbolos de construção certos com as transformações e visualizações corretas.
Esse sistema levou muito tempo para ser construído e foi aprimorado à medida que o movíamos de um jogo para outro. Estou examinando muitos detalhes (como lidamos com camadas e troca de roupas em tempo de execução), mas esse é o esquema geral.
Obviamente, a tecnologia que usamos é provavelmente o aspecto menos importante do 'Klei Look'. A parte mais importante é que temos um monte de animadores muito, muito bons. :)
Enfim, espero que isso ajude. Se você tiver mais perguntas sobre o Don't Starve, pode visitar nossos fóruns, onde geralmente fico feliz em conversar sobre compras.
fonte
Klei normalmente usa uma combinação muito boa de animações esqueléticas e mudanças de sprites.
Eles montam um esqueleto, aplicam sprites nos ossos e depois trocam sprites conforme o quadro de animação exige.
O "como" exato (fluxo de trabalho / ferramentas / etc) pode realmente vir apenas deles, no entanto, eles disseram isso quando anunciaram o "Shank", pré-lançamento.
E se você olhar para Shank / ShankII, Mark of the Ninja e Don't Starve, notará que a animação se parece muito com as coisas que podem sair da Nickelodeon.
Eu imagino que eles estejam trabalhando com gráficos de cena para manter tudo sadio também, mas, novamente, isso é mais uma suposição baseada na complexidade e no que funciona para animação (2d / 3d) do que uma garantia.
fonte
Eu acho que eles definitivamente usam animação óssea. Eles também usam sprites de alta resolução (para evitar irregularidades) ou usam alguma forma de gráficos vetoriais. É inteiramente possível, eles pré-renderizaram gráficos vetoriais em sprites de alta resolução. Eles definitivamente não usaram pixel art para este. :)
fonte