Vídeo Curso Unreal Pra Valer - Aula 6 - Capitulo 11

Por: Raphael  

Em: 22/10/2025 12:06

Que aula fantastica sobre como elevar a capacidade do Unreal.

Não sei se nas próximas aulas será abordado isso, porém como me surgiu uma dúvida quando finalizaei a aula, achei melhor já comentar.

Quando você expõe a variável do tadatable, eu por minha conta tentei criar uma outra datatable com as informações de "Tetos" (na aula o exemplo eram os pilares) então, eu criei 3 novos tipos de telhados, (Platibanda, Duas Águas e Uma Água), e substui as MESHES dentro da DataTable, porém o node Switch on "EN_Lista_Pilares" que criamos, só pega os nomes dos pilares, e não os novos nomes oriundos da DataTable, eu até tentei criar um novo parametro e adicionar os nomes dentro de um Array, como vimos na aula, porém eu não sei com converte-los para as "opções" dentro do Enumerate (EN_Lista_Pilares) que ao deixar a DataTable como variável, poderiamos trocar o nome do Enumerate para (EN_Lista_Itens).

Muito Obrigado!
Oi Raphael, tudo bem?
 
Eu fico muito feliz que você gostou da aula sobre Construction Script, mais para frente ainda vamos explorar bastante as possibilidades dele.
 
Sobre a sua questão, é muito pertinente, pois o Enumerator realmente limita a edição externa do Blueprint pelo painel Detail, já que é impossível modificar o Enumerator dinamicamente, ou seja, durante a execusão das operações.

O Enumetator é uma ótima opção quando você não precisa modificar a listagem das coisas, sejam texturas, materiais, objetos, luzes ou o que for, porque a lista dele é fixa e para mudar tem que editar o Blueprint.
Portanto, se quiser usar o Enumerator para escolher os tipos de tetos que colocou na DataTable, será necessário criar o Enumerator como falou que fez, mas também precisa chamar as opções dele no Blueprint usando o Node Switch On, só que escolhendo o nome do Enumerator que criou para os tetos, pois o Enumerator dos pilares só terá as opções dos pilares.
Cada vez que você cria um Enumerator, automaticamente surge o Switch On dele nos Blueprints.
 
Porém, se você pretende mudar a DataTable para adicionar objetos completamente diferentes, não vale a pena trabalhar com Enumerators, é melhor você escolher numericamente pelo índice do Array ou pela linha da DataTable.

Veja no minuto 27 do vídeo 6, onde mostro como pegar as opções do Enumerator e passar para os índices do Array, que é onde realmente estão os pilares.
Então, em vez de colocar o Enumerator no painel Details para escolher a opção, você pode colocar a variável que define o índice do Array, que no caso é a variável "Pilar Escolhido".
 
Dessa forma, em vez de ter a lista bonitinha do Enumerator, vai ter um campo numérico onde poderá escolher o índice do pilar no Array, se colocar 0 ele pega o primeiro pilar do Array, se colocar 1 ele pega o segundo pilar do Array e assim por diante.
Não fica tão bonito igual o Enumerator, mas é muito mais versátil, porque assim poderá trocar a DataTable por qualquer outra, contendo qualquer tipo de coisa e escolher pelo ínidice, não importa quantos objetos tem no Array, porque ele aumenta e diminui dinamicamente conforme o conteúdo da DataTable, entende?
 
OBS: Se também habilitar para mostrar o Array no painel Details, poderá ver os ídices e os objetos de cada índice no próprio painel Details, facilitando a escolha do índice certo.
 
Qualquer mínima dúvida que tiver é só postar, estou sempre à disposição.
 
Abração e tudo de bom.
 
André Vieira

Fastático! 

fico bem claro, então bom saber que o Enumerator não consegue ser editado dinamicamente.

e nesse caso onde podemos mudar o "tipo" da MESH de pilar para telhado por exemplo, o ideal é trabalhar com os indices numéricos. 

Mais uma vez obrigado pela velocidade na resposta e também gostaria de parabenizar mais uma vez pelo excelente curso! 

Vamos aos estudos!!

Abraço! 

Oi Raphael, tudo bem?
 
Não tem do que agradecer, eu que agradeço por ter comprado o meu curso e fico realmente feliz de saber que está gostando das aulas.
 
Sobre como escolher os objeto sem o Enumerator, tudo vai funcionar exatamente da mesma forma que mostrei no vídeo, apenas não terá o Enumerator, pois o Enumerator na verdade serve somente para escolher um índice do Array através de um texto em vez de um número.
 
No minuto 27 do vídeo, que indiquei anteriormente, mostra o momento que eu pego as opções em texto do Enumerator e converto em números para usar no Array dos pilares, porque o Array não vai entender o texto, apenas o número do índice para saber qual objeto pegar com o Node Get, igual mostra a primeira imagem em anexo.
 
Portanto, se usar uma variável para definir esse número do índice que pega o objeto no Array e habilitar o ícone do olho para ela aparecer no painel Details, poderá trocar o valor dela e pegar qualquer objeto no Array como mostra a segunda imagem em anexo.
 
Nessa aula ainda estamos no início dos Blueprints e depois vamos fazer exemplos mais aprimorados, mas nos dois vídeos anteriores, o 4 e o 5 do capítulo 11, eu expliquei o básico sobre Arrays do tipo Map, que permite associar dois itens, como mostra a terceira imagem em anexo.

Com o Map você consegue associar um texto com um Static Mesh e poderá selecionar o Static Mesh de acordo com o texto, ele também aceita aumentar, diminuir ou alterar dinamicamente igual qualquer Array, mas você que terá que programar o sistema para encontrar o Static Mesh pelo texto dele no Map, pois não tem um recurso igual o Switch para fazer isso automaticamente.
Mais para frente, quando estiver melhor em programação, vai ser fácil fazer isso através de um Array de Strings associado com o Map e exibindo o Array de Strings no painel Details para ter a lista dinâmica em texto.
 
Qualquer mínima dúvida que tiver eu estou sempre à disposição.
 
Abração e tudo de bom.
 
André Vieira

Imagina, faço questão de reconhecer a qualidade do curso e o suporte!

Muito obrigado!

Tentarei fazer conforme sua explicação, qualquer duvida volto a questionar.

Agora eu estou fascinado com as questões das vertices e toda essa manipulação, realmente essa parte do curso vai me ajudar muito a desenvolver o que eu quero, que é pegar a distancia entre vertices (assim vou conseguir saber a medida do terreno).

Vamos aos estudos!

Oi Raphael, tudo bem?
 
Eu agradeço sinceramente pelo reconhecimento e o seu depoimento público é muito importante para a gente, porque certamente ajuda pessoas em busca de cursos ou indecisas com o nosso material a comprar e é isso que mantém a 3D1 no ar.
 
Sobre a sua questão, é incrível o que conseguimos fazer com Blueprint no Unreal, aos poucos você vai ver o quão maravilhoso é, para mim é a ferramenta mais espetacular que já conheci em qualquer programa nestes 30 anos que tenho de 3D.
 
É super fácil medir a distância entre dois pontos no espaço 3D.
Uma posição no espaço 3D é definida por um vetor tridimensional, que a gente chama de Vetor3, pois contém os valores de X, Y e Z no formato 0,0,0.
 
Então, se tiver dois pontos no espaço e pegar a posição deles com o Get Location, você vai ter dois vetores que indicam a posição de cada ponto em X, Y e Z.
Basta subtrair um do outro para você criar um vetor resultante onde o maior valor entre os 3 eixos será justamente a distância entre os dois pontos.
 
Na matemática a gente chama de Magnetude o maior valor entre os 3 eixos de um vetor e existe um Node no Unreal chamado Vector Length que mede justamente a Magnetude do vetor.
Portanto, se pegar o resultado da subtração dos dois vetores e conectar no Node Vector Length, vai sair do pino direito dele a distância exata entre os dois pontos no espaço 3D.
 
Esse valor pode ser usado onde você quiser, exibido diretamente na cena 3D com o Text Render Component ou na interface 2D com um Widget Blueprint, também será interativo em tempo real, pois se modificar a posição de qualquer um dos pontos, o valor será atualizado imediatamente.

OBS: Você pode testar facilmente atribuindo o valor do Vector Lenght numa variável e habilitando para ela aparecer no painel Details, assim, vai ver o valor em tempo real conforme move os dois pontos no espaço 3D.

Além disso, a Magnetude do vetor resultante da subtração aponta diretamente para o segundo operador da subtração, então, se subtraiu o Ponto A do Ponto B, o eixo maior vai estar na direção do Ponto B, facilitando muito se quiser mover o Ponto A até o Ponto B ou mover qualquer coisa entre A e B.
 
Qualquer dúvida é só chamar.
 
Abração e tudo de bom.
 
André Vieira

Eu estou bem, obrigado por perguntar, e por ai tudo joia?

Cada vez mais maravilhado com as Blueprints também!

Eu acabei de ver na aula isso, e fiquei fascinado!

o meu problema aqui é o seguinte, eu estou querendo cotar o perimetro de um LOTE, como esta na figura abaixo, e eu consegui enumerar os vertices para calcular a distancia entre eles, porém como pode ver, o indice de cada um (que vem do ARRAY) não segue uma ordem "Lógica", parece que os vertices da curva vieram depois e com isso estão com uma contagem (0 - 7) estranha, veja bem, está 0,1,2,3,4,7,6,5 e quando eu uso o vector lenght pegando o vertice de indice 0 menos o vertice de indice 1 da ele vai dando certo, até que o o vertice de indice 4 pega o vertice de indice 5 e não o de indice 7 que espacialmente está mais próximo. 

não sei se consegui explicar o meu problema, rsrs..

Mas resumindo o que na minha cabeça faz sentido seria o seguinte, identificar quais são so vertices mais próximos um dos outros e então reorganizar o indice para que então eu possa medir cada um deles, e caso a medida seja em arco (no meu exemplo os seguimentos 4-7, 7-6, 6-5, 5-0) somar os fragmentos para ter uma medida apróximada do comprimento da curva. 

Mas já foi um avanço e tanto, pois já consegui colocar as distancias centralizadas entre as vertices, apenas vendo a primeira aula do Capitulo 12 (e todas as outras do capitulo 11 é claro) rsrs

(imagem 1 - plotei os indices em cada ponto) (imagem 2 - plotei das distancia entre os pontos no meio do caminho entre eles)

Oi Raphael, tudo bem?
 
Sobre o suporte, eu prefiro que as pessoas postem as dúvidas aqui no fórum, principalmente porque fica aberto para todo mundo e a resposta pode ajudar outras pessoas, mas hoje em dia gostam de perguntar pelas redes sociais.
Porém, eu vejo o fórum diversas vezes por dia para saber se está tudo bem com o site e sempre vou responder qualquer dúvida que aparecer, já nas redes sociais e entro apenas uma vez por dia, respondo as mensagens e saio.
Então, quem quiser uma resposta mais rápida é melhor postar aqui. rsrsrs
 
Sobre o problema do índice dos vértices, você pensou corretamente e vejo que tem uma ótima lógica, que é importante para trabalhar com Blueprints, mas a ordem dos vértices na malha 3D é uma coisa que vem do programa de modelagem e fica difícil controlar.
Também, mesmo que conseguisse controlar, ainda teria que controlar a ordem que o Array guarda os vértices na lista, pois ele pode pegar aleatoriamente se você não controlar.
Vai dar trabalho e pode ficar pesado fazer esse controle se o Mesh for denso, porque terá que passar por todos os vértices e pegar o número 1, depois passar por todos de novo e pegar o número 2 ou então, fazer operações com o Array completo para organizar numericamente e deixar na ordem certa.
 
Portanto, eu acho que pode ser mais fácil medir o perímetro do lote com Splines, porque se tem os pontos, pode gerar a Spline entre eles e pegar o comprimento da Spline diretamente, já contando todos os segmentos dela de uma só vez, também será mais preciso em áreas curvas.
Você está quase chegando nas aulas sobre Splines, começa no vídeo 8 do capítulo 12.
 
Abração e tudo de bom.
 
André Vieira
Ah sem dúvidas por aqui é muito melhor, até porque continua no ambiente dos estudos, infelizmente hoje você abre as redes a sociais e nem lembra o que foi fazer lá e acaba perdendo muito tempo.

É realmente eu não havia pensado o quão pesado poderia ser pensando em grande escala, até mais do que pela complexidade do lote, pois vou modelar com poucas vértices.

realalmente o índice e dado no software de modelagem, eu uso o blender e vi como organizar lá, porém seria bem demorado, necessário a conferência sempre, por isso minha abordagem seria em "arrumar" pela unreal.

show, amanhã vou estudar mais e ver se consigo chegar nas splimes, hoje eu consegui fazer a régua clicando em e pontos, achei muito bom!

é isso até me deu uma ideia de talvez exibir os pontos para que o cliente clique (com um snap bem robusto forçando a pegar as vertices) e assim ele mesmo mede a distância, isso pode deixar até mais interativo.

vamos continuar os estudos.

muito obrigado 
Oi Raphael, tudo bem?
 
Tem várias formas de fazer, depende da experiência que deseja proporcionar, por exemplo, pode tirar as medidas nos Softs de CAD, que é mais fácil ou mesmo no Blender e exibir com o Text Render no centro de todos os terrenos quando clicar num botão na interface, assim, fica super leve e o cliente não precisa fazer nada.

Porém, como você disse, é mais interessante poder fazer as medidas que ele quiser, então, além de já dar as medidas dos lotes, também poderia criar uma régua para ele mesmo medir qualquer coisa.
 
Acho que não precisa se preocupar em dar os vértices dos lotes para ele, ainda mais se já deixar a medida de cada um disponível, porque assim você pode criar um ícone de uma trena ou qualquer coisa que quiser onde o cliente clicar para pegar o primeiro ponto, depois, pede para ele clicar num segundo ponto por meio de uma janela de diálogo ou coisa parecida e informa a distância entre os dois pontos em seguida.
Ainda pode permitir quantos pontos o cliente quiser e ir somando a distância deles, desta forma, ele pode medir o perímetro de qualquer coisa, a distância até a portaria ou área de lazer, a área da casa que pretende construir, tudo que imaginar e até alturas.
Fica mais bonito, mais versátil e mais interativo.
 
No capítulo 13 eu abordo as ferramentas para criar interface do usuário, então, poderá "conversar" com o cliente durante as operações e exibir coisas 2D em cima da cena 3D.
 
Abração e tudo de bom.
 
André Vieira

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717270.

Total de membros registrados: 143118

Últimos membros registrados: adrinespolo, Coryabelle, gabivigilato, arq.erickgab, breezoprecio, Alisson085, Calliuracle, Gared.

Usuário(s) on-line na última hora: 506

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2026. Todos direitos reservados.