見出し画像

OptiFine - CTM解説

繋ぎ目のないテクスチャを作れる。
発光テクスチャも適用できる。

※Minecraft:Java Editionの起動時に出力ログを開くを有効にしておくとテクスチャが適用されない時などの原因究明に役立つ。

場所

OptiFine 1.13.1_HD_U_E3_pre5からはmcpatcherフォルダからoptifineフォルダに変更された

assets > minecraft > optifine > ctm > name > name.properties

以前
assets > minecraft > mcpatcher > ctm > name > name.properties

設定方法

テクスチャ画像は.propertiesと同じフォルダに入れる。画像の名前は0.png,1.png…と使うメソッドに応じて用意する。
※継ぎ目ないテクスチャを描画優先にしていないと細かいところの継ぎ目が表示されない

左が処理優先、右が描画優先

method=

ctm

47枚のテクスチャで構成

ctm_compact

5枚のテクスチャで構成

※1は縁なし

horizontal

横方向のみ

vertical

縦方向のみ

horizontal+vertical

h+vでも指定できる。ブロックを置いたとき横が優先される。

vertical+horizontal

v+hでも指定できる。ブロックを置いたとき縦が優先される。

top

ブロックが2段以上ある場合に下との継ぎ目をなくす。砂岩に使われている。
1枚のみ

random

ランダムに表示される。
1~∞枚

※横と縦のテクスチャ2枚を使っている

repeat

繰り返し表示する。WxH枚

width=3 height=3なので9枚

fixed

1枚のみで普通にテクスチャを変えるのと同じようになる。
facesなどと組み合わせて1面だけ変えたりするといいと思う。

overlay

他のブロックが隣接している時既存のテクスチャの上に継ぎ目を表示する。

overlay_ctm

ctmと同じで既存のテクスチャの上に表示されるようになるだけ。47枚

overlay_random

randomと同じ、既存のテクスチャの上に表示されるようになるだけ

overlay_repeat

repeatと同じ、既存のテクスチャの上に表示されるようになるだけ

overlay_fixed

fixedと同じ、既存のテクスチャの上に表示されるようになるだけ

matchTiles=

適用させるテクスチャ名を指定する。graniteの場合、花崗岩と花崗岩のハーフブロックなど同じテクスチャを使用するブロックに適用される。

matchBlocks=

適用させるブロックを指定する。同じテクスチャが使われていても指定したブロックしか適用されない。
1.12.2以下のIDが同じ場合id:datavalueで指定する。
https://minecraft-ids.grahamedgecombe.com

tiles=

読み込むテクスチャ。ctmの場合は0-46、ctm_compactは0-4

connect=block | tile | material | state

接続タイプ、デフォルトはblock
block //同じIDのブロックだけが繋がる
tile //同じテクスチャを使用するブロック同士が繋がる
material //石や安山岩や玄武岩などの似通ったブロック同士が繋がる

connectTiles=

method=overlayのみ
connectTilesで指定したテクスチャを使用するブロックが隣接したときに継ぎ目を表示する。

connectBlocks=

method=overlayのみ
connectBlocksで指定したブロックが隣接したときに継ぎ目を表示する。

faces=

適用させる面を指定
bottom //下面
top //上面
north //北
south 南
east //東
west //西
sides //側面
all //全部(デフォルト)

biomes=

バイオームを指定、スペースで複数指定できる。
https://minecraft.fandom.com/wiki/Biome#Biome_IDs

heights=

高さを指定。heights=11-17 23-63 90などの指定もできる。

ctm.0~46=

ctm_compactのみ、method=ctmで指定する0~46を直接割り当てられる。
※テクスチャを追加した際にtiles書き換えないと読み込まれない。
tiles=0-5
ctm.36=5

tintIndex=

method=overlay系のみ、葉っぱや草ブロックの色合いを有効にする。デフォルトは-1、使用する際は0にする。

tintBlock=

method=overlay系のみ、適用させる色合い、葉っぱや草ブロックを指定。
参考 : https://www.youtube.com/watch?v=nHofjUiRSAE

layer=cutout_mipped | cutout | translucent

method=overlay系のみでレンダーレイヤーを指定デフォルトはcutout_mipped

cutout_mipped //完全に透明か不透明、ミップマップが有効※ミップマップとはテクスチャの外観をよくするもの、遠ざかった時のちらつきを解消する。
cutout //完全に透明か不透明
translucent //アルファ値を読み込む
※1.12.2-OptiFine_HD_U_G5でmethod=overlay_ctmを使用したところ何かを描画すると無限にエラーが出る。(自分の環境だけかもしれない)
layer=translucentにすると出なくなる。

name=

名前を付けたビーコンやチェストを指定。ブロックエンティティのみ。
https://minecraft.fandom.com/wiki/Block_entity

width=

method=repeatのリピートさせる幅

height=

method=repeatのリピートさせる高さ

innerSeams=true | false

内側に継ぎ目を表示させるかどうか

左がinnerSeams=true

weights=

method=randomの確率
tiles=0-3
weights=1 10 10 5
0.pngが一番低く2.pngと3.pngが一番出やすい

randomLoops=

method=randomのランダム性を高める。0~9、デフォルトは0

symmetry=none | opposite | all

method=randomやmethod=repeatで使う

none //左右上下前後非対称にする。
opposite //反対の面が同じテクスチャになる
all //全部同じになる(method=randomのみ)

linked=true | false

2マスあるブロック(花やドア)の場合は2個の.propertiesファイルが必要でmethod=random場合上下をリンクさせるためにlinked=trueを入れる。

確認環境

1.12.2-OptiFine_HD_U_G5
1.13.2-OptiFine_HD_U_G5
1.14.4-OptiFine_HD_U_G5
1.15.2-OptiFine_HD_U_G6
1.16.5-OptiFine_HD_U_G8
1.17.1-OptiFine_HD_U_H1

参考

https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/resource-packs/resource-pack-discussion/1256361-ctm-an-outdated-guide

https://github.com/sp614x/optifine/blob/master/OptiFineDoc/doc/ctm.properties