UDK o Unity Dynamic Runtime Mesh Sustracción booleana (o alternativa)

Soy nuevo en el desarrollo de juegos en 3D y me preguntaba si alguien podría ayudarme.

Estoy planeando usar UDK y me gustaría tener elementos deformables en el mundo.

Entonces, un proyectil golpea un objective y se produce una abolladura o un agujero.

Al principio pensé que podría haber una forma de cargar una malla en el punto de impacto y luego "restar" esa malla de la malla objective. es posible? Esto me permitiría tener diferentes "efectos de impacto", como delgado y profundo, o ancho y superficial. (Similar a esto, pero sin requerir DX11 )

He buscado esto pero no estoy seguro de cómo llamarlo (mallas deformables, operaciones de malla booleana, etc.), pero si ya tiene una respuesta, sería genial.

Si mi enfoque es incorrecto, ¿podría señalarme alguna alternativa? Realmente no quiero ir por la ruta de los pedazos.

O, si Unity lo admitió, entonces no es demasiado tarde para que cambie el motor.

Muchas gracias, Martin

Podría considerar el enfoque que se resume aquí:

http://answers.unity3d.com/questions/316064/can-i-obscure-an-object-using-an-invisible-object.html

(La respuesta está escrita en términos de unidad, pero la misma base compartida también se aplica a Unreal).

Básicamente, le agrega geometry a su juego que solo escribe en el búfer Z y luego dibuja los objects que necesitan agujeros en ellos. Esto es bastante rápido, ya que se puede hacer sin modificar las mallas a costa de dos llamadas adicionales.

El mayor problema es que si dos objects que reciben agujeros de bala están espalda con espalda, un agujero de bala atravesará todos esos objects hasta que se scope un object a testing de balas. (Esto en realidad puede ser deseado en algunos casos). Sin embargo, si solo algunas geometrys en su juego como puertas de madera y similares pueden recibir agujeros de bala, el efecto podría ser bastante convincente.

Por lo general, lo que estás pidiendo no es trivial. Existen algunos packages middleware costosos para esta característica, pero no muchos gratuitos.

Un enfoque directo (pero aún no trivial) es generar versiones precortadas de la geometry y luego cambiar a esas. Esto requiere más inversión artística y tiene una serie de límites, por supuesto. Una buena inversión en herramientas puede mejorar el flujo de trabajo, pero tomará un time para comenzar a funcionar.

Las dificultades de esto en general son que los objects son 3D (con múltiples "materiales" internos). Si explotas una colina, no solo quieres presionar la hierba sobre ella. Quieres generar tierra, piedras y cúmulos de césped que aterrizaron cerca. Para hacer un agujero en una panetworking, necesitas saber cómo se ve el interior de la panetworking (las panetworkinges no son planos infinitamente delgados en la vida real). Hacer un hoyo a través de todo un edificio en su escenario es mucho más difícil. Manejar la física de forma adecuada (por ejemplo, asegurando que una estructura queuepse si quita sus soportes) es aún más difícil, ya que necesita modelar la estructura de forma compleja tanto visual como físicamente.

Puede hackear mucho de esto con algunas suposiciones y trucos básicos. Las panetworkinges pueden tener objects de "calcomanías" que se colocan alnetworkingedor de un agujero para que se vea más áspero y ocultar / cubrir los espacios entre el interior y el exterior de la panetworking. Sin embargo, generar el agujero en time real sigue siendo un truco; Las soluciones AAA precalculan estos agujeros, a menudo con algorithms de alta potencia y una integración de herramientas muy extensa y compleja.

La dificultad de manejar adecuadamente el terreno deformable es en parte la razón por la que casi nunca se ve fuera de algunos casos y juegos precalculados como Scorched Earth (que es todo en 2D). Es posible, pero no fácil, y potencialmente inviable para types complejos de terrenos y estructuras.

Tenga en count que UDK y Unity usan PhysX de NVIDIA, que es uno de esos middleware con capacidades de "destrucción". UDK incluye una herramienta de "fractura" en UnrealEd usando el kit de herramientas Destrucción de APEX con PhysX para hacer las cosas de la manera precalculada mencionada anteriormente. Depende de usted decidir si esto es "lo suficientemente bueno" para sus necesidades o no.

Si aún no es demasiado tarde para usar Unity, puede intentar esto: https://www.assetstore.unity3d.com/#/content/9411

En la descripción, puedes ver un video y una demo en time real para webplayer mostrando las principales características 🙂