Como gravar meu jogo de gráficos vetoriais sem desfocar os gráficos?


15

Muitas pessoas pediram um trailer para o meu jogo, porque as capturas de tela não fazem justiça. Eu testei o PlayClaw, Fraps, CamStudio, VirtualDub e algumas outras ferramentas menores; nenhum produziu um resultado viável. Meu jogo usa gráficos vetoriais e foi projetado para rodar a 60fps; portanto, a compactação com perdas de um vídeo comum de captura de tela destrói o apelo gráfico.

Como posso gravar a jogabilidade sem desfocar meus gráficos e diminuir a velocidade de quadros?


2
fraps é muito lento para você? certifique-se de configurá-lo para gravar em 60fps e não nos 30fps padrão.
David Young

Você poderia tornar sua pergunta um pouco mais ampla? Eu acho que seria interessante saber não on-line sobre como gravar o jogo em si para um trailer simples, mas também para produzir vídeos que serão exibidos no jogo, os chamados Cut Scenes ou até trailers, com adição de mais efeitos visuais, como mudar partes do vídeo etc ... Sugerindo-o para sua pergunta, já que existe alguma pergunta parecida com eu acredito ...
Prix

11
Preço que seria muito diferente ... Making Cut Scenes é outro campo de trabalho!
speeder

3
Eu acho que você realmente deveria reconsiderar fraps. De todas as soluções que eu vi, ela tem a melhor qualidade e não há logotipo para um pequeno investimento. (Você não disse livre, na sua pergunta)
Jesse Dorsey

3
Eu permaneço com a minha resposta anterior. Se você pode reproduzir entrada e vigor (ou mesmo repetição) a iteração, você pode gravar quadros crus e fazer com eles o que quiser, sem qualquer perda de qualidade.
Kaj

Respostas:


22

Torne seu framerate de jogo independente, para que você possa configurá-lo para jogar com um timestap fixo. Jogue seu jogo, grave a entrada. Reproduza com timestep fixo, entrada gravada e grave todos os quadros em um arquivo - já que você reproduz com timestep fixo, não importa quanto tempo a gravação de um quadro leve. Dessa forma, as imagens de origem não são compactadas e você pode decidir sobre a qualidade posteriormente, sem sacrificar a velocidade ou com falhas devido a um programa de captura. Depois disso, entram coisas como o After Effects - pelo menos você terá um material de fonte nítido.

Editado para adicionar: sim, eu sei, torná-lo independente da taxa de quadros para reproduzir em um timestep fixo é bobagem. Duh. Bem, se é fraps independente da taxa de quadros, também pode ser um problema menor; o) Os jogos devem ser independentes da taxa de quadros de qualquer maneira!


5
A independência de taxa de quadros e a reprodução determinística também são úteis para testes. Noel Llopis tem um bom artigo aqui: gamesfromwithin.com/back-to-the-future-part-1 (há uma segunda parte vinculada também).
Celion

Então ... sua idéia é recodificar todo o mecanismo (que eu não fiz btw) para dar suporte a alguma maneira de gravar entradas e reproduzir perfeitamente as entradas mencionadas? Desculpe, mas isso não funciona, especialmente porque, embora o jogo seja determinístico (os únicos aleatórios são em efeitos visuais), o mecanismo de física pode flutuar e não funcionaria corretamente ... Estou perguntando sobre marketing, não sobre programação. .
speeder

Se o mecanismo de física pode flutuar, não é determinístico. A gravação de entrada (na maioria dos mecanismos) é conectada em um único local, dificilmente 'está codificando todo o mecanismo' ..... de qualquer forma, eu ouvi você. <b> A codificação de vídeo é uma operação bastante cara, a compactação sem perdas e boa é mais cara . Se o acesso ao disco rígido é realmente o problema, considere a possibilidade de configurar um disco ram se tiver memória de sobra. Quanto ao seu comentário sobre marketing, desculpe, pensei que você estivesse procurando uma solução - isso também o prepararia para o futuro (e se você precisar de um aluguer de imóveis?). Se estiver fora do escopo, tente o disco ram.
Kaj

Por que "tornar a taxa de quadros independente para reproduzir em um timestap fixo é bobagem"? Para que a saída de taxa de quadros fixa contenha a sequência que você gravou, ela deve ser independente da taxa de quadros durante a gravação.
falstro 03/08/10

Não necessariamente. Se o quadro for executado em uma taxa de quadros fixa garantida (relativamente improvável, mas se), você poderá reproduzir novamente a alimentação das teclas conforme elas entraram e assumindo o mesmo passo de tempo. Além disso, parecia bobo: op
Kaj 03/08

8

Este artigo no Pixel Prospector pode ser o que você precisa:

Como gravar e editar vídeos de jogabilidade

O jogo usado no vídeo é o NeonPlat 2, que também usa gráficos vetoriais.

O artigo cobre tudo, desde a captura até a edição.


Ok, eu estou concedendo a recompensa por este, que é o que realmente estava MAIS CORRETO ... De qualquer forma, obrigado a Kaj por mencionar drives ram (resolvido o problema de lentidão do disco), mas não posso conceder meio ... - recompensa para cada resposta.
speeder

Sem problemas. Espero que você tenha conseguido algo agarrado corretamente!
Kaj

2
A página arquivada está aqui . Eles atualizou a página parece que grande lista de screenrecording software
bobobobo

4

Para gravar as imagens do jogo, você pode experimentar o CamStudio , que é gratuito. No entanto, acho que ele não funciona com jogos no modo de tela cheia; portanto, você deseja executar o jogo em uma janela.

Quanto à criação do trailer, você precisará de um software de edição de vídeo. Existem várias opções comerciais caras, mas se você procura algo gratuito, sua escolha é mais limitada. Você pode experimentar o Windows Movie Maker ou o iMovie se tiver um Mac, mas o melhor editor de vídeo gratuito que encontrei é o Blender , mais conhecido como ferramenta de modelagem e animação 3D. A interface do usuário não é intuitiva, mas se você gastar algum tempo para aprendê-la, também terá uma boa ferramenta de edição de vídeo.


3

Minha melhor experiência é com Fraps, mas usei a versão completa (parecia um pequeno prêmio único para pagar por uma grande utilidade) que não tem limites ou logotipo. Você pode definir a taxa de quadros de antemão, como David Young sugeriu em seu comentário. Como muitas ferramentas de captura de vídeo, o Fraps usa uma compactação de baixo custo durante a gravação, que pode ser convertida para um formato de compactação mais alto de sua escolha. Para isso, eu costumo usar o VirtualDub.

Não tive problemas em executar o Fraps por trás do jogo em velocidade máxima (50fps no meu caso) obtendo capturas de alta qualidade.

O principal problema aqui é que a captura requer algum desempenho, e você deve sempre tentar fazê-lo no melhor computador disponível. Mais especificamente, a ferramenta de captura faz gravações em disco substanciais e contínuas, portanto, a chave para armazenar o arquivo em um disco rígido rápido. Os laptops geralmente vêm com discos rígidos de acesso mais lento, portanto isso pode afetar muito o desempenho. O uso de um tamanho de quadro menor durante a captura facilita o disco rígido e pode manter a taxa de quadros alta. Fraps permite definir quadros de meio tamanho.

No caso de Fraps, a qualidade do filme final é muito afetada pela compressão usada na conversão do AVI de captura codificado em FPS1 para um formato distribuível. Se você não considerar perdas aqui, é claro que não importará o desempenho da ferramenta de captura.

Sério, acho que os programas que você menciona geralmente não são tão bons, mas precisam de algumas configurações antes de serem executados da melhor maneira possível com o seu jogo específico.


Salvar todos os quadros individuais em PNG provavelmente não é uma boa ideia se você já tiver problemas com a velocidade. Provavelmente consumiria mais tempo de CPU e disco porque precisaria que cada quadro fosse armazenado com todas as suas informações. Ao codificar e armazenar um filme, muitos codificadores usam vários quadros-chave que estão completos e permitem que quadros sucessivos sejam definidos como a diferença entre um quadro e o seguinte. Isso pode ser uma enorme redução no tamanho, mas não permite que você retire um quadro e o leia sem o quadro-chave.

Não apenas o tamanho de cada quadro será maior se você tentar despejá-los em arquivos separados, mas também receberá uma sobrecarga do próprio acesso ao arquivo. Isso ocorre porque você deve abrir um novo identificador de arquivo para cada quadro, em vez de manter e transmitir para um arquivo como no caso do filme.

Sua melhor aposta ainda é gravar um filme sem perdas e extrair os quadros, OU para capturar um número finito de quadros, como capturas de tela durante a reprodução.


Fraps também possui um modo de gravação sem perdas. Obviamente, requer ainda mais taxa de transferência de disco e RAM. Se você comprar a versão completa (que eu recomendo), o logotipo e o prazo desaparecerão.
BR1

Por que eu extrairia quadros? Eu quero todos os quadros! @Banana Eu sei que o Fraps tem o modo sem perdas, é o modo que eu mencionei que faz com que o Fraps fique lento e faça com que o jogo fique instável (aparentemente Fraps quando lento, em vez de derrubar quadros, de alguma forma diminui a velocidade do jogo)
speeder

Ok, claro, mas meu argumento é que você obtém ainda menos velocidade se tentar despejar todos os quadros em arquivos de imagem individuais.
Staffan E

2

Dispositivos como esses são super baratos, e aposto que você pode adquirir um segundo computador para executá-lo (não precisa de nada de especial) para capturar seu jogo na sua máquina de jogos (não se esqueça de ter um computador com saída S-Video para esta versão barata). Também existe algo assim para captura de qualidade superior - http://www.blackmagic-design.com/products/intensity/, mas requer USB 3 e é mais caro, mas você pode capturar HDMI e resolução mais alta. Realmente não vejo melhor opção do que qualquer um desses dois.


1

Eu usei o Windows Media Encoder algumas vezes para gravar vídeos dos meus jogos e ferramentas - é gratuito e produz vídeos de boa qualidade.

Embora, eu tenha me perguntado a mesma pergunta também, porque gravar um vídeo é apenas metade do processo (se for o caso). A outra metade está editando, adicionando efeitos, etc. O Windows Movie Maker meio que funciona, mas é bastante simplista ... e com falhas.


because recording a video is only half the processBom ponto, eu também estou querendo saber que, como afirmado no comentário da pergunta inicial ... #
Prix

1

Se estiver no Windows, grave usando o PlayClaw se quiser um vídeo do jogo sem deixar o computador lento. No Linux você tem glc .



1

Basicamente, os problemas foram:

Qualidade em um jogo baseado em vetor. Quantidade de CPU tomada. Gargalo de E / S.

Qual software usar para edição.

Para resolver a qualidade, eu precisava de um codec sem perdas ou sem compactação. Quanto menor a compactação, mais eu teria problemas de E / S, mas quanto mais CPU consumia, mais problemas de CPU (doh).

A solução foi usar um RamDrive para resolver o gargalo de E / S; portanto, agora eu ficava principalmente com a quantidade de CPU que queria usar (ou seja, a menor possível). Assim, teoricamente, o melhor seria nenhuma compactação, mas nenhuma compactação em um ramdrive atingiu problemas disponíveis no espaço ...

Pesquisei e descobri que o codec sem perdas mais rápido (não importa o quanto ele realmente comprima), e era o CamStudio Lossless

O software que usei foi o VirtualDub (o CamStudio em si não pode capturar o conteúdo da janela, captura a janela inteira, desperdiçando espaço).

Agora, editando o software: Bem, ninguém aqui deu uma boa nota, e nem eu farei, mas outras listas podem ser encontradas em outros lugares.


3
Percebo que você enviou seu vídeo para o YouTube . Observe que o YouTube re-codifica todos os vídeos no H.264; portanto, depois de todo esse movimento manual, você acabou usando um codec com perdas de qualquer maneira.
BlueRaja - Danny Pflughoeft

0

Você pode tentar o vnc2flv , mas ele não produz áudio propriamente dito (você pode adicionar uma faixa de áudio mais tarde). No entanto, não tenho certeza se sua CPU o odiará tentando codificar em tempo real FLV ao lado de um jogo em execução.


0

Provavelmente parece óbvio, mas ... Não jogue em tela cheia o jogo enquanto estiver gravando o vídeo, caso contrário, "obviamente" será incrivelmente lento porque captura a resolução da tela. Acho que é por isso que você está sendo mordido.

A FRAPS cuidará disso muito bem. O mesmo acontece com muitos outros, mas achei o FRAPS o mais conveniente e fácil de usar.

Usei o FRAPS para gravar e o Windows Movie Maker para montar alguns mapas que fiz no Starcraft II - exemplo .


Na verdade ... eu nem tentei em tela cheia, todos os meus testes estavam no modo janela.
speeder

0

Here's what I've done in the past to make video-only trailers:

  1. Make your game runnable with a fixed time step. That means passing in the time between now and the last frame explicitly rather than calculating it internally to your game loop.
  2. After rendering a frame, dump it out to a lossless picture format such as .tiff with the frame number as its name. This makes it easy for another app to encode a series of pictures into a movie.
  3. Dump into the appropriate video encoder (I wrote a simple one using DirectShow) to convert to .avi or whatever video format you want.

0

a melhor maneira é tornar seu jogo auto-gravável. A maneira mais fácil é salvar todos os quadros com taxa de quadros fixa. Com o SSD, leva "não" tempo. A maneira mais difícil é criar seus próprios "fraps". Se você fizer isso. Você pode se comunicar diretamente com o seu jogo.


0

Eu fiz recentemente um trailer para o meu jogo. Fui ajudado pelo mecanismo, que permite capturas de tela com rapidez suficiente para realmente animar. O que eu fiz:

  • Embora eu não tenha corrigido a taxa de quadros, as capturas foram feitas em intervalos fixos, 25 por segundo. Gravei minha sessão de jogo, que gerou milhares de imagens no drive.
  • Em seguida, importei essas imagens para um clipe no kdenlive
  • Adicionados alguns títulos, músicas, logotipos, desaparecem e desaparecem para dar uma aparência mais agradável

Actually capturing the images directly meant that I could not get the sounds from the game, but got a much better quality of images. Adding some music more than made up for it.


-6

If you have two PCs use skype's screen sharing feature. Play the game in one PC then use the other to capture the video. This way you won't affect your game and resources won't be scarce for the video capture program.

Conversely you can buy a video capture card for your PC.


wut... .. . . .
David McGraw

3
Skype can't magically send video without encoding it, which is what will take the CPU time away from the program.

1
This is the worst idea I've ever seen.
Mathias Lykkegaard Lorenzen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.