Aprenda a criar jogos 3D com IA em 2 horas ou menos – sem programação.
O processo geral do trecho de código (que pode ser usado como um prompt para gerar código):
1. Lógica de Movimento do Jogador e Geração de UI
- O
GameLogicrepresenta o componente central de gerenciamento do jogo. Ele recebe todos os eventos do jogo e os distribui para os subsistemas apropriados, reduzindo efetivamente o acoplamento do código. - Quando o jogador se aproxima de um quadro que contém um BoxCollider, seu componente
Transponderanexado detecta automaticamente a interação e passa o evento de aproximação do jogador para o componenteGameLogic. Em resposta, oUIFactoryinstancia um painel de UI para entrada do usuário. - Este painel de UI inclui o componente InputDialog, que escuta a entrada do teclado do jogador. Quando o jogador pressiona Enter pela primeira vez, a caixa de entrada é ativada e captura o foco do teclado. Depois que o jogador termina de digitar e pressiona Enter novamente, a entrada é submetida como um evento ao
GameLogic. - Quando o jogador se afasta do quadro que contém o BoxCollider, o painel de UI é imediatamente destruído.
2. Geração de Modelo e Mapeamento de Esqueleto (Fornecido pelo TripoSDK)
- Depois que o componente GameLogic recebe a entrada do prompt do jogador, ele passa o prompt para o componente
TripoClient(Nota: uma TripoAPIKey válida deve ser fornecida previamente). - O TripoClient chama o componente TripoAPI para enviar o prompt ao Tripo Server. Durante este processo, o
TripoAPImonta a requisição, a envia e começa a consultar o servidor em intervalos regulares para verificar atualizações. Uma vez bem-sucedido, o jogador recebe um TaskID para o modelo gerado do Tripo Server. Este TaskID é então usado para solicitar a geração do esqueleto. - Após a conclusão do processo de Rigging, o
TripoAPIretorna a URL de download do modelo para oTripoClient. OTripoCliententão carrega e analisa o modelo em formato GLB através do plugin glTFfast. - Em seguida, o componente
RuntimeHumanoidAvatarBuilderé montado no modelo. Este componente mapeia o esqueleto do modelo GLB para o sistema Humanoid Avatar do Unity, permitindo o retargeting de animação. - Finalmente, o
TripoClientinstancia o modelo na cena. Neste ponto, os desenvolvedores podem usar recursos de animação humanoide existentes para controlar o modelo recém-gerado.
3. Transferência de Controle
- O componente
GameLogicescuta a entrada do teclado do jogador para alternar dinamicamente o controle entre o jogador e o modelo gerado. Especificamente, ele ajusta a prioridade da câmera e reatribui o alvo de controle doThirdPersonController. - Quando o jogador pressiona a tecla F, o controle é transferido do personagem do jogador para o modelo, permitindo que o jogador o opere. Pressionar a tecla F novamente retorna o controle ao jogador.
- Dependendo do modelo gerado, seu tamanho pode variar; desde extremamente grande até extremamente pequeno - permitindo interações de jogabilidade únicas e permitindo que o jogador passe por diferentes obstáculos.
- Além disso, a aparência do modelo pode ser facilmente trocada, suportando efetivamente um sistema de personalização de personagens e skins de baixo custo dentro do jogo.
Lógica geral do código:
GameObject Principal
Etapas de implementação específicas:
Versão do Unity: 2022.3.55
Caminho do código-fonte e das cenas: Assets-LowPoly Environment Pack - Demo - Demo1
1. Configuração do Projeto e Importação de Recursos:
- Criar um Novo Projeto
- Abra o Unity e clique em New Project.
- Selecione o template URP (Universal Render Pipeline).
- Nomeie o projeto como TripoRuntimeTutorial e clique em criar.
- Importar Pacotes de Recursos Necessários
Por favor, abra seu navegador e vá para a Unity Asset Store. Pesquise e baixe os seguintes pacotes gratuitos (também disponíveis nos arquivos do projeto fornecidos):
Adicione aos Meus Recursos e, nos pop-ups subsequentes, clique em "Open in Unity" e faça o download.
Após baixar cada pacote, vá para Unity > Assets (no topo do Menu Unity) > Import Package > Custom Package e importe-os um por um. Clique em Import em cada solicitação. - Converter Materiais para URP
Alguns materiais importados podem aparecer rosados (indicando problema de shader). Para converter:- Filtre ou selecione todos os modelos rosados e estranhos na cena.
- Em seguida, navegue até Editor > Rendering > Materials e converta-os para materiais compatíveis com URP.
- Instalar Dependência glTFast (para Carregar modelos GLB)
Opção 1: Instalar via Git (requer um ambiente Git local)- Vá para Window > Package Manager, clique no botão + > Add package from Git URL.
- Insira a URL: https://github.com/atteneder/glTFast.git, clique em Add e aguarde a importação do plugin glTFast.
Opção 2: Baixar do site oficial da Tripo, que também inclui o plugin glTFast.- Visite a página inicial da Tripo e vá para a seção Recursos.
- Baixe o Plugin Unity, que já inclui a dependência glTFast.
- Siga o vídeo tutorial incluído no pacote para instruções de instalação.
- Abrir a cena Demo
- Na janela do projeto Unity, navegue até: Assets > LowPoly Environment Pack > Demo > Demo1
- Dê um duplo clique em Demo1 para abri-la.
Para configurar seu ambiente personalizado:- Arraste assets como tanques, rochas ou árvores da pasta Assets > ithappy para a cena.
- Agora você pode mover o jogador livremente dentro do ambiente.
- Adicionar prefab relacionados ao jogador
Navegue até: Assets > StarterAsset > ThirdPersonController > Prefabs
Arraste os três seguintes prefabs para o painel Hierarchy:- MainCamera
- PlayerFollowCamera
- PlayerArmature
- Definir Parâmetros da Câmera
- Selecione PlayerFollowCamera na cena,
- No painel de propriedades (Inspector), localize o componente CinemachineVirtualCamera.
- Defina Follow e Look At para PlayerCameraRoot (Nota: pode ser encontrado nos componentes filho de PlayerArmature).

A configuração acima usa o script de controlador de terceira pessoa fornecido pelo Unity. Neste ponto, clique no botão Play na barra de ferramentas do Unity, você pode usar as teclas WASD para controlar o movimento do personagem. O personagem e a câmera agora devem se mover e se ajustar de acordo!
Exibindo o Painel de Prompt na Proximidade do Jogador
Quando o jogador se aproxima de um objeto específico, um painel de entrada da UI deve aparecer. Quando o jogador se afasta, o painel deve desaparecer.
- Criação da Área de Gatilho
- No diretório Assets > ithappy > Military FREE > Perfab, selecione um modelo (por exemplo, um tanque).
- Clique com o botão direito no modelo e escolha Create Empty Child, em seguida, renomeie-o para Trigger.
- Selecione o objeto Trigger, vá para o Inspector, clique em Add Component e adicione um Box Collider.
- Marque a opção Is Trigger.
- Clique em Edit Collider e ajuste seus manipuladores na visualização Scene para escalar o collider para o dobro do tamanho do modelo, cobrindo sua área circundante.
- Criar o Script de Evento de Gatilho
- No painel Project, clique com o botão direito na pasta Assets > Create > C# Script, nomeie-o
Transpondere abra o script com o Cursor. - Este script deve detectar quando um jogador entra ou sai do collider, uma mensagem é enviada ao nosso componente GameLogic. Selecione o modelo no Cursor e insira nosso prompt de referência:
Por favor, gere um script Unity C# chamado Transponder que aciona OnPlayerEnter quando um GameObject com a tag "player" entra no collider, e OnPlayerExit quando o jogador sai.- Salve o script e arraste o componente Transponder para o objeto Trigger na cena.
- No painel Project, clique com o botão direito na pasta Assets > Create > C# Script, nomeie-o
- Gerenciamento da Lógica do Jogo
Clique com o botão direito na cena > Create Empty, renomeie-o para GameLogicManager (Serve como o contêiner de lógica).- Sob GameLogicManager, crie outro filho vazio e nomeie-o GameManager.
- Crie um novo script chamado
GameManager, que lidará com a lógica central para a cena.
Nós citamos o componente Transponder e então escutamos os eventos quando os jogadores entram ou saem. As palavras do prompt de referência são as seguintes:
Por favor, gere um script Unity C# chamado GameManager que escuta.- Eventos OnPlayerEnter e OnPlayerExit de uma instância de Transponder.
- Em OnPlayerEnter, instancie um prefab de prompt de UI usando o script UIFactory.
- Em OnPlayerExit, destrua este prefab de UI.
Após salvar o script, arraste o script GameManager para o objeto GameManager e arraste o componente Transponder para o campo Transponder. Isso completa a escuta dos eventos de entrada e saída do jogador. - Criar Prefab do Painel de UI
Na Hierarchy, clique com o botão direito > UI > Panel, para criar um novo painel.- Adicione 2 componentes filhos sob o painel:
- Text (para exibir as Instruções do prompt)
- InputField (para receber a entrada do jogador)
- Ajuste o layout e o posicionamento usando a visualização Game como prévia.
- Uma vez terminado, arraste o objeto Panel inteiro para a pasta Assets para criar um prefab.
- Nomeie-o InputDialogPrefab.
Nota: Se você estiver usando TextMeshPro, certifique-se de atribuir uma fonte compatível com chinês, como NotoSansSC SDF, para evitar caracteres em forma de quadrado no texto. - Adicione 2 componentes filhos sob o painel:
- Criar o Script
InputDialog: Gerenciar Lógica de Entrada- Crie um script Unity C# chamado InputDialog.
Prompt de Referência:- Por favor, gere um Script Unity C# chamado InputDialog para gerenciar uma caixa de diálogo de UI baseada em TMP.
- Ele deve conter um TMP_Text para o prompt e um TMP-InputField para a entrada.
- No primeiro pressionamento da tecla Enter: ative a caixa de entrada e desative o controlador de movimento do jogador (por exemplo,
ThirdPersonController). - No segundo pressionamento da tecla Enter: envie a entrada, reative o movimento e destrua a caixa de diálogo.
- Mantenha o foco da entrada até que uma entrada válida seja inserida.
Monte o componente InputDialog no InputDialogPrefab. Arraste os objetos Text e InputField correspondentes para seus respectivos campos no componente (Dependencies). - Criar o script UIFactory: Instanciar painel de UI
Crie um novo script C# chamadoUIFactory
Prompt de Referência:- Por favor, gere um Script Unity C# chamado UIFactory que segue o padrão factory para instanciar caixas de diálogo de UI.
- Dado um prefab de UI, uma posição e uma rotação, instancie o prefab na transformação fornecida e retorne seu componente InputDialog.
Este componente atua como um intermediário para desacoplar a lógica de criação da UI do tratamento de eventos do jogo. - Dependências de Componentes Associados
Verifique se todas as dependências dos componentes estão corretamente atribuídas.- O objeto PlayerArmature na cena deve ter a Tag definida como "Player".
No objeto GameManager, atribua:- O campo Transponder com o script Transponder do objeto Trigger.
- O campo UIFactory com o componente
UIFactoryno objeto GameLogicManager.
Teste: Clique em Play no Unity.- Aproxime-se do objeto com o gatilho - o painel de entrada deve aparecer.
- Quando você se afastar, o painel deve desaparecer automaticamente.
Nota: Nosso arquivo-fonte tem uma posição fixa para onde o painel é gerado. Modifique este valor de acordo com as propriedades Transform do Trigger que você selecionou. Alternativamente, você pode definir o Canvas > RenderMode do prefab de UI para ScreenSpace - Overlay, para que a UI seja renderizada em dados de espaço de tela e não entre no espaço do mundo.
Enviar o prompt para a TripoAPI
Nesta fase, ainda não somos capazes de enviar prompts para o servidor Tripo em tempo real. No entanto, o código necessário para envio de prompt, requisições de rede, geração de modelo, rigging de esqueleto, mapeamento, adaptador e retargeting de animação está pronto. Esses scripts serão totalmente integrados ao plugin Tripo for Unity em futuras atualizações. (Nota: Certifique-se de que um sistema UIEvent exista em sua cena antes de prosseguir; caso contrário, a UI não responderá!)
- Importar Script do Plugin Tripo
No painel Project do Unity (geralmente à esquerda), localize os arquivos-fonteTripoClient.cs,TripoAPI.cseRuntimeHumanoidAvatarBuilder.csde sua pasta de download.- Arraste-os para a pasta Assets/Scripts.
Aqui está o que cada script faz:TripoClient.cs e TripoAPI.cso envio de prompt e a comunicação de rede com o servidor Tripo. RuntimeHumanoidAvatarBuilder.cso esqueleto do modelo para o rig humanoide do Unity usando o plugin GLTFast.
TripoClient.cs e TripoAPI.csrepresentam versões lite do pluginTripo For Unity, mas com funcionalidade de rigging. Continuaremos a atualizar e otimizar este processo em futuras versões. - Criar componente Tripo Client
- Crie um componente vazio filho sob GameLogicManager e nomeie-o TripoClient.
- Arraste
TripoClient.cseTripoAPI.cspara este novo objeto para anexar os scripts. - No Inspector, localize o campo API Key no componente TripoClient. Cole sua chave de API Tripo (você pode registrar uma conta no site oficial da Tripo e receber 600 pontos gratuitos mensalmente).
- Lógica de Entrada de Prompt e Callback
Como atualizamos o sistema de entrada do jogador, precisamos atualizar a lógica de transmissão do prompt no GameManager. Por padrão, o script GameManager já deve estar escutando os eventos OnPlayerEnter e OnPlayerExit. Se você estiver trabalhando com código gerado por IA ou encadeando lógica entre vários componentes, é útil colar o código gerado anteriormente como contexto.
O script que fornecemos já definiu a função de callback quando oGameManageremite uma chamada de instância para oUIFactory. Definitivamente, existem outras soluções, mas neste caso, o prompt que pode ser usado para completar esta parte da lógica pode ser visto como o seguinte.
Comportamento Atualizado: No scriptGameManager- Quando OnPlayerEnter é acionado, o
UIFactoryinstancia uma caixa de diálogo de entrada (prefab InputDialog). - Quando OnPlayerExit é acionado, a caixa de diálogo de entrada é destruída.
Assim que o jogador terminar de inserir um prompt, ele será passado para o script TripoClient, com um exemplo de chamada de tripoClient.TextToModel(prompt, pos);. Modifique os scripts associados.
Modificar GameManager.cs:- Abra o script GameManager.cs.
- Encontre o método OnPromptConfirmed (este lida com a confirmação de entrada do prompt).
- Complete o código interno e certifique-se de que o campo tripoClient esteja corretamente atribuído no componente GameManager.
- Quando OnPlayerEnter é acionado, o
- Criar um Contêiner de Modelo
- Na hierarquia da cena, crie um componente vazio filho e nomeie-o ModelContainer
- Use-o como nó pai para todos os modelos gerados dinamicamente.
Teste sua Configuração- Pressione o botão Play no Unity.
- Insira um prompt no painel.
- Você deverá ver o prompt carregado com sucesso para o servidor Tripo.
- O progresso da geração aparecerá no Console do Unity e também no campo "Input/Progress" do Componente Tripo API.
Agora você está pronto para gerar seu próprio modelo de IA no Unity. Divirta-se construindo!
Retargeting de Animação
Uma vez que o modelo tenha sido gerado, o próximo passo é mapear os recursos de animação existentes para o esqueleto do seu modelo. Certifique-se de que o script RuntimeHumanoidAvatarBuilder foi adicionado ao seu projeto. Este script lida com o mapeamento do esqueleto GLB humanoide para o Avatar do Unity, e o script TripoClient o montará automaticamente no modelo gerado.
Vamos primeiro organizar a


