Como posso criar um material elástico e quebrável para queijo de pizza?

21

Quero criar pizza realista e permitir que o usuário interaja com ela.

O que eu quero:

fotografia de pizza com uma fatia sendo levantada

O que eu criei:

captura de tela da pizza renderizada, com uma fatia ausente

Criei o modelo da pizza (8 peças) no Blender e depois a importei para o Unity. O pedaço de pizza parece muito artificial, principalmente porque é um "triângulo rígido".

Como faço para esticar e quebrar o queijo quando o usuário move uma peça?

Peter Burenkov
fonte
1
Melhores modelos, melhores texturas e melhores shaders. Tão simples como isso.
API-Beast
Você realmente quer que o queijo se estique e quebre? Se você pudesse ser mais específico sobre qual aspecto deseja ser mais realista, isso ajudaria a restringir o escopo da pergunta.
Michaelhouse
2
@ Byte56, entendo que posso melhorar a qualidade da pizza através da melhoria do modelo, texturas e shaders, mas estou interessado em queijo. Sim, quero que seja elástico e quebrável. Como queijo de verdade.
Peter Burenkov
6
Pessoalmente, eu daria uma olhada na simulação de tecidos em tempo real e veria até onde você pode ir do tecido ao queijo ajustando os parâmetros. Eu lidaria com a camada de queijo da pizza como uma malha separada e usaria um modelo de mola / massa para calcular as deformações. Eu também já vi sistemas de panos antes, que permitem rasgar o pano, o que você também desejaria para o seu queijo. Combine isso com um sombreador que combina de uma textura sólida de queijo a uma textura de queijo estirado / rasgado, com base na força aplicada aos nós do modelo de mola / massa, e deve fornecer um resultado bastante elegante.
Invor
Apenas para interpretar o advogado do diabo aqui, você tem certeza de que precisa desse tipo de animação? Eu sei que parece estranho perguntar, mas você deve ver pelas respostas já dadas, este é um efeito bastante complexo que você está buscando. Obviamente, isso depende do jogo (não sei se você está fazendo um simulador de fazer pizza [conheço pessoas que pagariam um bom dinheiro por uma]), mas você deve se perguntar se o trabalho que você colocará nisto realmente adiciona o suficiente para justificar seu esforço. Mesmo se você tem um monte de tempo, dedicando-lo em outro lugar pode pagar mais no longo prazo ...
Selali Adobor

Respostas:

28

A maneira simples

Adicione um quad que conecte fatias adjacentes entre si. Textura isso com uma textura agradável, queijo derretido, completo com furos. À medida que a fatia é afastada, o quadrilátero é naturalmente esticado e, assim, estica e inclina a textura.

Isso deve parecer razoável, embora não haja interrupção. O que fazer aqui é tornar essa textura animada. Repita a animação com base na área dos quadríceps (ou apenas na distância entre as fatias) em vez do tempo. À medida que é puxado para mais longe, mais furos aparecerão devido à progressão da animação.

Eventualmente, quando um limite de distância for atingido, divida o quadrilátero em dois, reduza programaticamente os dois quadriláteros na direção de suas fatias anexadas para reduzi-los um pouco e manter a animação em execução que mostra o encaixe. Congele a animação no final.

Para um pouco mais de dinâmica, você pode anexar o quadrilátero às duas fatias usando uma junta em um mecanismo de física.

O jeito difícil

Use um mecanismo de física de corpo mole ou escreva um. Defina uma seção de pano entre as fatias e texture com queijo. Permita que o mecanismo de física modele a dinâmica do alongamento e encaixe do material.

Este é um método muito mais intensivo, mas mais aplicável em geral. Também pode ser muito incontrolável, mas pode ser um efeito geral mais atraente.

OriginalDaemon
fonte
3
Eu sugeriria totalmente a primeira abordagem.
jhocking
6
No mínimo, passe algumas horas tentando a primeira abordagem (você pode facilmente usar vários quads) antes de passar alguns ... err ... meses escrevendo um mecanismo de física ...
corsiKa
3
Tão faminto de ver o resultado! Por favor, atualize-nos quando terminar.
John Moses
2
Por um momento, pensei em ler "Use um mecanismo de queijo de corpo mole" e pensei: uau, as pessoas escreverão motores para qualquer coisa.
Thomas
2
O Unity possui um mecanismo de física de tecidos embutido que suporta alongamentos e rasgos, para que o caminho mais difícil possa não ser tão difícil. Embora seja muito mais caro computacionalmente.
Ethan Worley
2

Usando uma animação predefinida:

Portanto, crie animação predefinida em um software de modelagem 3D como o Maya / Blender, que possui recursos como corpos macios e tecidos que podem fazer um bom trabalho simulando o rasgo da pizza. Exporte a textura da pizza E a animação do modelo para o Unity (provavelmente como um conjunto de modelos .obj ou algo parecido).

A animação do modelo representará o queijo sendo esticado e rasgado usando muitos triângulos, que você pode carregar como um conjunto de malhas triplas no Unity. Eles são uma coleção de muitos estados de malha, cada um representando a pizza de queijo em diferentes posições de alongamento. Com base em onde o usuário posiciona a fatia de pizza, você pulará para esse 'estado da malha' e exibirá esses triângulos.

Existem alguns problemas, é claro. A interação do usuário é um pouco restrita. Se o queijo já estiver um pouco rasgado, não será possível voltar ao estado 'não-torcido' para essa área de queijo. Se a animação predefinida remover as fatias 1 e 2, o usuário será forçado a remover as fatias nessa ordem. O tamanho dos dados exportados pode se tornar bastante grande, com base na granularidade da malha e na duração da animação de rasgo.

Mas pode parecer muito realista, se o artista do modelo fizer um bom trabalho ao criar a animação predefinida. E você não precisa implementar um simulador de corpo mole.

Usando o Unity:

Mas, caso você esteja interessado, o Unity implementa seus próprios componentes de tecido sem revestimento e interativo . O pano interativo suporta rasgar. Mas o suporte a eles é restrito a apenas algumas plataformas, a última vez que verifiquei.

Usando você:

No final, você sempre pode implementar seu próprio simulador de corpo mole. Aqui está um exemplo de artigo de pesquisa bastante popular. É bem divertido :). Boa sorte.

Arun R
fonte
1

As respostas do @ originalDaemon são boas! Eu acho que existe uma maneira intermediária que pode obter melhores resultados do que a primeira abordagem e requer um esforço razoável (talvez diferente da abordagem "The Hard Way").

O que eu sugiro é realmente modelar a "teia" de queijo, parece muito com estalactites para mim. Modele alguns pedaços de queijo elástico. Posicione-os aleatoriamente nas bordas do triângulo da delicadeza e dimensione-os para 0 y-axise, quando o triângulo for removido de seus colegas, reduza-os lentamente no eixo y para o tamanho necessário.

Pode ser necessário escolher outro eixo em vez de y se você planeja afastar o triângulo ligeiramente. De qualquer maneira, acho que, embora uma textura plana seja muito mais fácil e econômica, modelar o queijo pode se tornar mais realista para close-up, embora uma textura possa funcionar também. Se você escolher uma textura, talvez use mais de uma camada para obter uma sensação mais realista. Também não se esqueça de adicionar um pouco de vapor, talvez para enfatizar a gostosura da pizza na foto.

Outra coisa que notei é que parece que o pepperoni é apenas uma textura no momento. Eu definitivamente consideraria modelá-lo ou adicionar alguns detalhes nessa área ao modelo existente. Você pode fazê-lo deslizar para baixo com o queijo elástico para um realismo extra.

wolfdawn
fonte