Sección Heroes4

Iniciado por Abenhor, Mayo 20, 2009, 07:35:43 PM

Balder

Yo actualmente tampoco tengo acceso (tengo los datos de conexión desfasados) así que en ese tema no puedo ayudarte. Si esta leyendo esto Lepas u otro señor de la administración, a ver si te puede mandar dichos datos.

Si no, trata de ponerte en contacto con Lepas para concretar más.
[:Balder:]

Lepastur

Efectivamente, ese Tema es del 2005 y fue actualizado posteriormente cuando separamos el Portal y el Foro en dos sitios distintos. Desde que Krator y yo portamos las llaves de la Torre no había aparecido nadie tan emprendedor como tú, por lo que no habíamos tenido necesidad hasta ahora de rehabilitar la zona FTP pública, y por eso no funciona. Sin embargo y como la ocasión lo merece, te voy a enviar un privado para concretarte los datos de una particular para ti, Abenhor :wink:

Dicho sea de paso, Balder, si tu necesitas otra para subir cualquier movida, como las que te encargué, no tienes más que pedirlo  :bloodlust:
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Abenhor

He meditado un poco el asunto antes de decidirme, pero habida cuenta que han pasado varios días y la actividad es poca, he decidido abrir una nueva web, dedicada exclusivamente a Heroes4.
Esto me permitirá ir planteando los contenidos a un mejor ritmo y, como ya dije, también estoy dispuesto a adaptarlos para La Torre de Marfil.
Espero que a todos les parezca bien la idea.

De momento he dedicado un día y medio a realizar el alta e instalar un foro, además de planificar el esqueleto básico de la web. No me he esmerado demasiado en el aspecto visual, pues siempre hay tiempo de pulirlo. Prefiero dedicarme primero a construir los pilares, e ir dotando de contenidos.
Mañana espero dejar preparadas algunas secciones, e ir incorporando los datos que había presentado aquí.

Abenhor

¡Vaya! Me olvidaba de deciros cómo llegar a la web. La he denominado [highlight=#FFFFAA]"Taberna Berserker"[/highlight] y la dirección es:
www.tabernaberserker.es

Os reproduzco a continuación la noticia de portada con la que la he inaugurado.

--------------------------------------------------------------
Taberna Berserker: Nace una web
--------------------------------------------------------------
Hace ya algún tiempo que la mayoría de los fans de la saga "Heroes of Might and Magic" tienen puesta su mirada hacia el futuro: Heroes of Might and Magic VI. Mientras tanto, buena parte de ellos continúan jugando a cualquiera de las entregas ya publicadas y se reúnen en comunidades y foros. Mientras que Heroes1 y Heroes2 son el centro de atención para pocos jugadores, hay una gran actividad internacional en cada una de las otras tres entregas. Para la comunidad hispanohablante, sin embargo, no hay un punto de encuentro para los que amamos Heroes4. Es por esto que he decidido crear un nuevo sitio web.

Taberna Berserker se dedicará exclusivamente a Heroes of Might and Magic IV. Una vez dispongamos de un sitio plenamente funcional, con los contenidos desarrollados para todos los aspectos del juego, podría plantearse la ampliación de sus objetivos. Esto no será óbice para que se incluyan noticias relacionadas con toda la saga.

Entre los objetivos de la web se encuentra dar cobertura al encuentro y debate de los aficionados (ya tenemos un foro activo), y realizar diversas secciones de contenidos sobre Heroes4, incluyendo sus expansiones "Gathering Storm", "Winds of War", y la no oficial "Equilibris". Los contenidos fundamentales a desarrollar inicialmente serán:
- Elementos del juego: Facciones, Villas, Héroes, Habilidades, Magia, Criaturas, Artefactos...
- Descargas: Parches, Escenarios y Campañas, Manuales...
- Artículos: Estrategias y Tácticas, Solución de escenarios y campañas, Guías técnicas, Trucos...

Esta web no pretende competir con ninguna otra, y los contenidos que albergue podrán ser usados en cualquier otra, con la única condición de que se haga referencia al autor original y se incluya un enlace a esta web allí donde se incluyan materiales de esta web.

Y por si algún aficionado desconoce aún la existencia de las comunidades hispanohablantes sobre Heroes of Might and Magic, estas son las dos que se encuentran activas en el momento actual:
- La Torre de Marfil: Sitio general sobre toda la saga.
    Portal
    Foro
- HeroesV.es: Sitio orientado principalmente a Heroes5
    Foro

Espero que sean de vuestro interés, y os invito a participar en las tres.

--------------------------------------------------------------

Abenhor

Tal como tenía previsto, ya tenemos disponibles las secciones sobre Facciones, dentro del menú de Elementos del juego.
De momento están los textos descriptivos, y un diagrama explicativo de la relación entre las diversas facciones. A medida que se vayan completando secciones se irán actualizando los enlaces de la zona inferior de la página, a las secciones relacionadas con los contenidos mostrados en cada momento.
Cuando tengáis tiempo, por favor, indicadme cómo hacemos para adaptar esos contenidos a La Torre de Marfil.

Lepastur

Enhorabuena por el sitio web, Abenhor  :thumbup: Dentro de poco reformaremos nuestra sección de enlaces e incluiremos un enlace a tu página. Si necesitas q se t eche un cable en algo en concreto, no dudes en contactar con nosotros  :cheers:

Por cierto, creo q eso de q no hay punto d reunión para Heroes IV se columpia un poco porque, como ves, aquí hay sitio para ello. Quizá quedaría mejor "punto de reunión exclusivo". Y en cuanto a la actividad en torno a Heroes IV, ya te darás cuenta con el tiempo (me extraña q no lo sepas ya) q no depende del sitio, aunq por otra parte siempre puedo equivocarme (ojalá lo haga).
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Tulkas

Pues nada, ánimo con tu web y mucha suerte con el proyecto. No obstante no te olvides de pasar por aquí de vez en cuando. Recuerda que aquí siempre tendrás las puertas abiertas. :thumbsup:  :thumbsup:
El cyberespacio; ¿Es un espacio euclídeo?

Abenhor

Hoy le he dedicado un buen tiempo a estudiar cómo sacar imágenes del juego; siempre es preferible usar las imágenes del propio juego para describir sus elementos, y no está bien andarlas tomando de otras webs (no al menos sin permiso).
He encontrado pocas herramientas, y las que hay no son demasiado buenas para convertir imágenes (H4res, ResEdit2...). Todas ellas proporcionan a lo sumo un fichero bmp. Se pierde la transparencia, y encima el canal alfa lo ignora por completo.
Si alguien conoce una herramienta apropiada, le agradecería la información.
De momento, y a la espera de esa cuenta de ftp para subir materiales a La Torre de Marfil, os enlazo aquí algunas de las imágenes que he ido añadiendo hoy a las secciones de facciones. Pincha en los enlaces si quieres verlas en su contexto.

Facción Poder / Might


Facción Orden / Order


Facción Caos / Chaos


Facción Vida / Life


Facción Naturaleza / Nature


Facción Muerte / Death


Facciones: Generalidades

Lepastur

Yo por mí t daba el acceso ya, viejo amigo :ph34r: , pero quiero esperar a la vuelta de Krator para mirar bien cómo hacerlo, ya que ahora mismo estamos en proceso de mejora del Portal y quizá debamos enfocar estos nuevos contenidos de una nueva forma. Resumiendo, q a partir del Lunes o Martes, si sigues de vacaciones ya hablaremos largo y tendido, aunque sea a través de correos o Mensajes privados.
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Balder

Hola de nuevo!

Pues ahora me pillas fatal de tiempo, pero no sería ningún inconveniente hacerte una herramienta apropiada para la extracción. Pero stando los exámenes de junio ahí al lado... A ver cuando puedo currarme algo.

Si te sirve de algo por el momento, te dejo la estructura de los ficheros de H4, así, si tienes tiempo libre tú, podrías hacer dicho tool rápidamente:

 -Especificación del formato-

[code linenumbers=false]byte {4}     - Encabezado (72 52 82 5)
uint32 {4}   - Offset de Directorio

byte {X}     - Datos del Archivo

// Directorio

   uint32 {4}   - Número de Archivos


   // por cada archivo

       uint32 {4}   - Offset de Datos
       uint32 {4}   - Tamaño del Archivo
       uint32 {4}   - Tamaño del Directorio
       uint32 {4}   - Constante Desconocida
       char {16}    - Nombre del Archivo (null)
       char {16}    - Nombre del Directorio (null)


       if (tamanioNombreDir > 0){

           // Archivo
           uint16 {2}   - Desconocido
           uint32 {4}   - Compresión
           }


       else {

           // Directorio
           char {16}    - Nombre del Directorio
           }
[/code]

No se si has visto que ya se programado un tool equivalente para extraer archivos del HoMM2 y su expansión: http://www.torredemarfil.es/foro/homm2-modding-remake-vt2675.html

Venga amigo, suerte con tu proyecto :thumbsup:
[:Balder:]

Lepastur

Tal y como nos enseñaron de pequeños estos dos adorables compañeros, hay que saber compartir, tolerar y comprender a los demás.

[align=center][/align]

Bien por ti y tu generosidad, Balder. Tus aportaciones a la comunidad son inmejorables. Por cierto, ya disponemos de un Trol Lanzapedrolos en las Herramientas de Redacción de los Mensajes para Cargar Archivos en el Portal y poder publicarlos aquí, siempre y cuando hayáis sido añadidos a su Membresía. Desde aquí os invitamos a usar esta genial Herramienta desarrollada por Krator.
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Abenhor

[quote user="Balder" post="41267"]Pues ahora me pillas fatal de tiempo, pero no sería ningún inconveniente hacerte una herramienta apropiada para la extracción. Pero stando los exámenes de junio ahí al lado... A ver cuando puedo currarme algo.[/quote]
La extracción en sí no es demasiado problema (me apaño con un simple editor hexadecimal). Lo que es más problemático es convertir el formato interno que usó 3DO en "algo usable" para la web (gif o png, con transparencias, y si fuese posible con canal alfa).
Si cuando termines tus exámenes quieres dedicarle algo de tiempo, sin prisas, cuenta conmigo para ayudarte.

[quote user="Balder" post="41267"]Si te sirve de algo por el momento, te dejo la estructura de los ficheros de H4, así, si tienes tiempo libre tú, podrías hacer dicho tool rápidamente:[/quote]
No me creo capaz de programar algo así. Tengo conocimientos básicos de programación, aunque lo que manejo habitualmente es PHP. Ya sé que PHP es como C pero para la web, pero no me animo.
Eso sí, le he echado un vistazo a la especificación que me has puesto, y creo que hay alguna laguna. Te pongo lo que he entendido yo, tras hacer un buen puñado de pruebas y experimentos.

[code linenumbers=false]
****************************************
****************************************
**
** Formato de fichero H4R
**   paquete de ficheros de recursos
**   del juego Heroes4
**
****************************************
****************************************


04 bytes - 48345205 - Cabecera "H4R"

04 bytes - 08000000 - direccionDatos

04 bytes - nnnnnnnn - numFicheros

numFicheros x cabeceraFicheros
{
 04 bytes - nnnnnnnn direccionFichero
 04 bytes - nnnnnnnn longitudFicheroComprimido
 04 bytes - nnnnnnnn longitudFicheroDescomprimido
 04 bytes - nnnnnnnn ¿tipoFichero? ¿versión?
 02 bytes - nnnn     longitudNombreFichero
 nn bytes - cadena   nombreFichero
 02 bytes - nnnn     longitudComentarios (puede ser cero)
 nn bytes - cadena   comentarios (habitualmente la ruta del desarrollador)
 02 bytes - nnnn     longitudEnlacesSimbolicos (puede ser cero)
 nn bytes - cadena   cadenaEnlacesSimbolicos
 04 bytes - nnnnnnnn compresion 01000000(sin compresión) 03000000(compresión gzip) (no he detectado otras)
}
datosFicheros (variable)


****************************************
* Tipos de fichero en su interior
*   Fuentes de letra, sonidos, textos,
*   tablas, videos, escenarios,
*   imágenes y otros varios
****************************************

font           fuentes de letra
sound          sonidos
strings        textos
table          tablas
bink           videos
game_maps      escenarios y campañas


Imágenes
----------------------------------------
actor_sequence
adv_actor
adv_object
animation
battlefield_preset_map
bitmap_raw
castle
combat_actor
combat_header_table_cache
combat_object
layers.adventure
layers.button
layers.Campaign_Splashscreens
layers.combat
layers.Control
layers.creature
layers.cursor
layers.dialog
layers.icons
layers.map_frame
layers.map_margin
layers.menu
layers.Scroll
layers.Shroud
layers.text_background
layers.town
terrain
transition
[/code]

De momento, creo que lo que sería más interesante es una herramienta para convertir las imágenes tipo "layer" a gif y/o png con transparencia del fondo (y si es posible, con canal alfa, para las sombras). Ya tengo dominado casi todo el formato, aunque aún me queda alguna laguna con los datos de cola (el canal alfa). Ya te contaré...

[quote user="Balder" post="41267"]No se si has visto que ya se programado un tool equivalente para extraer archivos del HoMM2 y su expansión: http://www.torredemarfil.es/foro/homm2-modding-remake-vt2675.html[/quote]
Me anoto el enlace para mirarlo mañana, que al final se me hizo tarde hoy mirando el formato de h4.

[quote user="Balder" post="41267"]Venga amigo, suerte con tu proyecto :thumbsup:[/quote]
Muchas gracias.

Balder

Mmm... Probablemente lleves razón en tus puntualizaciones, pues la especificación la tenía aparcada por ahí en un bloc de notas bastante añejo y, si mal no recuerdo, efectivamente existían lagunas.

Por desgracia no tengo a mano el H4 así que no podré echarle un vistazo hasta el finde, en el mejor de los casos. Así trataré de confirmar tus hallazgos, que dicho sea de paso, han sido un importante paso para cualquier futura herramienta que se haga. Gracias a ti por la colaboración!


CitarLa extracción en sí no es demasiado problema (me apaño con un simple editor hexadecimal). Lo que es más problemático es convertir el formato interno que usó 3DO en "algo usable" para la web (gif o png, con transparencias, y si fuese posible con canal alfa).
Si cuando termines tus exámenes quieres dedicarle algo de tiempo, sin prisas, cuenta conmigo para ayudarte.

No problemo, te echaré un cable con la programación. Así de repente se me ocurre pasarlo a tga, un formato muy simple, que tiene un encabezado de 18 bytes y luego 4 bytes por color: Rojo, verde, azul y canal alpha. Sería la opción más sencilla. Luego, para hacerlo usable en la web, simplemente usar photoshop/faststone/similares para pasar estos tgas al formato deseado, sin pérdida de información (png).

Además, comentas que ya tienes dominado el formato de las imágenes. Con una descripción precisa programar la herramienta será coser y cantar! Hay que ver menudo talentazo para hacer "reverse engineering" con el editor hexadecimal jejeej :thumbsup:

Yo llevo descifrando unos archivos CMP(un formato de imagen de un juego antiguo) dos días ya, e hice un visor de imágenes para el formato, y aunque representa bien todos los pixeles, el color me sale mal. Los pixeles se representan por 1 byte, con números que empiezan en el 0 y van subiendo a lo largo del fichero. Esto se debe a que cada imagen tiene su propia paleta tras el encabezado, pero esta es de tamaño variable, y no es la típica de tres componentes, como la del Heroes2. Si un día tienes 5 minutos te agradecería que le echaras un vistazo por encima, aer si se te ocurre algo. :punk:

Lo dicho, entre los dos malo será que no nos curremos unas buenas herramientas para el HeroesIV, que, como comentas, las que hay por ahí son una piltrafa.

Nada más por ahora, buenas noches colega!
[:Balder:]

Gotai

Qué chulo el Trol !!! A ver, aver? Voy a probar!



¿De cuánto espacio disponemos para imagen y archivos? Quizá sería bueno publicar un tema exclusivamente dedicada a esta fantástica herramienta en la Herrería ¿sí o no? ¡Eres el uno, Krator!
Lo único que permanece es el cambio...

Abenhor

[quote user="Balder" post="41273"]No problemo, te echaré un cable con la programación. Así de repente se me ocurre pasarlo a tga[/quote]
Me parece buena idea.

[quote user="Balder" post="41273"]Además, comentas que ya tienes dominado el formato de las imágenes. Con una descripción precisa programar la herramienta será coser y cantar! Hay que ver menudo talentazo para hacer "reverse engineering" con el editor hexadecimal jejeej :thumbsup: [/quote]

Creo que ya lo tengo. Te pongo una descripción completa. Pregunta lo que no entiendas.
[code linenumbers=false]
****************************************
****************************************
**
** Formato de fichero h4l (layers)
**   bloque de imágenes del juego Heroes4
**
** Descripción por Abenhor (abenhor@tabernaberserker.es)
**
** Puede haber muchas imágenes pequeñas arrinconadas dentro de un gran bloque.
**   El juego usa el bloque completo para referenciar la posición de una imagen respecto de una plantilla.
**
** Para calcular el ancho y el alto de cada imagen dentro de un bloque, tener en cuenta que:
**   - margenIzquierdo es en realidad el primer pixel a pintar, empezando a contar desde cero.
**     Por tanto, si margenIzquierdo = 23, significa que los 23 primeros píxeles de la izquierda (desde el cero al veintidos) se dejan transparentes.
**   - margenDerecho es en realidad el último pixel a pintar, empezando a contar desde cero.
**     Por tanto, si margenDerecho = 54, significa que sólo se pintan los píxeles del 23 al 54 (32 en total), dejando el resto transparentes.
**   - Lo mismo se aplica para los márgenes superior e inferior.
**
** En cada imagen hay una zona de imagen y, opcionalmente, una de descripción de la transparencia.
**
****************************************
****************************************

02 bytes - nnnn    - numeroImagenes (número de imágenes en el archivo)
{ imagen1:
 02 bytes - nnnn     - longitudPaleta (número de colores en la paleta)
 02 bytes - nnnn     - colorAlfa (color para la mezcla de sombras)
 longitudPaleta * 3 bytes
 { paleta:
   array[1..longitudPaleta] of array[1..3] of bytes; (paleta de colores RGB)
 }
 02 bytes - nnnn     - longitudNombre (longitud del nombre de la imagen)
 nn bytes - cadena   - nombre (nombre de la imagen)
 01 byte  - nn       - sombras (para suavizar (antialiasing) la superposición de imágenes sobre el fondo)
   / 0 - Sin áreas transparentes (por lo general, cuadros de diálogo)
   / 1 - Con áreas transparentes, pero sin canal alfa
   / 4 - Con áreas transparentes, y con canal alfa (estas son las que me han vuelto loco)
 04 bytes - nnnnnnnn - margenIzquierdo (Desplazamiento horizontal de la imagen dentro del bloque)
 04 bytes - nnnnnnnn - margenSuperior (Desplazamiento vertical de la imagen dentro del bloque)
 04 bytes - nnnnnnnn - margenDerecho (Ancho en pixeles = MargenDerecho - MargenIzquierdo + 1)
 04 bytes - nnnnnnnn - margenInferior (Alto en pixeles = MargenInferior - MargenSuperior + 1)
 { descripcionLineas:
   array[1..Alto] of record
   {
     02 bytes - nnnn     - iniX (primer pixel de la línea, rellenar con píxeles transparentes al principio de la línea)
     02 bytes - nnnn     - finX (último pixel de la línea, rellenar con píxeles transparentes por la derecha)
     04 bytes - nnnnnnnn - direccionLinea (Direccion de los datos de la línea, en la matriz datosLineas)
   }
 }
 { datosLineas:
   array[1..Alto] of record
   {
     pixeles: array[descripcionLineas.finX - descripcionLineas.iniX] of bytes;
          (Índices de color de cada pixel, de izq a dcha y de arriba a abajo.)
          (Aplicar el índice a la matrix paleta, para tener los componentes del color.)
   }
 }
 [opcional {Cuadro de sombras y transparencias}]
 / * fin de la imagen1
}
{ imagen2 ... }
{ ..... }
{ imagenN ... }


****************************************
* Cuadro de sombras y transparencias
*   Consta de cero, una o dos partes,
*   dependiendo de "sombras" (0, 1 o 4)
****************************************
La fórmula exacta de la longitud de la primera parte = (longitudDatos + 1) dividido 2;
La fórmula exacta de la longitud de la segunda parte = (longitudDatos + 131) dividido 128;
Y que afecta a la aceleración. Cada byte de la segunda parte corresponde a 128 bytes de longitudDatos.
Cada byte se divide en 4 partes, cada parte (2 bits), es responsable de 32 píxeles. Los valores de estos dos píxeles son:
 00 - Todos los píxeles son transparentes y pueden ser omitidos.
 01 - Todos los píxeles son completamente opacos (canal alfa = 255) y no es necesario que se mezclen con la base.
 10 - Todos los píxeles son más opacos (canal alfa = 255) que los del color transparente y no hace falta mezclar con la base.
 11 - Hay píxeles con un valor alfa variable, distinto de cero (ni 255); el canal alfa debe mezclarse con la base.
Con los tres primeros modos es muy rápido, pero el cuarto implica un proceso lento, por lo que sólo se utiliza para los bordes de las imágenes.
El byte tras el tamaño de paleta, colorAlfa, es el color transparente. Todos los píxeles con un color inferior a este número no se muestran en los modos 10 y 11.
En los casos en que la máscara no tiene aceleración (si el tipo de imagen no es 4) es para todos los píxeles en modo 10.
[/code]

[quote user="Balder" post="41273"]Yo llevo descifrando unos archivos CMP [...] Si un día tienes 5 minutos te agradecería que le echaras un vistazo por encima, aer si se te ocurre algo. :punk: [/quote]
Cuenta con ello. Pásame 3 o 4 ficheros CMP y una captura del juego o algo semejante donde se vena esas imágenes. Y si ya hay algo que tengas claro, partir de una descripción parcial siempre acelera el tema. Por cierto, ¿de qué juego se trata?