CTM — Или как сделать МайнКрафт еще красивее.
Данный гайд написан целиком и полностью на базе моего личного практического опыта, пилю я текстур-паки уже начиная с бета-версии МайнКрафта, и уже немного преуспел в этом направлении, и хочу поделится со своими читателями и последователями всеми накопленными знаниями.
На стримах, в личке, в скайпе мне часто задают вопрос — как же мне удалось добавить какие-то интересные красивые блоки, которых нет вообще нигде, — и сегодня я вам расскажу, как я это делаю, — чтобы каждый читающий смог сделать свой собственный офигенный, красивый текстур-пак с множеством дополнительных и рандомных блоков.
Ну и пара слов для любителей плагиата: данный гайд авторский, существует в единичном экземпляре, если вы его читаете не на проекте InMineCraft.ru, тога вы имеете дело с весьма низменными людьми, кто не ценит чужой труд.
Так же большая просьба ко всем неравнодушным, — если вдруг заметите дубль, пожалуйста, сообщите мне об этом, можно прямо в этом треде, спасибо.
0. Введение.
ID — Айдишка блока, у каждого блока она своя уникальная.
Metadata — Метадата, у каждой айдишки значение от 0 до 15.
Все МайнКрафте закручено на цифрах, думаю ты уже использовал что-то вроде воксельGET/NEI/TMI — и ни раз замечал, что все блоки/итемы идут под номерами, так вот, — у каждого блока есть своя уникальная айдишка, к примеру у кобла это — 4, у каменного кирпича — 98, у досок — 5. Все их можно найти в вики.
При этом, каждая айдишка, разделена на метадаты, это особые значения, которые позволяют определить МайнКрафту для каждого вида и типа блоков их особенности.
Простой пример: все мы знаем, что у шерсти есть 16 цветов, используя тот же WorldEdit или Essentials мы для получения, скажем, красной шерсти, — вбиваем айдишку 35:14 — в итоге у нас в руках оказывается та самая нужная нам красная шерсть. В данном случаи :14 — это та самая метадата, которая говорит МайнКрафту, что именно этому блоку присваивается красная текстурка.
А теперь сразу возникает вопрос, — нахрена нам это знать? — Ответ прост, зная айдишку и метадату блоков, мы с легкостью сможем в последующем менять им текстурки, а те ребята, — которые захотят чего-то большего, — смогут использовать это для добавления «новых блоков».
Кстати, про «новые блоки» — не все метадаты у каждого блока заняты, к примеру у блока 5 — доски, используются первые 4 значения, — которые определяют, что 4:0 — это дубовые доски, 4:1 — сосновые доски, 4:2 — березовые доски, и 4:3 — доски тропических деревьев.
А что тогда с 4:4 — 4:15? — на данный момент значения свободны, и это значит следующее: добавив, скажем, для айдишки 4:7 свою текстурку, мы получим визуально какой-то новый вид блока, который можно будет использовать для каких-то декоративных целей.
1. Важно помнить.
Поскольку CTM — это визуальное изменение МайнКрафта со стороны клиентской части, не стоит забывать о том, что если ты активно строишь какими-то своими «новыми блоками» — все это не смогут увидеть другие игроки майнкрафта, у которых стоит другой текстур-пак, или вовсе он отсутствует.
Так же не стоит забывать о первоначальных свойствах блока, ведь если ты привяжешь на 1:1-1:15 (стоун) текстурки досок и захочешь потом их поджечь, они у тебя никогда не загорятся по понятным причинам 🙂 Посмотри на скриншоты ниже, на них можно увидеть, как выглядят те самые «новые блоки» на разных текстурпаках:
Пример 1:
Пример 2:
Пример 3:
Посмотрев данные скриншоты можно сделать следующий вывод, — что при грамотной использовании ресурсов МайнКрафта можно сделать более менее оптимальный вариант текстурпака, который может иметь какие-то свои уникальные текстурки блоков, и при этом не создавать какую-то визуальную дикость для тех, кто его не использует, и играется с какими-то другими текстурпаками.
2. CTM. Внутренности.
CTM код из себя представляет текстовый файл следующего формата: block .properties в котором прописываются уникальные свойства для каждой айдишки и для каждой метадаты.
Он будет определять, какие будут использоваться спрайты, для какой айдишки они будут применяться, и какой метод наложения будет использоваться. Собственно, выглядят эти базовые параметры так:
tiles=
metadata=
method=
Важные моменты:
1. Все, что связано с CTM — лежит в отдельной папке в корне текстур-пака, она так и называется «ctm»:
Внутри этой папки размещаются другие папки, — названия им можно задавать любые, к примеру «newstone», «id98», «noviebloki», «randomizer» (делай названия попроще, чтобы не было путаницы):
Внутри последних, уже находятся те самые текстовые файлы block .properties и спрайты:
2. Спрайты, они же «tiles», они же текстуры, — из себя представляют графические файлы формата .png строго заданных размеров: 32x32px / 64x64px / 16x16px и т.д. Названия им задаём в диапазоне от 0.png до 255.png.
Это уже новые алгоритмы 1.5.1 версии, ранее, можно было делать единый спрайт с множеством разных текстурок, но теперь — все они идут по отдельности.
3. Как быть с тем, если мы хотим задать для каждой стороны блока разную текстуру, или же для каждой из 0-15 метадат задать свою собственную текстуру? Для этого мы добавляем в название файла block .properties сразу же после ID-шки буквы из латинского алфавита.
Чтобы было более понятно, я покажу наглядный пример из своего текстур-пака:
6.png — 236.png это те самые спрайты, они же текстуры
block5d.properties — block5p.properties — файлы с CTM кодом, собсно, та самая основа, которая отвечает за наложение спрайтов на блок 5 — т.е. на доски.
4. Теперь самое главное — внутренности нашего файла block .properties. Для этого давайте мы вернемся к прошлому скрину, и откроем, к примеру, файл block5e.properties и уже разглядим, что же там прописано:
— tiles=34-38 — эта строка говорит нам о том, что используются спрайты 34.png-38.png
— metadata=5 — эта строка говорит о том, что вышеуказанные спрайты используются исключительно для 5-ой метадаты, т.е. для блока 4:5
— method=random — это строка говорит о том, что накладываются текстурки на наш с вами блок в произвольном порядке.
5. Наложение текстур на блоки. Накладывать текстуры на блоки мы можем множеством методов, за это отвечает тот самый параметр method=, который может иметь одно из следующих значений:
method=
Так при использования метода horizontal текстуры будут объединятся между собой по горизонтали, а при методе ctm — будут объединятся со всех сторон (наверняка ты такое уже видел подобное в некоторых текстур-паках, когда ставил ,блоки стекла впритык друг к другу, границы между ними исчезали и он начинал напоминать единое целое, это и есть тот самый ctm метод).
Для закрепления:
3. Советы
Конечно после прочтения дикий сумбур в голове, но тут может помочь только практика.
Я крайне советую тебе открыть этот топик — http://www.minecraftforum.net/topic. #index1 там можно найти больше деталей, но, увы, на английском.
Так же рекомендую скачать и просмотреть текстур-пак Сonquest http://www.planetminecraft.com/texture_pack/conquest-32×32/ — в нём CTM используется весьма активно, а так же присутствуют те самые «новые блоки», поэтому так же имеет смысл посмотреть, как все это реализовано.
Важно. Заранее продумай, на какие айдишки ты хочешь повесить дополнительные блоки, и обязательно не забудь про то, — как это будет выглядеть без текстур-пака.
В прошлом, у меня было много головной боли, когда я будучи еще не прошаренным в этих вопросах, начал вешать на блоки песчаника 24:5-24:15 текстуры кобла, а затем дико удивлялся, когда видел свой Эшвиль с других текстур-паков, или же когда открывал динамичную карту.
Не повторяй моих ошибок, — вешай кобл на айдишки кобла и стоуна, или каменного кирпича, — а все деревянное, — на доски ID5 / ID125 — тогда все будет окей.
Кстати, я забыл тебе рассказать о таком не очень приятном моменте. К примеру мы запилили на блок 5:10 какую-то текстуру, взяли в руки этот блок и увидели — что в инвентаре у нас текстура обычных досок, — так будет всегда, и к этому стоит просто привыкнуть.
И второй более не приятный момент. Используя tmi/nei/voxelget мы видим, что половина блоков идет просто с айдишками, а а другая половина имеет помимо айдишек и мета-дату, это касается песчаника, каменного кирпича, досок, полублоков и т.д.
Что это значит? — Те блоки, у которых уже мелькает помимо айдишек — метада :2 / :1 / :15 — их можно с легкостью брать и свободно ставить. С ними меньше проблем и хлопот. Рекомендую все свободные метадаты забивать первоначально именно у этих блоков.
Чего не скажешь о тех блоках, — которые метадату не имеют (имеется ввиду в панельке NEI/TMI/VoxelGET), — это стоун, глоустоун, мшистый булыжник, обсидиан, бэдрок, арбузы, верстаки и т.д.
Если к таким блокам мы привязываем текстурки, — то их можно поставить только при помощи плагинов, взять тот же WorldEdit.
К примеру ты добавил новый вид обсидиана, повесил текстурку на метадату 10, и прописываешь команду чтобы взять этот блок: /i 49:10 — увы, но взять этот блок так не получится. Будет всегда браться 49:0 — как бы ты не пытался, поэтому если ты захочешь поставить такой блок, — используй всю мощь ворлдедита, /repl 49:10 | //set 49:10 | //replace 49:10 и т.д.
4. Практические советы и примеры.
4ый пункт допишу позднее, в нём я детально расскажу, как запилены рандомные и дополнительные блоки конкретно в моём текстур-паке. А пока закину два скриншота, как все это выглядет:
5. UPD! 1.6.4
И вот уже МайнКрафт обновился до 1.6.4 версии, появилось множество новых особенностей и наверняка в связи с этим у многих возникло много вопросов, как же обновить свой текстур-пак с 1.5 версии до ресурспака 1.6+ версии. Сделать это очень просто, и для этого вам потребуется инструмент от MCPatcher’а. В меню выбираете «Convert Texture Pack» а после выбираете свой текстур-пак. После конвертации, его обновленная копия будет находится в папке /resourcepacks.
Какие же особенности в 1.6.4 в плане CTM?
— В первую очередь изменилось расположение: resourcepacks\ваш-ресурспак\assets\minecraft\mcpatcher\ctm
В остальном, — осталась та же механика, за исключением возможности делать сложную многоуровневую систему вложенности текстур. Чтобы было понятнее, покажу на примере.
Допустим мы хотим изменить внешний вид булыжника и каменного кирпича, чтобы нам не путаться в папках, мы можем создать в /ctm папку /Stone, а в ней /id4 (булыжник) и /id98 (каменный кирпич) в итоге вся ветка у нас будет выглядеть следующим образом:
После этого просто размещаете внутри папок id4 и id98 свои текстурки вместе с файлами параметров, и при этом вам будет гораздо проще ориентироваться.
Чтобы еще быстрее вникнуть в данную систему и в тему вложенности папок, я вам покажу ее суть работы на практическом примере.
В своём ресурс-паке я использую массу доп. блоков, многие из них на тему медивала. Для этого я создал папку /ctm/medival — чтобы вынести в нее все те текстуры, которые соответствуют данному стилю и которые имеют исключительно декоративную функцию (данные блоки нельзя поставить ни сурвайвале, ни в креативке без специальных плагинов).
Далее внутри я создал папку /173 — это ID блока, текстуры которого мы будем с вами менять.
Визуально, данный блок из себя будет представлять контейнеры с различными ресурсами. Соответственно, менять мы будем сразу 3и стороны у данного блока с ID173:
— Верхняя часть (текстура ресурса, который находится в контейнере)
— Боковые стороны (текстура древесной фактуры стянутая железом)
— И нижняя часть (текстура древесной фактуры)
Чтобы максимально все упростить, в корне /173 — создаем еще две папки: /top и /sides
Теперь переходим к самому главному — в корне /173 помещаем текстуры нижней части наших с вами конейнеров и файл с параметрами «block173.properties» в котором прописываем:
После этого, в папку /top добавляем текстуры ресурсов и для каждой из них создаём файл параметров: block173
И уже затем в папку /sides размещаем текстуры для боковых сторон, так же вместе с файлом параметров: block173.properties
faces=sides
tiles=1
metadata=0-15
method=random
В итоге у нас получилось следующее:
— Все текстуры в корне у нас отвечают за нижнюю часть
— Все текстуры в папке /top у нас отвечают за верхнюю часть
— Все текстуры в папке /sides отвечают за боковые стороны
И когда мы запускаем МайнКрафт, ставим блоки 173:0 — 173:15 с помощью плагина WorldEdit (//set 173:0 — 173:15 | //replace 173:0 — 173:15) видим следующую картину:
В данном примере используются текстуры из ресурс-пака CONQUEST
Скачать данный пример. Данный архив нужно распаковать в: resourcepacks\ваш-ресурспак\assets\minecraft\mcpatcher\ctm
Connected Textures¶
Connected Textures (CTM) connects matching blocks together, making them appear unified.
For each block or terrain tile to override with connected or random textures, create a .properties file in the /assets/minecraft/optifine/ctm folder of the resource pack. Properties files can be organized into subfolders of any depth.
Button and tooltip for the option, found in Video Settings ‣ Quality . ¶
Different types of connected texture methods are available with different requirements and restrictions.
General properties¶
See Paths before continuing, or else the documentation may be confusing.
matchTiles and matchBlocks can be omitted if they can be inferred from the filename instead:
/ctm/xxx/<name>.properties assumes matchTiles=<name>
/ctm/xxx/block_<name>.properties assumes matchBlocks=<name> (unless either property is specified explicitly; defined keys override inferred filenames)
method ¶
Method to use when choosing a block’s replacement texture:
ctm : Standard 8-way method, 47 tiles.
ctm_compact : Compact 8-way method, uses 5 tiles. Cannot be combined with any overlay method.
horizontal : Connect to blocks on left and right only.
vertical : Connect to blocks above and below only.
horizontal+vertical : Connect horizontally, then connect vertically.
vertical+horizontal : Connect vertically, then connect horizontally.
top : Connect to block above only.
random : Pick a tile at random.
repeat : Repeat a fixed pattern over large areas.
fixed : Use a single fixed tile, equivalent to random with only one tile.
overlay : Overlay for block transitions, uses 17 tiles.
overlay_ctm : Overlay variant of ctm method.
overlay_random : Overlay variant of random method.
overlay_repeat : Overlay variant of the repeat method.
overlay_fixed : Overlay variant of fixed method.
The overlay method can be combined with other methods if they come before them in the order alphabetically.
The ctm_compact method cannot be combined with any overlay method.
tiles ¶
List of replacment tiles to use. Each tile must be a separate image, just like terrain and item textures Tiles can be specified in several ways:
8-11 -> 8.png, 9.png, 10.png, 11.png
<skip> : Skip this tile, continue with next CTM properties.
<default> : Use the default texture for that block/tile.
In all cases except the last ( <default> ), the PNG file must be in the same directory as the properties file itself.
The formats can be mixed and matched: tiles=0-4 5 some/other/name.png .
The overlay methods may use the special name <skip> for empty tiles to be skipped; overlay methods cannot use the <default> special name.
matchTiles ¶
List of tiles this method should apply to.
Multiple .properties file can refer to the same block/tile and they will be processed in alphabetical order by filename. All tile-based entries are checked before block ID-based ones; the first match wins.
matchBlocks ¶
List of blocks this method should apply to.
To refer to a tile from vanilla Minecraft, simply use its name in textures/block : matchBlocks=dirt To refer to a tile from a mod, its name must be known: matchBlocks=botania:blazeblock
Tiles output by CTM rules can also be matched by another rule; the tile name is simply the full path to the tile: matchBlocks=optifine/ctm/mygrass/1.png
Block format: (optional parts are in [] ) [namespace:]name[:property1=value1,value2. property2=value1,value2. ] For example:
Short name: oak_stairs
Full name: minecraft:oak_stairs
Full name + properties: minecraft:oak_stairs:facing=east,west:half=bottom
weight ¶
If multiple properties files match the same block, the highest weighted one is used.
In the event of a tie, the properties filenames are compared next.
connect ¶
The conditions under which two blocks should connect. For methods that connect to adjacent blocks, this rule specifies how the game should decide if two blocks should be connected:
block : Connect if this block’s name == neighbor block’s name.
tile : Connect if this block’s tile texture == neighbor tile’s texture.
material : Connect if this block’s material (stone, dirt, etc.) == neighbor block’s material.
state : Connect if this block’s full state (block + properties) == neighbor block’s state.
A diagram of the block matching. From top to bottom, block , material , state . ¶
connectTiles ¶
Connect only to blocks which are using the specified tiles.
This rule only applies to overlay methods.
faces ¶
Limit CTM to certain faces of the block:
bottom : Bottom face (negative Y).
top : Top face (positive Y).
north : North face (negative Z).
south : South face (positive Z).
east : East face (positive X).
west : West face (negative X).
sides : Shorthand for north south east west .
This property is ignored on non-cube blocks like signs and fences.
biomes ¶
Biome restrictions. Modded biomes also can be used.
heights ¶
Height restriction, no limit. Since 1.18, negative values may be specified for height. When used in a range they have to be put in parenthesis ( ) .
minHeight ¶
Legacy property for heights .
maxHeight ¶
Legacy property for heights .
ctm.<ctm_index> ¶
Compact CTM tile replacement. Allows definition of replacement tile for a specific CTM case.
<ctm_index> is the index of the CTM case from the template ( 0..46 ), Tile index is the index of the tile as defined in tiles , not the tile name.
With ctm_compact , more than 5 tiles can be defined and they can use the additional tiles as replacements.
This rule is only for the ctm_compact method.
tintIndex ¶
Tint index, only for overlay method. Tint index is for the tile’s texture. -1 means it is disabled.
This rule only applies to the overlay methods.
tintBlock ¶
The block used for the tile texture tinting.
Different blocks use different colors for the same tint index.
This rule only applies to the overlay methods.
layer ¶
The layer on which the overlay texture should be rendered.
Values: * cutout_mipped : Transparent textures with mipmaps. * cutout : Transparent textures without mipmaps. * translucent : Translucent textures with mipmaps.
This rule only applies to the overlay methods.
Only for blocks with have corresponding nameable tile entities. Generally, this means containers that can be renamed.
For example: Beacon, Brewing Stand, Enchanting Table, Furnace, Dispenser, Dropper, Hopper, and Command Blocks.
See Custom GUIs for the syntax.
Method properties¶
ctm : standard 8-way¶
48th tile is unused.
tiles ¶
List of the 47 tiles to use when connecting.
innerSeams ¶
Whether to show seams on inner edges when connecting to adjacent blocks.
ctm_compact : compact 8-way¶
tiles ¶
List of the 5 tiles to use when connecting.
innerSeams ¶
Whether to show seams on inner edges when connecting to adjacent blocks.
Indexes of replacement tiles for specific CTM cases. N is a tile index.
This is generally only used for special cases where you want to override the default behavior.
horizontal : horizontal only¶
tiles ¶
List of the 4 tiles to use when connecting.
vertical : vertical only¶
tiles ¶
List of the 4 tiles to use when connecting.
top : top face only¶
tiles ¶
The single tile to use when connecting.
random : random connect¶
tiles ¶
List of the tiles to use when connecting. Can be infinitely long or short.
weights ¶
List of weights to apply to the random choice.
For example, for tiles=1 2 3 4; weights=10 1 10 5 , tile 1 has weight 10, 2 has 1, 3 has 10, and 4 has 5. Weights do not have to total any value; in the above example, tiles 1 and 3 will each be used
This rule must have the same number of elements as the tiles rule.
randomLoops ¶
Repeats the random function by this amount to increase randomness. Can be used to make different textures use different random patterns.
A high randomLoops value may decrease the chunk loading speed.
symmetry ¶
Desired level of symmetry for the faces of each block.
Applies to standard 6-sided blocks only (dirt, glass, not fences).
none : All 6 faces are textured independently.
opposite : 2-way symmetry; opposing faces have the same texture, but each pair can potentially have a different texture.
all : All 6 faces have the same texture.
linked ¶
Whether to link textures between related blocks.
If true, OptiFine uses the same random number seed for all parts of a multi-block object. For example, the top and bottom halves of tall grass. This allows randomized textures that will remain consistent within each set of blocks.
If false, the two halves will be scrambled, chosen independently. This property currently only applies to plants, double plants (rose bushes, peonys, etc.), and doors.
CTM Maps in Minecraft
Complete the Monument (CTM) is a special type of Minecraft map that was originally developed by Vechs, it involves a Super Hostile group of maps that the player needs to carry out.
In CTM, the gamer need to discover their personal way and survive through a difficult environment, and while playing they also needs to gather certain items which are specified by the map maker. Typically, these things are 16 Wool Blocks, but others that may also be used are Colored Clay, Tinted Cup and Music Discs.
Traditionally, CTMs will demand more effort from the player than Vanilla minecraft maps (honeydogs.com), it involves using custom-formed monsters, tough settings and creator controlled bounties. Below are some popular Full the Monument maps that are offered today:-
This is a brief but still complicated CTM map where in fact the objective is to find two different blocks, then use them to finish the task ahead. This is not an easy feat as the setting is based in an historic cave with monsters living inside, the creatures have already been waiting for many centuries to eat any miner who stumbles into their cavern.
Expect to fight hard battles with dangerous monsters that are protecting the wool blocks that they deem very sacred, after retrieving both blocks from these creatures you need to then return them back again to their correct place.
If you are a newbie to the map, it’s recommendable to create difficulty level to normal so that the overall game can be manageable. Also note that the monsters can spawn randomly, and you merely have one opportunity to finish the map.
It’s a CTM map where the primary goal is retrieving 4 wool blocks and setting them on a monument at the time of spawn. You’ll need to fight evil monsters while also safeguarding yourself from falling down to probable loss of life, upon finding all the wool blocks the next matter to do is returning them back to the shrine.
The setting is a jungle island hovering high up in the clouds, there are a total of 4 wool blocks which you have to retrieve from 4 different floating islands. Nevertheless, this is not a simple task as there are monster spawners pass on all across the map.
All the wool blocks had a need to complete the monument are found in special chests, plus additionally, there are treasures to end up being retrieved. The blocks need to be found one by one and placed in the monument, once a device has successfully been placed you need to venture out and locate the next one immediately.
For this game, you have to play on maximum difficulty with no crafting.
The Cave is known as a mini CTM map, but that doesn’t necessarily mean it is a brief map. On average, it could take you around 1hr to complete the game considering you’re not in any rush. The mission is venturing out to find 2 precious wools which must complete the monument.
However, there are lots of monsters and other obstacles along the way which you must overcome to get ahead.
To start the video game, you must first step forwards to the enchantment stand and then look down towards the cup block. Shatter this cup to fall down and perish, then you’ll be instantly re-spawned at where the real adventure starts from.
The main goal of the map is finding one black and one red wool, then completing the monument by placing two blocks within the structure bought at the beginning of the CTM map.
In this video game, the spawn occurs in a room where you have the chance to read all of the policies and rules, including recommended configurations for the play. However, it’s also advisable to read the rules found further listed below so as make things simpler for you.
Additionally, The Cave has a changing type of terrain whereby the map appears quite innocent initially, but soon after stepping into the cave it’s filled with scary monster spawners and cobweb.
In overview, CTM maps are useful for players who value challenging environments and marathon video gaming experience. There are many other types of Minecraft CTM Maps apart from those mentioned above, including The Spheres, Claustrum, Snowy Hell 2 and The Nightmare among others.