You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.5 KiB
Markdown
65 lines
2.5 KiB
Markdown
This is a set of scripts which shows how to unpack all bitmaps and animations
|
|
of Heroes of Might and Magic 3 into PNG images and then back into the formats
|
|
understood by VCMI.
|
|
|
|
These scripts are probably the first open source implementation of a writer for
|
|
the Heroes of Might and Magic 3 animation format called DEF. They are meant to
|
|
make it possible for artists to create a free replacement for the proprietary
|
|
assets VCMI currently needs.
|
|
|
|
Install VCMI and then install original game files via any of the following methods:
|
|
|
|
vcmibuilder --cd1 /path/to/iso/or/cd --cd2 /path/to/second/cd --download
|
|
vcmibuilder --gog /path/to/gog.com/installer --download
|
|
vcmibuilder --data /path/to/h3/data --download
|
|
|
|
Symlink sprites to Data directory
|
|
|
|
ln -s Data ~/.vcmi/Sprites
|
|
|
|
Backup original archives:
|
|
|
|
mkdir ~/lods
|
|
for f in H3ab_bmp.lod H3ab_spr.lod H3bitmap.lod H3sprite.lod; do mv ~/.vcmi/Data/$f ~/lods; done
|
|
for f in hmm35wog.pac "wog - animated objects.pac" "wog - animated trees.pac" "wog - battle decorations.pac"; do mv ~/.vcmi/Mods/WoG/Data/"$f" ~/lods; done
|
|
|
|
Extract archives:
|
|
|
|
for f in H3bitmap.lod H3sprite.lod H3ab_bmp.lod H3ab_spr.lod hmm35wog.pac "wog - animated objects.pac" "wog - animated trees.pac" "wog - battle decorations.pac"; do python lodextract.py ~/lods/"$f" ~/.vcmi/Data/; done
|
|
|
|
Backup original DEFs:
|
|
|
|
mkdir ~/defs
|
|
mv ~/.vcmi/Data/*.def ~/defs
|
|
rm ~/defs/sgtwmta.def ~/defs/sgtwmtb.def # these are having higher offsets than size
|
|
|
|
Extract all DEFs into JSON files and directories with PNG images:
|
|
|
|
for f in ~/defs/*; do python defextract.py $f ~/.vcmi/Data || break; done
|
|
|
|
(optional) modify all frames:
|
|
|
|
for d in ~/.vcmi/Data/*.dir; do python shred.py $d || break; done
|
|
|
|
(optional) modify all bitmaps:
|
|
for f in ~/.vcmi/Data/*.png; do python shred.py $f || break; done
|
|
|
|
Repack all JSON:
|
|
|
|
for f in ~/.vcmi/Data/*.json; do python makedef.py $f ~/.vcmi/Data || break; done
|
|
|
|
In case you followed the optional steps, enjoy your LSD infused game now :)
|
|
|
|
After above steps you will have a mixture of DEF files as well as JSON
|
|
files and their *.dir data directories. All parts of vcmi that support it will
|
|
read the animations from the JSON files now. All others will fall back to
|
|
reading the DEF files.
|
|
|
|
You can now make changes to either the PNG images in the Data directory or in
|
|
the *.dir subdirectories. If you make changes to PNG images in *.dir
|
|
subdirectories you might have to repack them into DEF files for all animations
|
|
which do not support JSON animations yet.
|
|
|
|
I only tested these scripts on Linux because I do not own a license for Windows
|
|
or MacOS. Patches welcome.
|