CTM; Otherwise known as Connected Textures Mod, is a part of Optifine. It provides the ability to make several textures; that when several blocks are placed next to each other, will span the length uninterrupted instead of having a single texture repeated on each one of the blocks.
The result can be a large area of connected blocks that look as if they were all just one large object, or a pillar that is vertically uninterrupted by division lines, The textures connect.
CTM Requires Optifine to work
If you are intending on making your own CTM, you'll find that it takes a hell of a lot of work, sometimes requiring you to make up to 47 individual textures, with the addition of specular and normal mapping you might have to create 144 separate PNG files all for one block type in the game...
But the result is worth it, Minecraft's single texture per block is very noticeable, especially when you add a lot of detail into that one texture.
If you use Photoshop like I do, you can make life so much easier on yourself by making "actions" AKA macros, they will make lots of inputs happen just by clicking one button, my image on the left uses a macro that cuts up and saves every single one of the 48 tiles shown, naming each tile 1 -48, doing this manually takes hours... Unfortunately I cannot provide my action for you to download, as it is tethered to my file system in the way it works.
Every CTM you make needs a .properties file, this file tells Optifine what you wish to do with the CTM, as well as the type of CTM you are using and the tiles involved.
This file can be made by creating a new text document and saving-as a NAMEOFBLOCK.properties file, when you save-as select the "save-as type" drop down menu and choose "all file types" then name the file as you please but it must end with .properties
Required: ( these are case sensitive, and require the = ) More in-depth info found here
method=
ctm: Standard 8-way method (glass in the original CTM), uses 47 tiles.
ctm_compact: Compact 8-way method, uses 5 tiles.
horizontal: Connect to blocks on left and right only (bookshelves).
vertical: Connect to blocks above and below only.
horizontal+vertical: Connect horizontally, then vertically.
vertical+horizontal: Connect vertically, then horizontally.
top: Connect to block above only (sandstone).
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 method "ctm".
overlay_random: Overlay variant of method "random".
overlay_repeat: Overlay variant of method "repeat".
overlay_fixed: Overlay variant of method "fixed".
tiles=
list the tiles, you can do a - in between the first and last number to go in order (e.g. 1-47), or you can list numbers with a space in between to specify each one individually (e.g. 1 2 3 4 5 6 7 87 88 89)
these "tiles" are the PNG images within the same folder as the properties folder
matchTiles=
this is used to specify the block that you'll be linking these textures to, I've found that without this or matchBlocks= you'll get problems such as the textures being overwritten or not showing at all. if multiple blocks are getting the same CTM texture set just list the names of blocks with a space between. all names must be as per the Minecraft naming system, to see names of blocks properly in game hold F3 and then press H.
matchTiles= will target texture files, this is why its best to use as normally you're targeting the standard Minecraft tiles located in assets/minecraft/textures/block
Because it is targeting tiles, you can target ones in the other folders if you wish, you could make a folder of how ever many random textures you want so that they overwrite one of the textures in your 47 texture set in the folder above. (e.g. matchTiles= assets/minecraft/optifine/ctm/a_hard/a_concrete/brown_concrete/27.png)
e.g matchTiles=end_stone_bricks red_stone_block dragon_egg
Other things to put in the properties file:
faces=
e.g. faces=sides top bottom
north south etc..
all
biomes=
biomes as per the Minecraft naming system (e.g. ice_spikes savanna extreme_hills)
heights=
at what Y height do these blocks show this CTM
width= & height=
you're able to make textures that are only 2x2 or 4x6 etc.., you would set the width height as you please these will then just simply repeat the textures in that pattern
Standard full 47 Texture CTM
A 47 tile CTM is the full CTM E X P E R I A N C E , it is a lot of work and involves cutting something like the one shown into individual PNG files.
Random Texture CTM
This type lets you create as many textures as you like, the game will randomly allocate the textures to the blocks as you place them, in the image I've shown that my Egyptian blocks are randomized hieroglyphics.
Horizontal & Vertical CTM
Horozontal or Vertical CTM simplifies the process down to only a few tiles for your chosen CTM type, for something ike shown you would only need to make 4 textures, one fro the block on its own, and a top(or left) middle and bottom(or right) texture
Biome Specific Textures CTM
This type can apply to any other CTM type, here you can set the specific textures to show for one or more selected biomes, you could have polished man made materials for a regular biome you plan to build in, or you could have natural rock in biomes you arent building in.
A good example of this is the Badlands(Mesa) biome, it would look weird if it were made out of man made materials, so you'd maybe want to try making a set of natural terracotta for it.
Textures by Monsterfish_ in the Conquest 32x Resource Pack
This is Terracotta, Red Terracotta & Yellow Terracotta. The left is an ocean biome, the right is the Badlands(Mesa) biome.
Creating Full 47 Tile CTM using Photoshop
In this Tutorial I will only be making a full 47 tile CTM type because its easy for me to do with my Photoshop actions, and you'll be able to reverse engineer my tutorial to be able to understand how to create the other types.
To start pick a resolution for your pack, mine is 32x32 so I'm sticking with that
Create your document in Photoshop, click file then new
Take your pack's resolution and times it by 12, that's your width
Take your pack's resolution and times it by 4, that's your height
Now you've got your new document hold ctrl and press R, this will bring up the rulers.
Using the rectangular selection marquee tool, select a perfect square by holding shift, the square should measure to be your pack's resolution, (32x32 in my case). Position this selection square at the top left corner of your document.
Now drag the rulers, blue lines will appear, place them snapped to the edges of the selection box.
Finally go back to the rectangular selection marquee tool and drag your existing selection to the right one whole column, add a new ruler for the next edge and repeat until you have a total of 12 squares horizontally.
Do the same for the vertical direction, you'll need 4 rows.
You should end up with your document looking like mine, divided into 48 tiles.
Full CTM uses only 47 of the tiles, the bottom right tile is unused.
Go ahead an try fill in your document with the same black bars and squares that I have on mine (you dont have to make them as thick as mine, as long as you know that the black lines represent the edges of a block).
These black lines represent the standard setup for CTM as per the original connected texture mod, of which is now within Optifine, the black lines mean the outer edge of the block, or the corners of blocks.
Call the layer "CTM TEMPLATE"
Make a new fresh layer.
This template is to help you understand where the edges of each tile are, in game you will notice that when you place blocks together in strange shapes such as an L shape, the edges are supposed to match to each other, this is where there are lots of squares on the right side of my example, these are the "corners" that would be for the inside corner of an L shape.
The left hand side of the example includes the outside corners, and the ends of single blocks placed horizontally or vertically, as well as the one block tile at the top left.
This part will be up to you, I've gone ahead and used my existing marble textures as a base.
Remember to make things on layers so that you have the freedom to alter them without altering everything at once, and layers allow you to delete them if you dont like how they turned out.
This tile is the 1x1 block, try make it recognizable representing the whole CTM but remember this is a usable block in the game, so dont try to cram the whole CTM into it.
I've gone with a diagonal tile deign as I will be making fancy marble tiles to go in my Bioshock build.
This tile will not only be the "1.png" but also the default Minecraft texture for the block, when you're ready, save a copy of this tile as the block name per the Minecraft naming system, save it into /assets/minecraft/textures/block. This is the texture that will be shown in the inventory menu. (e.g. end_stone_bricks.png)
As shown in my example, this is what the design will look like when you've made all the tiles, (yours will be a different design of course :p ).
Once you're happy with your design it's time for the tedious part... cutting up all the individual tiles and saving them all as .png files numbered 1 - 47
To do this use the crop tool, it'll snap to your blue guidelines, crop, then save, undo and then repeat. I made macros for myself to make this process a one click procedure but I wont be teaching that in this tutorial, that is for a more advanced Photoshop tutorial.
Make sure you do your tiles from left to right, then move down a row, and again from left to right, all tiles must be saved in correct order from 1 to 47.
Tile 48 is not necessary, but you'll see it in my examples because it's just a part of my Photoshop action.
Now that you've cut out all of the tiles out, you should have 47 png files.
Put them into a folder named as the block you're making these CTM textures for.
e.g. end_stone_bricks
(ignore my "random" folder and the "backup before macro")
Place this folder in your original "CTM" folder located in
/assets/minecraft/optifine/ctm
Right click inside the folder, create new text document.
open the file and "save-as"
Name it the name of the block you are making these CTM textures for.
Name is not actually required to be correct, but its wise to always be working in the same naming format that Minecraft uses. i.e it is for your sanity to name things correctly.
click the "save-as type" drop down box, and select "all file types"
in the name box after your name, type ".properties"
e.g. end_stone_bricks.properties
save and close.
if the original .txt file is still there, you can delete it, so that only the properties file exists, along with all your textures.
Open the text file again.
This file MUST have:
method=ctm
tiles=1-47
matchTiles=end_stone_bricks
this one will be your choosing for the specific Minecraft block you're making these textures for.
Save and close.
you do not have to include the "minecraft:" before block names, but Minecraft will accept it anyways.
This .properties file must stay in the same file as the textures you have created.
If you haven't already, put your whole resource pack into the resource packs folder of Minecraft, then load up the game, go to options and resource packs, select your resource pack on the left moving it to the right.
Now it should load in game! woo.
because CTM is only for when blocks are placed, the example block found in the inventory will be un-textured unless you make sure to add one to the textures/block folder
I use the 1.png from the CTM tiles as the default texture for the block
Make a copy of 1.png from your ctm folder
Paste it into /assets/minecraft/textures/block.
Rename it to the name of the block as per the Minecraft naming system.
just like how you've made a full set of 47 textures you can make different sets for your other types,
for example horozontal only needs 4 tiles:
A single block tile.
A top tile.
A middle tile.
A bottom tile.
This MinecraftForum post is a handy post to see visuals of each types tile set.
Make sure when you're working with a different type of CTM, to change the method= in the .properties file to the type you are using, as well as setting the tiles used, if the tiles only use 4 then dont set it to 1-47.
Up Next: