La derniere croisade : forum de guilde Index du Forum


WoW : World of Mapcraft

 
Poster un nouveau sujet   Répondre au sujet    La derniere croisade : forum de guilde Index du Forum -> SUJETS DIVERS AUTRE QUE JEU -> divers
Sujet précédent :: Sujet suivant  
Auteur Message
ericnouveau
Administrateur

Hors ligne

Inscrit le: 15 Aoû 2009
Messages: 25 183
Localisation: toulouse
grade dans la guilde: mg
Masculin
Point(s): 61 510
Moyenne de points: 2,44

MessagePosté le: 26.08.12 09:36    Sujet du message: WoW : World of Mapcraft Répondre en citant

WoW : World of MapcraftDevenez incollable en géographie
23/08/2012 à 17:02 - Actualités -
1 commentaires


Certains projets semblent assez fous pour ne jamais être imaginés ou pour ne jamais voir le jour. Qui aurait pu penser à faire un site qui permettrait, de la même façon que Google Map, de visualiser les différentes zones d’Azeroth, de pouvoir les zoomer, d’avoir la possibilité de rechercher tel personnage non joué ou tel boss dans un raid ? Cal Henderson l’a fait et a créé, comme il nous l’explique dans cet article.



Comme le logiciel WoW Catographe ou MapWow, World of MapCraft permet donc de se plonger dans la géographie d'Azeroth. Cependant, alors que ce dernier semble s’être arrêté à l’extension Wrath of the Lich King, World of MapCraft propose déjà dans ses listes déroulantes les raids ou les champs de bataille de Mists of Pandaria. Le système est très simple, utilisant la technologie de Google Maps API : on peut cliquer/glisser pour se déplacer et un curseur en haut à gauche permet de zoomer. La résolution est vraiment jolie et permet de voir les reliefs des zones voire même de trouver son chemin sans soucis. Les grands bâtiments apparaissent lorsqu’on zoome au maximum, comme dans Orgrimmar où l’on peut voir le dessus du Fort Grommash. Des zones comme le Tréfonds ou les différents champs de bataille sont accessibles par un menu en haut.



En somme, un outil sympathique et fun pour ceux qui voudraient (re)visiter Azeroth.


Revenir en haut
Publicité






MessagePosté le: 26.08.12 09:36    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
ericnouveau
Administrateur

Hors ligne

Inscrit le: 15 Aoû 2009
Messages: 25 183
Localisation: toulouse
grade dans la guilde: mg
Masculin
Point(s): 61 510
Moyenne de points: 2,44

MessagePosté le: 26.08.12 09:38    Sujet du message: WoW : World of Mapcraft Répondre en citant

Il ya quelques années, je suis tombé sur MapWoW , une excellente utilisation de l'API Google Maps pour afficher la carte World of Warcraft. La carte est composée des images de la minicarte WoW, cousues ensemble pour visualiser le monde. Cela donne bien meilleure résolution que la carte dans le jeu principal et il est vraiment intéressant de fouiller. Les annonces désagréables et l'incapacité d'utiliser la souris pour zoomer sont ennuyeux, mais pas un élément rédhibitoire.

Avance rapide jusqu'en Décembre 2011 et la carte n'a pas été mis à jour pour inclure les modifications dans l'extension Cataclysm - le vieux monde a beaucoup changé et de nouvelles zones ont été ajoutées. Je pensais avoir un aller à créer ma propre version.
Quand je suis arrivé, je suis tombé sur MapWoW avait supposé que les images avaient été captures d'écran du client du jeu et ensuite soigneusement recollé à la main. C'est évidemment la folie. Dans l'intervalle, j'avais écrit un tas d'addons pour WoW et comprendre un peu comment fonctionne textures dans le jeu - il est évident qu'il devrait être possible d'extraire les textures minimap du client du jeu en quelque sorte pour construire la carte.
La première chose que j'ai trouvée était pertinente cet excellent article de peu de temps au cours de l'extension Burning Crusade. L'objectif de l'auteur était de mesurer certains aspects de l'univers du jeu, mais il a inclus de nombreuses informations sur l'extraction de textures minicarte. Annexe 2 est l'endroit où tous les trucs de viande peuvent être trouvées, mais la chose entière est intéressant à lire. Allez-y, je vais attendre.

Bien que les détails techniques étaient super utile et a confirmé que j'ai été dirigé dans la bonne voie, un grand nombre de détails ont changé que de nouvelles extensions ont été libérés; nous allons entrer dans les plus brefs délais. Les deux grands plats à emporter étaient que toutes les textures ont été stockés dans les fichiers MPQ le client du jeu et ont été codés sous forme de fichiers BLP. J'avais foiré autour avec BLPS dans un passé lointain pour Loot Chasseur , mais mpqs étaient nouvelles pour moi.
Fichiers MPQ
Fichiers MPQ , courts de Mike O'Brien Pack, sont des archives utilisés par Blizzard pour stocker le contenu du jeu - Des graphismes, des sons, des chaînes, des films - tout ce que les besoins des clients de jeux. Jeux Blizzard ont été en utilisant des fichiers MPQ pendant une longue période (depuis au moins Warcraft II en 1995) et le format n'a pas changé grand-chose. A l'origine de ces fichiers ont été accessibles à l'aide d'un fichier storm.dll qui est venu avec les jeux. Dès le début, les développeurs compris l'API storm.dll et l'a utilisé pour lire des données à partir de fichiers MPQ pour leurs propres applications. Mais storm.dll ne pouvait lire à partir mpqs, pas leur écrire. Si vous voulez modifier une texture dans Diablo, il fallait être capable d'écrire un MPQ. LMPQAPI fut la première bibliothèque qui a été capable de le faire (utilisé par StarEdit), suivie en 2000 par l' éditeur Stormless MPQ .
Autour de ce temps, StormLib a été créé comme une bibliothèque C + + pour lire, écrire et modifier des fichiers MPQ. Il est encore maintenu aujourd'hui et est la base de beaucoup de téléspectateurs MPQ actuels et les éditeurs.
Fichiers MPQ eux-mêmes sont assez complexes - ils contiennent des en-têtes, dossiers spéciaux, une table, une table de hachage bloc et les fichiers de données. Pour rechercher un fichier, vous avez besoin de hachage le nom pour trouver l'entrée de table de hachage, puis les entrées de la table de blocs, puis les données réelles. En pratique, cela est très rapide (beaucoup plus rapide que traverse un système de fichier) et permet différents types de compression.
Dans les anciens jeux, fichiers MPQ ne contient pas une liste de fichiers - vous ne pouviez accéder aux fichiers si vous saviez déjà leur nom (car ils sont stockés dans la table de hachage du hachage uniquement). Cette situation a changé avant que World of Warcraft, et les fichiers MPQ contenir le dossier d'un spécial «liste», énumérant tous les chemins des fichiers contenus.
Fichiers MPQ ont également la possibilité d'être patché par plus mpqs. Vous pouvez charger un MPQ de base qui définit les fichiers 'a', 'b' et 'c'. Chargement d'un patch sur MPQ dessus pourrait modifier «b», supprimer «c» et ajouter un fichier appelé «d». StormLib rend tout cela transparent pour l'appelant - après le chargement du MPQ de base et le patch, il ne voit que 'a', 'b' (nouvelle version) et «d». Les patchs peuvent être stockées sous forme de BSDDiffs ou remplacements complets. Dans la pratique, mpqs sont fusion-charge - qui est, de base multiples (et non patch) mpqs sont tous chargés dans le même «espace de noms», dans la mesure où l'appelant est concerné. En interne, StormLib maintient une «chaîne patch 'ordre des archives. Lorsque vous demandez «monde / maps / AhnQiraj / AhnQiraj.tex" , le MPQ premier de la chaîne est cochée. Si le fichier n'est pas trouvé, l'archive suivante dans la chaîne est cochée. Une fois que le fichier a été trouvé, l'archive suivante est vérifiée pour un patch pour elle. Si un indicateur de suppression se trouve dans un patch, le processus recommence à partir de ce moment-là dans la chaîne.
Pour le niveau de patch actuel, World of Warcraft (sous Windows) contient les fichiers suivants MPQ:
  • art.MPQ - Actifs d'art
  • base Win.MPQ - exécutables Windows (client, lanceur, mise à jour, etc)
  • d'expansion [1-3] MPQ. - fichiers d'art et le monde de l'expansion
  • sound.MPQ - son
  • world.MPQ - géométries monde (surtout WMOs et ADT)
  • wow-update-nnnnn.MPQ - taches avec un préfixe de base
  • wow-update-base-nnnnn.MPQ - patchs sans préfixe de base
  • frFR / locale-enUS.MPQ - chaînes et les textures d'interface
  • enus / discours-enUS.MPQ - parole mp3s
  • frFR / expansion [1-3]-locale-enUS.MPQ - chaînes de l'expansion
  • frFR / extension [1-3]-parole enUS.MPQ - discours du expansions
  • frFR / wow-update-frFR-nnnnn.MPQ - patchs pour info locale

Tous les fichiers sont divisés en deux morceaux - génériques (art, du monde et du son) et spécifique à la localisation (cordes, de la parole). Si vous ne jouez pas en anglais américain alors vos fichiers clients ne seront pas appelés 'frFR'.
Certains fichiers de patch ont un préfixe de base », ce qui signifie que tous les fichiers du correctif avoir un préfixe sur leur chemin. Par exemple, si art.MPQ définit "Textures/Moon02.blp" , puis un patch peut contenir des modifications à l'appelaient "base/Textures/Moon02.blp" . Cela semble avoir été utilisé pour permettre à patcher des données spécifiques de la localisation et de la non-spécifique à la localisation en un seul patch, mais n'est pas utilisé pour les nouveaux patches (depuis rev 13914). Vous devez dire à propos de StormLib le préfixe pour un patch lors de l'ouverture pour qu'il sache comment fusionner les fichiers d'index ensemble.
Quand j'ai commencé, j'ai trouvé Ladik du MPQ Editor pour Windows, ce qui m'a permis de fouiller dans mes archives MPQ. Je savais que j'avais besoin de faire un peu de masse d'extraction, donc je chassé pour une solution en ligne de commande. J'ai d'abord trouvé MPQ-outils utilisées qui libmpq . Malheureusement, libmpq du site principal a été en panne pendant un certain temps. Après quelques disputes avec pkgconfig à faire construire, cela a fonctionné.
Si vous suivez à la maison, j'ai besoin de définir quelques variables d'environnement pour le faire configurer et de lancer:
Code:
PKG_CONFIG_PATH = / usr / local / lib / pkgconfig. / Configure faire LD_LIBRARY_PATH = / usr / local / lib / usr / local / bin / mpq-extrait

Malheureusement, cet utilitaire n'a pas été en mesure d'extraire les fichiers dans leur nom de fichier correct - juste pour leur hachage. Cela allait être une bataille difficile.
Après quelques farfouillé les entrailles de libmpq, je suis tombé sur MPQ Extractor (github recherche est une chose merveilleuse), un utilitaire MPQ complètement différent. Il utilise StormLib, qui est inclus dans la source. Le cerceau seul supplément était qu'il fallait cmake à construire. MPQ Extractor fait exactement ce que je voulais.
Après avoir téléchargé les mpqs que j'avais besoin d'un serveur (un simple 12,3 Go), j'ai commencé à les décompresser. Les regards de base déballage comme ceci:
Code:
MPQExtractor-e "World \ minicartes \ *"-f-p wow-update-1 *. MPQ wow-update-base-1 *. MPQ-o sur art.MPQ

Ces fichiers extraits correspondant à la spécification chemin "World \ minicartes \ *" , maintient la structure de chemin une fois extrait ( -f ), applique quelques patchs ( -p ) et colle les fichiers extraits dans un sous-dossier. Facile.
Cela fonctionnait très bien, la plupart du temps. Lors de l'extraction, je voudrais obtenir un tas d'erreurs sur les fichiers qui n'ont pas pu être extraites. Certains fichiers que j'ai pu voir dans l'application Windows n'ont pas été extraite. Certains dossiers qui avaient été extraites ont été corrompus.
Une grande partie de cela a été causé par l'application de patch et de la commande. Les patchs doivent être appliqués dans le bon ordre afin de s'assurer que les diffs sont appliquées contre la base droite. Explicitement le passage de chaque patch, dans l'ordre, résout le problème de la commande:
Code:
MPQExtractor \     -E "World \ minicartes \ *"-f-p \     mpqs/wow-update-13164.MPQ \     mpqs/wow-update-13205.MPQ \     mpqs/wow-update-13287.MPQ \     mpqs/wow-update-13329.MPQ \     mpqs/wow-update-13596.MPQ \     mpqs/wow-update-13623.MPQ \     mpqs/wow-update-base-13914.MPQ \     mpqs/wow-update-base-14007.MPQ \     mpqs/wow-update-base-14333.MPQ \     mpqs/wow-update-base-14480.MPQ \     mpqs/wow-update-base-14545.MPQ \     mpqs/wow-update-base-14946.MPQ \     mpqs/wow-update-base-15005.MPQ \     mpqs/wow-update-base-15050.MPQ \     -O sur mpqs / art.MPQ

Mais ce n'était pas assez de travail non plus. Il ya une option qui vous permet de passer un préfixe patch ( - xxx préfixe ), qui raconte StormLib ce que le préfixe de base est pour les patchs. L'adoption de ce fait les anciens correctifs appliquer correctement, mais pas les nouveaux. Ne passant pas elle provoque le contraire. Il ya du code à l'intérieur StormLib qui essaye d'être intelligent à ce sujet, mais il ne fonctionnait pas. J'ai patché le code pour permettre par-patch préfixes, ce qui rend tous les correctifs s'appliquent pas proprement:
Code:
MPQExtractor \     -E "World \ minicartes \ *"-f-p \     mpqs/wow-update-13164.MPQ, base \     mpqs/wow-update-13205.MPQ, base \     mpqs/wow-update-13287.MPQ, base \     mpqs/wow-update-13329.MPQ, base \     mpqs/wow-update-13596.MPQ, base \     mpqs/wow-update-13623.MPQ, base \     mpqs/wow-update-base-13914.MPQ \     mpqs/wow-update-base-14007.MPQ \     mpqs/wow-update-base-14333.MPQ \     mpqs/wow-update-base-14480.MPQ \     mpqs/wow-update-base-14545.MPQ \     mpqs/wow-update-base-14946.MPQ \     mpqs/wow-update-base-15005.MPQ \     mpqs/wow-update-base-15050.MPQ \     -O sur mpqs / art.MPQ

Les correctifs ne s'appliquent proprement et les fichiers ne sont plus corrompus. Mais je manque encore quelques fichiers, je m'attendais à être là. Je l'ai traqué dans des fichiers qui ont été ajoutés dans un patch avec un préfixe - la fonction de recherche dans StormLib ( SFileFindFirstFile () / SFileFindNextFile () ) n'a pas correctement les fichiers ajoutés trouver dans un patch préfixe parce qu'il n'a pas dépouiller le préfixe. Après ce patch , tous les fichiers ont été extraits correctement.
Enfin, presque. Il ya aussi un autre problème sur les systèmes de fichiers non-Windows. L'algorithme de hachage utilisé dans mpqs ( Jenkin ) est insensible à la casse, donc tous les fichiers de l'archive sont essentiellement au cas libre. foo.blp et FoO.bLp sont le même fichier. Cependant, parce que nous avons les noms de fichier de la liste, le cas dépend entrées là-bas. Pour une raison quelconque (je suppose négligence), le cas varie selon les patchs et même au sein d'une seule MPQ. Deux fichiers qui doivent être dans le même "dossier" peut avoir totalement différente tubé chemins:
Code:
world/minimaps/AhnQiraj/map27_46.blp World/MiniMaps/ahnqiraj/map27_46.blp

Cela pose des problèmes en essayant de trouver ce qui les textures vont de pair. J'ai patché une nouvelle option dans MPQExtractor pour permettre à tous les chemins se transformer en minuscules. Vous pouvez récupérer ma version de github. Nous pouvons enfin extraire les fichiers dont nous avons besoin. En avant!
Textures BLP
Jeux Blizzard magasin textures dans un format appelé BLP, qui est un wrapper autour de la compression de textures proprietry S3/DirectX (également connu sous le nom DXT) données de texture. BLPS sont un format avec perte comprimé matriciel, WoW utilise pour stocker toutes les images de l'interface - chaque bouton, de dialogue et élément d'interface utilisateur se compose de centaines de textures BLP.
Il ya un peu d'applications Windows pour convertir BLPS de TGA et PNG, mais les choix sur la ligne de commande sont un peu minces. Depuis je vais avoir besoin de convertir des milliers de textures, de les faire un par un, n'est pas une bonne option. Heureusement, l'auteur de MPQExtractor également créé BLPConverter , un petit wrapper autour libsquish , ce qui rend la conversion en vrac trivial. Il suffit de le pointer vers vos fichiers BLP et le lâcher.
Code:
BLPConverter-o-f png output_folder input_file.blp

Les options par défaut (niveau de mip zéro) sont très bien.
Après extraction, nous nous retrouvons avec environ 22.500 PNG à trier. Comprendre la façon dont ils sont organisés un peu un défi.
Le Monde (of Warcraft)
Trouver les principales parties du monde est assez simple. Simple ouverture / monde / minicartes / azeroth / 1000 fichiers PNG trouve. Le fait d'ignorer ceux qui commencent avec noliquid_ pour l'instant, ils ont tous le format mapXX_YY.png . Lay ces dans une grille, en ignorant les images manquantes, et vous verrez les Royaumes de l'Est (lacunes ajouté pour montrer la taille de chaque image est).

Ce n'est pas le tout d'Azeroth, cependant. En regardant à travers les autres dossiers de niveau supérieur, il ya quelques bons candidats qui contiennent des centaines de fichiers PNG - Kalimdor , Northrend et le mystérieux Expansion01 . Couché sur les images de celui-ci dans une grille, vous obtenez un peu d'un spectacle.

Cette carte contient tout ce qui s'ajoute à l'extension Burning Crusade, tout écrasé dans une carte; îles l'Outreterre, Brume Brume-Sang & et des nouvelles zones dans le nord des Royaumes de l'Est. Ceux-ci doivent être manuellement collés avec les tuiles existantes pour former la carte du monde.
Il s'avère que les décalages de ces morceaux sur la carte du monde principale est stockée dans les fichiers DBC. Je vais entrer dans ceux en détail plus tard, mais ils sont en fait des un simple côté client de base de données, contenant toutes sortes d'informations sur le mot carte et un million d'autres choses.
Il ya aussi quelques morceaux de carte ajoutés pour Cataclysm que le travail de la même manière - les Îles Perdues, Tol Barad et le Maelstrom (vu brièvement au cours de la quête intro de Vash'jir).
Armé d'une liste d'images et de leurs positions sur la carte principale, je suis allé sur la création d'un tileset à utiliser avec l'API Google Maps. Heureusement, j'ai eu un gros avantage ici - Google tilesets Cartes composé de 256x256 pixel des images, ce qui est exactement ce que les PNG WoW étaient - J'avais besoin seulement de les nommer avec un régime sensible (fusion de tous les différents ensembles d'image de carte en un seul ensemble avec dénomination cohérente basée sur la position) et les coller à l'API.
Différents niveaux de zoom (de sorte que vous pouvez effectuer un zoom arrière) sont assez simple dans cette configuration aussi. Étant donné que chaque niveau de zoom est double / moitié de l'autre, la création d'une version zoomée sur demande juste de prendre un carré de 4 carreaux (2x2), les coller ensemble et redimensionner à 50%. J'ai utilisé le couteau suisse de l'imagerie, ImageMagick , de le faire avec un peu de colle PHP.

En plus de la carte du monde principale, Cataclysm introduit quelques nouvelles parties du monde qui sont "ailleurs" - Tréfonds et Vash'jir. Ce dernier a été stocké de façon légèrement différente à chaque autre carte (un thème qui surgit constamment - WoW internes ont un sens très bricolé), avec les tuiles se trouvant dans / monde / minicartes / azeroth / noliquid_mapXX_YY.blp . C'est probablement parce que Vash'jir est vraiment en Azeroth, juste sous l'océan (vous pouvez le voir sur la carte principale - les pièces où vous pouvez sortir de l'eau).
J'ai envisagé de mettre ces deux (et Outreterre) sur la carte principale, comme MapWoW a initialement fait, mais ils ont différentes couleurs de fond et n'a pas vraiment de pair. A ce moment, j'ai décidé que tilesets multiples sont probablement la voie à suivre.
Bien sûr, rien n'est jamais aussi simple que ça. Même avec ces cartes en ligne droite, il y avait une certaine quantité de violon à faire. Voici le tileset première pour le Tréfonds.

Les domaines de la minicarte en dehors de l'espace navigable contiennent beaucoup de bruit et de la ferraille. Dans certains cas, ils contiennent le texte à gauche en par les développeurs, ou même d'autres (non utilisée) des cartes. Pour nettoyer cela en compte, j'ai choisi une couleur de fond pour chaque carte (un gris, dans le cas des Tréfonds) et découper des morceaux du monde extérieur jusqu'à ce que l'image avait l'air propre. La version finale du Tréfonds ressemble beaucoup mieux.

Web App
J'ai une certaine expérience avec l'utilisation de l'API Google Maps précédemment quand j'ai recréé le London Transport carte de blogueurs Londres . Une fois que vous avez un tileset judicieusement nommée, vous avez juste besoin d'un peu de colle JS pour charger les images correctes au bon endroit. Google prend en charge le reste de tout cela comme par magie. L'intégralité de la mise sous tension les cartes JavaScript peut être vu ici .
Après avoir ajouté un tas d'autres cartes (dont nous parlerons dans un instant), j'ai décidé que j'avais besoin d'ajouter quelques menus déroulants pour rendre les choses plus faciles à gérer. Je ne sais pas si j'ai perdu mes pouvoirs Googling, mais presque tout ce que j'ai pu trouver était terrible. Je cherchais quelque chose comme les menus que le pouvoir Wowhead , mais n'avait pas de chance. En fin de compte je suis allé avec une solution pure CSS qui fonctionne assez bien, mais je voudrais ajouter un peu de retard dans là de sorte que les sous-menus ne sautez pas autour si votre souris passe en dehors de leur zone pendant juste une seconde. Si vous avez des pointeurs, s'il vous plaît laissez-moi savoir dans les commentaires.
Cas
J'ai donc dû les principales cartes du monde, mais il y avait beaucoup plus de dossiers remplis d'images. Outre les cartes que j'avais déjà trouvé étaient une poignée de champs de bataille, des donjons et des raids, mais pas la quasi-totalité d'entre eux. Parmi ceux qui étaient là, certains étaient assez bizarre, comme cette carte du Temple Noir.

Je suis allé dans BT et a eu un coup d'oeil autour, ce n'était vraiment pas la minicarte complète. A plus les PNG, il y avait quelques autres candidats susceptibles BT stockées sous le chemin / monde / minicartes / OMM / donjon / blacktemple . Ils étaient, cependant, un fouillis de petites cartes différentes, dont certaines avec une seule image. Ceux-ci ont également été stockées bottom-up, avec les valeurs Y diminue au lieu d'augmenter, de sorte que mes outils de prévisualisation leur a montré à tort.

Il m'a fallu un certain temps pour comprendre ce qui se passait ici, mais en fait tout le temps vous êtes allé «à l'intérieur», les cartes ont été stockés dans le dossier "omm", toutes coupées en morceaux. Ceci explique pourquoi j'ai eu quelques cas complets et battelgrounds, certains que partiellement et certains manquent complètement - le mont Hyjal Raid tout se passe à l'extérieur, il en était dans les fichiers principaux, tandis que de nombreux cas sont 100% "à l'intérieur" et ne s'est présenté comme chaotiques morceaux. Des cas mixtes comme Black Temple avait des morceaux de "carte du monde" et "intérieurs" séparés morceaux.
Mon premier plan était de simplement assembler manuellement les morceaux sur des cartes. J'ai commencé avec le Gouffre de Ragefeu, car il s'agit de la plus simple par exemple dans le match. La carte se compose de 12 morceaux distincts, dont deux avaient plus d'un PNG qui les compose.

Après quelques heures de queue Pixel (beaucoup de bits ressemblent beaucoup et je les avais mis au mauvais endroit), je levai les mains. Si le client est en mesure de WoW pour afficher correctement les minicartes, il doit y avoir des informations stockées quelque part qui décrit comment ils s'organisent.
Objets carte mondiale
Je l'ai mentionné plus tôt fichiers DBC - c'est court pour le client de base de données et ils contiennent des informations sur toutes sortes de choses. Vous pouvez parcourir la liste de tous les fichiers DBC sur le wiki WoWDev . Ce document contenait un bon nombre de candidat probable comme DungeonMap et AreaTable que j'ai poussé autour pendant quelques jours. J'ai appris beaucoup de choses sur le fonctionnement interne de WoW, mais il n'a rien trouvé qui décrit la minicarte.
Le meilleur pari a été stocké à l'intérieur du Map.dbc dossier, qui contenait des informations sur les endroits sur la carte du monde. Chaque enregistrement pointé un groupe de fichiers dans les mpqs. Pour la petite histoire Gouffre de Ragefeu (ID 389), il avait la valeur de OrgrimmarInstance . A l'intérieur du MPQ, étaient les fichiers suivants:
  • monde / maps / OrgrimmarInstance / OrgrimmarInstance.tex
  • monde / maps / OrgrimmarInstance / OrgrimmarInstance.wdl
  • monde / maps / OrgrimmarInstance / OrgrimmarInstance.wdt

Les TEX fichiers paru dans Cataclysm et sont mal compris ; probablement pas ce que je cherchais. La BNM fichier décrit un heightmap basse résolution pour une zone de l'univers du jeu et il est beaucoup mieux comprise . Outils tiers qui prévisualiser la géographie monde utilisent les BNM fichiers. En regardant dans le fichier de RFC a montré qu'il était pratiquement vide. Probablement pas notre candidat ou la candidate.
Le WDT fichier décrit la façon dont les tuiles de carte standard (comme ceux de la carte principale Azeroth) entrent dans cette zone de carte. Encore une fois, le fichier RFC était pratiquement vide. Toutefois, ils peuvent également pointer vers un OMM qui apparaît sur ​​la carte, ainsi que des informations de positionnement pour elle. Dans le fichier RFC, il montra un OMM fichier avec un nom familier.
Code:
World \ omm \ Dungeon \ KL_OrgrimmarLavaDungeon \ LavaDungeon.wmo

Enfin, un indice! En regardant dans ce dossier montre un certain nombre de fichiers similaires.
  • World \ omm \ Dungeon \ KL_OrgrimmarLavaDungeon \ LavaDungeon.wmo
  • World \ omm \ Dungeon \ KL_OrgrimmarLavaDungeon \ LavaDungeon_000.wmo
  • World \ omm \ Dungeon \ KL_OrgrimmarLavaDungeon \ LavaDungeon_001.wmo
  • ...
  • World \ omm \ Dungeon \ KL_OrgrimmarLavaDungeon \ LavaDungeon_011.wmo

Les 12 fichiers numérotés correspondent les 12 morceaux de la carte à partir des images de tuiles RFC. Fichiers de l'OMM contiennent la définition des objets de la carte du monde, qui sont des structures dans le monde comme des statues, des bâtiments et des instances entières. Chaque OMM se compose d'un "dossier racine" décrivant l'objet entier et une série de «fichiers de groupe» qui décrivent des morceaux de l'objet. Une petite maison pourrait bien contenir un fichier seul groupe, tandis que d'un raid complexe peut contenir des centaines. Chaque fichier de groupe décrit une boîte 3D des données - sommets, les textures, l'éclairage et ainsi de suite.
Si vous êtes intéressé à savoir comment Blizzard construire sur le monde, cette vidéo donne un petit aperçu de leur boîte à outils.
L'information intéressante ici est stockée dans le bloc de MOGI le fichier racine - il décrit la position du groupe à l'intérieur de l'OMM ensemble, à l'aide des coordonnées 3D de deux coins opposés de la zone de délimitation. Heureusement pour moi, les groupes ne sont pas en rotation à tous et sont de forme carrée à l'OMM lui-même (même si l'OMM tourne quand il est placé dans le monde). Alors que WMOs sont un format binaire, la structure chunked a été assez bien documentée par des personnes décortiquer les fichiers. L'analyser est un cas simple de lire les octets et les convertir en quelque chose que nous pouvons utiliser. Le code en question est en wmo_build.php dans le extract_mogi () la fonction.
En extrayant la boîte englobante pour chaque groupe, laissant tomber la coordonnée de hauteur, puis cartographier ces pour les PNG trouvés dans les dossiers de l'OMM tôt, j'ai été en mesure de combiner les PNG dans un plan cohérent. Voici la carte fusionnée pour RFC, avec les limites pour chaque groupe au sein de l'OMM décrit et numéroté.

Vous pouvez voir que la taille et la forme de chaque groupe varie énormément - certains contiennent quatre 256x256 pixels tuiles, tandis que d'autres sont minuscules. En d'autres cartes, certains groupes ne contiennent pas d'images minicarte à tous - Pièces du monde qui ne sont jamais représentés sur la minicarte.
Avec une seule image fusionnée pour l'instance (appelée «plat» dans mes sources), la création d'un tileset était simple. J'ai coupé l'image en 256x256 carrés, puis créé plusieurs niveaux de zoom en combinant les groupes de 4 carreaux. Facile! Nous y sommes presque.
Cas de pointe
La plupart des cartes par exemple étaient assez simple à monter une fois que j'avais compris tout cela, alors je me mis à construire une carte pour chaque champ de bataille, donjon, raid et grand emplacement intérieur dans le match. Bien sûr, il y avait encore quelques problèmes ennuyeux à traiter. Ceux-ci finit par aspirer plus de temps que l'ensemble du projet jusqu'à ce point. Urgh.
Jonque
Comme pour les jeux de tuiles monde, les tuiles de l'OMM contiennent parfois indésirable aléatoire. La principale différence est que certains des morceaux ces «ordures» étaient énormes, en prenant de nombreuses minutes pour rendre les images plates de. Voici l'image aplatie pour Karazhan.

Aucune idée de ce que ce bordel géant est - il n'est pas montré dans le jeu, ni la jonque roche bleue autour de la salle principale (quelques personnes ont écrit pour souligner que c'est Netherspace , vu tout en combattant le prince Malchezaar Toutefois, vous ne jamais voir. le petit carré à la limite inférieure de celui-ci dans le jeu). Quelques exemples d'autres pièces similaires avaient d'ordure attachés. Parfois, le nettoyage, il en était aussi facile que la suppression d'un seul groupe de l'OMM, mais souvent il s'agissait de rognage des pièces d'un seul groupe de l'OMM, un peu comme les cartes du monde.
Pour l'aider à prendre la couronne du cas le plus ennuyeux à traiter, Karazhan souffre également de fautes de frappe. Certains fichiers sont étiquetés Karazhan, certains Kharazan et certains Karazan. Fuck that place.
Intérieur / Extérieur
Certaines instances et des raids comprennent deux segments intérieurs et extérieurs. Pour faire face à cela, j'ai aplati une partie de la carte du monde qui a représenté la partie extérieure, puis de les combiner avec les segments intérieurs. Malheureusement, minicartes intérieurs et extérieurs utilisent une échelle extrêmement différente. Les cartes de plein air sont tous à la même échelle, tandis que minicartes intérieur varient de l'OMM à l'OMM. Dans le cas de la Terrasse des magistères c'est une différence d'environ 4 à 1. Plutôt que de dimensionnement vers le bas les intérieurs, ce qui sucent car ils sont tellement bien détaillé, j'ai juste montré les deux pièces à côté des autres. L'effet est un peu bizarre, mais probablement le meilleur que je peux espérer.

Cela est particulièrement visible dans la carte pour Ulduar , où les 4 premiers boss sont à l'extérieur, puis vous vous dirigez à l'intérieur pour le reste, en dehors de Freya qui est nouveau à l'extérieur.
Cartes multi-couches
Quand j'ai monté la carte pour le Temple noir, il a fallu un certain temps, puis ressemblait à ceci.

Il est maintenant familier intérieur / ourdoor question à traiter, mais aussi quelque chose de nouveau. L'intérieur branche principale est constituée de plusieurs étages qui se chevauchent et que l'image représente tous les uns sur les autres. Je voulais que les cartes soient réellement utile (et dieu sait que je me suis perdu dans les moments assez BT), de sorte que cela n'allait pas au travail.
J'ai commencé à construire des images assemblées avec tous les groupes de l'OMM étiquetés avec leur nombre, afin que je puisse choisir quelles pièces appartenaient à laquelle des couches.

Les cavernes du temps sont la plupart du temps simple, mais vous pouvez voir de nombreuses pièces qui se chevauchent dans le coin inférieur gauche où les spirales rampe vers le haut. Cela m'a permis de repérer quels sont les groupes que je voulais activer ou désactiver pour rendre une donnée «plancher». Pour le Temple noir, j'ai alors créé sept images séparées plats pour les différents étages. Une fois que j'ai eu les différents étages (et la cour extérieure pour BT), je layed de les mettre dans une seule image grand appartement et l'a utilisée comme base pour le tileset.
Il s'agissait d'une tonne d'essais et erreurs, déterminer quels groupes étaient nécessaires. Dans certains cas, un groupe est montré à plusieurs niveaux pour aider à montrer comment les niveaux s'emboîtent. J'ai été un peu aidé par un retour à la MOGI morceau du fichier racine de l'OMM - tri par morceaux par leur position verticale, j'ai pu facilement morceaux de réforme qui étaient bien au-dessus obivously / sous le plancher que j'avais affaire à. Vous pouvez voir que la carte finale est assez compréhensible par rapport à la seule image écrasée.

Optimisation
Les cartes étaient tous prêts et de travail, mais ils se sentaient atone. Un rapide du a montré que le tileset principal pour Azeroth était un énorme 709 MB. Pas un seul utilisateur pourrait jamais télécharger le tileset entier (qui signifie le zoom à fond, puis panoramique autour de l'infini - le monde est grand ), mais c'est quand même énorme.
J'ai fait quelques expériences avec compression PNG dans le passé, je me suis tourné premier à PNGOUT de se raser quelques octets. La première couche de la carte principale s'est bien passé, la course pendant quelques heures. Lorsque le script de conversion a frappé le premier niveau de zoom, cependant, il s'arrêta. En raison de la façon dont j'avais réuni les couches agrandies, la plupart des images PNG possède un canal alpha. Le code PNGStore contient un script appelé peek.pl qui vous permet de vérifier rapidement que les 14 sous-types d'un PNG est. Ceux que j'ai été productrices étaient de type 6 avec 8-bit canaux.
Dans le cas où un zoom avant tuile n'a pas eu 4 images sur la couche inférieure (pièces blanches de la carte n'a pas d'images, donc cela s'est produite sur les bords insulaires) qui me restait un quart (ou plus) de la tuile transparente. OMM-assemblé tilesets complètement échoué, comme le processus d'assemblage avait créé plats transparents pour commencer, que les différents groupes à l'intérieur de l'OMM étaient bien sûr transparent (ils se chevauchent beaucoup ). PNGOUT est incapable de travailler avec des images de canal alpha, pour une raison quelconque, mais cela a également souligné une optimisation facile - les canaux alpha prennent beaucoup d'espace que nous pourrions économiser, en remplaçant simplement les pixels avec la couleur unie de couleur de fond de la carte (l'océan, dans le cas de la carte principale).
Juste enlever le canal alpha fait une énorme économie, sans différence dans l'apparence. Après cela, la course PNGOUT rasé un autre 10% de la taille totale de la carte principale.
OutlandAzeroth
Nombre de tuile60810991
Original49 MB709 Mo
Opaque29 Mo391 MB
Écrasé27 Mo353 MB

La carte principale a pris environ 5 heures pour écraser, avec les autres instances et des raids prenant additionnelle de 5 ou plus - une tâche à exécuter durant la nuit.
La dernière pièce du puzzle était de coller toutes les tuiles sur un CDN et ont servi avec la mise en cache en-têtes sensibles. Heureusement, j'ai déjà eu S3 et Cloudfront configuré, il était donc juste une affaire de téléchargement de quelques dizaines de milliers d'images.
Avec tous les tilesets générés, le site était complet. Au moins jusqu'à ce que Mists of Pandaria sort.
Check it out pour vous-même à worldofmapcraft.com ou parcourir le code source sur GitHub.

Random Facts
Dans le cadre de fouiller les fichiers MPQ et la lecture de la base de données DBC, j'ai appris un tas de choses sur la façon dont le monde WoW a été initialement prévu. Cela met en évidence quelques faits intéressants que je n'ai pas vu beaucoup parlé. Si vous êtes un fan de WoW, vous pourriez trouver ces intéressants.
  • Karazhan a eu plusieurs orthographes différentes.
  • Scholomance s'appelait à l'origine l'école de nécromancie (ou la ruine garder crypte).
  • Le Tréfonds s'appelait à l'origine Tréfonds.
  • Gouffre de Ragefeu, sans doute l'un des premiers exemples construits, s'appelle tout simplement «Lava Orgrimmar Dungeon" dans les fichiers de monde.
  • Royaumes de l'Est ont été à l'origine appelé Azeroth.
  • Dans les Royaumes de l'Est, les fichiers sont répartis en 3 régions - Lorderon au sommet ( LD_ préfixe), Khaz Modan au milieu ( KZ_ préfixe) et Azeroth au fond ( AZ_ préfixe).
  • Les salles de Pierre et de salles de Foudre sont référés à l'interne comme Ulduar: Nain et Ulduar: The Iron Giant.
  • Cime d'Utgarde est appelé Valgarde dans le modèle du monde.
  • Le Donjon de la Tempête donjons étaient à l'origine de l'usine, Atrium et les ailes des arcanes.
  • Les donjons sont Auchindoun étiqueté comme le Conseil Ethereal, Shadow, Demon et des ailes draeneï.
  • Fosse de Saron s'appelait à l'origine de la carrière des Larmes.

Plusieurs de ces noms bizarres / modifié peut être trouvé en naviguant sur l'indice de l'OMM BLP.
Une demande
Après de nombreuses heures de recherche au format PNG, je n'ai jamais trouvé les carreaux pour les égouts de Dalaran. Si vous ne les visitiez en jeu, il ya definately distincts mini-carte quand des images dans les égouts, et pas seulement les tuiles Dalaran réguliers. J'ai pensé à écrire un addon pour essayer de tirer le chemin d'accès aux textures du client, mais qui n'ont pas assez mordu la balle sur ce moment.
Si vous pouvez les trouver, s'il vous plaît faites le moi savoir afin que je puisse les inclure dans la liste des 'Divers'!
Mises à jour: 20 juin 2011
Certaines personnes a fait remarquer que ce qui a été disponible pendant un certain temps dans le jeu par le biais Addons comme Carbonite et cartographe . Je suis bien conscient de cela! C'est une tâche beaucoup plus facile d'utiliser des textures de jeux insde la partie. Vous pouvez également visiter toutes les régions du monde et se promener.
D'autres ont fait à d'autres cartes Google-maps de style WoW qui ont été autour pendant un moment, comme mapwow ( wyrimaps & Marlamin sont mes préférés). Aucun des autres ont champ de bataille, donjon, raid ou cartes de la ville. Ils ont aussi tendance à être maladroit et très lent. Je voudrais prendre quelques-unes des fonctionnalités décent (comme étiquettes de zones et points d'intérêt) et les fusionner en mapcraft.
La plus grande caractéristique est demandé sur la rue. Il s'agit d'un défi de taille, mais sans doute possible. Il faudra creuser dans les modèles de terrain 3D et le rendu des images panoramiques (plusieurs milliers d'entre eux). Un défi intéressant si!

Le texte de cet article est tous droits réservés. Aucune partie de ces publications ne peut être reproduite, stockée dans un système d'extraction ou transmise par quelque moyen que ce soit - électronique, mécanique, photocopie, enregistrement ou autre - sans la permission écrite de l'éditeur, sauf pour l'inclusion de courtes citations dans un examen ou universitaire travailler.
Tout le code source de cet article est distribué sous licence Creative Commons Attribution-ShareAlike 3.0 License . Cela signifie que vous pouvez le copier et l'utiliser (même commercialement), mais vous ne pouvez pas le vendre et vous devez utiliser l'attribution.


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 02:25    Sujet du message: WoW : World of Mapcraft

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    La derniere croisade : forum de guilde Index du Forum -> SUJETS DIVERS AUTRE QUE JEU -> divers Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  


|video guilde |<calendrier guilde |jeu detente |Album Photo | Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation