Introdução
Você já deve estar familiarizado com o Sistema de Linha do Tempo. Muito parecido com o Sistema de Linha do Tempo, o Sistema de Desempenho oferece um conjunto de ferramentas de sequenciamento de conteúdo visual. Ele permite que os criadores organizem elementos como animações, efeitos sonoros, transições de câmera e gatilhos de eventos em uma única linha do tempo para controle, muito parecido com a edição de vídeo. Isso permite a produção de conteúdo comumente usado para sequências narrativas, transições de nível e cenas cinematográficas.

Conceitos fundamentais
Linha do tempo
Como o nome sugere, a linha do tempo é uma ferramenta de edição centrada na sequência temporal. Você observará uma régua calibrada por tempo, na qual faixas, clipes e outros elementos serão organizados para determinar sua respectiva ordem de reprodução.

Cursor de reprodução
O indicador de reprodução serve como um indicador temporal na linha do tempo, marcando e controlando a visualização atual ou o ponto operacional.

Arrastar o indicador de reprodução permite a pré-visualização em tempo real do desempenho de todas as faixas. Simultaneamente, serve como uma ferramenta poderosa para identificar quadros ou momentos específicos.
Faixas

As faixas servem como contêineres para conteúdo, armazenando elementos e seus dados de transformação temporal. O sistema de desempenho oferece vários tipos distintos de trilhas, cada uma capaz de hospedar apenas tipos específicos de entidades e processá-las de maneira diferente.
As trilhas possuem uma hierarquia pai-filho. Por exemplo, uma trilha de ator que hospeda um NPC pode conter uma subtila de componente de transformação. Essas subtilhas normalmente contêm atributos da entidade da trilha pai ou conteúdo fortemente relacionado a ela.
Atualmente, as trilhas suportam apenas entidades já colocadas na cena. Se uma entidade for destruída durante uma performance, o conteúdo da trilha correspondente deixará de funcionar. Portanto, certifique-se de que as entidades relevantes persistam durante toda a performance.
Trilha de Ator
A Trilha de Ator pode hospedar a maioria das entidades, como blocos básicos, NPCs, monstros, veículos e assim por diante. Ao adicionar subtrilhas à Trilha de Ator, trilhas distintas podem ser criadas para manipular essa entidade.
Faixa de animação
As faixas de animação só podem existir como faixas filhas e exigem que a entidade da faixa pai possua o componente “Animation Controller Attachable” (Controlador de animação acoplável). As faixas de animação permitem que a entidade da faixa pai reproduza clipes de animação armazenados na faixa.
Faixa AlongPath
As faixas AlongPath só podem existir como faixas filhas e exigem que a entidade da faixa pai possua um componente Transform. As faixas AlongPath combinam caminhos curvos personalizados (Caminho Curvo Personalizado) para mover a entidade da trilha pai ao longo de uma rota especificada.
SignalTrack
Apenas quadros de eventos podem ser adicionados a uma SignalTrack para enviar sinais de eventos personalizados. Veja abaixo os detalhes sobre o uso de eventos.
Skybox Track
Apenas uma trilha Skybox pode existir por arquivo de performance, e objetos Skybox não podem ser adicionados às trilhas de atores. Apenas quadros Skybox podem ser adicionados à trilha Skybox para ajustar os parâmetros Skybox.
Trilha Camera Switch
Apenas clipes de câmera personalizados podem ser adicionados à trilha Camera Switch. Quando o indicador de reprodução aponta para um clipe de câmera, a performance usará essa câmera; quando aponta para uma trilha vazia, a câmera do player será usada.
Câmeras podem ser adicionadas às trilhas de ator como atores para ajustar os parâmetros da câmera.
Trilha de áudio
As trilhas de áudio podem conter clipes de áudio para adicionar som à performance.
Clipe
Os clipes são as unidades fundamentais nas trilhas, representando o estado do conteúdo durante um período específico na linha do tempo. Dependendo do tipo, o inspetor de um clipe exibe diferentes propriedades ou configurações.
Geralmente, os clipes sempre possuem os seguintes atributos:
- Hora de início: o ponto em que o clipe começa a ser reproduzido na linha do tempo
- Hora de término: o ponto em que o clipe termina de ser reproduzido na linha do tempo. Esse tempo é calculado automaticamente com base na hora de início e na duração e não pode ser ajustado
- Duração: o tempo total de reprodução do clipe
- Duração do recurso: a duração do recurso utilizado pelo clipe. Este campo tem significados diferentes para cada tipo de clipe; por exemplo, em clipes de animação, ele denota a duração do recurso de movimento, enquanto em clipes AlongPath, ele indica o tempo necessário para percorrer o caminho à velocidade padrão de 1 m/s.
Fragmentos de animação


Os clipes de animação devem ser colocados em uma trilha de animação, com cada clipe contendo uma animação. A animação usada deve ser ajustada ao esqueleto da entidade da trilha pai. Os clipes de animação possuem os seguintes parâmetros especiais:
- Clipe: O recurso de animação a ser reproduzido
- Velocidade de reprodução: Taxa de reprodução da animação. O padrão é 1. Valores maiores que 1 aceleram a reprodução; valores menores que 1 diminuem a velocidade da reprodução.
- Modo de loop: Dentro de uma trilha, a duração de um clipe pode exceder a duração do recurso. Este parâmetro determina o comportamento após o recurso completar um ciclo de reprodução.
- Nenhum: sem processamento; a entidade da trilha pai retoma a pose padrão
- Manter: permanece no quadro final do recurso de animação até o final do segmento
- Loop: repete o recurso de animação até o final do segmento
- Loop infinito: continua repetindo a animação mesmo após o final do segmento, normalmente para elementos de fundo persistentes (por exemplo, ambientes naturais, efeitos de loop)
Fragmento AlongPath


Os clipes AlongPath só podem ser adicionados às faixas AlongPath e devem usar o Caminho de Curva Personalizado como seu conteúdo. Este clipe representa o caminho de movimento da entidade da faixa pai durante este período de tempo. Os clipes AlongPath possuem os seguintes parâmetros especiais:
- Path (Caminho): Qual caminho de curva personalizado é utilizado
- Playback Speed (Velocidade de reprodução): O multiplicador de velocidade para o movimento da entidade. As entidades se movem a 1 m/s por padrão dentro do sistema AlongPath do mecanismo de desempenho. Ajustar esse multiplicador controla a velocidade de movimento da entidade, pois as alterações na velocidade de movimento alteram o comprimento do recurso de acordo. Velocidade de movimento * Comprimento do recurso = Comprimento do caminho
- TangentFacing: se a entidade mantém a orientação para a frente ao longo do caminho durante o movimento. Quando o caminho é curvo, ativar essa configuração garante que a entidade em movimento fique sempre voltada para a direção do caminho; desativá-la permite que a entidade mantenha sua própria orientação. Alternar essa configuração não afeta outras operações que manipulam a direção da entidade
- Tipo: semelhante à extrapolação para trás em clipes de animação, isso determina como as entidades em movimento são tratadas quando o comprimento do clipe AlongPath excede o comprimento do recurso.
- Nenhum: nenhum processamento ocorre; o objeto para de se mover no ponto final do caminho.
- Loop: após completar um movimento, reinicie o movimento a partir do ponto inicial até o clipe terminar. Isso pode fazer com que a entidade se teletransporte do ponto final para o ponto inicial.
- Ping-pong: após completar um movimento, inverta a direção do ponto final em direção ao ponto inicial. Ao chegar ao ponto inicial, volte em direção ao ponto final, repetindo esse ciclo até o clipe terminar.
Fragmentos de câmera

Os clipes de câmera só podem especificar uma câmera específica para atingir o objetivo de alternar entre câmeras.
Embora os parâmetros da câmera não possam ser ajustados dentro do próprio clipe de câmera, a câmera pode ser adicionada como um ator à trilha do ator para atingir o objetivo de ajustar os parâmetros da câmera. Consulte o conteúdo relevante na seção de aplicações avançadas.
Clipe de áudio


Os clipes de áudio são análogos aos clipes de animação, com cada clipe de áudio contendo um segmento de áudio. Os clipes de áudio possuem os seguintes parâmetros específicos:
- Clipe: O recurso de áudio que está sendo reproduzido
- Velocidade de reprodução: Taxa de reprodução de áudio. O padrão é 1. Valores acima de 1 aceleram a reprodução; valores abaixo de 1 desaceleram a reprodução
- Loop: Tratamento quando a duração da reprodução excede a duração do recurso:
- Nenhum: Nenhuma ação. O áudio cessa após o término do recurso
- Loop: Repete o áudio até o final do clipe
- Loop infinito: Repete o áudio indefinidamente, mesmo após o término do clipe
Quadros-chave

Os quadros-chave servem como âncoras na linha do tempo de uma trilha, registrando o estado de uma entidade ou propriedade em um momento específico dentro dessa trilha. O sistema de desempenho interpola automaticamente a diferença entre as propriedades de dois quadros-chave, criando um efeito de transição suave ao longo do tempo.
Os quadros-chave podem ser adicionados às seguintes trilhas:
- Trilha do ator
- Subtrilhas de propriedade da trilha do ator
- Trilha do evento
- Faixa Skybox
Quadros-chave da faixa do ator

Os quadros-chave da trilha do ator marcam instâncias em que certas propriedades do ator possuem quadros-chave naquele momento. Embora você possa criar quadros-chave diretamente na trilha do ator, eles não têm nenhuma finalidade prática se nenhuma propriedade for alterada.
Ao selecionar um quadro-chave, você pode visualizar as propriedades do ator que são ajustáveis dentro do sistema de desempenho:

Ao ajustar uma propriedade, o sistema cria automaticamente uma subtracção para essa propriedade e coloca quadros-chave nela. Por exemplo, definir a visibilidade do bloco como False em 1 segundo:

Isso significa que o bloco se torna invisível um segundo após o início da apresentação.
Vale a pena notar que o sistema apenas interpola propriedades entre dois quadros-chave. Por exemplo, se aumentarmos a altura do cubo branco em 1 m na marca de 2 segundos, ele manterá sua altura original até o ponto de 2 segundos e, então, aumentará instantaneamente em um metro:

Para transições mais suaves, adicione um quadro-chave no início da performance. Isso faz com que o sistema interpola automaticamente as alterações de propriedade:

Quadros-chave de evento
Os quadros-chave de evento são um tipo especial de quadro-chave que não registra nenhuma propriedade, mas aciona eventos personalizados em momentos específicos. Quando sua performance atingir um determinado ponto, você pode querer executar uma lógica de jogo adicional; nesses casos, usar quadros-chave de evento é a solução ideal:

Você pode criar eventos personalizados com antecedência ou gerá-los ao adicionar quadros-chave de evento. Eventos personalizados criados em quadros de evento também podem ser utilizados em outras lógicas do jogo.

Quadro-chave Skybox

Os quadros-chave Skybox são um tipo especial de quadro-chave que só pode ser criado na trilha Skybox e só pode ajustar determinadas propriedades do Skybox.
Primeiro uso
O exemplo a seguir demonstra as operações fundamentais do sistema de desempenho usando “Kelly correndo 50 metros ao longo do eixo X em 5 segundos”.
Criando um arquivo de desempenho
Você sempre precisa de um arquivo de desempenho para editar desempenhos. Crie um estabelecendo um novo arquivo na pasta de ativos.

Clique duas vezes no arquivo de desempenho para entrar no editor de desempenho.

Sim, todo o editor está agora no modo de edição de desempenho.
Operações básicas
Primeiro, vamos colocar um NPC Kelly na cena.

Adicionando trilhas
No painel Editor de desempenho, adicione uma trilha de ator. Ao adicionar uma trilha de ator, o editor detectará automaticamente os objetos na cena que podem servir como atores:

Precisamos que Kelly se mova e reproduza a animação de corrida. Teoricamente, isso exigiria a adição de uma subfaixa de transformação e uma subfaixa de animação. No entanto, conforme explicado anteriormente, a modificação de quadros-chave gera automaticamente as faixas de propriedade correspondentes. Portanto, apenas uma faixa de animação é necessária aqui.

Para facilitar o gerenciamento, podemos nomear a trilha de animação recém-criada de acordo com sua função real: Animação em execução.

Adicionando fragmentos
Adicione uma ação de corrida personalizada para a personagem feminina à trilha de animação:

Queremos que Kelly corra por 5 segundos, então estenda este clipe para 5s. Além disso, Kelly deve manter o movimento de corrida durante todo o tempo, então defina a extrapolação do clipe de animação como “Loop”.

Adicionando quadros-chave
Queremos que Kelly comece em sua posição inicial e percorra 50 metros ao longo do eixo X. Portanto, dois quadros-chave devem ser inseridos aos 0 segundos e 5 segundos da performance:


Ao adicionar um quadro-chave selecionando-o na linha do tempo, o quadro-chave será criado no momento em que o indicador de reprodução estiver posicionado; ao adicionar clicando com o botão direito do mouse na linha do tempo, o quadro-chave será criado na localização do cursor do mouse. No entanto, você sempre pode ajustar as posições dos quadros-chave posteriormente.
Em seguida, selecione os dois quadros-chave em sequência e defina seus valores X como -25 e 25, respectivamente.
Esta é a posição aos 5 segundos, com um valor X de -25 aos 0 segundos.

Pré-visualização
Clique para reproduzir. Podemos ver que Kelly se moveu corretamente 50 metros, mas a direção parece incorreta:

Exigimos que Kelly fique voltada para a direção positiva do eixo X desde o início da performance. Para isso, basta ajustar a orientação no quadro-chave de 0 segundo ou modificar a orientação base de Kelly:

Ao reproduzir novamente, Kelly agora corre corretamente:

Usar uma trilha AlongPath também pode produzir o efeito de fazer Kelly percorrer uma rota. Na verdade, durante performances complexas, os objetos nem sempre se movem em linhas retas, então usar uma trilha AlongPath é invariavelmente a melhor escolha.
Operações comuns
A seguir, apresentamos algumas operações comuns no editor do sistema de performance.
Operações básicas
No painel de controle, você pode realizar ações fundamentais na performance atual:

São elas:
- Mover o indicador de reprodução para o início/fim da performance
- Avançar/retroceder o indicador de reprodução em um quadro
- Reproduzir ou pausar a performance
- Mover o indicador de reprodução para um tempo específico
Além disso, você pode ampliar ou reduzir a área da trilha usando o atalho Ctrl + roda de rolagem para ajustes mais precisos.

Visualização do cursor
Durante a edição local, não há necessidade de reproduzir toda a performance. Basta mover o indicador de reprodução e a performance exibirá instantaneamente o estado naquele momento.

Gravação
A gravação oferece um método conveniente para adicionar quadros-chave. Ao clicar no botão de gravação, todo o sistema de performance entra no modo de gravação. As faixas que estão sendo gravadas serão marcadas em vermelho escuro:
Basta ajustar o indicador de reprodução para selecionar o momento que deseja editar e, em seguida, modificar o estado do objeto nesse ponto da cena para gravar um quadro-chave. Todas as propriedades alteradas (posição, rotação, escala, etc.) serão capturadas automaticamente no quadro-chave recém-criado. Continue ajustando o indicador de reprodução para modificar os estados subsequentes em diferentes pontos no tempo.
Ao ajustar repetidamente o indicador de reprodução e os objetos, você estabelecerá vários quadros-chave em toda a linha do tempo, formando assim uma performance contínua, muito semelhante à gravação de um vídeo.


Ajuste dos parâmetros dos quadros-chave
Normalmente, a gravação permite apenas ajustes aproximados. Para um desempenho altamente preciso, ajuste os parâmetros diretamente nos quadros-chave.

Selecione um quadro-chave para visualizar as propriedades ajustáveis.
Se a trilha pai estiver selecionada, todas as propriedades ajustáveis ficarão visíveis; se uma trilha de propriedade específica estiver selecionada, apenas essa propriedade poderá ser ajustada.
Os ajustes feitos na trilha pai gerarão automaticamente trilhas filhas abaixo, dependendo do tipo de propriedade que está sendo modificada.
Visualização

Dentro da área de edição, há um botão de pré-visualização. Quando esse botão está destacado, isso indica que a cena está no modo de edição de performance. Para voltar a editar o jogo dentro do editor de cena, basta desativar a pré-visualização. Observe que o indicador de status diretamente acima do editor de cena permite distinguir entre os dois modos.
Como as performances ocorrem dentro da cena do jogo, elas podem parecer muito semelhantes. No entanto, a edição de cena e a edição de performance são dois sistemas de edição distintos.
Por exemplo, aqui definimos as coordenadas iniciais do cubo branco na performance para serem 2 metros mais altas do que na cena. Embora ambos usem o mesmo objeto, o estado do cubo branco na cena e na performance não é consistente.

Perspectiva do público

Quando a Visualização do Público está ativada, a janela de pré-visualização reproduzirá a apresentação da perspectiva de um membro real do público, permitindo que você verifique a apresentação do espetáculo no mundo real. Quando a Visualização do Público está desativada, a janela de pré-visualização reproduzirá no modo de edição de cena, facilitando ajustes gerais.
Observe que os efeitos do evento não podem ser exibidos na pré-visualização. Ao usar eventos, você precisará usar sua imaginação ou verificar os efeitos durante a depuração do jogo.
Reprodução
Você deve usar um script do lado do cliente para reproduzir a performance.

No momento apropriado (por exemplo, por meio de um gatilho), use o script do cliente para reproduzir o arquivo de performance especificado.
Aplicações avançadas
Colaboração multitrilha
Você deve ter notado que, quando fizemos Kelly correr, nenhuma trilha de áudio foi adicionada. Isso significa que a reprodução real dessa performance não terá sons de corrida.
Ao editar performances, precisamos utilizar a colaboração multitrilha para obter melhores resultados.
Ao incorporar faixas de câmera e áudio, podemos obter uma performance com efeitos aprimorados:

Tem som, sabia?
Operações de trilhos
Com mais objetos, aumenta o número de trilhos, elevando o potencial de operações acidentais.
Você pode:
Bloquear faixas

As faixas bloqueadas continuarão a ser reproduzidas normalmente durante a apresentação, mas não poderão ser editadas. Se determinadas faixas tiverem sido temporariamente finalizadas, você pode bloqueá-las.
Desativando faixas

As faixas desativadas não participarão mais da apresentação, embora suas configurações permaneçam preservadas. Desbloqueá-las irá restaurá-las para a performance a qualquer momento. Se você não tiver certeza sobre excluir permanentemente uma faixa ou desejar observar a performance sem ela, é recomendável desativar a faixa.
Eventos
Os eventos ajudam você a:
- Criar efeitos não suportados pelo sistema de performance
- Implementar a lógica do jogo nas performances
Por exemplo, embora o sistema de performance atualmente não ofereça suporte para diálogos da trama, podemos obter esse efeito criando uma interface de diálogo combinada com eventos:
Crie uma interface de diálogo:
Envie eventos personalizados em momentos específicos durante a apresentação através do Event Rail:

O evento é enviado para a entidade global do cliente, portanto, um script do lado do cliente deve ser criado globalmente para recebê-lo:

A reprodução aparece como:

Além disso, você pode utilizar eventos durante a reprodução da performance para equipar os jogadores com armas, redefinir mecanismos ou lidar com processos relacionados ao carregamento.
Manuseio da câmera
Sem uma câmera dedicada, as performances são reproduzidas diretamente na cena, exigindo que os jogadores se concentrem ativamente na área de performance para visualizar o conteúdo. Para sequências no estilo de cenas cinematográficas, é altamente recomendável adicionar uma câmera extra. Basta colocar a câmera personalizada em uma trilha de troca de câmera; o sistema de performance trocará automaticamente a câmera do jogador durante o evento e retornará à câmera padrão depois.
Quando várias trilhas de câmera se sobrepõem, a câmera da trilha mais baixa tem precedência:

Conforme descrito acima, a troca de trilhas da câmera lida apenas com a transição para a câmera designada. Para obter efeitos de câmera baseados no tempo, uma trilha de ator adicional deve ser estabelecida para hospedar a entidade da câmera:
Agrupamento de atores
Você pode estar se perguntando: se você precisa que a câmera siga Kelly e crie um efeito de rastreamento, isso significa adicionar várias trilhas e ajustar meticulosamente suas transformações para sincronizar seus movimentos?
Em certos cenários, você pode realmente precisar investir um tempo considerável ajustando cada detalhe da performance. No entanto, para tomadas de rastreamento padrão, você pode simplesmente mesclar alguns atores em uma hierarquia pai-filho dentro da cena.

As performances não interrompem as hierarquias pai-filho; aplicar operações de transformação a Kelly sincronizará essas alterações com seus objetos filhos. Designar efeitos especiais e câmeras de acompanhamento como objetos filhos é extremamente eficiente.
Observe, no entanto, que objetos filhos ainda podem ser adicionados às trilhas de performance como performers. Nesses casos, suas propriedades de transformação operam dentro de um sistema de coordenadas local, o que significa que sua posição, rotação e escala são relativas ao objeto pai.

Ocultando atores
Todos os artistas em uma apresentação são originários da cena. Você pode ocultá-los pré-configurando sua visibilidade como False ou realocando-os para posições distantes.
No início da apresentação, ative sua visibilidade ou posicione-os dentro da área de apresentação.
Observe que desativar a visibilidade preventivamente requer gerenciamento de colisão, pois os objetos mantêm volumes de colisão mesmo quando invisíveis.
Otimização do desempenho
Uma apresentação pode envolver um número considerável de entidades apenas para fins de apresentação. Quando a apresentação termina, essas entidades não são mais necessárias no jogo. Consequentemente, eventos podem ser utilizados para destruir essas entidades após o término da apresentação.
Em relação ao método mencionado acima de ocultar atores, procure evitar renderizar um número excessivo de entidades em um único quadro no início da apresentação. Isso prejudica muito o desempenho. Utilize técnicas como arte de câmera ou transições para evitar a renderização simultânea de muitas entidades.