【minecraft】縁の下の力持ち?CTM解説講座!【再編集版】
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

【minecraft】縁の下の力持ち?CTM解説講座!【再編集版】

2013-07-22 01:22
  • 6
縁の下の力持ち?CTM解説講座!

どうもー、エビバーガモンと申します
というわけで、CTMことConnected Textures Modについての解説を書いていきたいとおもいます。
※もう二年近く前の記事です。情報が古くなってる可能性があります。

▽CTMとは?
CTMとはmorpheus_017氏によってつくられた
おもにテクスチャのつなぎ目消すためにつくられたMODです
CTMのページ


▽導入方法
上記にページに行くとCTMが1.2.5で開発停止されているように見えますが、現在はMCpatcherとoptifineにその機能は受け継がれています
MCpatcherならばConnnected TexturesにチェックをいれてPatch
optifineならば指示通りに導入するだけです(反映されてない場合はビデオ設定よりQualityのConnnected Textureで切り替えてください)



マイクラを起動してデフォルトテクスチャでこのようにガラスや本棚のつなぎ目が消えてれば導入成功です


▽CTMテクスチャパックの構造
CTMに対応したテクスチャパックの構造をみていきましょう
CTMはctmフォルダーに入っています
ctmフォルダーは
1.5.x以前なら/texturepack名/ctm
1.6.x以降なら/resourcepack名/assets/minecraft/mcpatcher/ctm
                           にあります
そのctmの中にまたフォルダーがあります
このフォルダー名なんでも構いませんので、わかりやすい名前にましょう

そのフォルダーの中をのぞくとさらにこのようになっています


png画像のテクスチャと
それらのテクスチャを出力するさいの設定となるpropertiesファイルが入っています
propertiesファイルはテキストエディタで開くことができ、簡単な英単語と数字で書かれた設定が書かれています、この設定は勝手に"記述式"と命名して以後この記事ではそう読んでいきます


▽propertiesファイルの書き方
まず、propertiesファイル名のファイル名から始まります

ファイル名は上記の画像のようにblock<適応させたいブロックID>
例:block1.properties、block98.properties
(ブロックIDを調べたいときはTMIなどのMODやこちらのサイトを使いましょう

もしくは/blocksに入っているテクスチャのファイル名にしましょう
例:stone.png→stone.properties、sandstone_top.png→sandstone_top.properties

ワンポイント豆知識
block1a.properties、block1b.propertiesやstonea.properties、stoneb.propertiesという具合でファイル名の後にも何かつけても問題なく動きますので複数のプロパティを書くときに活用ください

では、propertiesファイルの中ock1a.properties、を書いていきましょう
propertiesファイルを編集するにはメモ帳などのテキストエディタを使いましょう
(私は見易さ使いやすさの面でサクラエディタを使っております)

▽記述式一覧
Required(必須)
tiles=
method=
 ├座標変化型
  fixed
  ├random
   ├weight=(任意)
   ├linked=(任意)
   └symmetry=(任意)
  └repeat
   ├width=(必須)
   ├height=(必須)
   └symmetry=(任意)
 └隣接変化型
  ├top
  ├vertical
  ├horizontal
  ├horizontal+vertical
  ├vertical+horizontal

  └ctm
└source=

Optional(任意)
metadata=
faces=
├matchTiles=

biomes=
minHeight=
maxHeight=
├matchBlocks=
├matchTiles=
connect=
└renderPass=

◇tiles=

設定内容:読み込むテクスチャを指定します
記述例
tiles=0.png   ⇒0.pngを読み込みます
tiles=0 1 2 3   ⇒0.pngと1.pngと2.pngと3.pngを読み込みます
tiles=0-3 10-13 ⇒0.pngから3.png、10.pngから13.pngを読み込みます
tiles=test    ⇒test.pngを読み込みます
tiles=test.png   ⇒test.pngを読み込みます
tiles=default   ⇒/blocksフォルダにある本来のテクスチャを読み込みます
tiles=assets/minecraft/textures/blocks/stone.png
         ⇒リソースパック内の/blocksフォルダにあるstone.pngを読み込みます


◇method=
method=は読み込んだテクスチャの表示方法となります
大きく二つに分けて座標変化型と隣接変化型があります
座標変化型は設置する座標で変化、隣接変化型は同じブロックが隣接することで変わります
多種多様にありますので一個ずつ解説していきましょう

method=fixed
必要テクスチャ枚数:1枚
これはブロックに指定したテクスチャを貼り付けるができます
後で解説するfaces=と組み合わせて使われることが多いです

主に使われていることが多いもの:面ごとのテクスチャが違うブロック


method=random
必要テクスチャ枚数:2枚以上
テクスチャをランダムに表示させることで、より自然さを出すことができます
ブロックごとのランダムではなく、面ごとのランダムになります

主に使われていることが多いもの:花、草土ブロック、葉ブロックなど

  weight=
  method=randomをサポートする記述式になります
  わかりやすい編集のためにここに書きますが必ず必要なわけではないです
  
  ランダムの比重を設定することができる記述式となります
  =の後にスペースで区切りながら読み込んだテクスチャ順に数字を記入していくことで比率設定していきます
  例:block1.properties
    method=random
    tiles=0 1 2 3
    weight=8 8 7 2
  0.png:1.png:2.png:3.png=8 : 8 : 7 : 2で表示させます


  linked=
  関連ブロック間のリンクさせる記述式になります

  例:二段植物に統一性を持たせる
   double_plant_top.properties
   method=random
   tiles=grass_top1 grass_top2 grass_top3
   weights=1 2 3
   linked=true

   double_plant_bottom.properties
   method=random
   tiles=grass_bottom1 grass_bottom2 grass_bottom3
   weights=1 2 3
   linked=true
  それぞれをランダムするプロパティとなります
  これが統一性がないときだと下のテクスチャがgrass_bottom1のとき
  上はgrass_top1だったりgrass_top2だったりgrass_top3だったりします
  そこでlinked=trueで統一性を持たせます
  すると下がgrass_bottom1のとき上は必ずgrass_top1になり
  下がgrass_bottom2のとき上は必ずgrass_top2に
  統一性を持ったままランダムすることができます


  symmetry=
  関連テクスチャ間のリンクさせる記述式になります

  symmetry=none   →リンクさせません(デフォ)
  symmetry=opposite →対面同士でリンクさせます
  symmetry=all    →全面でリンクさせます


  例:統一性をもったケーキランダム
   cake_bottom.properties
   tiles=0 1 2
   method=random
   symmetry=all

   cake_top.properties
   tiles=3 4 5
   method=random
   symmetry=all

   cake_side.properties
   tiles=6 7 8
   method=random
   symmetry=all
  それぞれをランダムするプロパティとなります
  これが統一性がないときだと下面1上面4横面8のケーキなど
  テクスチャがばらばらなケーキがでてきます
  そこでsymmetry=で統一性を持たせます
  この場合だと0-3-6、1-4-7、2-5-8でテクスチャを統一し
  下面0上面3横面6、下面1上面4横面7、下面2上面5横面8の3つケーキがランダムするようになります


method=repeat
必要テクスチャ枚数:width="数字" × height="数字"
指定したテクスチャパターンを繰り返す設定になります
横の長さと縦の長さを指定する必要があります

主に使われていることが多いもの:自然物や大きな絵のようなもの

  width=,height=
  widthが横の長さ、heightが縦の長さを設定します
  method=repeatを使用するにwidth=,height=の記入は必須事項となります
  例:block1.properties
    method=repeat
    tiles=1-12
    width=3
    height=4
  横3縦4の12個の塊をリピートしていく設定になります
  (参考画像の赤線はわかりやすいように編集で追加したものです)

  symmetry=
  上記したsymmetry=と大体同じ
  ただしnoneとoppositeのみ


method=top
必要テクスチャ枚数:1枚
これは縦に連続してブロックを置いたときに下につながってるブロックを指定のテクスチャをに変えることができます
verticalで代用できるので使用してるパックをみたことがありません(白目

主に使われていることが多いもの:??????


method=vertical
必要テクスチャ枚数:4枚
垂直、縦に積むことで横面のテクスチャを変えていく式です
4枚のテクスチャを使い、読み込んだ順で一番下、真ん中、一番上、何も隣接していないときとなります

主に使われていることが多いもの:サトウキビやサボテン、柱など


method=horizontal
必要テクスチャ枚数:4枚
水平、横に積むことで横面のテクスチャを変えていく式です
4枚のテクスチャを使い、読み込んだ順で一番左、真ん中、一番右、何も隣接していないときとなります

主に使われていることが多いもの:本棚など


method=horizontal+vertical
必要テクスチャ枚数:7枚
method=horizontalにmethod=verticalを加えたもの
テクスチャは3枚(horizontal)+1枚+3枚(vertical)

method=vertical+horizontal
必要テクスチャ枚数:7枚
method=verticalにmethod=horizontalを加えたもの
テクスチャは3枚(vertical)+1枚+3枚(horizontal)

method=ctm

必要テクスチャ枚数:47枚
隣接変化型の最上級となりますどんな形に設置してもきれいに接続できます
対象ブロックを中心にみた周りの8方向のブロック有無でテクスチャが変わります

主に使われていることが多いもの:ガラス、鉄など


左上から真ん中の数字が順になるようならべてみました、どの番号がどうつながるのかの確認にでもお使いくださいまし


海外の方がつくってくれたわかりやすい接続画像となります、左上から右下へと47枚順番になっていますうまくご活用ください


◇source=
1.4.x以前のパックで必要な記述式となります
1.4.x以前はテクスチャが一枚につながっていたのでその画像を指定する記述式です

  ~1.4.x以前のCTMについて~
  一枚につながった画像ファイルの名をsource=で指定して
  その画像の中のテクスチャをtiles=で指定するという形になっています
  (数字は私の方でわかりやすいように編集で追加したものです)



◇metadata=
メタデータの指定を行う記述式となります
メタ値を調べたい場合はこちらのサイトの2.データの項目で確認
またはこちらのtakuyanさんがつくったMetaDataChangerプラグインを使用することをおすすめします

メタデータについてはブロックIDがわかる方やもっだーの方などはわかると思いますが知らない方にもかる〜く()説明しましょう

  ~~メタデータ #とは~~
    ブロックにはブロックIDというものがあるのはご存知でしょうか
   石ならば1、鉄ならば42、羊毛ならば35といった具合にIDが振られております
   そこに若干の変化を保存するためのデータ値となります
    例えば階段の方向データを保持したり、石レンガや木材の種類データを保持したり、
   羊毛の色データを保持したり、日光センサーの出力レベルを保持したり、
   小麦の成長具合を保持したりとその使用は多岐にわたります
    メタデータはほぼすべてのブロックIDに存在しており、
   0~15までの16個あります
    表記の仕方として"ブロックID:メタデータ"とされることが多いです
   例 模様付き石レンガ 98:3 白樺の葉 18:2

  例:ジャングルの木材(5:3)にCTMをかける
    block5.properties
    method=random
    tiles=0 1 2 3
    metadata=3


◇faces=
方向を指定することで効果を指定した面に限定することができます
指定できる方向は以下の通り
faces=bottom 下面
faces=top   上面
faces=north  北
faces=south  南
faces=east   東
faces=west  西
faces=sides  横面すべて
faces=all   6面すべて

  例:上記のようなものをつくるとき
    block5a.properties
    method=fixed
    tiles=0
    faces=sides

    block5b.properties
    method=random
    tiles=1-3
    faces=top


◇matchTiles=
対象となるテクスチャを指定することでそのテクスチャ画像が使用される場所に対して座標変化型のCTMを上乗せできます


  例 block1a.properties
    tiles=0 1 2 3
    method=vertical

    block1b.properties
    tiles=10 11 12 13
    method=random
    matchTiles=./2.png



◇biomes=

CTMを指定したバイオームのみ限定します
例 biomes=Taiga、タイガのみに限定し、それ以外のバイオームでは対象外にします
バイオームの一覧はこちら

(バイオームは左からDesert、Taiga、River)
このようにバイオームによってサトウキビの植物を変えたり、
草のバイオームカラーと一致させた苔石テクスチャを用意して自然さを出せます

  例:block83.properties
    tiles=27 28 44 60
    method=vertical
    biomes=MushroomIslandShore Ocean River Beach Swampland


◇minHeight=
◇maxHeight=

y座標の高度で対象を限定することができます
minHeight=は指定高度以上に限定し、maxHeight=指定高度以下に限定します


  例:block121.properties
    method=fixed
    tiles=0
    minHeight=22

  例:block173.properties
    method=fixed
    tiles=1
    maxHeight=22


◇matchBlocks=
対象を指定ブロックIDのみに限定します


◇matchTiles=
対象を指定テクスチャのみに限定します


◇connect=
connect=では接続変化型の接続対象ブロック指定をすることができます
デフォルトでは同じブロックでしか接続の幅を広げることができます

connect=block   →接続対象ブロックを同じブロックにします
connect=tile    →接続対象ブロックを(バニラ状態で)同じテクスチャのブロックにします
connect=material  →接続対象ブロックをマテリアルブロック(CTM側に決められた素材ブロック)にします



◇renderPass=
ブロックの描画方法を変える記述式となります
本来氷や色ガラスなど半透明色テクスチャ対応ブロック以外でも使用可能にしたりできます
0~3まで4つの指定方法があります
(心の中でCTMの闇と呼んでいます、renderPass=もうまじわけわかんないです、ゆるしてください...なんでもしますから...)

  例:ガラスを色つきガラスに変える
    block20.properties
    method=ctm
    tiles=0-46
    renderPass=2

    block20a.properties
    method=ctm
    tiles=47-93
    renderPass=3
半透明テクスチャを読み込むのはrenderPass=3の方

注:1.6.2現在renderPass=はMCPatcherの方のCTMにのみ対応しています
  optifine版のCTMでは描画されないのでご注意ください


◇現在報告されているバグ
・パネル型ブロック(板ガラス、鉄柵等)がmethod=ctm以外効かない
・ベットブロックの上面が効かない
・ドアが半面しか効かない
・horizontal+vertical、vertical+horizontalがなんか動かない?


▽動かないときの対処
以下の項目を確認してみましょう

1スペルミス
 大文字、小文字、半角、スペース、スペル等々プロパティの記述が間違ってないか確認

2他のプロパティとの競合
 ほかのブロックのプロパティと競合している可能性があります
 対象をテクスチャ名で指定しているものと被ったり
 同じブロックIDのプロパティと被ったりしていないか確認
 よくあるミスとしてmetadata=0を忘れてそのブロックIDの0~15まで全部にかかっているぱてぃーん

3実は対象のブロックが出せていない
 しっかりIDとmetaを確認しましょう

4アキラメロ


▽最近流行のメタCTMについて
最近流行のメタCTMを簡単に説明します
本来クリエイティブなどでも入手不可能,設置不可能なブロックIDのメタにCTMをかけてテクスチャを変え、WorldEditをはじめとする外部ツール、MOD、プラグインを用いて設置することで擬似的に新ブロックを追加するCTMの総称となります

例えば1.6.x現在ブロックID5(木材)は5:0(樫)、5:1(松)、5:2(白樺)、5:3(ジャングル)、の四つまでつかっており5:4~5:15までは使われておりません
そこにCTMをかけてWEで設置しているのです

しかし、1.7.xで5:4(アカシア)、5:5(ダークオーク)が来たように
これからのマインクラフトのアプデでそのブロックIDを使うかもしれないのでそこには注意

LotMetaBlockPack (メタテクスチャ・建築補助)
ろっとさんが開発されたMOD&Pluginです。とてもおすすめです。


▽最後に
以上で私のCTM解説講座はおわりになります
長文おつかれさまでした
CTMは使いようによってはいくらでもすごくなる機能なのでこれからも期待大ですね
ただテクスチャ頼りになってしまうことになりがちなので、用量用法は守って自己責任でどうぞー
私の語彙力の少なさ故に大変はしょったところもあり、少々わかりづらいところがあるかもしれません
そのときはコメント欄かTwitterの方までご質問していただけたらと思います
ただし、CTMのことならなんでもわかってるぜHAHAHAHAマンではございませんのでお力添えできない場合や忙しい場合、機嫌の悪い場合がありますのでその点はご了承ください
(追記:質問してくるのは最低限自分で努力してくるのが条件です)



▽紹介時に使ったテクスチャ
john smith legacy
conquest
数字の入ったテクスチャ(ファイル名と数字を同じにしただけの自作)



▽応援
えびさんはとてもきれいなCTMテクスチャーの

Conquest(-by Monsterfish_さん)ーリンク
TenderWorld(-by うましかさん)ーリンク
HalcyonDays(-by いけぞうさん)ーリンク

を応援しております



▽宣伝
Twitterでのんびり建築してます@Ebibagamon72


▽注意
これはこちらこちら
もとに自環境(1.6.2&optifine1.6.2UA2)の検証によってつくった講座なので違う環境やこれからのバージョンでは若干違いがあるかもしれません
何か間違っているところがあれば、コメントかTwitterの方までやさしく教えてくれるとありがたいです


広告
×
水とフェンスは出来るのかな・・・?
67ヶ月前
×
modで追加されたブロックには適用できないんですか?
52ヶ月前
×
>>3
追加されたブロックのブロックIDを指定すればできたはず
52ヶ月前
×
ありがとうございます。いい勉強になりました。
35ヶ月前
×
1.9ではctmは対応してないのでしょうか?
method=repeatがうまく表示されず位置は合っているのにブロックの向きがバラバラになってしまいます。
32ヶ月前
×
バラバラになるのはデフォルトのblockstates内の記述のせいかと。
例えば草ブロックなら blockstates\grass.jsonとして
{
"variants": {
"normal": [
{ "model": "grass" }
]
}
}
などと記述して保存する必要があります。
18ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。