|
|
| (8 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=
| |
| − | == Void format ==
| |
| − | * vcmi client {{todo}}
| |
| − | * map editor {{done}}
| |
| − | 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}}
| |