【4月企画】“あなたの鉄道の主力車両の魅力に迫る!”
みんなでつくる架空鉄道コミュニティ
thumbnail

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

鉄道
ブログ
88
CU
猫音みな
13 フォロワー

更新: 作成:2ヶ月前

公開日:2026/03/07 16:40 - 最終更新日:2026/03/08 00:50

※本記事は、以前より槻嶋製作所サイトにて公開している記事を新槻嶋製作所サイトに移植・リニューアルした改訂版となります。


このページでは、MTC2などの車両にガラスを追加する方法を解説しています。

なおこれから行うことは車両の改造に該当するため、配布されている車両を使用する場合は必ず改造が許可されているかを確認してから行うようにしましょう。


【概要・事前準備】

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

このページでは、Windows・MacなどのPC向けで解説していきます。スマートフォン等でもjsonなどを編集できるアプリやペイントアプリを利用することで同様に制作することが可能です。

おすすめのスマホペイントアプリはメディバンペイントです。

※他にはアイビスペイントXもありますが、こちらのペイントアプリから出力したpng画像ではMinecraft内で正常に読み込まれない場合があります。


■必要なもの

Minecraft統合版

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


PC、スマートフォンまたはタブレット端末

スマホからでもできなくはないですが、可能であればPCの方が作業しやすいです。


ガラスを追加したいアドオンパック

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


Blockbench

Blockbenchとは、主にMinecraft内の既存ブロックアイテムエンティティをカスタマイズしたり、新しく追加できたりなど、デフォルトのMinecraftには無いものを作ることができるフリーソフトです。


コードエディタソフト

この解説ではVisual Studio Codeというソフトを使用していきます。


ペイントソフト

この解説ではpaint.netというフリーソフトを使用していきます。

paint.netのインストール方法は下の記事で解説していますので、初めての方は是非ご覧ください!

paint.netのダウンロード・インストールから操作方法まで解説!マイクラアドオン製作講座番外編 ペイントソフトの導入 | 槻嶋研究室


【注意事項】

今回の記事で紹介している方法では、MCAコミュニティ公式等が配布しているTBTKMEVKLOCAL素材など車両側面等が1枚のテクスチャで構成されているアドオンでは使用できないので注意してください。

別の方法だとできるらしい?

詳しくは以前の記事をご覧ください。

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


【前置き】

この記事では、一例として旧槻嶋製作所で一般配布されている「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です。


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などの車両にガラスを追加する方法について解説していきました。

かなり分かりやすく解説できたのではないかと思っております。

ちょっとしたプログラミングもあり、アドオン初心者の方にとっては少し難しかった点などあったかもしれません。

これを機に少しでもアドオン製作に興味を持っていただけたら嬉しいです!

最後までお付き合いいただきありがとうございました!


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



コメント
コメントがありません
右のボタンからコメントを投稿できます。