Esta funcionalidade está em estado experimental, então você pode testá-la, fornecer feedback e ver o que estamos planejando. No momento, não é possível publicar um projeto que utilize Inventário e Itens Personalizados.
Lembre-se de que não garantimos a retrocompatibilidade de ativos criado em um estágio experimental, as APIs para essas funcionalidades podem sofrer alterações e podemos remover completamente funcionalidades experimentais ou uma funcionalidade específica a nosso critério. Confira a lista de problemas conhecidos antes de começar a trabalhar com a funcionalidade.
Este tutorial mostra como usar o sistema de Itens e Inventários Personalizados com o Scene Graph e Verse para fazer um item de cartão de acesso personalizado.
Depois de compilar este exemplo para aprender a criar um cartão de acesso personalizado, você poderá usar um cartão de acesso personalizado em jogos que envolvam objetivos para localizar e usar cartões de acesso para acessar áreas bloqueadas. Alguns exemplos incluem:
Uma sala trancada que contém o objeto de um roubo
A próxima área no seu jogo
O tesouro ou recompensas por vencer um chefe
Antes de começar
Você deve estar familiarizado com o UEFN, o Scene Graph e o código Verse para concluir este tutorial com êxito.
Configure seu projeto
Siga estas etapas para configurar seu projeto e habilitar Itens e Inventários Personalizados.
Abra o UEFN e crie um projeto a partir de qualquer modelo de ilha. Em Modelos de Ilha, você pode usar o projeto Em branco se quiser garantir uma área plana para trabalhar. Dê um nome ao seu novo projeto e clique em Criar para abri-lo no editor.
Na barra de ferramentas, clique em Projeto e selecione Configurações de Projeto.
Role para baixo até a seção Acesso Experimental e marque a caixa para Sistema de Inventário. Isso habilita os Itens e Inventários Personalizados.
Construa sua sala
Primeiro, você precisa construir a sala para o exemplo. O exemplo é apresentado como uma demonstração que compara duas portas trancadas:
A primeira demonstra como um cartão de acesso do Fortnite abre uma porta que tem um dispositivo Cadeado, usando um dispositivo Botão Condicional para determinar se o jogador está com o cartão de acesso.
O segundo demonstra como usar um cartão de acesso personalizado em vez do item de cartão de acesso existente do Fortnite e usa Verse para determinar se o jogador tem o cartão de acesso personalizado.
Para construir a sala do exemplo, você pode usar os seguintes ativos do Fortnite:
Sala: no Navegador de Conteúdo, navegue até Fortnite > Ativos de caixa cinza > Demonstração. Este exemplo usa os ativos DemoRoom.
Cabine de demonstração: no Navegador de Conteúdo, navegue até Fortnite > Ativos de caixa cinza > Demonstração. Use o ativo DemoDisplay.
Portas:
Porta na parede verde: navegue até Fortnite > Galerias > Construção > Galeria de Paredes das Torres Tortas N. Encontre a Porta interna do subsolo C 02 a8a9d603 no final da primeira linha.
Porta na parede parda com guarnição escura no topo: na mesma galeria que acima, logo à esquerda está a Porta interna do subsolo C 02 a9577d9d.
Mesa: navegue até Fortnite > Adereços > Super. Encontre a Mesa redonda da academia A 13a04066.
Como configurar os dispositivos
Dispositivos necessários:
1 Plataforma de Surgimento de Jogador
2 dispositivo Cadeado
1 dispositivo Botão Condicional
1 dispositivo Volume
1 Colocador de item (item de cartão de acesso de autoridade)
Como configurar a porta para um cartão de acesso do Fortnite
Escolha uma porta para configurar uma porta trancada típica do Fortnite. Siga estas etapas para configurar os dispositivos para a primeira porta.
Coloque um dispositivo Cadeado na parede ao lado da porta. No painel Detalhes, personalize as opções do dispositivo conforme mostrado abaixo. As opções não listadas podem ser deixadas em seus valores padrão.
Opção
Valor
Explicação
Visível durante o jogo
Falso (desmarcado)
Oculta o dispositivo Cadeado quando o jogo está em execução, para que os jogadores não o vejam.
Começa trancada
Bloqueado
Isso faz com que a porta esteja trancada quando o jogo começa.
Ocultar interação ao trancar
Verdadeiro (marcado)
Isso oculta a interação quando a porta está trancada.
Posição inicial da porta
Fechada
Isso faz com que a posição inicial padrão para a porta seja Fechada.
Em Opções do Usuário - Funções, defina as seguintes funções para o dispositivo Cadeado.
Você não poderá definir a função de Cadeado até depois de colocar o dispositivo Volume na etapa 3, abaixo.
Função
Dispositivo de destino
Evento para vincular
Explicação
Destrancar
com o Botão Condicional,
Ao Ativar
A porta é destrancada quando o Botão Condicional é ativado.
Trancar
volume
Ao sair
A porta está trancada quando o jogador sai da porta dos dispositivos Volume para o Fortnite.
Coloque um dispositivo Volume centralizado na própria porta. No painel Detalhes, personalize as opções do dispositivo conforme mostrado abaixo. As opções não listadas podem ser deixadas em seus valores padrão.
Opção
Valor
Explicação
Formato do Volume
Cilindro
Determina o formato do volume.
Altura do Volume
0,25x
Isso determina a altura do cilindro de volume.
Raio do volume
0,9x
Isso define o raio do cilindro de volume, que determina a sua proximidade ou distância da posição do dispositivo. Você quer o raio relativamente pequeno, então o jogador tem que chegar perto da porta para inserir o volume.
Coloque o dispositivo Botão Condicional ao lado da porta, embaixo do dispositivo Cadeado. Personalize as opções conforme mostrado abaixo. As opções não listadas podem ser deixadas em seus valores padrão.
Opção
Valor
Explicação
Itens-chave necessários
Verdadeiro (marcado), 1
Marque para indicar que um item-chave é necessário para a etapa na condição. Insira 1 no campo para indicar que apenas um cartão de acesso é necessário.
Item-chave 1
Cartão de acesso de autoridade (nome no jogo) ou Agid_CP_Keycard_Agency (ID do item)
Para selecionar o item que é necessário, clique no menu suspenso e procure "keycard". Existem vários itens de cartão de acesso, mas este exemplo usa o item "Cartão de acesso de autoridade".
Em Opções do Usuário - Funções, defina as seguintes funções para o dispositivo Botão Condicional.
Função
Dispositivo de destino
Evento para vincular
Explicação
Ativar
volume
Ao Entrar
Quando o jogador insere o Volume para a porta de dispositivos do Fortnite, o Botão Condicional é ativado. Ele verifica se o jogador possui o Cartão de acesso de autoridade.
Como configurar a porta para o cartão de acesso personalizado
Para a segunda porta, siga estas etapas para configurar os dispositivos.
Como as opções para ambos os dispositivos Cadeado são as mesmas, você pode copiar o primeiro dispositivo Cadeado e colar a cópia no seu nível. Você pode renomear o dispositivo para diferenciá-lo do primeiro.
Em Opções do Usuário - Funções, defina as seguintes funções para o dispositivo Cadeado.
Talvez você não consiga definir essa função até colocar o Gerador de Jogador (link de âncora aqui para esta seção).
Função
Dispositivo de destino
Evento para vincular
Explicação
Trancar
Plataforma de Surgimento de Jogador 1
Ao Gerar Jogador
Quando um jogador surge da Plataforma de Surgimento de Jogador 1, o dispositivo Cadeado é ativado e tranca a porta.
As opções para ambos os dispositivos Volume são as mesmas, então você também pode copiar o primeiro Volume e colar a cópia no seu nível. Você pode renomear o dispositivo para diferenciá-lo do primeiro.
Como configurar a mesa para os cartões de acesso
Siga estas etapas para configurar a mesa com o cartão de acesso do Fortnite e seu cartão de acesso personalizado.
Coloque o dispositivo Colocador de Itens na lateral da mesa mais próxima da porta trancada que usa apenas dispositivos.
No painel Detalhes, personalize as opções do dispositivo para o Colocador de Itens, conforme mostrado abaixo.
Opção
Valor
Explicação
Lista de Itens
Cartão de acesso de autoridade
Clique em + para adicionar um elemento de matriz, depois clique no menu suspenso e pesquise "keycard". Em seguida, selecione o item Cartão de acesso de autoridade.
Localize seu item de cartão de acesso personalizado no Navegador de Conteúdo e arraste-o para o nível. Coloque o cartão de acesso personalizado sobre a mesa, no lado mais próximo da porta trancada configurada para ele.
Depois de criar o keycard_gameplay_device (adicione o link de âncora aqui), localize o dispositivo Verse no Navegador de Conteúdo e arraste-o para o seu nível.
Como configurar o Gerador de Jogador
Por último, você precisará colocar um Gerador de Jogador. Para este exemplo, você precisa apenas de um Gerador de Jogador. Porém, se você fizer uma compilação de um jogo com vários jogadores, poderá seguir estas etapas para definir mais. Ou você pode defini-los de maneira diferente com base na sua experiência específica na ilha.
Coloque o Gerador de Jogador em um local em que o jogador veja imediatamente a mesa e as duas portas.
Personalize as opções do dispositivo conforme mostrado abaixo.
Opção
Valor
Explicação
Visível no Jogo
Falso (desmarcado)
Para este exemplo, o Gerador de Jogador está invisível.
Agora que configurou sua sala e os dispositivos, você pode criar o cartão de acesso personalizado.
Como criar uma estrutura pré-fabricada de entidade de item personalizado
No Navegador de Conteúdo, clique com o botão direito do mouse para abrir o menu de contexto e selecione Definição de estrutura pré-fabricada de entidade. Isso adiciona uma nova estrutura pré-fabricada de entidade do Scene Graph ao Navegador de Conteúdo.
Renomeie a estrutura pré-fabricada como Item_Keycard.
Arraste uma instância da nova estrutura pré-fabricada para o mundo arrastando-a para a janela de visualização. Isso a torna selecionável no Organizador.
Com a estrutura pré-fabricada Item_Keycard selecionada, no painel Detalhes, clique em +Componente e selecione item_component. Você pode percorrer a lista para encontrá-lo ou digitar "item" na barra de pesquisa para limitar os resultados e encontrá-lo mais rapidamente.
Clique em +Componente novamente e selecione item_details_component. Esse componente armazena dados de texto sobre o item.
O componente item_details tem três campos de propriedade exibidos no painel Detalhes: Nome, Descrição e ShortDescription. Insira um nome, uma descrição do item e um rótulo descritivo curto nesses campos.
Clique em +Componente novamente e selecione item_icon_component.
No painel Detalhes, expanda o item_icon_component. Você precisa selecionar uma imagem 2D, que será a Imagem exibida na interface de usuário do jogo (por exemplo, no inventário do jogador) para representar o item.
Clique no menu suspenso ao lado do ladrilho Nenhum para abrir um menu de contexto e digitar parte do nome da sua imagem na barra de pesquisa. Neste exemplo, estamos usando uma imagem PNG chamada T_Icon_Keycard.png.
Selecione a imagem nos resultados da pesquisa.
Clique em +Componente novamente e selecione mesh_component. Para este exemplo, selecione Plano.
Isso adicionará uma malha plana ao seu item. Dependendo das suas configurações, esse plano pode ser muito grande no início. Siga estas etapas para redimensionar o plano para que ele tenha o tamanho de um cartão de acesso.
Na barra de ferramentas na parte superior da janela de visualização, selecione a Ferramenta de redimensionamento. Você também pode pressionar a tecla R para mudar para a ferramenta de redimensionamento.
Mais à direita da Ferramenta de redimensionamento, clique no menu suspenso para a configuração de Proporção de predefinição para escala. Defina em 0,0625. Isso permite reduzir o plano a um tamanho muito pequeno, para representar um cartão de acesso.
Clique em +Componente novamente e selecione fort_item_pickup_component. Adicionar este componente adiciona todas as funcionalidades dos itens do Fortnite:
Uma animação para coletar um item e uma animação para soltar um item
Uma interação para adicionar um item ao inventário
Um widget de item padrão exibido quando um jogador olha para o item
A malha do item é desabilitada quando um item é coletado
A malha do item é habilitada quando um item é solto
Agora que você tem uma estrutura pré-fabricada básica de cartão de acesso personalizado, pode criar um componente Verse personalizado que tornará esse item único, de forma que ele possa ser verificado com o código Verse para ver se ele abre uma porta trancada específica.
Como criar um componente Verse personalizado
Normalmente, para um grande projeto que contém muitos arquivos de código Verse, é recomendável criar um novo arquivo Verse para um componente personalizado. Para fazer isso, você seguiria estas etapas.
Como o exemplo para este tutorial é pequeno, o keycard_item_component personalizado foi definido no arquivo Verse para o keycard_gameplay_device personalizado. Consulte a seção Como escrever o código Verse para jogabilidade para ver essas etapas.
Com o novo item de cartão de acesso selecionado, no Painel Detalhes, clique em +Componente e selecione Novo componente Verse. A janela Criar componente Verse é aberta.
Você também pode criar um componente Verse adicionando um novo arquivo Verse usando o Explorador Verse.
Em Escolher um modelo, selecione Componente do Scene Graph.
Na parte inferior, no campo Nome do componente, digite keycard_item_component. Em seguida, clique em Criar.
No Painel Detalhes, clique em +Componente e digite "keycard" na barra de pesquisa. Você deverá ver seu novo componente Verse listado, então selecione-o para Adicionar ao seu item de cartão de acesso personalizado.
Na barra de menus, clique em Verse > Explorador Verse. Localize seu novo componente Verse, clique com o botão direito nele e selecione Abrir no Visual Studio Code.
Como escrever o código Verse para jogabilidade
Como você está criando um item personalizado (o cartão de acesso) e deseja acionar um dispositivo quando o jogador tiver o cartão de acesso personalizado em seu inventário, é necessário criar um dispositivo Verse para que isso aconteça.
Na barra de menus, acesse Verse > Explorador Verse. O Explorador Verse é aberto em uma aba ao lado do Organizador.
No Explorador Verse, clique com o botão direito do mouse no nome do seu projeto e escolha Adicionar novo arquivo Verse ao projeto para abrir a janela Criar script Verse.
Na janela Criar script Verse, em Escolher um modelo, clique em Dispositivo Verse para selecioná-lo. No campo Nome do dispositivo, digite keycard_gameplay_device. Em seguida, clique em Criar para criar o arquivo Verse.
No Explorador Verse, clique duas vezes no seu novo dispositivo Verse para abrir o arquivo no Visual Studio (VS) Code. Certifique-se de que todos os itens a seguir sejam adicionados nas linhas superiores do código.
Verseusing { /Fortnite.com/Devices } using { /Fortnite.com/Itemization } using { /Verse.org/Simulation } using { /Verse.org/SceneGraph } using { /Verse.org/Random } using { /UnrealEngine.com/Itemization } using { /UnrealEngine.com/Temporary/Diagnostics }Em seguida, adicione o código que define seu componente de item personalizado.
Verse# KEYCARD ITEM COMPONENT keycard_item_component := class(item_component) :Podemos adicionar uma função auxiliar que nos permitirá encontrar o inventário-raiz do agente-alvo:
Verse# Helper function that gets the first descendant inventory component from an agent. # This will be the root inventory. GetAgentInventory(Agent:agent)<decides><transacts>:inventory_component= TargetInventory := (for (I : Agent.FindDescendantComponents(inventory_component)) { I })[0]Em seguida, defina seu dispositivo Verse personalizado como uma subclasse de
creative_device. Abaixo disso, configure uma propriedade editável para os dispositivos Volume e Cadeado. Permite selecionar uma instância específica do dispositivo Volume ou Cadeado no editor (importante porque você tem dois dispositivos Volume e dois dispositivos Cadeado).Verse# DEVICE //// GAMEPLAY keycard_gameplay_device := class(creative_device) : # Use a volume_device to be able to check when a player approaches @editable VolumeDevice:?volume_device = false # The lock device is attached to a wall/door prop. This can be activated to lock/unlock the door it is attached to. @editable LockDevice:?lock_device = falseAgora, você usará a consulta para ver se o dispositivo Volume está presente e assinará os eventos Na entrada do agente e Na saída do agente do dispositivo Volume.
Verse# Subscribe to the entry and exit events on the Volume to determine when a player/agent approaches. OnBegin<override>()<suspends>:void= if: TargetVolume := VolumeDevice? then: TargetVolume.AgentEntersEvent.Subscribe(OnAgentEntersEvent) TargetVolume.AgentExitsEvent.Subscribe(OnAgentExitsEvent)Você deseja verificar o inventário do jogador para ver se ele possui o cartão de acesso personalizado em seu inventário. Isso é feito verificando se há algo com o
keycard_item_component. Esse código também exige que okeycard_item_componentesteja presente para abrir o dispositivo Cadeado.VerseOnAgentEntersEvent(Agent:agent):void= # Get the inventory from the player that is entering. if(TargetInventory := GetAgentInventory[Agent]): # Check the item in the inventory, if it has the keycard_item_component, proceed for(item : TargetInventory.FindItems(), KeycardComponent := item.GetComponent[keycard_item_component]) # If there is a valid lock_device, then this opens the door. if(TargetDoorLock := LockDevice?):Por último, se houver mais que um jogador presente e um jogador tiver o cartão de acesso, esse código garantirá que o Cadeado permaneça aberto. Porém, se o jogador com o cartão de acesso sair do volume, o Cadeado será fechado novamente.
VerseOnAgentExitsEvent(Agent:agent):void= # Start by assuming that no one has the required keycard_item_component. var AgentWithKeycardInVolume:logic = false if(TargetVolume := VolumeDevice?): # Get the Agents that are inside the volume_device as an array. for(TargetAgent:TargetVolume.GetAgentsInVolume()): # Use the same check to see if any of the agents in the volume_device have a keycard_item_component.
Aqui está o trecho de código Verse completo.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Itemization }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
using { /UnrealEngine.com/Itemization }
using { /UnrealEngine.com/Temporary/Diagnostics }
# KEYCARD ITEM COMPONENT
keycard_item_component := class(item_component) :