Как я могу сделать запись со второй игровой камеры и затем экспортировать ее в видеофайл?

9

Я делаю игру для PC Horror в Unity и хочу, чтобы в игре была симуляция записи с камеры - чтобы вы могли в любое время покинуть жуткое место, и у вас будет лента с тем, что вы записали на камеру во время исследования.

Технически, мне нужно прикрепить вторую камеру (ручную камеру) к руке персонажа и позволить игроку смотреть в видоискатель, нажимая кнопку. Но в любом положении ручной кулачок должен записывать все, что находится в фокусе в этой точке - пол, лестница, мусор и т. Д., Независимо от того, опущен он на уровне руки или поднят, чтобы соответствовать точке зрения игрока.

Когда игра заканчивается (игрок уходит или умирает), я хотел бы иметь возможность сохранять записанные ленты в видеофайл (если это невозможно, то в какой-нибудь файл сохранения).

Как я могу реализовать такую ​​функцию в моей игре? Существуют ли какие-то специальные трюки Unity или дополнения и дополнительные модули? Сохранение декораций и сцен с активными триггерами или просто захват видео с экрана?

Ниже приведена краткая концепция MSPaint о том, что я имею в виду:

концепция

KatShot
источник
Если ваша игра детерминирована (или достаточно близка), другой подход будет состоять в том, чтобы просто сохранить такие вещи, как позиции и данные анимации, звуковые триггеры, вход игрока и все остальное, что имеет отношение к делу, а затем воссоздать сцену из этих данных на более позднем этапе. Это использует гораздо меньше дискового пространства, чем запись каждого кадра на диск, и, вероятно, потребляет чуть меньше производительности (?).
Кристиан

Ответы:

6

Вам нужно визуализировать вашу сцену дважды.

Сначала вы визуализируете сцену от вида камеры до текстуры .

Затем вы визуализируете сцену с точки зрения игроков , но с текстурой, примененной к экрану камеры .

Что меняется между двумя проходами рендеринга, так это используемое преобразование камеры , в то время как видеокамера использует ориентацию и местоположение камеры, представление игроков использует ориентацию и местоположение головы игрока. Если вы используете скелетную анимацию, это будет так же просто, как прикрепить модель камеры к руке модели игрока.

Поскольку вы уже рендеритесь в текстуру, сохранение видео будет таким же простым, как сохранение текстуры в каждом кадре . Когда пользователь решит сохранить видео, вы можете преобразовать эту последовательность изображений в видеоформат .

Exilyth
источник
1
Имейте в виду, что, если я ничего не пропущу, этот метод не будет записывать звук вообще. От вопроса я не уверен, является ли это актуальным или нет.
Кристиан