Insane Video Recorder – Camera Man

O Insane Video Recorder (IVR) – Camera Man, é um plug-in disponível no MarketPlace da Unreal Engine, projetado para ajudar desenvolvedores, artistas e profissionais de produção virtual a gravar vídeos em tempo real na Unreal, sem que seja necessário utilizar uma interface / UI de produção de vídeo para a criação de Cinemáticas.

Por muitos anos este tipo de profissional, para deixar um vídeo pronto para ser lançado, precisa utilizar uma UI para gravar seus jogos primeiro e utilizar uma série de outras ferramentas para cortar e editar todos os frames do video , bem como gerar toda a cinemática envolvida na produção.

Além de ser a etapa mais trabalhosa do processo de produção de video de um projeto, toda a cinemática envolvida procura reproduzir a movimentação em tempo real, exigindo que toda a movimentação e sincronização seja previamente planejada e executada utilizando funcionalidades como keyframes e pontos de interpolação.

Com a evolução de métodos de Produção Virtual de Vídeos, cada vez mais tais processos deixam de ser utilizados , para dar espaço a geração de vídeos em tempo real, onde por exemplo toda a cinemática envolvida não precisaria ser pré-desenhada, mas sim executada em seu ambiente real, onde o material de reprodução é “Coletado”, para ser utilizado na produção do video.

Isto quer dizer que , por exemplo , executar um jogo e coletar tudo que acontece em uma sessão de gravação, reduz drasticamente o trabalho que teria que ser realizado para produzir este video peça por peça.

Múltiplas Sessões de Gravação poderiam ser realizadas durante uma mesma simulação e até mesmo o compartilhamento na rede de diversas gravações sendo “Mixadas” em um único evento de gravação em tempo real.

Levando em conta esta evolução ocorrendo em ambientes de produção virtuais , o IVR Camera Man foi desenvolvido para possibilitar que estas evoluções conceituais da produção virtual estejam disponíveis na Unreal Engine de maneira rápida e fácil.

Inclusive o nome “Camera Man” foi incluido pois todas as operações de gravação são comandadas por um Character que toma posse do Player , exatamente como em um Jogo em Tempo real!

 

Funcionalidades principais do Plugin:

Todo o Plugin foi desenvolvido em C++ e as funcionalidades podem ser facilmente utilizadas em Blueprints, onde ao invés de apenas especificarmos parametros de uso, toda a usabilidade do Plugin foi criada para atender alguns “Casos de Uso” , comumente utilizados para a gravação de vídeos.

Esta é a primeira versão do Plugin, e estamos planejando diversas funcionalidades adicionais para a as futuras releases.

  • Todo o processo de Gravação de Video através de um unico objeto Blueprint – IVR_CameraMan (Apenas Arraste ,Coloque  e Grave!)
  • Gerenciamento automático das cameras de gravação – Apenas vá incluindo diversos IVR_CameraMan pelo Cenario.
  • Suavização Média de FrameRates para atingir o mais proximo possivel do FPS Real de Reprodução.
  • Possibilidade de Coleta de Frames por Imagem, sem a gravação de Video (Screenshots)
  • Gravação de Diversos Videos ao mesmo Tempo.
  • Possibilidade de Integração com o Sistema de Navegação (Navigation Volume).
  • Spawner Automático de cameras de gravação (Não Há necessidade de Recriar Câmeras e posicioná-las no ambiente)
  • Turbo Recording para os casos em que a gravação em si é lenta , onde é possivel acelerar a gravação e FPS do vídeo.
  • Funcionalidades Experimentais – Estabilização e SuperResolução.
  • Gravação de Áudio do MainMix.

 

Modo de Utilização do Plugin

O Plugin IVR CameraMan é muito simples de se utilizar e envolve apenas a inclusão no cenário a ser gravado o Objeto IVR_CameraMan. Por ter sido desenvolvido a partir de um Character na Unreal , todas as funcionalidades de Input de comandos movimentação no Level e Comandos para gravação podem ser executados automaticamente através dos comandos:

W,S,A,D – Movimenta o Character pela Cena
Setas de Direção – Rotaciona a Câmera
R – Inicia a Gravação.
T – Interrompe a Gravação.
Y – Dispara a Gravação unica dos Videos no Disco Rígido.
G – Captura todas as cameras do cenário e Cria um CameraMan no mesmo local e Direção.

Para poder alterar os parametros padrão da aplicação e utilizar funções de Pós-Gravação Experimentais, um botão no menu principal estará disponível com tela especifica para isto.

Para habilitar Input, algumas diretivas precisam ser configuradas no seu projeto, onde temos duas opções:

Opção A: Copie as linhas abaixo no seu arquivo DefaultInput.ini.

+ ActionMappings = (ActionName = “StartRecord”, bShift = False, bCtrl = False, bAlt = False, bCmd = False, Key = R)
+ ActionMappings = (ActionName = “StopRecord”, bShift = False, bCtrl = False, bAlt = False, bCmd = False, Key = T)
+ ActionMappings = (ActionName = “CompileVideos”, bShift = False, bCtrl = False, bAlt = False, bCmd = False, Key = Y)
+ ActionMappings = (ActionName = “GrabbCameras”, bShift = False, bCtrl = False, bAlt = False, bCmd = False, Key = G)
+ AxisMappings = (AxisName = “MoveCameraManFoward”, Scale = 1.000000, Key = W)
+ AxisMappings = (AxisName = “MoveCameraManRight”, Scale = 1.000000, Key = D)
+ AxisMappings = (AxisName = “MoveCameraManFoward”, Scale = -1.000000, Key = S)
+ AxisMappings = (AxisName = “MoveCameraManRight”, Scale = -1.000000, Key = A)
+ AxisMappings = (AxisName = “MoveCameraManTurnRate”, Scale = 1.000000, Key = Right)
+ AxisMappings = (AxisName = “MoveCameraManTurnRate”, Scale = -1.000000, Key = Left)
+ AxisMappings = (AxisName = “MoveCameraManLookUpRate”, Scale = 1.000000, Key = Up)
+ AxisMappings = (AxisName = “MoveCameraManLookUpRate”, Scale = -1.000000, Key = Down)

Opção B: Copie o arquivo DefaultInput.ini incluso no diretório do Plugin.

 

 

Funcionalidades Experimentais

Em conjunto com as funcionalidades do Plugin, incluimos algumas funcionalidades experimentais , que apesar de ainda mostrarem alguma instabilidade, são baseadas em Visão Computacional e podem auxiliar o trabalho de produção do seu video, como a Estabilização de Videos e Super Resolução.

Com a funcionalidade de Estabilização é possível suavizar eventuais gaps de frames gerados por quedas bruscas do Frame Rate, e com a funcionalidade de Super Resolução é possivel aumentar a resolução de um video de 1024×768 para uma resolução de mais de 4K , com perdas mínimas na definição do vídeo.

Optamos por disponibilizar estas funcionalidades já que algumas delas ainda não possuem um “Estado da Arte” bem definido, mesmo sendo demoradas e consumirem muita memória, podem gerar beneficio em casos específicos. Utilize-as por sua conta e risco.