hayanasa’s Flower Factory

マイクラ建築勢向けのMOD/Plguin解説がメインです。8割自己満足です。非収益です。引用などご自由にどうぞ。たまに関係ないことを書くかもしれません。

"テクスチャ混ぜる"のをちょっと踏み込んで解説

 

 

f:id:hayanasa:20180220203450p:plain

前回↓の記事の続きになります。

hayanasa.hatenablog.com

 

はじめに
この記事はMinecraft Java Edition1.7.10でメタを使ったリソースパック(cocricot、TenderWorld、Conquestなど)を使っている人向けの記事です。が、一応1.7.10以降にも応用はできます。

どちらにしろOptifine環境が前提です。さらにこの解説ではメタブロックを扱えることも前提としています。このあたりは解説しませんので申し訳ないですが自分で検索してください。

当然ですが、各リソースパックの規約はよく読みましょう。特に配布するといった場合は注意が必要です。製作者様方への敬意も忘れずに。そもそも弄ること自体が禁止だったりするものもありますので注意。

 

概要
テクスチャ混ぜ解説その2です。

今回は実例を通して、よく使いそうなプロパティファイルの書き方を色々解説していきます。

ある程度プロパティを自由にいじれるようになるのが目標です。個人的には前回よりもうちょっと見やすい解説をするのが目標です。前回で基本は解説したのである程度は省きます。

Halcyon Days v1.2 [1.6-1.7](以下ハルシ)

Tender World[1.7.10]verβ8_ 軽量版 (以下テンダー)

の二つをお借りしています。ベースは前回と同じcocricot_1.7.10c_v2.0.1(以下コクリ)。

前回から引き続いてmy_addonを弄っていきます。

 

f:id:hayanasa:20180215213613p:plain

前回も紹介させていただきましたが、プロパティの記述法はこちらの記事が非常に参考になります。

ch.nicovideo.jp

 

解説

 

 

バイオーム指定してみる(biomes)

実は凄い簡単で、プロパティファイルに「biomes=Ocean」とか付け足すだけでいけます。
「biomes=Plains Ocean DeepOcean」みたいにスペースで区切ると複数指定もできます。
単体でも"biomes"じゃないと反応してくれませんので注意。

参考に、ハルシの蜘蛛の巣メタの花を移植。
Halcyon Days v1.2 [1.6-1.7]/assets/minecraft/mcpatcher/ctm/cobweb/内から持ってきています。

f:id:hayanasa:20180220161514p:plain

プロパティの中身は以下の通り。

tiles=9-13
method=random
metadata=12
biomes=Ocean

バイオームを変えて試してみましょう。環境によってはリログを忘れずに。

どちらも蜘蛛の巣メタ12です。左がplainsで、右がocean。

f:id:hayanasa:20180220202834p:plain

 

さらに、同じフォルダ内にblock30a.properties、block30b.properties…といった具合にプロパティを複製し、tilesなどの記述を変えてbiomes=以下も変えれば、さらに色々なバイオームで分けることもできます。

例として先ほどと同じフォルダにblock30a.propertiesを追加して以下のように書きました。

tiles=9
method=fixed
metadata=12
biomes=DeepOcean

f:id:hayanasa:20180220202903p:plain

画像は左からplains、ocean,deepoceanになっています。

 

なお、読み込まれる順番によっては上手く反映されない場合があったりするらしいので、バイオームを指定したプロパティはできるだけ若い名前にしたり、入れるフォルダを変えたりして、先に読み込まれるようにしてみると良いかもしれません。

もしくは、matchTilesを使うと強制的に読み込ませることができるそうです、蜘蛛の巣の場合はmatchTiles=cobwebという記述を一行入れるだけ。

二段花を蜘蛛の巣化(vertical)

verticalというメソッドの解説になります。これを使うと、ブロックを縦につなげたときにテクスチャを変化させられます。よくある蜘蛛の巣メタを縦に積むと石像になったりするアレ。 

ここでは実例としてハルシの二段花を蜘蛛の巣メタに入れてみます。

Halcyon Days v1.2 [1.6-1.7]/assets/minecraft/textures/blocksから、double_plant_rose_bottom.png、double_plant_rose_top.png、flower_tulip_red.pngの三枚を持ってきて名前を変えました。

f:id:hayanasa:20180220162901p:plain

tiles=0 1 1 2
method=vertical
metadata=6

 

tilesはこのように複数指定すると、左から順番に読み込まれます。読み込まれた順で、下、真ん中、上、単体の時、と言った具合にテクスチャが貼られます。

実際に重ねてみるとこうなります。今回の場合3つ以上重ねることは想定していません。

f:id:hayanasa:20180220163126p:plain

上手く工夫すれば蜘蛛の巣やキノコに当てる小物を増やせます。コンクエストの鳥を重ねると空飛ぶ鳥に変化するというのもこの技術が使われています。

horizontal(横に繋がる)も同じ感じ。

ランダム表示なやつをメタにいれてランダムじゃなくしてみる(random,faces) 

ハルシの、野菜などが入ってる木箱(重ねたオークのハーフ、ID125:0)をスポンジメタに移行してみます。

f:id:hayanasa:20180220163402p:plain

このブロックは座標ごとにランダムで中に入ってるものが変わるようになっています。method=randomという機能です。

今回はそれを分離してスポンジメタに割り当ててやり、好きなものを自由に設置できるようにしてみます。

早速ハルシの中身を探してみましょう。〜〜/ctm/wood_oak 内に、block125のプロパティが4つありました。

f:id:hayanasa:20180220163550p:plain

試しにblock125.propertiesを覗いてみます。一行目にfaces=sidesとあるのが見えると思います、これはtilesで指定されている画像をブロックの側面に割り当てるという意味の指定になります。

つまりtilesで指定されている64.png〜67.pngがブロックの側面を構成するテクスチャとなりますので、コピペして持ってきます。

次にblock125a.propertiesを開きます。faces=topとあるので、70.png〜78.pngが上面に貼られるテクスチャだとわかります。全部やると多いので、今回は70〜73だけ持ってきましょう。

block125b.propertiesも開いて同じようにやってみてください。cは別のメタなので今回はスルーします。

 

フォルダの中身はこうなりました。

f:id:hayanasa:20180220163912p:plain

[ ]でくくられているのはファイル名です、間違えて書かないように注意

[block19.properties]

faces=sides
tiles=64-67
method=random
weights=10 10 10 80
metadata=3-6

 

[block19a.properties]

faces=bottom
tiles=68
method=fixed
metadata=3-6

 

[block19b.properties]

faces=top
tiles=70
method=fixed
metadata=3

 

[block19c.properties]

faces=top
tiles=71
method=fixed
metadata=4

 

[block19d.properties]

faces=top
tiles=72
method=fixed
metadata=5

 

[block19e.properties]

faces=top
tiles=73
method=fixed
metadata=6

 

f:id:hayanasa:20180220164209p:plain

 

block19.propertiesにあるweights=10 10 10 80という指定ですが、random指定した際にどのような割合でテクスチャを使用するかを指定してます。

 

TenderWorldの時計テクスチャを無理やり一つにまとめてみる(repeat)

method=repeatの解説ついでに、ちょっと個人的に便利だった小ネタをついでに紹介します。

TenderWorldの時計、カッコイイですよね。元々はメタ7個に分けて割り当てられてるものを組み合わせて使うようになっています。

f:id:hayanasa:20180220190615p:plain


これを無理やり簡易的に一つのメタにまとめて導入してみようという試みです。そのまま導入したい場合は今までの知識でできるはずですので挑戦してみてください。

 

repeatというmethodは、横幅と縦幅を指定し、その大きさでテクスチャのパターンを繰り返す方式です。自然物でよく使われています。
座標が固定されてしまうので今回のようなケースだとこんな感じでちょっと制限がついてしまいます。

f:id:hayanasa:20180220191719p:plain


フォルダの中身とプロパティはこんな感じ。

画像はTenderWorld[1.7.10]verB8_/assets/minecraft/mcpatcher/ctm/meta/ore/LapisLazuli Ore/ より

f:id:hayanasa:20180220191918p:plain

[block19.properties]

tiles=0-24
method=repeat
width=5
height=5
metadata=11

 

ちょっと工夫すればこういうこともできたり。余白を挟んで横には7つづつリピートするようにしています。

f:id:hayanasa:20180220193056p:plain

f:id:hayanasa:20180220192950p:plain

[block19a.properties]

tiles=25 0-4 25 25 5-9 25 25 10-14 25 25 15-19 25 25 20-24 25
method=repeat
width=7
height=5
metadata=12

 

まあメタに空きがあれば素直にそのまま移植したほうがいいですよね

 

TenderWorld本棚の移植(若干複雑なフォルダ構成の場合の対処)

テンダーの本棚メタ(47:8、47:9)を移植してみます。

フォルダを探して覗いてみた所…膨大な数のプロパティファイルがあります。 

TenderWorld[1.7.10]verB8_/assets/minecraft/mcpatcher/ctm/meta/bookshelf/meta8-9/

 

どうやらmethod=ctmを利用して空のテクスチャを割り当てた後に、matchTilesを使ってmethod=randomでテクスチャを上書きしているような感じみたいです。

とりあえず全部コピーしてきて、プロパティの名前を変えていきます。metadataをすべて書き換えるのは流石に面倒なので、metadataの数字だけは元のものと揃えることにします。103:8、103:9(スイカメタ)に割り当てていきます。

f:id:hayanasa:20180220194021p:plain

がんばって名前を変え、リソパを反映…おっと、何かがおかしいですね。

f:id:hayanasa:20180220194319p:plain


このような場合は別のフォルダにあるプロパティからテクスチャを指定しているという事なので、それも探して持ってこないといけません。

ブロック置き場を眺めた所、どうやら作業台メタ0と同じテクスチャを使っているようなので、フォルダを漁ってみます。

TenderWorld[1.7.10]verB8_/assets/minecraft/mcpatcher/ctm/workbench/

に、block47aa.properties〜block47ad.propertiesが見つかると思います。

このように別のフォルダからもプロパティで指定していたり、ということはわりとあるようです。リソパの容量削減テクニックみたいなものでしょうか。

記述を覗くと100.png〜203.pngを使っていることがわかるので、それらの画像ファイルと4つのプロパティをコピーして持ってきます。名前がかぶっているので先ほどのフォルダは別のフォルダに置きました。先ほどと同じようにプロパティの名前を変更します。中身は弄っていません。

f:id:hayanasa:20180220200828p:plain

(一応参考までに。フォルダ構成としてはctmフォルダ内にに103_melonというフォルダを作成、さらにその中にmeta8-9とmeta8-9workbenchという二つのフォルダを作って分けています)

f:id:hayanasa:20180220201332p:plain

無事反映されました。

 

このように別フォルダから指定する必要が出てきた場合、データの読み込み順によっては上手く行かなかったりする場合があるかもしれません。そういった場合は同じ階層にフォルダを置き、フォルダの名前を前後させてやったりと試してみれば解決するかもしれません。今回の場合はmatchTilesで指定されているので気にしなくても大丈夫でしたが。

 

おわりに 

前回に引き続き、少しでも参考になれば幸いです。

もっと詳しく解説しているページはいくらでもあるので、是非やりたいことに応じて探してみてください。本記事で少しでもリソパ弄りの敷居が下がっていれば幸いです。

 

わからないことがあればコメントかTwitterのDM(@hayanasa)で連絡いただければ個別で対応するか追加で記事を書きますTwitterのDMが一番早く気づきます。
より良い記事にしたいので些細なことでも是非お気軽に質問してください
スペルミスなどの初歩的なミスがないかは予めチェックしておいてくださると助かります。できるだけ状況を詳しく書いて頂けるとやり取りがスムーズになるかと思いますのでよろしくお願いします。

ミスや間違っている記述やこうしたほうがいいなどあれば指摘して頂けると大変嬉しいです。解説記事に関しては素人なので是非。