Views
Actions
Difference between revisions of "Model JSONs/1.16"
(Copy Model JSONs to MC1.16 archive) |
(Copy Model JSONs to MC1.16 archive) |
||
Line 6: | Line 6: | ||
== Textures == | == Textures == | ||
− | Textures, like models, are contained within resource packs and are referred to with <code>ResourceLocation</code>s. When <code>ResourceLocation</code>s refer to textures in models, the paths are taken to be relative to <code><nowiki>textures/</nowiki></code> (e.g. <code><nowiki>examplemod:blocks/test</nowiki></code> → <code><nowiki>assets/examplemod/textures/blocks/test.png</nowiki></code>). Additionally, in Minecraft, the [[https://en.wikipedia.org/wiki/ | + | Textures, like models, are contained within resource packs and are referred to with <code>ResourceLocation</code>s. When <code>ResourceLocation</code>s refer to textures in models, the paths are taken to be relative to <code><nowiki>textures/</nowiki></code> (e.g. <code><nowiki>examplemod:blocks/test</nowiki></code> → <code><nowiki>assets/examplemod/textures/blocks/test.png</nowiki></code>). Additionally, in Minecraft, the [[https://en.wikipedia.org/wiki/UV mapping UV coordinates/1.16|https://en.wikipedia.org/wiki/UV mapping UV coordinates]] (0,0) are taken to mean the ''<code>top-left</code>'' corner. UVs are <code>always</code> from 0 to 16. If a texture is larger or smaller, the coordinates are scaled to fit. A texture should also be square, and the side length of a texture should be a power of two, as doing otherwise breaks mipmapping. (E.g. 1x1, 2x2, 8x8, 16x16, and 128x128 are good. 5x5 and 30x30 are not recommended because they are not powers of 2. 5x10 and 4x8 are completely broken as they are not square.) If there is an <code>mcmeta</code> file associated with the texture, and an animation is defined, the image can be rectangular and is interpreted as a vertical sequence of square regions from top to bottom, where each square is a frame of the animation. |
== JSON Models == | == JSON Models == | ||
Line 16: | Line 16: | ||
− | [[Category:Models/1.16]] | + | [[Category:Models/1.16|Category:Models]] |
Latest revision as of 04:14, 27 July 2021
A “model” is simply a shape. It can be a simple cube, it can be several cubes, it can be a truncated icosidodecahedron, or anything in between. Most models you’ll see will be in the vanilla JSON format. Models in other formats are loaded into an IBakedModel
by an IModelLoader
at runtime. Forge provides default implementations for WaveFront OBJ files and Blitz3D files. Most things do not care about what loaded the model or what format it’s in as they all "bake" into an IBakedModel
.
When ResourceLocation
refers to a model, the path is normally relative to models
(e.g. examplemod:block/block
→ assets/examplemod/models/block/block
).
Block and item models differ in a few ways, the major one being item property overrides.
Textures
Textures, like models, are contained within resource packs and are referred to with ResourceLocation
s. When ResourceLocation
s refer to textures in models, the paths are taken to be relative to textures/
(e.g. examplemod:blocks/test
→ assets/examplemod/textures/blocks/test.png
). Additionally, in Minecraft, the [mapping UV coordinates/1.16|https://en.wikipedia.org/wiki/UV mapping UV coordinates] (0,0) are taken to mean the top-left
corner. UVs are always
from 0 to 16. If a texture is larger or smaller, the coordinates are scaled to fit. A texture should also be square, and the side length of a texture should be a power of two, as doing otherwise breaks mipmapping. (E.g. 1x1, 2x2, 8x8, 16x16, and 128x128 are good. 5x5 and 30x30 are not recommended because they are not powers of 2. 5x10 and 4x8 are completely broken as they are not square.) If there is an mcmeta
file associated with the texture, and an animation is defined, the image can be rectangular and is interpreted as a vertical sequence of square regions from top to bottom, where each square is a frame of the animation.
JSON Models
Vanilla Minecraft’s JSON model format is rather simple. It defines cuboid (cube/rectangular prism) elements, and assigns textures to their faces. On the wiki, there is a definition of its format.
Tip
When a ResourceLocation
refers to the location of a JSON model, it is not suffixed with .json
, unlike OBJ and B3D models (e.g. minecraft:block/cube_all
, not minecraft:block/cube_all.json
).