Neste guia de Início Rápido, apresentamos o processo de configuração de um Projeto da Unreal Engine para funcionar com uma placa de vídeo profissional da Blackmagic Design. No final deste guia:
Você terá uma entrada de vídeo do seu cartão Blackmagic sendo reproduzido dentro do seu projeto Unreal Engine.
Você poderá capturar pontos de vista da câmera pelo editor e pelo candidatura de tempo de execução e enviar los a uma porta SDI na placa Blackmagic.
Você saberá aonde ir quando quiser definir ajustes mais avançados nas entradas de vídeo, como correção de deformação de lente e aplicação de efeitos chroma key.
Para obter um exemplo funcional que mostra muitos dos elementos descritos abaixo colocados em prática, confira a exibição do Virtual Studio, disponível na aba Amostras do Inicializador da Epic Games.
Pré-requisitos:
Certifique-se de ter um cartão compatível da Blackmagic Design e de ter instalado os drivers e software necessários. Para obter detalhes, confira a página Referência de mídia Blackmagic.
Verifique se a placa está funcionando corretamente e se há alguma entrada de vídeo alimentando pelo menos uma das portas SDI da placa.
Abra um Projeto da Unreal Engine que você deseja integrar aos seus feeds de vídeo. Essa página mostra as etapas no modelo de Blueprint em terceira pessoa, mas elas também funcionam em qualquer Projeto.
Os componentes da Blackmagic Design usados neste guia são criados com base no Media Framework, e usaremos Blueprints para criar o código do processo de captura de vídeo em tempo de execução. Alguns conhecimentos prévios sobre esses tópicos são recomendados, mas não obrigatórios.
1 - Configurar o projeto
Antes de obter uma entrada de vídeo da sua placa Blackmagic para o nível da Unreal Engine e enviar a saída da Unreal Engine por uma das portas SDI da sua placa Blackmagic, você precisará fazer algumas configurações básicas para habilitar o plugin Reprodutor de mídia no seu projeto.
Se você iniciou seu projeto da Unreal Engine a partir de um dos modelos na categoria Filme, televisão e eventos ao vivo, os plugins necessários podem já estar habilitados para você. Caso contrário, siga as instruções abaixo para ativá-los.
Etapas
Abra o Projeto que deseja usar com a Blackmagic Video I/O no Unreal Editor.
No menu principal, selecione Editar > Plugins.
Na janela Plugins, encontre o plugin Blackmagic Media Player na categoria Reprodutores de mídia. Marque a caixa de seleção Habilitado.
Encontre o plugin Media Framework Utilities na categoria Mídia. Marque a caixa de seleção Habilitado se ainda não estiver marcada.
Clique em Reiniciar agora para reiniciar o Unreal Editor e reabrir seu projeto.
Resultado
Seu projeto agora está pronto para aceitar vídeo da placa Blackmagic e enviar a saída renderizada à placa. Nas próximas seções, vamos conectar e começar a reproduzir vídeo.
2 - Renderização de entrada de vídeo na Unreal Engine
Neste processo, tornaremos a entrada de vídeo da placa Blackmagic visível no nível atual no Unreal Editor. Esse processo usa um pacote de mídia: um tipo de ativo que empacotar vários tipos diferentes de ativos envolvidos no Media Framework e que oferece controle sobre algumas funcionalidades avançadas, como deformação de lente, chroma-key, correção de cor e mais.
Etapas
No Navegador de Conteúdo, expanda o painel Origens. Clique com o botão direito e escolha Nova pasta no menu de contexto.
Renomeie a nova pasta como Blackmagic.
Abra a nova pasta, clique com o botão direito no Navegador de Conteúdo e selecione Mídia > Pacote de mídia.
O nome do novo ativo será selecionado automaticamente no Navegador de Conteúdo, portanto você pode dar um nome descritivo: Digite um novo nome, como BlackmagicMediaBundle e pressione Enter. Uma nova pasta de Ativos do Media Framework é criada automaticamente ao lado do pacote de mídia, nomeada com o sufixo _InnerAssets. Vamos dar uma olhada nesses Ativos mais tarde.
Salve os novos ativos clicando no botão Salvar tudo no Navegador de Conteúdo.
Clique duas vezes no seu novo Pacote de mídia para editar suas propriedades. O Pacote de mídia é capaz de reproduzir vídeo de qualquer fonte de mídia compatível com a engine. Você precisa informar a ele que deseja obter o vídeo da sua placa Blackmagic. Na propriedade Fonte de mídia, selecione Fonte de mídia Blackmagic na lista suspensa:
Depois de identificar o tipo de fonte de mídia que deseja que o Pacote de mídia processe, você poderá configurar as propriedades de configuração oferecidas por esse tipo de fonte. Você pode fazer a Unreal Engine corresponder automaticamente ao formato e à taxa de quadros do sinal de vídeo de entrada. Para habilitar a detecção automática de formato, clique no menu suspenso Configuração, habilite Auto e clique em Aplicar. A engine lida com as alterações perfeitamente e é reiniciada em caso de perda temporária do sinal.
As opções exibidas podem variar dependendo dos dispositivos instalados. Para obter detalhes sobre todas as propriedades que podem ser definidas para uma fonte de mídia Blackmagic, confira a página Referência de mídia Blackmagic.
Se quiser aplicar uma compensação ao vídeo de entrada para levar em conta a distorção da lente, você pode configurar as propriedades físicas da lente na seção Parâmetros da lente.
Esses parâmetros da lente apenas definem as propriedades físicas da lente. Você ativará a compensação da lente posteriormente, ao editar a Instância de material usada pelo Pacote de mídia. Salve e feche o Pacote de mídia quando terminar de configurar as propriedades.
Arraste seu ativo BlackmagicMediaBundle do Navegador de Conteúdo até a janela de visualização de nível.
Você verá um novo plano mostrando o vídeo sendo reproduzido na porta configurada para o Pacote de mídia. Use as ferramentas de transformação na barra de ferramentas Janela de Visualização para movê-lo, girá-lo e redimensioná-lo. Se o Pacote de mídia não começar a ser reproduzido automaticamente, selecione-o e clique no botão Pacote de mídia > Solicitar reprodução de mídia no painel Detalhes.
Agora veremos como aplicar efeitos de keyframe e composição à transmissão de vídeo. De volta ao Editor de Pacote de mídia, clique no botão Abrir editor de material na barra de ferramentas para editar a instância de Material que o Pacote de mídia usa para desenhar a transmissão de vídeo de entrada em um objeto no nível.
No Editor de instância de material, você verá diversas propriedades expostas para configurar keyframes, corte e correção de cor, além de ativar a correção da distorção de lente configurada no Pacote de mídia.
Enquanto ajusta as configurações no Editor de instância de material, você pode ver o efeito das alterações na transmissão de vídeo reproduzida na Janela de visualização do nível principal.
Pode ser mais conveniente ver os efeitos das alterações que você faz no painel de pré-visualização do Editor de instância de material. Para fazer isso, habilite temporariamente a configuração IsValid e defina seu valor como
1.0.Clique na seta no canto superior esquerdo da barra de ferramentas da janela de visualização e habilite a opção Tempo real no menu.
Você poderá avaliar o efeito das alterações mais facilmente se alterar a malha de pré-visualização para um plano ou um cubo. Use os controles na parte inferior da janela de visualização:
Quando terminar, retorne a configuração IsValid ao valor anterior.
Quando terminar de alterar as propriedades da instância de Material, clique no botão Salvar na barra de ferramentas.
Resultado
A essa altura, você deve ter um vídeo sendo reproduzido em uma porta SDI dentro do nível da Unreal Engine e deve saber onde definir mais funcionalidades avançadas, como deformação de lente e chroma-key.
Se você já conhece o Media Framework, outra maneira de colocar vídeos no nível é criar um novo ativo BlackmagicMediaSource no projeto e configurá-lo com as mesmas propriedades de origem que você configurou dentro do Pacote de mídia no procedimento acima. Em seguida, crie seus próprios ativos MediaPlayer e MediaTexture para processar a reprodução da fonte no nível. Para obter detalhes, consulte a documentação do Media Framework. No entanto, recomendamos usar o Pacote de mídia, como mostrado acima, para obter o melhor equilíbrio entre facilidade de uso e funcionalidades de vídeo de qualidade profissional.
3 - Capturas de saída do Unreal Editor
Neste processo, você configurará um objeto Saída de mídia Blackmagic e usará o painel Capturas de mídia no Unreal Editor para saída a visualização de Câmeras selecionadas no nível para a sua placa Blackmagic.
Etapas
Clique com o botão direito do mouse no Navegador de Conteúdo e selecione Mídia > Saída de mídia Blackmagic.
Nomeie o novo ativo como "BlackmagicMediaOutput".
Clique duas vezes no seu novo recurso para abri-lo para edição. Assim como na criação da fonte de mídia Blackmagic, você precisa definir a propriedade Configuração para controlar as propriedades da transmissão de vídeo que a Unreal Engine envia à placa Blackmagic. Clique na seta para abrir o submenu, selecione as opções que correspondem à configuração do vídeo e clique em Aplicar no submenu.
As opções exibidas podem variar dependendo dos dispositivos instalados. Para obter detalhes sobre todas as propriedades que você pode definir na saída de mídia Blackmagic, confira a página Referência da mídia Blackmagic. Salve e feche a Saída de mídia quando terminar.
Agora, colocaremos duas câmeras no nível para termos pontos de vista da saída que enviaremos à placa Blackmagic. No painel Posicionar atores, abra a aba Cinematografia e arraste duas instâncias de Ator de câmera cinematográfica até a janela de visualização.
Posicione as câmeras onde desejar no nível, para que elas mostrem diferentes pontos de vista da cena.
Pilotar a câmera é uma maneira rápida e fácil de definir o ponto de vista exatamente como você deseja. Consulte Pilotar atores na janela de visualização.
No menu principal, escolha Janela > Produção virtual > Captura de mídia. Você usará a janela Captura de mídia para controlar quando o editor envia a saída ao seu dispositivo Blackmagic e qual câmera deve ser usada no nível.
Na área Captura de janela de visualização de mídia, encontre o controle Capturas da janela de visualização. Clique no botão Adicionar (+) para adicionar uma nova captura a essa lista.
Expanda a nova entrada. Primeiro, vamos adicionar as câmeras das quais queremos capturar. No controle Atores de câmera bloqueados, clique no botão Adicionar (+) para adicionar uma nova entrada.
Em seguida, use a lista suspensa para escolher uma das câmeras que você colocou no nível.
Repita os mesmos passos para adicionar a outra câmera à lista.
Agora, configure a saída para a qual você deseja capturar essas câmeras. Defina o controle Saída de mídia para apontar para o novo Ativo de Saída de mídia Blackmagic que você criou acima. Para isso, selecione-o na lista suspensa ou arraste o ativo de Saída de mídia Blackmagic do Navegador de Conteúdo e solte-o nesse espaço.
Na parte superior da janela, clique no botão Capturar.
Você verá um novo quadro na parte inferior da janela que mostra uma pré-visualização da saída sendo enviada à placa Blackmagic. Se você tiver essa porta conectada a outro dispositivo downstream, começará a ver a saída.
Cada câmera adicionada à lista Atores de câmeras bloqueadas para essa captura da janela de visualização é representada por um botão correspondente acima da pré-visualização do vídeo. Clique nos botões para alternar a captura entre as duas visualizações.
Resultado
Agora, você configurou o Unreal Editor para transmitir a saída das câmeras no seu Nível para uma porta na sua placa Blackmagic. Em seguida, veremos como usar o script Blueprint para fazer a mesma coisa em um Projeto em execução da Unreal Engine.
4 - Capturas de saída em tempo de execução
A janela Captura de mídia usada na última seção é uma maneira prática e fácil de enviar capturas à placa Blackmagic. No entanto, ele só funciona dentro do Unreal Editor. Para fazer a mesma coisa ao executar o projeto como um aplicativo independente, você precisará usar a API Blueprint fornecida pela saída de mídia. Nesse procedimento, configuraremos uma alternância simples no Blueprint de nível que inicia e interrompe a captura quando o jogador pressiona uma tecla do teclado.
A exibição do Virtual Studio, disponível na aba Amostras do Inicializador da Epic Games, contém um widget de interface UMG que demonstra como você pode controlar a captura a partir de uma interface de usuário na tela.
Etapas
Na barra de ferramentas principal do Unreal Editor, selecione Blueprints > Abrir Blueprint de nível.
Precisamos começar pelo ativo Saída de mídia Blackmagic que você criou, no qual você identifica a porta que deseja usar como saída. Na lista Variáveis do painel Meu Blueprint, clique no botão Adicionar (+) para adicionar uma variável.
No painel Detalhes, defina o Nome da variável como BlackmagicMediaOutput e use a lista suspensa Tipo de variável para torná-la uma Referência de objeto de Saída de mídia Blackmagic.
Habilite a configuração Instância editável (1) e compile o Blueprint. Em seguida, na seção Valor padrão, defina a variável para apontar para o ativo de Saída de mídia Blackmagic que você criou no Navegador de Conteúdo (2).
Pressione CTRL e arraste BlackmagicMediaOutput da lista Variáveis do painel Meu Blueprint até o Gráfico de Eventos.
Clique e arrastar da porta de saída do nó da variável BlackmagicMediaOutput e selecione Mídia > Saída > Criar captura de mídia.
Conecte os nós ao nó Evento BeginPlay como mostrado a seguir:
Isso cria um objeto de Captura de mídia a partir da Saída de mídia Blackmagic. A Captura de mídia oferece duas funções Blueprint principais que usaremos para controlar a captura: Capturar janela de visualização da cena ativa e Parar captura.
Primeiro, vamos salvar o novo objeto Captura de mídia em sua própria variável, para que possamos acessá-lo de outro lugar. Clique e arraste da porta de saída do nó Criar captura de mídia e selecione Promover para variável.
Renomeie a nova variável como MediaCapture na lista Variáveis do painel Meu Blueprint.
É importante salvar a Captura de mídia em uma variável aqui. Caso contrário, o coletor de lixo da Unreal Engine poderá destruí-la automaticamente antes que você termine.
Pressione Ctrl e arraste a variável MediaCapture até o Gráfico de eventos.
Clique e arraste a partir da porta de saída do nó da variável MediaCapture e selecione Mídia > Saída > Capturar janela de visualização da cena ativa. Repita o processo e selecione Mídia > Saída > Parar captura.
Clique com o botão direito do mouse no Gráfico de eventos e escolha Entrada > Eventos do teclado > P. Clique e arraste da saída Pressionado do nó P e escolha Controle de fluxo > FlipFlop.
Conecte a saída A do nó FlipFlop ao evento de entrada do nó Capturar janela de visualização da cena ativa e conecte a saída B do nó FlipFlop ao evento de entrada do nó Parar captura como mostrado a seguir:
Compile e salve o Blueprint e tente reproduzir seu projeto. Clique na seta ao lado do botão Jogar na barra de ferramentas principal e escolha a opção Nova janela do editor (JNE) ou Jogo independente.
A captura de vídeo do Editor apenas funcionará quando você reproduzir o Projeto em uma Nova janela do editor (JNE) ou em um Jogo independente. Ela não funciona no modo Janela de visualização selecionada ou Simular padrão. Além disso, a resolução da janela de visualização do projeto (ou seja, o tamanho da imagem renderizada que a Unreal Engine gera a cada quadro) deve corresponder à resolução de saída definida no perfil de mídia ativo, para que tenha o tamanho certo para o vídeo de saída.
Após a inicialização do projeto, você poderá pressionar o botão P no teclado para alternar o envio da saída da Engine para a placa Blackmagic.
Resultado
A esta altura, você deve ter uma ideia básica de como trabalhar com fontes de mídia, Pacotes de mídia e o sistema de captura de mídia da Blackmagic e deve entender como todos esses elementos trabalham juntos para produzir vídeos profissionais dentro e fora da Unreal Engine.
Por si só
Agora que você aprendeu o básico sobre como criar um novo projeto com troca de entrada e saída de vídeo com uma placa Blackmagic, pode continuar aprendendo por conta própria:
Explore a solução de keyframes na engine na Instância de material criada pelo seu Pacote de mídia. Tente passar algum vídeo com tela verde para a porta de entrada da sua placa e utilize os controles de keyframes na Instância de material para remover o fundo.
Explore a exibição do Virtual Studio para ver o que ele acrescenta a essa configuração básica, como a interface na tela que troca de câmera e controla a captura de vídeo em tempo de execução.