Comment enregistrer mon jeu de graphiques vectoriels sans brouiller les graphiques?


15

Beaucoup de gens ont demandé une bande-annonce pour mon jeu, car les captures d'écran ne lui rendent pas justice. J'ai testé PlayClaw, Fraps, CamStudio, VirtualDub et quelques autres outils mineurs; aucun n'a produit de résultat viable. Mon jeu utilise des graphiques vectoriels et est conçu pour fonctionner à 60 images par seconde, donc la compression avec perte d'une vidéo de capture d'écran régulière détruit l'attrait graphique.

Comment enregistrer un gameplay sans brouiller mes graphiques et ralentir le framerate?


2
fraps est trop lent pour vous? assurez-vous de l'avoir réglé pour enregistrer à 60 ips et non à 30 ips par défaut.
David Young du

Pourriez-vous élargir votre question? je pense qu'il serait intéressant de savoir non pas en ligne sur l'enregistrement du jeu lui-même pour une simple bande-annonce, mais aussi pour produire des vidéos qui seront affichées dans le jeu, les soi-disant scènes de coupure ou même des bandes-annonces avec en plus des effets visuels comme la commutation des parties de la vidéo etc ... La suggérant à votre question car il y a des questions pareilles autour de i belive ...
Prix

1
Un prix qui serait trop différent ... Making Cut Scenes est un tout autre domaine de travail!
speeder

3
Je pense que vous devriez vraiment reconsidérer les fraps. De toutes les solutions que j'ai vues, il a la meilleure qualité, et il n'y a pas de logo pour un petit investissement. (Vous n'avez pas dit gratuit, dans votre question)
Jesse Dorsey

3
Je maintiens ma réponse précédente. Si vous pouvez rejouer l' entrée et la force (ou rejouer encore) le timestep, vous pouvez enregistrer des cadres premières et faire avec eux comme bon vous semble, sans aucune perte de qualité.
Kaj

Réponses:


22

Rendez votre jeu indépendant de la fréquence d'images, afin de pouvoir le configurer pour jouer avec un pas de temps fixe. Jouez à votre jeu, enregistrez l'entrée. Relisez avec un pas de temps fixe, une entrée enregistrée et écrivez chaque image dans un fichier - puisque vous relisez avec un pas de temps fixe, peu importe le temps d'écriture d'une image. De cette façon, votre métrage source n'est pas compressé et vous pouvez décider de la qualité plus tard sans avoir à sacrifier la vitesse ou à avoir des problèmes à cause d'un programme de capture. Après cela, des choses comme After Effects entrent en jeu - au moins, vous aurez du matériel source net.

Modifié pour ajouter: oui, je sais, le rendre indépendant du framerate pour jouer à un pas de temps fixe est idiot. Duh. Eh bien, s'il s'agit de fraps indépendants du framerate, cela pourrait aussi être moins un problème; o) Les jeux devraient être indépendants du framerate de toute façon!


5
L'indépendance de la fréquence d'images et la lecture déterministe sont également utiles pour les tests. Noel Llopis a un bon article ici: gamesfromwithin.com/back-to-the-future-part-1 (il y a aussi une deuxième partie liée).
celion

Alors ... votre idée est de recoder tout le moteur (que je n'ai pas fait btw) pour qu'il prenne en charge une manière d'enregistrer l'entrée et de rejouer parfaitement cette entrée mentionnée? Désolé, mais cela ne fonctionne pas, surtout parce que bien que le jeu soit déterministe (les seuls aléatoires sont dans les effets visuels) le moteur physique peut fluctuer, et cela ne fonctionnerait pas correctement ... Je pose des questions sur le marketing, pas sur la programmation .
speeder

Si le moteur physique peut fluctuer, ce n'est pas déterministe. L'enregistrement d'entrée (dans la plupart des moteurs) se branche en un seul endroit, c'est à peine 'recodage du moteur entier' ..... de toute façon, je vous entends. <b> L'encodage vidéo est une opération assez coûteuse, sans perte mais une bonne compression est plus chère . Si l'accès au disque dur est effectivement le problème, vous pouvez envisager de configurer un disque RAM si vous avez de la mémoire de rechange. En ce qui concerne votre commentaire sur le marketing, désolé, je pensais que vous cherchiez une solution - cela vous préparerait également pour l'avenir (et si vous avez besoin d'une haute résolution?). S'il est hors de portée, alors ... essayez le disque ram.
Kaj

Pourquoi est-il idiot de "rendre le framerate indépendant pour une lecture à un pas de temps fixe"? Pour que la sortie de fréquence d'images fixe contienne la séquence que vous avez enregistrée, elle doit être indépendante de la fréquence d'images lors de l'enregistrement.
falstro

Pas nécessairement. Si l'image fonctionne à un taux de rafraîchissement fixe garanti (relativement peu probable, mais si), vous pouvez simplement rejouer l'alimentation des touches au fur et à mesure qu'elles sont entrées et en supposant le même pas de temps. En outre, cela semblait juste idiot: op
Kaj

8

Cet article sur Pixel Prospector peut être ce dont vous avez besoin:

Comment enregistrer et éditer des vidéos de gameplay

Le jeu utilisé dans la vidéo est NeonPlat 2, qui utilise également des graphiques vectoriels.

L'article couvre tout, de la capture à l'édition.


Ok, j'attribue la prime pour celui-ci, c'est celui qui était en fait MIEUX correct ... Quoi qu'il en soit, merci à Kaj pour avoir mentionné les lecteurs RAM (résolu le problème de la lenteur du disque), mais je ne peux pas attribuer une ... moitié -bounty pour chaque réponse.
speeder

Pas de problème. J'espère que vous avez réussi à saisir quelque chose correctement!
Kaj

2
La page archivée est ici . Ils ont mis à jour la page qui semble être une grande liste de logiciels d'enregistrement d'écran
bobobobo

4

Pour enregistrer vos séquences de jeu, vous pouvez essayer CamStudio , qui est gratuit. Je trouve que cela ne fonctionne pas avec les jeux en mode plein écran, donc vous voudrez exécuter votre jeu dans une fenêtre.

En ce qui concerne la création de la bande-annonce, vous aurez besoin d'un logiciel de montage vidéo. Il existe plusieurs options commerciales coûteuses, mais si vous cherchez quelque chose de gratuit, votre choix est plus limité. Vous pouvez essayer Windows Movie Maker ou iMovie si vous avez un Mac, mais le meilleur éditeur vidéo gratuit que j'ai trouvé est Blender , plus largement connu comme un outil de modélisation et d'animation 3D. L'interface utilisateur n'est pas intuitive, mais si vous passez un peu de temps à l'apprendre, vous mettrez également la main sur un très bon outil de montage vidéo.


3

Ma meilleure expérience est avec Fraps mais j'ai utilisé la version complète (cela semblait être un petit prix unique pour payer un excellent utilitaire) qui n'a pas de limites ou de logo. Vous pouvez définir la fréquence d'images à l'avance, comme l'a suggéré David Young dans son commentaire. Comme de nombreux outils de capture vidéo, Fraps utilise une compression à faible coût pendant l'enregistrement, qui peut ensuite être convertie en un format de compression plus élevé de votre choix. Pour cela, j'utilise généralement VirtualDub.

Je n'ai eu aucun problème à exécuter Fraps derrière mon jeu à pleine vitesse (50 images par seconde dans mon cas) pour obtenir des captures de haute qualité.

Le problème clé ici est que la capture nécessite des performances, et vous devriez toujours essayer de le faire sur le meilleur ordinateur disponible. Plus précisément, l'outil de capture effectue des écritures de disque importantes et continues, il est donc essentiel de choisir de stocker le fichier sur un disque dur rapide. Les ordinateurs portables sont souvent livrés avec des disques durs à accès plus lent, ce qui peut affecter considérablement les performances. L'utilisation d'une taille d'image plus petite pendant la capture facilite le disque dur et peut maintenir votre cadence d'images. Fraps vous permet de définir des cadres demi-taille.

Dans le cas de Fraps, la qualité du film final est grandement affectée par la compression que vous utilisez lors de la conversion de l'AVI de capture codée FPS1 en un format distribuable. Si vous ne considérez pas la perte ici, peu importe la performance de l'outil de capture.

Je ne pense vraiment pas que les programmes que vous mentionnez soient généralement si mauvais, mais ont besoin d'une configuration avant de fonctionner de manière optimale avec votre jeu spécifique.


L'enregistrement de chaque image individuelle en PNG n'est probablement pas une bonne idée si vous avez déjà des problèmes de vitesse. Il consommerait probablement plus de temps CPU et disque car il aurait besoin que chaque image soit stockée avec toutes ses informations. Lors de l'encodage et du stockage d'un film, de nombreux encodeurs utilisent un certain nombre d'images clés qui sont complètes et permettent de définir les images successives comme la différence entre une image et la suivante. Cela peut être une énorme réduction de taille, mais cela ne vous permet pas de retirer une image et de la lire sans l'image clé.

Non seulement la taille de chaque cadre sera plus grande si vous essayez de les vider dans des fichiers séparés, mais vous obtiendrez également une surcharge de l'accès au fichier lui-même. En effet, vous devez ouvrir un nouveau descripteur de fichier pour chaque image au lieu de conserver et de diffuser un fichier comme dans le boîtier du film.

Votre meilleur pari est toujours d'enregistrer un film sans perte et d'en extraire les images, OU de capturer un nombre fini d'images comme des captures d'écran pendant la lecture.


Fraps dispose également d'un mode d'enregistrement sans perte. Bien sûr, cela nécessite encore plus de débit de disque et de RAM. Si vous achetez la version complète (que je recommande), le logo et le délai disparaissent.
BRaffle

Pourquoi je voudrais extraire des images? Je veux tous les cadres! @Banana Je sais que Fraps a un mode sans perte, c'est le mode que j'ai mentionné qui ralentit Fraps et rend le gameplay bancal (apparemment Fraps lorsqu'il est lent au lieu de supprimer des images, il ralentit en quelque sorte le jeu)
speeder

Ok, bien sûr, mais mon point est que vous obtenez encore moins de vitesse si vous essayez de vider chaque image dans des fichiers image individuels.
Staffan E

2

Des appareils comme ceux - ci sont super bon marché, et je parie que vous pouvez obtenir un deuxième ordinateur pour l'exécuter (il n'a besoin de rien de spécial) afin que vous puissiez capturer votre jeu depuis votre machine de jeu (assurez-vous d'avoir un ordinateur avec sortie S-Vidéo pour cette version bon marché). Il y a aussi quelque chose comme ça pour une capture de meilleure qualité - http://www.blackmagic-design.com/products/intensity/ mais nécessite USB 3 et est plus cher, mais vous pouvez capturer HDMI et une résolution plus élevée. Je ne vois vraiment pas de meilleure option que ces deux-là.


1

J'ai utilisé Windows Media Encoder plusieurs fois pour enregistrer des vidéos de mes jeux et outils - c'est gratuit et produit des vidéos de bonne qualité.

Cependant, je me suis aussi posé la même question, car l'enregistrement d'une vidéo ne représente que la moitié du processus (si cela). L'autre moitié est en train de l'éditer, d'ajouter des effets, etc. Windows Movie Maker fonctionne un peu mais c'est assez simpliste ... et planté.


because recording a video is only half the processBon point je me demande aussi que comme indiqué sur le commentaire de la question initiale ...
Prix

1

Si sous Windows, enregistrez à l'aide de PlayClaw si vous voulez une vidéo de jeu sans ralentir à peine votre ordinateur. Sur Linux, vous avez glc .



1

Fondamentalement, les problèmes étaient les suivants:

Qualité sur un jeu vectoriel. Quantité de CPU prise. Goulot d'étranglement d'E / S.

Quel logiciel utiliser pour l'édition.

Pour résoudre la qualité, j'avais besoin d'un codec sans perte, ou pas de compression. Plus la compression est faible, plus j'aurais de problèmes d'E / S, mais plus j'aurais de CPU, plus j'aurais de problèmes de CPU (doh).

La solution consistait à utiliser un RamDrive pour résoudre le goulot d'étranglement des E / S, donc il me restait maintenant principalement la quantité de CPU que je voulais prendre (c'est-à-dire: la plus petite possible). Ainsi, théoriquement, le meilleur serait de ne pas compresser du tout, mais pas de compression du tout sur un problème d'espace disponible sur un disque dur ramdrive ...

J'ai donc fait des recherches et constaté que le codec sans perte le plus rapide (peu importe combien il comprime réellement), et c'était CamStudio Lossless

Le logiciel que j'ai utilisé était VirtualDub (CamStudio lui-même ne peut pas capturer le contenu de la fenêtre, il capture la fenêtre entière, gaspillant ainsi de l'espace).

Maintenant éditant un logiciel: Eh bien, personne ici n'a donné un bon avertissement, et je ne le ferai pas non plus, mais d'autres listes peuvent être trouvées ailleurs.


3
Je remarque que vous avez mis en ligne votre vidéo sur Youtube . Notez que Youtube réencode toutes les vidéos en H.264, donc après tout cela, vous avez finalement utilisé un codec avec perte.
BlueRaja - Danny Pflughoeft

0

Vous voudrez peut-être essayer vnc2flv , mais il ne fera pas l'audio lui-même (vous pouvez cependant ajouter une piste audio plus tard). Je ne sais pas si votre CPU vous détesterait d'essayer de faire l'encodage FLV en temps réel avec un jeu en cours d'exécution.


0

Cela semble probablement évident, mais ... Ne faites pas plein écran votre jeu pendant que vous enregistrez la vidéo, sinon il sera "évidemment" incroyablement lent car il capture votre résolution d'écran. Je suppose que c'est ce par quoi vous êtes mordu.

FRAPS s'en très bien. Il en sera de même pour beaucoup d'autres, mais j'ai trouvé les FRAPS les plus pratiques et les plus faciles à utiliser.

J'ai utilisé FRAPS pour enregistrer et Windows Movie Maker pour assembler certaines cartes que j'ai faites dans Starcraft II - par exemple .


En fait ... je n'ai même pas essayé en plein écran, tous mes tests étaient en mode fenêtré.
speeder

0

Voici ce que j'ai fait par le passé pour créer des bandes-annonces uniquement vidéo:

  1. Rendez votre jeu exécutable avec un pas de temps fixe. Cela signifie passer le temps entre maintenant et la dernière image explicitement plutôt que de le calculer en interne dans votre boucle de jeu.
  2. Après avoir rendu une image, videz-la dans un format d'image sans perte tel que .tiff avec le numéro d'image comme nom. Cela permet à une autre application d'encoder facilement une série d'images dans un film.
  3. Dump dans l'encodeur vidéo approprié (j'ai écrit un simple en utilisant DirectShow) pour convertir en .avi ou dans le format vidéo que vous voulez.

0

la meilleure façon est de rendre votre jeu auto-enregistrable. Le moyen le plus simple est d'enregistrer chaque image avec une fréquence d'images fixe. Avec le SSD, cela ne prend "pas" de temps. La manière la plus difficile est de créer vos propres "fraps". Si vous le faites. Vous pouvez communiquer directement avec votre jeu.


0

J'ai récemment fait une bande-annonce pour mon jeu. J'ai été quelque peu aidé par le moteur, qui permet des captures d'écran assez rapides pour réellement animer. Ce que j'ai fait:

  • Bien que je n'aie pas fixé le framerate, les captures ont été faites à intervalles fixes, 25 par seconde. J'ai enregistré ma session de jeu, qui a généré des milliers d'images sur le disque.
  • J'ai ensuite importé ces images dans un clip dans kdenlive
  • Ajout de titres, de musique, de logos, de fondus et de fondus pour lui donner un aspect plus agréable

En fait, la capture directe des images signifiait que je ne pouvais pas obtenir les sons du jeu, mais que la qualité des images était bien meilleure. Ajouter de la musique a plus que compensé.


-6

Si vous avez deux PC, utilisez la fonction de partage d'écran de skype. Jouez au jeu sur un PC puis utilisez l'autre pour capturer la vidéo. De cette façon, vous n'affecterez pas votre jeu et les ressources ne seront pas rares pour le programme de capture vidéo.

Inversement, vous pouvez acheter une carte de capture vidéo pour votre PC.


wut ... ... . .
David McGraw

3
Skype ne peut pas envoyer de vidéo comme par magie sans l'encoder, ce qui éloignera le temps processeur du programme.

1
C'est la pire idée que j'aie jamais vue.
Mathias Lykkegaard Lorenzen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.