Cómo crear un portal

edgarbasto19 - 14/04/2007 03:27
Vueno no tengo idea de cómo hacer el arma del video, pero de pronto ustedes tengan ideas o si no, de todos modos esta bonita el arma y seria algún día una meta mía hacerla en Blender. [url]http://www.youtube.com/watch?v=qgpigcmljba[/url].

Miren bien lo que hace. [url]http://www.youtube.com/watch?v=if3qv2thyfa&mode=related&search=[/url].
edgarbasto19 - 14/04/2007 21:47
Si se me pasaron algunas (,) pero ya.
balzhak - 14/04/2007 21:55
No. Es genial, donde sacastes la idea? Eso lo hisistes vos o lo encontrastes? No importa para el caso es genial lo digo y lo repito felicitaciónes, me encanto.
edgarbasto19 - 14/04/2007 22:07
Es de Half Life 2 episodio 1, ese juego no se conoce mucho, por que usualmente se consigue es vía Steam, que es un programa y desde allí se compra la licencia.
balzhak - 15/04/2007 19:18
Pero que es lo que deseas hacer? Crear el efecto del portal? Creo que eso lo podría hacer con cámaras, aunque no sé que programas usas, tal vez moviendo drásticamente el personaje o el arma para aparecer frente al hueco que crearas en medio de la animación, o con un fondo, utilisando un hueco en la caja.

Yo realmente hablo desde lo que conozco que es muy poco y es acerca del 3dsMax, así que son solo ideas nada del otro mundo.
Pepius - 15/04/2007 22:24
Quieres hacerlo para un videojuego o para una animación?
Leander - 15/04/2007 23:10

Quieres hacerlo para un videojuego o para una animación?

Para su propia habitación hombre, así puede ir de un zipzass a Blendiberia, pero ya es tarde, ha acabado ¿no?
edgarbasto19 - 16/04/2007 17:57
Es para un juego en Blender, pero el software es lo de menos, la técnica es la que le estoy echando* cabeza, no se me ha ocurrido la forma de hacerlo.

Nota:
* echando: dedicando mucho pensamiento.
edgarbasto19 - 16/04/2007 18:02
Si se observan los ejemplos. [url]http://www.youtube.com/watch?v=if3qv, elated&search=[/url]. Es difícil hacer un movimiento drástico, creo que para esto si tocaría empezar a programar en Python para hacer algo parecido a los accesos directos.

Pero, de todos modos les dejo la inquietud por que a mí me parece impresionante.
Pepius - 16/04/2007 18:03
Pues en Blender lo tienes bastante crudo. De hecho, es prácticamente imposible hacerlo de forma que quere bien. Si que puedes hacer la transportación de un portal a otro, pero el efecto de entrar por uno y salir por el otro es mucho más difícil. Puedes ponerle al portal una textura que simule lo que se ve a través de el, y que al tocarlo te transporte realmente al lugar correspondiente. Y si por si fuera poco, veo aún más imposible hacer una arma que haga esto, es decir poder colocar estos portales donde quieras en durante el juego.

En fin, suerte. Un saludo.
NeCRoManCeR - 16/04/2007 18:05
En un disparo se crea un plano con bordes animados y lo que quieras en el medio. Cuando efectue el segundo disparo tiene que crea otro plano de bordes animados, pero esta vez activar una cámara en cada plano y deberás transmitir la información de éstas al centro del plano ayudándote de una máscara.

Al hacer contacto con un portal que mueva el personaje a la latitúd y longitúd del otro portal y listo.

Espero ansioso verlo terminado.
NeCRoManCeR - 16/04/2007 18:07

Pero el efecto de entrar por uno y salir por el otro es mucho más difícil.

En efecto, dudo de que sea capaz de algo así.

Edito: podría pintarse una opacidad en la pared y abrir la malla de la habitación detrás del muro. Pero igual seria un lío.
fisicomolon - 25/06/2007 19:14
Habéis visto la película Cube? ¿no? Pues no la veáis, es un bodrio, pero, me ha dado una idea. Suponemos que estamos en una habitación, (un cubo) y copiamos 6 veces esa habitación, y la solapamos a cada una de las caras del cubo, cuando abres un portal en el suelo o en una pared, lo que haces es abrir un agujero a esa pared, y ves el cuarto solapado a esa cara. Con eso te ahorras, lo de colocar cámaras y tal, tendrías que programar que todo lo que salga de la habitación central, se tomen las coordenadas relativas a la habitación exterior y se cree una copia en las mismas coordenadas en la habitación central, y cuando se cierre el portal se borre la copia de la habitación exterior, así conseguirías el efecto de verte a ti mismo saliendo de la habitación, y por más que entres y salgas siempre acabaras en la habitación central.

No sé si me he explicado.

Yo creo que en Blender, se puede hacer todo, solo es cuestión de tener los conocimientos adecuados y la imaginación de un niño de 8 años.
Pepius - 25/06/2007 20:53
Si, pero eso supone la limitación de una sola habitación. A parte, después estaría el tema de que se vislumbrara por el agujero la otra habitación, como creas ese agujero justo donde has disparado? Ese es el problema. Ya que, si obviamos eso, hacer un script que te cambie de posición con Python es muchísimo más fácil. Un saludo.
fisicomolon - 25/06/2007 21:24
Lo de la limitación de la habitación es cierto, pero también es fácil de solucionar, cada vez que cambies de habitación, pues que el juego cargue, la nueva habitación con sus 6 copias.

Que hagas el agujero donde dispares, por ejemplo, podrías construir la habitación a base de pequeños planos, es decir, en vez de que la pared sea un plano que sean muchos, como los azulejos de un aseo, y cuando dispares a uno, que desaparezca, el y los que tenga alrededor, o algo así, no se conseguiría ese borde tan col del video, pero oye, es un comienzo.

Yo no soy ningún experto, y no creo que consiga nada del otro jueves, pero una cosa tengo claro, la frase eso no se puede hacer es el 99% de las veces incorrecta, sería más correcto decir, yo no sé hacerlo, o no se me ocurre cómo hacerlo.

Voy a intentar hacer una prueba, a ver con que problemas me encuentro.
Pepius - 25/06/2007 21:40
El resultado seria bastante horrendo. No te digo que no se pueda hacer sino que iria muy lento. Ten en cuenta que si usas este sistema en un juego con, digamos, 10 habitaciones (contando pasillos y todo, pues no viene a ser gran cosa), que cada vez que estas en una habitación hay 6 copias de esa misma, que, aparte, la habitación y sus copias deben estar subdivididas, y que aparte debes tener margen para el resto de gráficos del juego, más la programación.

Sin tener en cuenta que todos los recintos deben ser cuadrados, olvídate de hacer un pasillo que tuerza a un lado, ni exteriores, por supuesto esto.

Ah. Y se te olvida que ese juego funciona disparando dos veces, para crear entrada y salida, cosa que multiplica la complejidad.

Si consigues hacer todo eso con el engine de Blender, y que quede más o menos aceptable, bravo.
fisicomolon - 26/06/2007 01:11
Tienes razón en lo de los pasillos y tal. Lo de que cargue mucho al juego, y el framerate caiga, es cuestión de probar. A lo mejor esa idea no es la mejor, seguiré pensando en el tema, la verdad que me ha picado la curiosidad. Desde luego no tenía pensado hacer un juego entero. Solo un ejemplo de lo del portal, estaba pensando en coger el template de frames por segundo de social. bge frames por segundo template 12/28/06 - Blender artists forums.

Y añadirle eso del portal.

Lo de los pasillos y los exteriores es verdad, pero ¿han conseguido eso, los autores del original? Porque yo en la demo solo he visto cuartos cerrados.

Está claro que sí alguien amateur como yo, hace algo así, será la versión, amateur, no la profesional, y tendrá sus limitaciones. Pero aun así será divertido intentarlo.

Lo dicho, seguiré pensando a ver qué saco en claro.
fisicomolon - 26/06/2007 13:27
Bueno he estado probando un poco, y he de decir que lo de las 6 habitaciones no va a funcionar, ya que no me había dado cuenta de lo que me recordó antes Pepius, que hay dos disparos uno de entrada y otro de salida.

Con lo de las 6 habitaciones al crear la entrada se estaría definiendo también la salida, y le quitas la gracia a esto.

Es fácil de hacer, si obviamos la parte en la que se ve la otra habitación al otro lado. Quizás se podría hacer algo faq con algún tipo de textura y tal. No conozco bien el control de la cámara en Blender, pero no creo que puedas ver cómo textura lo que está enfoncando una cámara ¿no?
Sigo pensándolo.
fisicomolon - 26/06/2007 22:54
[video]http://www.youtube.com/watch?v=svtok13bvje[/video]

Como decía Pepius, lo de colocar el portal donde dispare el arma, es difícil de hacer, hace falta bastante código, pero, ya está hecho no por mí, sino por social, en su frames por segundo template, el cosiguió poner una textura de agujero de bala, donde disaparaba, cambiando esa textura por un plano sin texturizar se consigue esto.

Es el primer paso.

Posdata: si el video no funciona esperen un poco, es que está recién subido a youtube.
fisicomolon - 28/06/2007 14:26
Bueno, por lo que llevo ingestigado. Lo de conseguir que se vea la habitación a través del portal es gracias a la técnica de render to texture en realtime, de la que Blender carece. Hay algún script intentándolo, pero no consigue algo usable. render to texture - Blender artists forums.

Otros engines si que te permiten hacer esto.

La otra parte del portal, que es la teletrasportación si parece más factible, aunque habría que probar para ver si se consiguen todos los detalles de esta.

Intentaré tener hecho lo de la teletrasnportación en los próximos días, aunque parece que ya a nadie le importa este mensajes.

A las conclusiones que voy llegando, es que conseguir algo con la calidad del video del primer mensaje, es poco factible en Blender, pero sí que se puede conseguir, el Blender-portal, es decir la versión en Blender del portal.

Al final voy a tener que darle la razón a Pepius, aun así seguiré intentando a ver hasta dónde llego.
Klópes - 28/06/2007 14:32
Aquí hay uno que te va siguiendo, tío, a ver hasta dónde llegas. Por cierto, el juego de Córdoba te está quedando genial, a ver si le echo un vistazo a las tripas porque tengo algo a medias en plan alone in the dark que funcionaría parecido.
fisicomolon - 28/06/2007 14:37

Aquí hay uno que te va siguiendo, tío, a ver hasta dónde llegas. Por cierto, el juego de Córdoba te está quedando genial, a ver si le echo un vistazo a las tripas porque tengo algo a medias en plan alone in the dark que funcionaría parecido.

Pues nada ya sabes, copiar y pegar como hice yo. Coge los scripts, modelos, o lo que necesites del juego, que para eso es opensource igual que Blender. Un saludo.
Caronte - 28/06/2007 14:44
Eso Klópes, copia y pega, que así te saldrá algo, aunque no sepas nada de Python.
8tintin - 28/06/2007 19:20
Snif. Alone in the dark, que buenos recuerdos del juego y que de película hicieron.

Eso Klópes, copia y pega, que así te saldrá algo, aunque no sepas nada de Python.

Saludos.
Pepius - 28/06/2007 20:24
Va bien encaminado pero, de todas formas, el problema más difícil de hacer sigue ahí. Un saludo.
Feanor - 28/06/2007 23:02
Hey, interesante mensaje. Yo creo que la idea básica del portal no es tan difícil de conseguir. De hecho, el esquema a seguir es super simple:
-Disparo1.

Disparo2.

Colisión con disparo1 -> transportar a posición de disparo2.

Eso sí, si quieres adornar con el efecto de lo que se ve a través de los agujeros ya te complicas más. Lo que está claro es que los de Valve no lo han hecho duplicando habitaciones por lo que se puede ver en los videos. Pero aquí tienes a alguien más interesado y que sigue el mensaje. Ánimo.
fisicomolon - 30/06/2007 00:11
Siguiendo el esquema de Feanor he hecho esto.
[video]http://www.youtube.com/watch?v=koyt0ztlzts[/video]

Se supone que se puede entrar tanto por el disparo 1 como por el 2, pero no sé porque solo me funciona el 2, bueno hay algunos bugs más, y todavía no he intentado lo de simular que se vea la otra habitación. Seguiré intentándolo.

El archivo blend. [url]http://www.savefile.com/files/851792[/url].
Pepius - 30/06/2007 10:14
Interesante. Ten cuidado, que en teoría el jugador debería salir apuntando hacia la normal el agujero. Un saludo.
fisicomolon - 30/06/2007 12:37

Interesante. Ten cuidado, que en teoría el jugador debería salir apuntando hacia la normal el agujero. Un saludo.

Cierto, cierto, es lo siguiente que estoy intentando, jugando con el getorientation y setorientation, pero no sé porque no me sale. Puede que el template que estoy usando modifique la orientación, en otro script. Gracias por tu consejo, estoy en ello.
Pepius - 30/06/2007 12:44
No sé si recuerdo bien, pero el setorientation utilizaba una matriz de 3x3 y no una lista como con la posición, que es lo que cabía esperar.

De todas formas, puedes hacer lo siguiente, junto con el agujero, al crearlo, haces que cree también un Empty delante del mismo.

Al salir por el agujero, haces un track todo hacia el Empty que dure solo un frame, con lo que conseguirás que mire hacia delante.

No sé si me explico. Un saludo.
fisicomolon - 30/06/2007 18:24
Te has explicado muy bien, y es una idea muy buena. Ahora mismo lo pruebo. El Empty ya lo tengo. Precisamente el cambio de localización lo hago con el Empty ya que si lo hiciera con el plano daría problemas de colisiones, lo que puedo hacer es el track inverso con el plano, es decir, que le de la espalda al plano cuando esté en el empty, creo que debería funcionar.

Editado****.

La verdad que lo he estado probando y no lo veo claro, creo que es más fácil si consiguiera hacer funcionar el getorientation, setorientation.

Es verdad que devuelve 3 matrices de 3x3, pero da igual, solo uso esos datos para aplicarlos otra vez con setorientation, así que, debería funcionar.

No sé, seguiré probando.
Feanor - 30/06/2007 21:11
Muy bueno, Físicomolon. En mi opinión la base ya la tienes conseguida (a pesar de algún bug, como cuando te quedas pegado al salir por la puerta del techo). El efecto de las cajas transportándose queda muy llamativo, como en los videos del juego original.

Respecto al tema de la orientación, yo no entiendo mucho de programación, pero creo que lo correcto sería (como ya se ha dicho) tratar de alinear la vista cámara con la normal de la segunda puerta, o del Empty ese que utilizas. O quizá comparar el ángulo de las normales de las puertas y aplicarlo a la posición.

No sé, la verdad es que no tengo mucha idea de esto. Ánimo, y que sigas progresando. Pero tampoco mucho, no vaya a ser que acabes tu propia versión antes de que salga el juego oficial.
fisicomolon - 01/07/2007 00:07

Muy bueno, Físicomolon. En mi opinión la base ya la tienes conseguida (a pesar de algún bug, como cuando te quedas pegado al salir por la puerta del techo). El efecto de las cajas transportándose queda muy llamativo, como en los videos del juego original.

Respecto al tema de la orientación, yo no entiendo mucho de programación, pero creo que lo correcto sería (como ya se ha dicho) tratar de alinear la vista cámara con la normal de la segunda puerta, o del Empty ese que utilizas. O quizá comparar el ángulo de las normales de las puertas y aplicarlo a la posición.

No sé, la verdad es que no tengo mucha idea de esto. Ánimo, y que sigas progresando. Pero tampoco mucho, no vaya a ser que acabes tu propia versión antes de que salga el juego oficial.

Lo de la orientación ya lo voy comprendiendo, se puede hacer con getorientation setorientation, es degir coger la orientación de la puerta, y aplicársela al personaje, el problema es que le formato de salida del get es distinto del formato del set, es decir que hay que convertir los datos antes de aplicarlos, es muy largo de explicar, matrices de transformación y, pero he conseguido por ahí un script que ya lo tiene hecho, así que, solo tendré que modificarlo un poco y listo. Ya lo enseñaré.