Por ahora queda pausado el proyecto: Taryanpur. Además de esto, pronto espero subir nuevas secciones al blog.

jueves, 16 de marzo de 2017

Control de escena con varias alternativas

Buenas, hoy traigo las complicaciones que me supuso una escena que pasa después de salvar a un minero y que tiene unas cuatro variantes. Sí, la escena es diferente según unos requisitos y las variantes son las siguientes:

-Has rescatado a Frederick e Yvaine va contigo.
-Has recatado a Frederick pero Yvaine no esta en el grupo.
-No has rescatado a Frederick pero Yvaine esta en tu grupo.
-No has rescatado a Frederick y todavía Yvaine no se ha unido al grupo.

Suena complicado ¿Eh? Pues no. La verdad es que no lo fue, tan solo es trabajoso y los bugs que tuve fueron por errores tontos míos. Esta escena no supone un gran cambio en la historia que digamos, en realidad la misma se desarrolla del mismo modo estén o no los dos personajes, pero me apetecía probar de hacer algo así para el futuro proyecto que tengo entre manos. Es posible que pronto os hable de él, evidentemente será un juego gratis y tal, pero bastante más elaborado y con contenido más hecho por mi (o eso espero). En fin, vayamos a lo importante, los problemas absurdos que me dio esta escena.


Para hacer esta escena con todas sus variantes, lo primero que tuve que hacer es la escena completa que sucede cumpliendo los requisitos de haber rescatado a Frederick y tener a Yvaine en el grupo (sease, haberla salvado antes de ir a recatar a Manuéh). Esto no supuso mayor problema que hacer la escena con Frederick tal cual, añadiendo eso si una derivación condicional para cuando Yvaine tuviera que intervenir, remarcando que esto tan solo pasaría cuando ella estuviera en el grupo, si no se activaría la opción de lo que sucede cuando no esta ella. Aquí podemos ver como estarían los personajes colocados durante la escena.



Aquí tenemos el primer bug. ¿Cual? Os preguntareis ya que todo parece correcto, pues básicamente el problema era que cuando Yvaine se moviera hacía arriba, sería para dejarle espacio a Manuéh para moverse un tile a la izquierda y otro hacia abajo, pero en lugar de eso se mantenía quieto en su sitio y la escena no continuaba ¿Cual era el error? Más tonto imposible.


¡Exacto! En lugar de poner que se moviera a la izquierda, puse que se moviera a la derecha. Un descuido que me pasa en la mayor parte de las escenas que me toca arreglar después. Por suerte, esto tiene un error tan sencillo como editar esa parte de el ajuste de movimiento y poner que se mueve a la izquierda. Lo siguiente que voy a mostrar, no es un error si no un reajuste:



Al final de la escena, Manuéh se va al lado de Frederick a observar el agujero en el que han caído sus compañeros, e Yvaine originariamente se va hacia arriba de Till, al verlo me dí cuenta de que da una vuelta muy tonta así que con la flecha marqué el movimiento de cual iba a ser su siguiente posición: Al lado de Till. Lo único que no sé donde tenía la cabeza y más que marcar el nuevo movimiento de Yvaine, marqué como si Manuéh fuese a moverse otra vez, pero no. Esa flecha era para Yvaine. Por lo que la posición de Rich también variaría; moviéndose a la derecha para posicionarse sobre Till, pero...




Otra vez puse que se moviera hacia donde no era... Como veis, no exagero al decir que casi siempre me equivoco con las cuestiones de izquierda y derecha. Es el descuido más común que tengo a la hora de hacer las escenas, por fortuna, es el problema más sencillo de solucionar a la hora de crear un evento de escena con este programa. Vamos a por el siguiente bug.



Al terminar la escena, los sprites de Yvaine y Rich debían desaparecer, pero de nuevo a causa de un despiste estos se quedaron ahí. De nuevo uno de los problemas más comunes que suelo tener  a la hora de crear eventos, los benditos interruptores. En este caso se dio por que el evento de escena y el de los sprites estaban separados, con el fin de poderlos mover libremente por el mapa, así que para hacerlos desaparecer no bastaba con desactivar el evento general al finalizar la escena. ¿La solución? De nuevo muy sencilla:


Crear un nuevo interruptor que se activaría al finalizar la escena, tras esto, hacer una nueva pestaña de evento en los sprites totalmente vacía, con la única condición de que esta se activase cuando se encendiese el interruptor adecuado en este caso lo he subrayado para que se vea en medio de tanto comando. Y así, es como se hace una escena con diversos sprites en movimiento. Una vez terminada la escena principal, solo tuve que copypastear en la derivación condicional que puse que sucediera si Frederick no estaba rescatado, cuidándome de borrar las acciones del personaje que no estaría, finalmente solo quedaba comprobar que todas las variantes de la escena funcionasen

^Sin Yvaine



^Sin Yvaine ni Frederick


^Solo con Yvaine


¿Donde esta la mayor complicación en esta escena? En las derivaciones condicionales, ya que al comenzar tuve que poner una con dos posibles desarrollos, uno según si teníamos a Frederick rescatado y otra que sucedería sin él, y dentro de la misma añadir en cada intervención de Yvaine otra, según si teníamos a la chica en el grupo o no. Conclusión, tenía que ir con mucho cuidado de tener claro en que derivación estaba trabajando, de todas. Varias veces tuve que revisar el evento completo para asegurarme que no ponía cosas donde no eran, pero teniendo claro en cual estas desarrollado, luego casi todo es corta y pega.

No hay comentarios:

Publicar un comentario