|
|
(9 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | VCMI allows overriding HoMM3 .def files with .json replacement. Compared to .def this format allows:
| + | {{Template:MovedToWebpage|https://vcmi.eu/modders/Animation_Format/}} |
− | * Overriding individual frames from json file (e.g. icons)
| |
− | * Modern graphics formats (targa, png - all formats supported by VCMI image loader)
| |
− | * Does not requires any special tools - all you need is text editor and images.
| |
− | | |
− | Note that right now this replacement is not supported fully: there are still some areas that can't use it. Most notable areas are:
| |
− | * Adventure map
| |
− | * Battles
| |
− | =Format description=
| |
− | <syntaxhighlight lang="javascript">
| |
− | { | |
− | // Base path of all images in animation. Optional.
| |
− | // Can be used to avoid using long path to images
| |
− | "basepath" : "path/to/images/directory/",
| |
− | | |
− | // List of sequiences / groups in animation
| |
− | // This will replace original group with specified list of files
| |
− | // even if original animation is longer
| |
− | "sequences" :
| |
− | [
| |
− | {
| |
− | // Index of group, zero-based
| |
− | "group" : 1,
| |
− | | |
− | // List of files in this group
| |
− | "frames" :
| |
− | [
| |
− | "frame1.png",
| |
− | "frame2.png"
| |
− | ...
| |
− | ]
| |
− | },
| |
− | ...
| |
− | ],
| |
− | | |
− | // Allow overriding individual frames in file
| |
− | "images" :
| |
− | [
| |
− | {
| |
− | // Group of this image. Optional, default = 0
| |
− | "group" : 0,
| |
− | | |
− | // Imdex of the image in group
| |
− | "frame" : 0,
| |
− | | |
− | // Filename for this frame
| |
− | "file" : "filename.png"
| |
− | }.
| |
− | ...
| |
− | ]
| |
− | | |
− | }
| |
− | </syntaxhighlight>
| |
− | | |
− | =Proposed format extensions=
| |
− | * vcmi client {{todo}}
| |
− | * map editor {{todo}}
| |
− | | |
− | == Void format ==
| |
− | Json header may be omitted. In such case a single frame will be loaded from same resource ID.
| |
− | Resource id should have no extension, image must be in SPRITES/ virtual directory.
| |
− | | |
− | == Texture atlas format ==
| |
− | '''TODO'''
| |
− | * arbitrary texture coordinates
| |
− | * margins
| |
− | * grid-like layout
| |
− | | |
− | === Texture atlas format ===
| |
− | | |
− | <syntaxhighlight lang="javascript">
| |
− | {
| |
− | // Base path of all images in animation. Optional.
| |
− | // Can be used to avoid using long path to images
| |
− | // If a path is a filename is is treated as single texture atlas
| |
− | "basepath" : "path/to/images/directory/",
| |
− | | |
− | //"basepath" : "path/to/images/atlas/bitmap.png",
| |
− | | |
− | // List of sequences / groups in animation
| |
− | "sequences" :
| |
− | [
| |
− | {
| |
− | // Index of group, zero-based
| |
− | "group" : 1,
| |
− | | |
− | // List of files in this group
| |
− | "frames" :
| |
− | [
| |
− | {"x":0, "y":0, "w": 64, "h": 64},
| |
− | {"x":64, "y":0, "w": 64, "h": 64}
| |
− | ...
| |
− | ]
| |
− | },
| |
− | ...
| |
− | ]
| |
− | }
| |
− | </syntaxhighlight>
| |
− | | |
− | === Texture atlas grid format ===
| |
− | | |
− | <syntaxhighlight lang="javascript">
| |
− | {
| |
− | // filename is is treated as single texture atlas
| |
− | "basepath" : "path/to/images/atlas/bitmap.png",
| |
− |
| |
− | //optional, atlas is a grid with same size images
| |
− | //located right to left, top to bottom
| |
− | //[columns, rows]
| |
− | "grid":[3,3],
| |
− | | |
− | // List of sequences / groups in animation
| |
− | // sequence index -> images count in sequence
| |
− | "sequences" :
| |
− | [
| |
− | 1,3,5
| |
− | ]
| |
− | }
| |
− | </syntaxhighlight>
| |
− | | |
− | | |
− | {{Modding}}
| |