【マイクラアドオン製作講座】MTC2などの車両にガラスを追加する方法を超わかりやすく解説!

アドオン紹介

このページでは、MTC2などの鉄道車両にガラスを追加する方法を解説しています。なお、これから行うことは車両の改造に該当するため、配布されている車両を使用する場合は必ず改造が許可されているかを確認してから行うようにしましょう。

概要・事前準備

カスタマイズにはある程度のアドオンの製作知識を有していることが望ましいですが、知識がない方でもついていけるよう可能な限りわかりやすく解説していきます。

このページでは、Windows・MacなどのPC向けで解説していきます。スマートフォン等でもjsonなどを編集できるアプリやペイントアプリを使用することで同様に製作することが可能です。
※初心者の方でスマホのペイントアプリを使用する際、よくアイビスペイントXというアプリを利用される方が多いですが、アイビスペイントから出力したpng画像ではMinecraft内に正常に読み込まれない現象が多発しています。そのため、メディバンペイントの利用をおすすめしております。なお、メディバンペイントはスマホ版だけではなくデスクトップ版も提供されています。

必要なもの

Minecraft統合版
 →基本は最新バージョンのものを使用するようにしてください。古すぎるとアドオンそのものが動きません。

PC、スマートフォンまたはタブレット端末
 →スマホでも不可能ではないですが、かなり作業がしづらいためWindowsなどを搭載したPCを使用するのが好ましいです。

ガラスを追加したいアドオンパック
 →ガラスを追加したいアドオンパックを用意しましょう。今回はMTC2の鉄道アドオンで解説していますが、その他のアドオンでも応用することができます。

Blockbench
 →Blockbenchとは、主にMinecraft内の既存ブロックアイテムエンティティをカスタマイズしたり、新しく追加できたりなど、Minecraftには無いものを作ることができるフリーソフトです。
Blockbenchのインストール方法は今後解説した記事を公開する予定ですので気長にお待ちください!

各OSに対応したコードエディタソフト
 →この解説ではVisual Studio Codeというソフトを使用していきます。
Visual Studio Codeのインストール方法も今後解説した記事を公開する予定ですので気長にお待ちください!

・各OSに対応したペイントソフト
 →この解説ではpaint.netというフリーソフトを使用していきます。
paint.netのインストール方法は下の記事で解説していますので、初めての方は是非ご覧ください!

注意事項

今回は「槻嶋製作所」で一般配布されているMTC2 懸垂式モノレールキットを使用して解説していますが、MCAコニュニティ公式等が配布しているTBTKMEVKLOCAL素材などは軽量化のため車体の前面や側面などがそのままの形でテクスチャが構成されています。
このようなタイプで構成されているアドオンでは、今回の方法でガラスを追加することはできません。つまり今回解説で使用している初期状態での懸垂式モノレールキットも対応していないので注意してください!
今回の方法では車体が全て立体キューブで構成されているアドオンのみ対応しています。
MTC2 懸垂式モノレールキットを使用する場合は、一度窓枠などを立体キューブで作り直し、テクスチャも大幅に変更する必要があります。

全く知識がない方にとっては「🤔???」だと思うので、一体どういうことなのか。画像を使ってもう少し分かりやすく説明しましょう。

上の画像はTBTKタイプである懸垂式モノレールキットのテクスチャ画像です。
画像を見る通り、元から車両の前面や側面が車両そのものの形になっており、ドアや窓の箇所だけを切り抜いて描かれているテクスチャになっています。

Blockbenchから見ると、長方形に引き伸ばされた1つキューブに1枚のテクスチャが張り付けられていることが分かります。

一方こちらの画像は「槻嶋製作所」で一般配布されているMTC2 千葉都市モノレール0形鉄道アドオンのテクスチャ画像です。画像を見る限り、先ほどの画像のような車体の前面や側面のテクスチャが一切見当たりません。

Blockbenchで車体を少し分解してみると、先ほどとは異なりそれぞれ1つの立体パーツになっていることが分かります。これら1つ1つのパーツをパズルのように繋ぎ合わせたような構造になっており、各キューブごとにそれぞれテクスチャが割り当てられています。

なぜバラバラのパーツでないといけないの?
鉄道アドオンも含め、一部のアドオンには「特殊発光」という発光技術が使用されています。
特殊発光」については後半の方で詳しく解説していますのでここでは省きます。
この特殊発光の関係で、TBTKなどテクスチャで窓枠などを作ってしまうと、ガラスを追加したときにドアや窓のために空けてあった空間内が真っ白に発光してしまいます。それを防ぐために、窓枠などを作る際は立体キューブで空間を作るため、パーツをバラバラにする必要があるのです。

懸垂式モノレールキットではできないのになぜそれで解説するの?
これは余談ですが、本当は千葉都市モノレール0形鉄道アドオンで解説したいところ、無断転用防止のためすべてのjsonファイル内の文字列がUnicodeエスケープに置き換えられており解説が難しいため、置き換えられていないキットを使用して解説しております。あらかじめご了承ください。

このことから、千葉都市モノレール0形鉄道アドオンのようにバラバラのパーツで構成されているアドオンでないと今回の方法ではガラスを追加することはできません。このことを念頭に置いておきましょう。

前置き

この記事では、一例として「槻嶋製作所」で一般配布されているMTC2 懸垂式モノレールキットを使用して解説していきます。
ここではアドオンの製作知識がない方のために前置きとして説明しているところなので既に理解している方はガラスの追加方法までスキップしてもらって構いません。


まず、MTC2の鉄道アドオンに限らずアドオンは基本リソースパックビヘイビアパックの2つのデータで構成されています。
MTC2 懸垂式モノレールキットをダウンロードし、zipファイルを展開すると以下のようにリソースパックとビヘイビアパックの2つのフォルダがあるのが分かると思います。

今回は車両にガラスを追加したいのでリソースパックのみに少し手を加えてきます。ビヘイビアパックは何もいじらずそのままにしておきましょう。
今回の場合monorail_tmp_resと書かれているフォルダがリソースパックなのでまずはこちらを開きましょう。
開くと以下のようにいくつかデータが出てきます。

この中にあるmodelsと書かれたフォルダを探し、modelsentityの順に開いていきましょう。
開くと以下のような3つのjsonファイルが出てくるかと思います。
※mtcの後ろについている数字は個人ごとに異なります。
※jsonファイルの数は、アドオンで追加される車両の数に応じて変わります。今回は、先頭車中間車最後尾車の3つの車両が追加されるので3つのjsonファイルが存在します。先頭車最後尾車だけの場合は2つのjsonファイルだけになります。

この3つのjsonファイルは、それぞれ車両本体 (先頭車・中間車・最後尾車) の3Dモデルデータ、つまりBlockbenchから出力した3Dモデルデータがここに入っているわけです。
ではmtc〇〇〇_1.jsonと書かれたファイルをBlockbenchで開いてみましょう。上の画像で言うと一番左にあるファイルですね。

Blockbenchで開くと先頭車両の3Dモデルが表示されると思います。
表示されたことを確認できたら早速ガラスを追加する準備をしていきましょう。
確認ができたら一旦Blockbenchは閉じてもらっても構いません。

ガラスの追加方法

1. ガラステクスチャの準備

まず下準備として、テクスチャにガラスを追加する必要があります。今回はpaint.netを使用してガラスを描いていきます。

上の画像のようにmanifest.jsonとかが置いてあるところまで一度戻り、texturesと書かれたフォルダを探し、texturesentityの順に開いていきましょう。
開くと以下の画像のように3つのpng画像が出てくるかと思います。
※中に_mapping.png_parts.pngが入ってることがありますが、この2つのファイルは全く関係ないファイルなので無視しちゃってOK!

まずは一番左にあるmtc〇〇〇_1.pngpaint.netで開いてみましょう。

開くとこのような画面になり、自由にペイントできる状態になりました。
早速このテクスチャ内にガラスを描いていきます。どこでもいいので空いている場所にガラスを描いていきましょう。
今回は化粧板と書かれている隣の赤枠で囲ってあるところに描きました。
ガラスを描くときのおすすめカラー・透明度は、HSVと書かれている下の数値の通り、H: 164, S: 13, V: 34透明度: 112です。

ガラスを描くことができたら左上にある「ファイル」を選択し「上書き保存」で変更内容を保存しましょう。
保存することができたら他のmtc〇〇〇_2.pngmtc〇〇〇〇_3.pngにも同じようにガラスを描いて上書き保存していきましょう。

2. ガラスモデルの追加

テクスチャを準備できたら、次はBlockbenchを使用してガラスモデルを追加していきます。
再度manifest.jsonとかが置いてあるところまで戻り、もう一度modelsと書かれたフォルダを探し、modelsentityの順に開いていきましょう。

そうすると先ほどの前置きで出てきた3つjsonファイルが出てきますよね。
まずはmtc〇〇〇_1.jsonと書かれたjsonファイルを選択してコピー&ペーストで複製しましょう。ペーストする場所は同じところで問題ないです。
複製できたら「mtc〇〇〇_1 – コピー.json」のようにファイルが1つ追加されるので、複製されたjsonファイルの名前をmtc〇〇〇_1_glassと変えてあげましょう。
この作業を残りの2つのjsonファイルにも同様に複製名前の変更をしていきましょう。
できたら以下のように合計6つのjsonファイルができると思います。

完了したら最初に複製したmtc〇〇〇_1_glass.jsonと書かれたガラスモデル用のjsonファイルをBlockbenchで開きましょう。

開くと車体本体の3Dモデルが表示されました。ここからガラスモデルを追加していきます。
まずは右中央にある「四角い+アイコン」を押して新しくキューブを追加しましょう。

右下のリストからもキューブが追加されていることを確認することができます。

新しく追加されたキューブを右クリックして「名前を変更」を選択し、分かりやすいように「glass」と変更しておきましょう。

名前の変更ができたら、ガラスを描いた位置までテクスチャの割り当て位置を調整してあげましょう。
NorthEastSouthWestUpDownそれぞれ全て面をガラスの位置まで移動、大きさを調整しましょう。

全ての面を割り当てできたらこのように全面半透明になったと思います。

続いて、mtc_bodycar1の順にグループを開いていき「+マークのフォルダアイコン」を押すとboneという名前で新しくグループが追加されます。

追加されたグループを右クリックし、こちらも分かりやすいように名前を「glass」と変更しておきます。

↑移動後の画像

glassキューブを左クリック長押しで掴みながら、glassグループにドラック&ドロップします。

↑移動後の画像

今度はglassグループを掴みながら、car1グループにドラック&ドロップします。
※車両によってはcar1グループが無く、mtc_bodyグループ直下で各グループが配置されている場合もあります。その場合、glassグループmtc_bodyグループにドラック&ドロップしてください。

キューブグループを移動させる際、位置を間違えないように注意してください。

移動させることができたら窓枠に合わせてガラスキューブを配置していきましょう。

上の画像が実際にガラスを追加したものになります。
事前に注意事項で説明した通り、初期状態の懸垂式モノレールキットではガラスを追加することはできないため、画像では千葉都市モノレール0形鉄道アドオンを使用して解説していきます。

ガラスを追加することができたら、車両本体は削除してガラスだけが残るようにしないといけないので、mtc_bodyグループとその中に入っているcar1グループglassグループだけを残して、あとは全て削除しちゃいましょう。誤ってガラスも消さないように!
car1グループが無い場合は、glassグループだけ残すようにしてください。
※画像ではドアの箇所にもガラスを入れているので、ここではanimanm_doorグループ内にそれぞれドアガラスのキューブが入ってます。また、ドアにもガラスを追加する場合ドアガラスにもアニメーションを設定しなければいけません。ドアガラスのアニメーションの設定方法は最後におまけとして解説するのでここでは省きます。

ここまでできたら、左上にある「File」から「上書き保存」で変更内容を保存しましょう。
この作業を残りのmtc〇〇〇_2_glass.jsonmtc〇〇〇_3_glass.jsonにも同じようにガラスモデルを追加していきます。結構大変ですが諦めずに頑張っていきましょう!

なぜ車両本体とガラスでモデルを分けたの?車両本体のモデルに直接ガラスは付けられないの?
実はモデルデータを分ける理由が最初に少し出てきた「特殊発光」が大きく関わっています。
特殊発光」というのは以下の画像のように、夜などの暗闇でもテクスチャが明るく発光します。発光度はテクスチャの透明度によって変わります。透明度が0に近いほど発光度は強くなります。
・・・もしかしたら勘の鋭い人はここで気づいたかもしれませんね。
一部のアドオンには特殊発光技術が使用されています。そして発光度はテクスチャの透明度で変わると言いましたよね。ガラスは半透明です。
つまり、車両本体にダイレクトにガラスを付けてしまうと、Minecraft内で実際見たときにガラスも一緒に発光してしまいます。それを防ぐためにあえてモデルを分けて、この後出てくるプログラムでガラスモデルにはテクスチャの発光効果を無効化して半透明にしているのです。

3. プログラムの追加

またmanifest.jsonとかが置いてあるところまで戻り、再度modelsentityの順で開き、mtc〇〇〇_1_glass.jsonを今度はVisual Studio Codeで開きましょう。
開くと以下のようなプログラムが書かれているかと思います。

{
    "format_version": "1.21.0",
    "minecraft:geometry": [
        {
	    "description": {
		"identifier": "geometry.c_mtc1234_1",
		"texture_width": 620,
		"texture_height": 385,
		"visible_bounds_width": 61,
		"visible_bounds_height": 18,
		"visible_bounds_offset": [0, 1, 0]
	    },
※コードは変更する箇所だけを抜粋しています。

“identifier”: “geometry.c_mtc1234_1”,と書かれている箇所を探し、“geometry.c_mtc1234_1”,“geometry.c_mtc1234_1_glass”,に変更してCtrl+Sキーで保存しましょう。
この際、後ろに , (カンマ) を付け忘れないように注意!

{
    "format_version": "1.21.0",
    "minecraft:geometry": [
        {
	    "description": {
		"identifier": "geometry.c_mtc1234_1",
		"texture_width": 620,
		"texture_height": 385,
		"visible_bounds_width": 61,
		"visible_bounds_height": 18,
		"visible_bounds_offset": [0, 1, 0]
	    },

↓以下のようにコードを変更

{
    "format_version": "1.21.0",
    "minecraft:geometry": [
        {
	    "description": {
		"identifier": "geometry.c_mtc1234_1_glass",
		"texture_width": 620,
		"texture_height": 385,
		"visible_bounds_width": 61,
		"visible_bounds_height": 18,
		"visible_bounds_offset": [0, 1, 0]
	    },

変更ができたら、Ctrl+Sキーで保存しましょう。
次にmtc〇〇〇_2_glass.jsonを開き、同じように書き換えていきます。

{
    "format_version": "1.21.0",
    "minecraft:geometry": [
        {
	    "description": {
		"identifier": "geometry.c_mtc1234_2_glass",
		"texture_width": 620,
		"texture_height": 385,
		"visible_bounds_width": 61,
		"visible_bounds_height": 18,
		"visible_bounds_offset": [0, 1, 0]
	    },

mtc〇〇〇_2_glass.jsonも書き換えができたらCtrl+Sキーで保存。mtc〇〇〇_3_glass.jsonも同じように書き換え保存をしていきましょう。

全て書き換えができたら、またまた出てきましたmanifest.jsonくん!好きですね~
さて話を戻して、manifest.jsonくんがあるところまで戻って、次はentityと書かれたフォルダを探して開きましょう。

開くとここにもmtc〇〇〇_1.jsonのような名前のjsonファイルが出てきます。ここに入っているjsonファイルはentityに対する色々なプログラムが書かれているデータファイルになります。
まずは一番左にあるmtc〇〇〇_1.jsonをこちらもVisual Studio Codeで開いてみましょう。

{
    "format_version": "1.8.0",
    "minecraft:client_entity": {
        "description": {
            "identifier": "mtc:mtc1234_1",
            "materials": {
                "default": "phantom",
                "invisible": "phantom_invisible"
            },
            "textures": {
                "default": "textures/entity/mtc1234_1"
            },
            "geometry": {
                "default": "geometry.c_mtc1234_1"
            },
※コードは変更する箇所だけを抜粋しています。

開くとこのようなプログラムが書かれているかと思います。

{
    "format_version": "1.8.0",
    "minecraft:client_entity": {
        "description": {
            "identifier": "mtc:mtc1234_1",
            "materials": {
                "default": "phantom",
                "glass":"slime_outer",
                "invisible": "phantom_invisible"
            },
            "textures": {
                "default": "textures/entity/mtc1234_1",
                "glass":"textures/entity/mtc1234_1"
            },
            "geometry": {
                "default": "geometry.c_mtc1234_1",
                "glass": "geometry.c_mtc1234_1_glass"
            },

“materials”と書かれた箇所を探し、“default”: “phantom”,の下に“glass”:”slime_outer”,を追加します。

次に“textures”と書かれた箇所を探し、“default”: “textures/entity/mtc1234_1”,の下に“glass”:”textures/entity/mtc1234_1″を追加します。この際、“default”: “textures/entity/mtc1234_1”後ろに , (カンマ) を付け忘れないように注意!

最後に“geometry”と書かれた箇所を探し、“default”: “geometry.c_mtc1234_1”,の下に“glass”: “geometry.c_mtc1234_1_glass”を追加します。この際も , (カンマ) を付け忘れないように注意!

変更ができたら一番下にスクロールしていくと“render_controllers”と書かれた項目が出てくるかと思います。

"render_controllers": [
    "controller.render.phantom"
],
※コードは変更する箇所だけを抜粋しています。

↓以下のようにコードを変更

"render_controllers": [
    "controller.render.phantom",
    "controller.render.glass"
],

“controller.render.phantom”の下に“controller.render.glass”を追加します。この際も , (カンマ) の付け忘れに注意!

書き換えができたら、Ctrl+Sキーで保存しましょう。
この作業をmtc〇〇〇_2.jsonmtc〇〇〇_3.jsonにも同じようにやっていきましょう。

mtc〇〇〇_2.jsonなどの場合、“glass”:”textures/entity/mtc1234_2″“glass”: “geometry.c_mtc1234_2_glass”のようにmtc〇〇〇_<数字>数字が変わるので注意!

さあもう何回目の登場かわからんmanifest.jsonくんがあるところまで戻りましょう。

manifest.jsonくんとかかある場所で、新しくrender_controllersという名前でフォルダを作成しましょう。ファイルの方じゃないので間違えないよに気を付けてくださいね。

新しく作ったrender_controllersという名前のフォルダを開いて、中にglass.render_controllers.jsonという名前で新しいjsonファイルを作成しましょう。今度はファイルですよ。フォルダファイルの違いを覚えておいてくださいね。

{
    "format_version": "1.18.0",
    "render_controllers": {
        "controller.render.glass": {
            "geometry": "Geometry.glass",
            "materials": [
                {
                    "*": "Material.glass"
                }
            ],
            "textures": [
                "Texture.default"
            ]
        }
    }
}

glass.render_controllers.json内にはこのようなコードを追加しましょう。
上記のコードをそのままコピペしてもらって大丈夫です。
追加できたらCtrl+Sキーで保存しましょう。

4. 動作確認

ここまでできたらこの2つのファイルを選択した状態でzipファイルに圧縮します。

圧縮したzipファイルの拡張子を.mcaddonに変更しMinecraftにインポートしてみましょう。

正しくインポートされ、車両をスポーンさせたときに適切にレンダリングされていれば成功です!
車両が透明であったり、テクスチャがバグっている場合、以下の問題が考えられます。

車両が透明になっちゃった!
modelsentityフォルダ内のjsonファイルやentityフォルダ内のjsonファイルに記述ミスがある可能性が高いです。透明になっている車両のjsonファイルをVisual Studio Codeで開き、この記事と照らし合わせてミスがないかをチェックしてみてください。

テクスチャがバグった!
entityフォルダ内のjsonファイルで、テクスチャファイルの名前が間違っている可能性が高いです。バグっている車両のjsonファイルをVisual Studio Codeで開き、texturesentityフォルダ内にあるpng画像のファイル名とjson内の“textures”の箇所で記述しているpng画像のファイル名が両方同じ名前になっているかを確認してみてください。

お・ま・け

ドアガラスにアニメーションを設定する方法

ここからはある程度アニメーションの知識があることを前提で解説していきます。知識がない方にとっては少し難易度が高いかもしれません。自信のある方は挑戦してみてください。

まずは、modelsentityで車両本体のモデルデータをBlockbenchで開きましょう。
開いたら、右上にあるAnimateからアニメーションを設定する項目を開きましょう。

どの順番からでも問題はないですが、今回はopen_leftという名前のアニメーションから設定していくとしましょう。
左にあるアニメーションリスト内にあるopen_leftという名前のアニメーションを選択し、右のグループリストからアニメーションが設定されているドアグループを探しましょう。

探すことができたら、新規タブでガラス用のモデルも同時に開き、こちらもアニメーションの設定項目を開きましょう。
開いたら、車両本体のドアアニメーションに設定されている白いポジションマーカーと同じ位置になるようにガラス用のモデルの方にもポジションマーカーを設定していきます。

車両本体側のモデルガラス側のモデルからそれぞれopen_leftのアニメションを再生した際に、車両本体側のドアガラス側のドアガラスが同じ動きをすれば成功です。
成功したら他のopen_rightclose_leftなどの同じように設定していき、全てのガラスモデルにアニメーションを設定していきましょう。

まとめ

以上、【マイクラアドオン製作講座編】MTC2などの車両にガラスを追加する方法について解説していきました。かなり分かりやすく解説できたのではないかと思っております。ちょっとしたプログラミングもあり、アドオン初心者の方にとっては少し難しかった点などあったかもしれません。これを機に少しでもアドオン製作に興味を持っていただけたら嬉しいです!
なお、この解説で使用したガラス付きのMTC2 千葉都市モノレール0形鉄道アドオン近日一般配布予定ですのでお楽しみに!
最後までお付き合いいただきありがとうございました!

今回のお相手は槻嶋製作所で研究員をさせていただいております猫音みなでした!良いマイクラライフを!

コメント

  1. はしゃさん より:

    今までこういうの無かったので助かりました…。
    めっちゃ分かりやすくてすごいです!
    本当にありがとうございます!

  2. テセウス より:

    ガラスの追加の仕方がイマイチ理解できていなかったので、とても参考になりました!