Quiero crear pizza realista y permitir que el usuario interactúe con ella.
Lo que quiero:
Lo que creé:
Creé el modelo de la pizza (8 piezas) en Blender, luego lo importé a Unity. El pedazo de pizza se ve muy artificial, principalmente porque es un "triángulo rígido".
¿Cómo puedo hacer que el queso se estire y se rompa cuando el usuario mueve una pieza?
Respuestas:
La manera simple
Agregue un quad que conecta rebanadas adyacentes entre sí. Texturice esto con una agradable textura de queso derretido, completa con agujeros. A medida que la rebanada se aleja, el quad se estirará naturalmente y, por lo tanto, estirará y sesgará la textura.
Esto debería parecer razonable, aunque no habrá descanso. Lo que hay que hacer aquí es hacer que esa textura sea animada. Itere a través de la animación en función del área de quads (o solo la distancia entre los cortes) en lugar del tiempo. A medida que se aleja más, aparecerán más agujeros debido al progreso de la animación.
Finalmente, cuando se alcanza un umbral de distancia, divida el quad en dos, reduzca programáticamente los dos quads en la dirección de sus cortes adjuntos para reducirlos un poco y mantenga la animación en reproducción que muestra el ajuste. Congele la animación al final.
Para un poco más de dinámica, puede conectar el quad a las dos rebanadas usando una articulación en un motor de física.
El camino difícil
Use un motor de física de cuerpo blando o escriba uno. Defina una sección de tela entre las rebanadas y texturice con queso. Permita que el motor de física modele la dinámica del estiramiento y el ajuste del material.
Este es un método mucho más intensivo, pero más aplicable en general. También puede ser muy incontrolable, pero podría ser un efecto general más convincente.
fuente
Usando una animación preestablecida:
Así que cree una animación preestablecida en un software de modelado 3D como Maya / Blender que tiene características como cuerpos blandos y tela que pueden hacer un buen trabajo simulando el desgarro de la pizza. Exporte la textura de la pizza Y la animación del modelo a Unity (probablemente como un conjunto de modelos .obj o algo así).
La animación del modelo representará el queso estirado y desgarrado utilizando muchos triángulos, que puede cargar como un conjunto de tres mallas en Unity. Son una colección de muchos estados de malla, cada uno representando la pizza de queso en diferentes posiciones de estiramiento. Según el lugar donde el usuario coloca la porción de pizza, saltará a ese 'estado de malla' y mostrará esos triángulos.
Hay algunos problemas, por supuesto. La interacción del usuario es un poco restringida. Si el queso ya está un poco desgarrado, no puede volver al estado 'sin torcer' para esa área de queso. Si la animación preestablecida elimina el segmento 1 y luego el 2, el usuario se verá obligado a eliminar los segmentos en ese orden. El tamaño de los datos exportados puede ser bastante grande, en función de cuán granular sea la malla y cuánto dura la animación de desgarro.
Pero puede parecer muy realista, si el artista modelo hace un buen trabajo al crear la animación preestablecida. Y no tiene que implementar un simulador de cuerpo blando.
Usando la Unidad:
Pero en caso de que le interese, Unity implementa su propia tela Skinned y componentes de tela Interactive . La tela interactiva admite rasgaduras. Pero el soporte para ellos está restringido a solo unas pocas plataformas, la última vez que lo revisé.
Usándote:
Al final, siempre puede implementar su propio simulador de cuerpo blando. Aquí hay una muestra de trabajo de investigación que es bastante popular. Es muy divertido :). Buena suerte.
fuente
¡Las respuestas de @ originalDaemon son buenas! Creo que hay un camino intermedio que puede obtener mejores resultados que el primer enfoque y requerirá una cantidad razonable de esfuerzo (quizás a diferencia del enfoque "The Hard Way").
Lo que sugiero es que también modele la "red" del queso, para mí se parece mucho a las estalactitas. Modele algunas piezas de queso elástico. Colóquelos aleatoriamente en los bordes del triángulo de delicias y escale a 0
y-axis
y cuando el triángulo se retire de sus compadres, escale lentamente en el eje y hasta el tamaño necesario.Es posible que deba elegir otro eje en lugar de
y
si planea tirar del triángulo un poco. De cualquier manera, creo que aunque una textura plana sería mucho más fácil y rentable, modelar el queso podría resultar más realista para el primer plano, aunque una textura también podría funcionar. Si elige una textura, tal vez use más de una capa para obtener una sensación más realista. Además, no olvide agregar un poco de vapor para enfatizar el calor de la pizza en la toma.Otra cosa que noté es que parece que el pepperoni es solo una textura en este momento. Definitivamente consideraría modelarlo o agregar algunos detalles en esa área al modelo existente. Podrías hacer que se deslice hacia abajo con el queso elástico para un realismo adicional.
fuente