Library + CLI to annotate FFXIV in-game map assets with Elite Marks spawn positions.
In this branch, the path of the map is changed format likes ui/map/n4f1/00/n4f100_m.tex
, you can see this file
- You need python >= 3.7
- Clone repo
- switch to any virtual/conda environment you'd like to use (or not)
- cd to directory
pip install -r requirements.txt
python annotate.py
to get a list of commands
The process is the following:
- In this branch, use Alpha to export the map files as .tex. You could find map list here
- Then, use ffxiv-tex-converter, to covert the
.tex
files to.dds
- Edit
data/config.yaml
to adjust to your preferences, especially the paths. In this branch, thetextools_path
should containui
folder. - Assuming you just exported the original dds map files, run:
python annotate.py check_files
and, assuming this came out without any error, runpython annotate.py backup_files
. From there, you're ready to work. - review
zone_info.yaml
in case the asset path in the game files has changed (occasionally, SE will move a map from zonename to "zonename 00"). Remove/Add/Amend a zonename entry for the zones concerned if needed. If the zonename entry doesn't exist, the script will use the true zone name. - Edit the marker/legend styles in
data/config.yaml
as desired - Run
python annotate.py annotate_map zone_name
to annotate that zone. It will open a view of the annotated map - Once ready, run
python annotate.py annotate_all
. All maps will be rendered and saved (both in the project path and in original asset path) - In this branch, all maps located in
ui/map
folder, you can use ffxiv-tex-converter convert back to.tex
- With Penumbra, you can: (I'm not very familiar with this process, there may be a simpler way)
- Create an empty mod with Penumbra
- Copy the
ui
folder to the mod folder that you just created - Go to
Edit Mod
->Reload Mod
- Go to
Advanced Settings
->File Redirection
->Select Unused
->Add Paths
->Apply Changes
- Done!
It can also be used as a library, from a jupyter notebook (for exampe) created in the same directory:
from annotate import MapAnnotator
annotator = MapAnnotator()
From there, you can call the same methods. MapAnnotator.annotate_map
will instead preview the output directly in the notebook rather than opening Paint
.
See this for information about preparation for blending.
Information on commands, their function and use is available through the tool.
python annotate.py [command] --help
- handle errors
- write tests
Use of the mods created with this tool is at your own risk. Square Enix does not permit the use of any third party tools, even those which do not modify the game. They have stated in interviews that they did not view parsers as a significant problem unless players use them to harass other players.
Copyright @ Arkhelyi, 2020.