YuuuuKiのマイクラ日記

マイクラ配布ワールド制作のこと中心にのんびり書いていきます!

アドオンでオリジナルブロックを作ろう! ~その2~

 

こんばんは!YuuuuKiです。

 

本日は「アドオンでオリジナルブロックを作ろう!」の2回目です。

前回はBlockbenchでブロックをモデリングする方法を書きましたが、うまく作れたでしょうか?

yuuuuki.hateblo.jp

最初から完成度の高いものを作れなくてもOKです。

とりあえず作ったものをマイクラに取り込んでみましょう。

少し長くなりますが、一気に説明します。

モデルを出力しよう

作ったモデルを出力します。

File>エクスポート>Bedrock Model エクスポートをクリックします。

ウィンドウが出てくるので、名前を付けて適当な場所に保存しましょう。ファイルの拡張子は「json」です。

また、左下のテクスチャ横の💾マークを押し、テクスチャも保存します。こちらの拡張子は「png」です。

※拡張子はファイルの種類を表しています。画像ならpngのほかにjpegなど、音楽ならmp3などがありますね。

 

保存したjsonファイルを開いてみましょう。(下記はNotepad++で開いています。)

上から6行目"identifier": "geometry.unknown"の部分はモデルの名前を表しています。

unknownだとわかりにくいので、適当な名前に変更しましょう。

 

イクラでアドオンを使えるようにしよう

アドオンを使用するにはマイクラ側の準備も必要です。

アドオンを取り込むためのワールドを作りましょう。

その際、「ホリデークリエイターの特徴」「今後のクリエイター機能」をオンにしましょう。

※これらの名称はバージョンによって変わるようです。

※これらをオンにしたワールドは動作が不安定になる可能性があります。

 

アドオンを作成する場所を開こう

次にPCのエクスプローラを開きます。

左上のアドレスバーに次のアドレスを入力して、移動してください。

 

C:\Users\[ユーザー名]\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftWorlds

 

[ユーザー名]のところは自分のPCのユーザ名を入れてください

 

移動すると、下記のようにフォルダが並んでいると思います。

これら一つ一つがマインクラフトの各ワールドのデータです。

※更新日時順に並べると、マイクラのワールド選択画面と同じ並びになります。

どれでもいいのでフォルダの中を見てみましょう

「levelname.txt」を開くと、ワールドの名前が書かれています。

更新日時と名前を頼りに、先ほど作ったワールドのフォルダを開いてください。

 

エクスプローラの上の方にある表示をクリックし、「ファイル名拡張子」のチェックを入れると、ファイル名の後ろに「txt」や「json」などの拡張子が表示されるようになります。

 

アドオンを作成しよう

さて、やっとアドオンを作成する準備ができました。

開いたフォルダの中に「behavior_packs」「resource_packs」というフォルダがあります。(ない場合は自分で作成してください。)

・behavior_packs(ビヘイビアパック)

ブロックやエンティティ、その行動などを定義するファイルが入ります。

・resource_packs(リソースパック)

ブロックやエンティティの形、テクスチャなどを定義するファイルが入ります。

 

まずは、behavior_packsフォルダの中を見てみましょう。

まだ何もないと思うので、適当な名前のフォルダを作成してください。

 

ここで、このフォルダはいったん置いておき、前回ダウンロードしてもらった公式のビヘイビアパックのフォルダを開いてください。

中に「manifest.json「pack_icon.pngというファイルがあるので、これを先ほどbehavior_packsの中に作成したフォルダにコピペしてください。

 

つづいて、resource_packsフォルダも同様に適当な名前のフォルダを作成し、公式のリソースパックフォルダから「manifest.json「pack_icon.pngをコピペしてください。

 

manifest.jsonはリソースパックやビヘイビアパックの名前やバージョンを定義しているファイルです。

resource_packsフォルダ>自分で作成したフォルダに置いたmanifest.jsonを開いてみましょう。

下記にそれぞれの項目が何を示しているのか書いてみました。

 

それぞれの項目を書き換えていきます。

・description

何でもよいです。僕はいつもバージョンと名前を入れています。2か所ありますが、同じでよいと思います。

・name

何でもよいです。リソースパックの名前です。

・uuid

「UUID」はマイクラがパックを識別するためのIDです。

パックごとに異なるIDを使用する必要があります。

下記のサイトで生成ボタンをクリックすると作ることができます。

作成したUUIDをコピペしましょう。

2か所ありますが、異なるUUIDを書いてください。

uuid.doratool.com

以上の通り書き換えると、こんな感じになります。

※descriptionやnameなどは日本語でも問題ないようです。しかし、マイクラ以外のシステムでは、プログラム中に日本語が入ると動作しなくなる場合も多いです。なので、僕はどんなプログラムでも影響がありそうな部分は英数字で書くようにしています。

 

behavior_packsフォルダ>自分で作成したフォルダにあるmanifest.jsonも同様に編集します。こんな感じです。

descriptionとnameはリソースパックと同じで自由に付けましょう。

UUIDは3か所あります。

上二つは先ほどのサイトで新しく作った異なるUUIDを書きましょう。

一番下のUUIDはリソースパックの一つ目のUUIDと同じものを書いてください。

イクラがこのUUIDが同じリソースパックとビヘイビアパックをセットで認識してくれるようになります。

 

オリジナルブロックを追加しよう

作成したブロックを追加します。

behavior_packsフォルダ>自分で作成したフォルダを開き、「blocks」というフォルダを作ってください。

blocksフォルダを開き、右クリック>新規作成>テキストドキュメントをクリックしてください。

ファイルが作成されるので、名前を適当に付け、拡張子をjsonに書き換えてください。(警告が出た場合はOKで)

作ったファイルを開き、以下をコピペしてください。

{
    "format_version": "1.16.100",
    "minecraft:block": {
      "description": {
        "identifier": "block:nuigurumi_raby",
        "properties": {
          "block:block_facing": [2, 3, 4, 5]
        }
      },
      "components": {
        "tag:stone": {},
        "minecraft:loot": "loot_tables/empty.json",
        "minecraft:breathability": "air",
        "minecraft:geometry": "geometry.nuigurumi_raby",
        "minecraft:destroy_time": 0.5,
        "minecraft:explosion_resistance": 1,
        "minecraft:friction": 0.5,
        "minecraft:map_color": "#ffffff",
        "minecraft:block_light_absorption": 0,
        "minecraft:block_light_emission": 0,
        "minecraft:material_instances": {
          "*": {
            "texture": "nuigurumi_raby",
            "render_method": "alpha_test"
          }
        },
        "minecraft:on_player_placing": {
          "event": "block:block_placed"
        },
        "minecraft:entity_collision": {
          "origin": [-8, 0, -8],
          "size": [16, 16, 16]
        },
        "minecraft:pick_collision": true
      },
      "events": {
        "block:block_placed": {
          "set_block_property": {
            "block:block_facing": "query.cardinal_facing_2d"
          }
        }
      },
      "permutations": [
        {
          "condition": "query.block_property('block:block_facing') == 2",
          "components": {
            "minecraft:rotation": [0, 180, 0]
          }
        },
        {
          "condition": "query.block_property('block:block_facing') == 3",
          "components": {
            "minecraft:rotation": [0, 0, 0]
          }
        },
        {
          "condition": "query.block_property('block:block_facing') == 4",
          "components": {
            "minecraft:rotation": [0, 270, 0]
          }
        },
        {
          "condition": "query.block_property('block:block_facing') == 5",
          "components": {
            "minecraft:rotation": [0, 90, 0]
          }
        }
      ]
    }
  }

コピペしたら、下記の通り自分の環境に合わせて一部書き換えて、保存してください。

※追加するブロックの名前を”minecraft:~”にするのは避けてください。”minecraft”の文字はシステム内部で使われているため、アドオンでは使えないようです。

その他の項目はいったん説明を省略しますが、各項目の名前(例えば"minecraft:entity_collision"など)で検索すると何かしらの説明が出てくるので、気になった方は調べてみてください。

つづいて、今度はresource_packsフォルダ>自分で作成したフォルダを開きましょう。

二つフォルダを作成します。「models」「textures」です。

modelsフォルダを開き、中に「blocks」フォルダを作ります。

blocksフォルダを開き、「モデルを出力しよう」で出力したjsonファイルを置きます。

 

今度は2つフォルダを戻り、texturesフォルダを開きます。

中に適当な名前のフォルダを作ります。

フォルダを開き、「モデルを出力しよう」で出力したテクスチャのpngファイルを置きます。

一つ戻ってtexturesフォルダを再度開きます。

「terrain_texture.json」というファイルを作成してください。

このファイルはテクスチャファイルと名前を結びつける役割があります。

作ったファイルを開き、以下をコピペしてください。

{
    "num_mip_levels" : 4,
    "padding" : 8,
    "resource_pack_name" : "vanilla",
    "texture_name" : "atlas.terrain",
    "texture_data" : {
      "nuigurumi_raby": {
        "textures": "textures/nuigurumi_raby/nuigurumi_raby"
      }
    }
  }

コピペしたら、下記の通り自分の環境に合わせて一部書き換えて、保存してください。

 

これで準備は完了です!

 

ここまでのファイル構成は下記のようになっているはずです。

(赤字のファイル・フォルダ名はみなさんが付けた名前になっていると思います。)

 

ワールドを開いて確認しよう

いよいよ作ったブロックの確認です。

イクラを起動します。

アドオンを導入したワールドの右の鉛筆マークをクリックし、設定を開きます。

アドオン>リソースパック>マイパックをクリックすると、作成したリソースパックがあるはずです。

※ない場合は、マイクラを再起動するか、これまで説明した手順のどこかで間違っていないかを見直しましょう。

※ここで表示されるアイコンは、フォルダにコピペで置いたpack_icon.pngです。アイコンを変えたい場合はこのファイルを編集しましょう。

クリックすると「有効化」のボタンが出るので、クリックしましょう。

使用中のタブに追加されます。

同様にアドオン>ビヘイビアパックにも作ったビヘイビアパックが出てくるので、有効化しましょう。

 

設定できたら、ワールドに入ります。

チャット欄で次のコマンドを打ちましょう。

/give @s [作成したブロックの名前]

 

実行すると、作成したブロックがもらえます。

設置してみましょう。

完璧ですね。

みなさんはいかがでしょう?うまくいきましたか?

 

よくあるトラブル

・テクスチャがおかしい!ブロックが見えない!

jsonファイルに書かれたテクスチャの名前とテクスチャファイル(~.png)の名前が一致していないのかもしれません。

「オリジナルブロックを追加しよう」の項をもう一度見直してください。

 

・ブロックが存在しない!マイクラが落ちた!

jsonファイルの内容に異常がある場合、ブロックが存在しなかったり、マイクラが落ちたりすることがあります。

””(ダブルクォーテーション)で囲まれていない、,(カンマ)がない、などがあるあるです。

下記は間違いの例。VSCodeで開くと怪しい部分を赤波線で警告してくれます。

"geometry.nuigurumi_raby"の後にカンマがないので次の行に警告が出ていますね。

正しくは下記の通りです。

 

参考になるサイト

ここまで説明してきましたが、アドオンの解説はネット上にあふれています。

僕がよく参考にさせていただいているサイトを貼りますが、ぜひ自分でも調べてみてください。

tokamcwin10.blog.jp

qiita.com

rinca-h.github.io

 

 

ということで、長くなりましたが「アドオンでオリジナルブロックを作ろう!」は以上です。

思ったより簡単にできた、大変だった、もっと作りたいと思った、途中であきらめた、などなど、感想は様々かと思います。

少しでもアドオンの楽しさや可能性を感じてもらえたのなら幸いです。

 

今後も時々アドオン制作の方法を紹介していこうと思います。

 

では、読んでいただきありがとうございました(^^)/