Unity3D - Simular "Palazos" excavadora

Srednuht

Buenos días, estoy tratando de simular como una excavadora mete un 'palazo' sobre un terreno y este se deforme de manera pertinente.

He probado varios recursos de la asset store y tambien he programado algunas chapuzerías, pero no consigo un buen resultado. Se me está haciendo cuesta arriba el tratamiento con los terrenos mediante script.

Mi duda es si alguien conoce algún método o sistema en el que se pueda hacer algo decente o simplemente recoger ideas y ponerme a ello.

Gracias!

Selbryn

Hay en el API de Unity métodos que te permiten modificar los vértices de una malla.

Una forma podría ser recoger los vértices que se sitúan justo debajo de la pala en una lista y cuando apliques el golpe desplazarlos en Y negativo.

2 1 respuesta
Srednuht

#2 Gracias por la respuesta

El tema es que he estado probando unos dias un código que he descargado

(Está el package en los comentarios)

Me he dado cuenta que al escalar el terreno ya no funciona como debiera. Aun así lo he adaptado a mi sistema para que lo que es la esfera sea mi pala y he usado mismas texturas y demás. Pero nada, no consigo que cave. EL sistema es bastante 'simple' y me está tocando la moral que no consiga que funcione en otro terreno que no sea el de la escena de ejemplo. (que como digo, en la propia escena de ejemplo ya no funciona con el reescalado)

( #2 Casualidades de la vida, creo que ya se porqué pasa esto xDD, mañana comento!)

2 respuestas
qunram

#3 Yo creo q con el ejemplo q has puesto, lo tienes todo hecho ya! Desde luego, el camino q yo seguiría es ese, el de modificar el mapa de desplazamiento del terreno.

Yo he conseguido esto con solo cambiar la imagen q usa para deformar.

2 respuestas
Selbryn

#3 #4 Os habéis podido leer los scripts del ejemplo ese?? como lo hace realmente?

1 respuesta
Srednuht

#4 Si, hoy lo he logrado(sindrome de preguntar aqui xD), era un defecto de exportación de script, acumulaba transformaciones y se iba de bareta. Había que hacer una pequeña modificación.

Ahora me tocará ver el tema de la textura para que salga en plan palazo y además toca modificarlo para que salga de un tamaño acorde a la pala.

#5 Si importas el packcage a un proyecto lo puedes ver todo, de todas formas si no te aclaras ( cosa que dudo) te lo explico.

Gracias a los dos

1 respuesta
Selbryn

#6 Si es por no tener que leerlo yo xD ya se que sale ahí era por si alguno lo habíais mirado para que lo explicarais a ver como es. :D

1 respuesta
Srednuht

#7 El tema es usar una textura usando el "alpha mapping". Entonces tenemos una textura que va desde negro hasta blanco.

Unity almacena los datos de altura del terreno y los deja como un valor entre 0 y 1.

si le asignas el 0 al negro y el 1 al blanco, puedes hacer que tu textura, pixel a pixel tambien tenga unos valores entre 0 y 1.

Si le restas al terreno los valores de la textura ya te hace el hoyo

1

Usuarios habituales

  • Srednuht
  • Selbryn
  • qunram

Tags