皆様いかがお過ごしでしょうか。歌乃です。

マイクラやってますか?

今回ちょっとしたきっかけで、マイクラの addon (mod とか リソースパックともいう) を作る機会がありましたので作成の流れてきなものを書きたいと思います。

※いつものごとく大半は戯言です。


近況報告的な

最近 AI にはまってましたが、AI 界隈の技術革新の早さについていけず戦線離脱してマイクラで遊んでました。

最新バージョンの 1.21.51 がリリースされたのも要因ですが、以前よりうちのおこちゃまが「強い Mob と戦いたい」と狂戦士のようなセリフを宣わってまして、それを叶えてやるかーという軽いノリで始めてみたわけです。


情報源的な物

マイクラの遊び方や攻略法に関しては日本語の情報がたくさんありますが、アドオン関係になるとめっきりと少なくなります。

基本的に情報ソースは海外 (英語圏) を頼ることになります。

ありがたいことにマイクロソフト (公式と言っていいのかな?) が情報を公開してくれているので基本そちらのドキュメントで情報を漁りましょう。

アドオンの作り方も詳しく載っています。じゃあなんでこんな記事書いてんだ?ってなりますが、しょうがない、書きたくなったんだもの( ゚Д゚)

ちなみにオリジナルキャラクター (エンティティ) の公式追加チュートリアルはこちら


動作環境

マインクラフトには動作環境が二種類存在します。JAVA Edition (JAVA版)と Bedrock Edition (統合版) です。

二つの違いは文字通り JAVA 上で動くか否か、です。

JAVA はある程度マシンパワーを要求するので、低スペックマシン、あるいは、負荷を減らしたい場合は統合版が選択肢になります。

また JAVA版は PC でしか動かないので Nintendo Switch などで遊びたい場合も統合版一択となります。

一般的にJAVA版の方が自由度が高い ( MOD が導入できる ) と言われていますが、今回は統合版の Addon を作成しています。

Mod は JAVA版 のみに対応、Addon は統合版のみに対応しています。JAVA版 の Mod = 統合版の Addon という認識で問題ないと思われます。

自前の環境ですが、Windows10 で マイクラは 統合版 ( Microsoft Store からの導入 ) しています。


マイクラ統合版のアドオンについて

マイクラ統合版のアドオンは用途によって二種類存在します。

リソースパック (resource pack)ビヘイビアパック (behavior pack) です。

リソースパックとビヘイビアパックに関する説明は後でしますが、このパックの片方または両方を含んだものの事をアドオンと呼んでいるようです。


クライアントでのアドオン操作

クライアントからの導入方法は、設定 > グローバルリソース からで、所有済 (ダウンロード済) のアドオンは「マイパック」の中にリストされています。

グローバルリソース

リストからパックを選ぶと「有効化」ボタンが表示されるので、有効化をクリックすると有効になったアドオンが「使用中」リストに入ります。

使用中リスト内のパックをクリックすると「無効化」ボタンが表示されるので、無効にしたい場合はクリックすれば、使用中リストから外れます。


ワールドデータでのアドオン操作

各ワールド毎にアドオン (ビヘイビアパックとリソースパック)を管理します。

新規作成時に「リソースパック」と「ビヘイビアパック」のリストからそれぞれ有効化するものを選択することができます。

その他のパックを入手したい場合は、マーケットプレイスから購入 (無料のものもたくさんあります) します。

ワールドデータでのアドオン

作成済みのワールドも、同様に「リソースパック」と「ビヘイビアパック」を有効化・無効化ができます。


マインクラフトのディレクトリ構成

PC統合版の Minecraft は「C:\Users[PCのユーザー名]\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang」配下にあります。

システムが管理しているディレクトリで、隠し (非表示) ファイルになっているので、エクスプローラのファイルの表示設定から隠しファイルにチェックを入れて隠しファイルが表示されるようにしてください。

com.mojang の配下には

com.mojang
 ┣ behavior_packs
 ┣ custom_skins
 ┣ development_behavior_packs
 ┣ development_resource_packs
 ┣ development_skin_packs
 ┣ minecraftpe
 ┣ minecraftWorlds
 ┣ resource_packs
 ┣ skin_packs
 ┗ world_templates

といったディレクトリがあります。

アドオンの中身である、ビヘイビアパックは behavior_packs の中に、リソースパックは resource_packs の中に入っています。

同じように機能するディレクトリとして「development_behavior_packs」と「development_resource_packs」があり、開発中 (自作) のアドオンはこちらに置くほうが判りやすくて良いと思われます。


リソースパックの用途

リソースパックは、ゲーム内のキャラクターモデル ( 3D model ) やブロックの見た目 ( texture、レンダリング設定 )、キャラクターの動き ( animation )、サウンドなど、ビジュアルに関するデータを追加することができます。


ビヘイビアパックの用途

ビヘイビアパックはリソースパックを拡張したもので、キャラクターやブロックのゲーム内での動作や属性といったシステムに関するデータを追加することができます。


オリジナルモンスターの追加

さて今回の目的であるオリジナルモンスターの追加を試してみます。

追加するモンスターは「サソリ」です。チョイスに深い意味はありません。個人的な趣味です。

まずは、見た目を作ります。現実と同じで見た目から入る派です。

マイクラの 3Dモデルデータは json 形式で記載されているので、どんなツールでも (メモ帳でも) 製作可能ですが、ありがたいことに、マイクラ業界標準といっていい「Blockbench」というツールが存在するので、そちらを使います。

Blocbench に関する説明は今回は本筋ではないので省きます (時間ができたら別記事で書きます 書きました(`・ω・´)。

Blockbench を使って作った「サソリ」のモデルがこちら。

サソリ

見たまんまですね。マイクラモンスターの二大巨頭「クモ」を参考に作りました。

このモデルをリソースパックとして追加していきます。


リソースパックの追加

まずは、オリジナルのリソースパックのルートディレクトリを「development_resource_packs」の配下に作成します。

今回は「utano_mobs_pack_ressources」と言う名前にしました。

他のリソースパックと被らないようなユニークな名前がおすすめです。


リソースパックの中身

今回作るリソースパック (ルートディレクトリ) の中身は以下のような感じになります。

utano_mobs_pack_ressources (ルートディレクトリ)
 ┣ animation_controllers (アニメーション操作)
 ┃ black_scorpion.animation_controllers.json
 ┣ animations (アニメーション)
 ┃ black_scorpion.animation.json
 ┣ entity (キャラクタやブロックの設定)
 ┃ black_scorpion.entity.json
 ┣ models (3Dモデル)
 ┃┗ entity
 ┃  black_scorpion.geo.json
 ┣ render_controllers (レンダラ設定)
 ┣ texts (テキストデータ)
 ┃ en_US.lang
 ┃ ja_JP.lang
 ┗ textures (テクスチャ)
  ┗ entity
    black_scorpion.tga
 manifest.json (リソースパックの設定)
 pack_icon.png (リソースパックのアイコン)
 sounds.json (サウンド設定)

上記構成は必須ではありません。サウンドを使わなければ sound設定は必要ないでし、オリジナルのアニメーションを使わない (マイクラ既存のものを使う) のであれば animations や animation_controller も無くてもかまいません。

各ディレクトリ名はシステム固定です。綴りを間違うと動きません


manifest.json ファイル

まずは、これです。これがリソースパックの本体です。これが無いとクライアントがリソースパックを認識してくれません。

manifest.json

{
    "format_version": 2,
    "header": {
        "name": "utano mobs pack",
        "description": "utano mobs Resource Pack",
        "uuid": "取得したUUID",
        "version": [1, 0, 49],
        "min_engine_version": [1, 16, 0]
    },
    "metadata": {
        "authors": ["UtanoSchell"],
        "generated_with": {
            "blockbench_entity_wizard": ["1.6.0"]
        }
    },
    "modules": [
        {
            "description": "utano mobs pack",
            "type": "resources",
            "uuid": "取得した別のUUID",
            "version": [1, 0, 0]
        }
    ]
}

公式サイトのものをそのままコピーして使ってます。

下手に間違うと動かなくなるので、コピペして必要な部分だけ変えるのが得策です。

Blockbench を使って自動生成するのもありです。ちなみに上記は自動生成です。

  • "name" 項目にはリソースパックの名前を入れます。クライアントの設定画面に表示されます。
  • "description" リソースパックの説明文。クライアントの設定画面に表示されます。
  • "uuid" 一意な値。生成サイトなどを利用するのがおすすめ。この値でパックを識別しています。
  • "version" リソースパックのバージョン。クライアントは同じバージョンを読み込まない (キャッシュを利用する) ので内容を変更した場合はこの値をインクリメントする事

上記項目が重要かつ編集必須なもので、後の項目は公式サンプルをそのまま使うのが安全です。

header のUUIDがリソースパックのIDです。modules の UUIDは header のUUID とは別のものを使用してください。

同階層の pack_icon.png は 64 x 64px の画像でクライアントの設定画面で表示されます。


entity ディレクトリ

ここの配下に作ったキャラクタorモンスターのデータを配置します。

black_scorpion.entity.json

{
    "format_version": "1.8.0",
    "minecraft:client_entity": {
        "description": {
            "identifier": "utano:black_scorpion",
            "min_engine_version": "1.8.0",
            "materials": {
                "default": "spider",
                "invisible": "spider_invisible"
            },
            "textures": {
                "default": "textures/entity/black_scorpion"
            },
            "geometry": {
                "default": "geometry.black_scorpion"
            },
            "animations": {
                "default_leg_pose": "animation.black_scorpion.default_leg_pose",
                "look_at_target": "animation.black_scorpion.look_at_target",
                "walk": "animation.black_scorpion.walk",
                "attack": "animation.black_scorpion.attack",
                "attack_s": "animation.black_scorpion.attack_s"
            },
            "animation_controllers": [
                {
                    "move": "controller.animation.black_scorpion.move"
                }
            ],
            "render_controllers": ["controller.render.spider"],
            "spawn_egg": {
                "base_color": "#ffffff",
                "overlay_color": "#000000"
            }
        }
    }
}

manifest の時と同様に公式のものをそのまま流用します。何度も書きますが項目のスペルミスをすると動かなくなります。※不具合の大半がこれです。

  • "identifier" キャラクタを識別するためのID、[作者名またはグループ名:キャラ名] のフォーマット。ここで指定したキャラ名は各リソースのファイル名に使用しなければなりません
  • "materials" 3Dモデルのレンダリングに影響するマテリアルを指定する項目。レンダー設定で使用します。
  • "textures" 3Dモデルに使用するテクスチャ画像を指定します。
  • "geometry" Blockbench で作成した3Dモデルを指定します。
  • "animations" 使用するアニメーションを列挙。ここに書かないとアニメーションコントロールで使用しても再生されません。
  • "animation_controllers"  使用するコントローラーを指定します。
  • "render_controllers" 使用するコントローラーを指定します。今回は既存の「"controller.render.spider"」を利用しているのでオリジナルのコントローラーファイルは作っていません。
  • "spawn_egg" モブを呼び出す卵の設定。Blockbenchで召喚可能を選ぶと自動生成されます。

    "materials" の指定ですが、元にしたmobのものをそのまま使うのが無難です。例えば暗闇で目を光らせたいなら、クモがそうなので、マテリアルは "default": "spider" とするなどです。

この既存のマテリアルは、大元の親マテリアルから継承されたものなのですが、詳しい内容は、こちらの記事などが参考になります。


models ディレクトリ

配下に「entity」ディレクトリを作成します。このディレクトリ名は自由につけてOKっぽいんですが、動かないと困るので公式と同じにしてます。

black_scorpion.geo.json はBlockbench で作成したものをそのまま配置します。Blockbenchでエクスポートすれば自動で配置して (ディレクトリも作って) くれます。


animations ディレクトリ

Blockbench が作成してくれたものをそのまま配置します。


animation_controllers ディレクトリ

ビヘイビアパックで使うこともありますが、簡単なアニメーションであればリソースパックのコントローラーで十分間に合います。

black_scorpion.animation_controllers.json

{
    "format_version": "1.19.0",
    "animation_controllers": {
        "controller.animation.black_scorpion.move" : {
            "initial_state" : "default",
            "states" : {
                "default" : {
                    "animations" : [
                        "default_leg_pose",
                        {
                            "walk" : "query.modified_move_speed"
                        },
                        "look_at_target"
                    ],
                    "transitions" : [
                        {
                            "attack" : "variable.attack_time > 0.0"
                        },
                        {
                            "attack_s" : "query.facing_target_to_range_attack > 0.0"
                        }
                    ]
                },
                "attack" : {
                    "animations" : [
                        "attack",
                        "look_at_target"
                    ],
                    "transitions" : [
                        {
                            "default" : "variable.attack_time <= 0.0"
                        }
                    ]
                },
                "attack_s" : {
                    "animations" : [
                        "attack_s"
                    ],
                    "transitions" : [
                        {
                            "default" : "query.any_animation_finished > 0.0 && variable.attack_time <= 0.0"
                        }
                    ]
                }
            }
        }
    }
}

アニメーションコントローラーはステート (states) と言う記述で状態推移を表します。

  • "initial_state" : "default" でまずは、初期ステート "default" に処理が移動します。
  • ステート "default" では再生するアニメーションが列挙されていて、それらが順次再生されます。ひとつづつ再生ではなく、すべて再生される点に注意が必要です。たとえば "look_at_target" アニメーションはターゲット方向に頭を向けますが、基本姿勢である "default_leg_pose" が再生されている状態で上書きする形で再生されます。"look_at_target" は頭だけしか動かさないので、元のアニメーションが頭を動かしていなければ、追加で頭が動くように見えます。
  • "transitions" には推移させたいステートを列挙します。その際、一定の条件を指定できます。"attack" : "variable.attack_time > 0.0" であれば、システム変数 variable.attack_time が 0 より大きい (キャラが攻撃中) なら ステート "attack" に遷移する、という感じです。
  • ステート "attack" では "default" と同様に再生するアニメーションを列挙します。そして条件を満たせば "default" に遷移 (戻る) ように指定しておきます。

上記のような流れで簡単なアニメーションであれば状態によって再生するアニメーションを指定できます。この一連のステート遷移の設定を "controller.animation.black_scorpion.move" としてまとめます。ここの名称「move」の部分は自由に付けられます。「controller.animation.エンティティ名」はエンティティの名称を使用しなければいけません。

ステート名も自由に付けられます。 "default" ではなく "start" でも "kaishi" でもかまいません。


render_controllers ディレクトリ

今回は既存のもの ("controller.render.spider") を流用したので中身は空です。


textures ディレクトリ

Blockbench が作成してくれたものをそのまま配置します。ただ、暗闇で目と尻尾を光らせたかったので、その部分は加工 (アルファ値の指定、つまり光らせたい部分を半透明にする)しました。

Blockbench 単体でもテクスチャのアルファ値の指定 (変更) はできます。


texts ディレクトリ

キャラクタのテキストデータ (ゲーム内で表示される名称など) を言語ごとに配置します。今回はデフォルトの英語と、日本語ファイルを作りました。

拡張子が .lang になっているだけで単なるテキストファイルです。

en_US.lang

entity.utano:black_scorpion.name=Black Scorpion
item.spawn_egg.entity.utano:black_scorpion.name=Spawn Black Scorpion

ja_JP.lang

entity.utano:black_scorpion.name=黒サソリ
item.spawn_egg.entity.utano:black_scorpion.name=黒サソリの卵


sounds.json ファイル

音関係の設定。スパイダーのものをそのまま流用。

sounds.json

{
    "entity_sounds": {
        "entities": {
            "utano:black_scorpion": {
                "events": {
                    "ambient": "mob.spider.say",
                    "death": "mob.spider.death",
                    "hurt": "mob.spider.say",
                    "step": {
                        "pitch": [0.9, 1.1],
                        "sound": "mob.spider.step",
                        "volume": 0.35
                    }
                },
                "pitch": [0.8, 1.2],
                "volume": 1
            }
        }
    }
}

リソースパックは以上です。

ただリソースパックだけではゲーム内で呼び出すことはできません。呼び出しに対応する設定のスクリプトが無いためです。


ビヘイビアパックの追加

オリジナルのビヘイビアパックのルートディレクトリを「development_behavior_packs」の配下に作成します。

今回は「utano_mobs_pack_behavior」と言う名前にしました。リソースパックに合わせた名前です。


ビヘイビアパックの中身

パック (ルートディレクトリ) の中身は以下のような感じになります。

utano_mobs_pack_behavior (ルートディレクトリ)
 ┣ entities (キャラクタやブロックの設定)
 ┃ black_scorpion.behavior.json  ┣ loot_tables (ドロップ品や装備品の設定)
 ┃┗ entities
 ┃  black_scorpion.json
 ┃ empty.json (からっぽの状態の設定)
 ┗ spawn_rules (スポーン、つまり湧き設定)
   black_scorpion.json
 manifest.json (ビヘイビアパックの設定)
 pack_icon.png (ビヘイビアパックのアイコン)

各ファイルはキャラ名 (ID) になります


manifest.json ファイル

ビヘイビアパックの本体です。これが無いとクライアントが認識してくれません。

manifest.json

{
    "format_version": 2,
    "header": {
        "name": "utano mobs pack",
        "description": "utano mobs Behavior Pack",
        "uuid": "取得したUUID",
        "version": [1, 0, 32],
        "min_engine_version": [1, 16, 0]
    },
    "metadata": {
        "authors": ["UtanoSchell"],
        "generated_with": {
            "blockbench_entity_wizard": ["1.6.0"]
        }
    },
    "modules": [
        {
            "description": "Behavior",
            "version": [1, 0, 0],
            "uuid": "取得した別のUUID",
            "type": "data"
        }
    ],
    "dependencies": [
        {
            "uuid": "リソースパックのUUID",
            "version": [1, 0, 49]
        }
    ]
}

Blockbench を使って自動生成されたものをそのまま使用してます。

  • "name" 項目にはビヘイビアパックの名前を入れます。クライアントの設定画面に表示されます。
  • "description" ビヘイビアパックの説明文。クライアントの設定画面に表示されます。
  • "uuid" 一意な値。生成サイトなどを利用するのがおすすめ。この値でパックを識別しています。
  • "version" ビヘイビアパックのバージョン。クライアントは同じバージョンを読み込まない (キャッシュを利用する) ので内容を変更した場合はこの値をインクリメントする事

"modules" のUUID は "header" とは別のものを指定してください。

"dependencies" のUUID と "version" はリソースパックのものを指定します。

pack_icon.png はリソースパックと同じものでOKです。


entities ディレクトリ

キャラクタの設定をここに配置します。ファイル名は キャラ名.behavior.json

かなり長いので途中を省略してあります。

black_scorpion.behavior.json

{
    "format_version": "1.16.0",
    "minecraft:entity": {
        "description": {
            "identifier": "utano:black_scorpion",
            "spawn_category": "monster",
            "is_spawnable": true,
            "is_summonable": true
        },
        "component_groups": {
~~~省略~~~
        },
        "components": {
~~~省略~~~
        },
        "events": {
~~~省略~~~
        }
    }
}
  • "description" 項目内に基本設定があります。
  • "identifier" キャラを識別するための名称 (ID)
  • "spawn_category" 湧き方の種別。
  • "components" ここに基本的な動作に関する部品 (コンポーネント) を指定します。コンポーネントはマイクラに用意されているものを使用します。独自コンポーネントも作れるみたいですが、今回は見送りです。
  • "component_groups" コンポーネントの動作に条件など、オリジナル性を持たせたい場合や、他のコンポーネントと組み合わせたい場合に、ここへ記述します。
  • "events" ここにはコンポーネントグループの挙動に関する条件などを書きます。


コンポーネントの中身ですが

conponents

~~~省略~~~
            "minecraft:loot": {
                "table": "loot_tables/entities/black_scorpion.json"
            },
            "minecraft:health": {
                "value": 90,
                "max": 90
            },
            "minecraft:movement": {
                "value": 0.25
            },
~~~省略~~~

上記のようにすでに用意されている (ネームスペース maincraft: はシステムで予約されているものです) コンポーネントを列挙して、中身の値のみを指定する感じです。health であればモブの体力であったり、movement であれば 移動速度、loot はドロップ品で、後述するリストにドロップ内容を列挙したものを指定します。


イベントの中身

events

~~~省略~~~
            "minecraft:melee_mode": {
                "remove": { "component_groups": [ "minecraft:ranged_attack" ] },
                "add": { "component_groups": [ "minecraft:melee_attack" ] }
            },
            "minecraft:ranged_mode": {
                "remove": { "component_groups": [ "minecraft:melee_attack" ] },
                "add": { "component_groups": [ "minecraft:ranged_attack" ] }
            }
~~~省略~~~

アニメーションコントロールの状態遷移と似た内容で、何らかの条件でイベントを指定し、指定されたイベント内で、コンポーネントグループを操作することで、キャラクタの挙動を変更します。

例えば "minecraft:melee_mode" イベントが呼ばれた場合、コンポーネントグループ"minecraft:ranged_attack"を無効にして、コンポーネントグループ"minecraft:melee_attack" を有効にすることで、近接攻撃の挙動をおこなわせる、と言った感じです。


たぶん一番手間のかかるコンポーネントグループの中身ですが

component_groups

~~~省略~~~
            "minecraft:melee_attack": {
                "minecraft:behavior.melee_box_attack": {
                    "priority": 4,
                    "track_target": true,
                    "speed_multiplier": 1.1
                },
                "minecraft:attack": {
                    "damage": [10, 20],
                    "effect_name": "slowness",
                    "effect_duration": 10
                },
                "minecraft:target_nearby_sensor": {
                    "inside_range": 4.0,
                    "outside_range": 6.0,
                    "must_see":  true,
                    "on_inside_range": {
                    },
                    "on_outside_range": {
                        "event": "minecraft:ranged_mode",
                        "target": "self"
                    },
                    "on_vision_lost_inside_range": {
                        "event": "minecraft:ranged_mode",
                        "target": "self"
                    }
                }
            }
~~~省略~~~

見ての通り、コンポーネントの組み合わせで動作を指定するというものです。
コンポーネントのリストはここにあります。

コンポーネントの動作 (センサーの動作) によって先ほどの event を呼び出しています。


loot_tables ディレクトリ

ドロップ品の設定を配置します。

entities/black_scorpion.json

~~~省略~~~
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "minecraft:shears",
                    "weight": 4,
                    "functions": [
                        {
                            "function": "set_count",
                            "count": {
                                "min": 0,
                                "max": 1
                            }
                        },
                        {
                            "function": "looting_enchant",
                            "count": {
                                "min": 0,
                                "max": 1
                            }
                        }
                    ]
                }
            ],
            "conditions": [
                {
                    "condition": "killed_by_player"
                }
            ]
        }
    ]
}
  • "rolls" ドロップ試行回数です。この回数ごとに抽選が行われます。
  • "entries.type"  ドロップ品の種別。大抵は item。
  • "entries.name" ドロップ品のID。
  • "entries.weight" ドロップの重み。ドロップ品全体の重みを足して、それに対する個別の重みの割合で抽選の可否が決定すします。例えば重みの合計が100で個別の重みが1ならドロップ率は100分の1です。
  • "entries.functions" ドロップ品の各種設定。
  • "conditions" ロール時の条件、例えば「"condition": "killed_by_player"」ならプレイヤーによってkillされた時のみロール判定が有効になる。


spawn_rules ディレクトリ

スポーン (湧き) 設定を配置します。

こちらも内容は公式資料の中から必要なものを繋げていくだけです。

詳細なルールはこちら

spawn_rules/black_scorpion.json

{
  "format_version": "1.8.0",
  "minecraft:spawn_rules": {
    "description": {
      "identifier": "utano:black_scorpion",
      "population_control": "monster"
    },
    "conditions": [
      {
        "minecraft:spawns_on_surface": {},
        "minecraft:spawns_underground": {},

        "minecraft:brightness_filter": {
          "min": 0,
          "max": 7,
          "adjust_for_weather": true
        },

        "minecraft:difficulty_filter": {
          "min": "easy",
          "max": "hard"
        },

        "minecraft:weight": {
          "default": 10
        },

        "minecraft:biome_filter": {
            "test": "has_biome_tag", "operator":"==", "value": "monster"
        }
      }
    ]
  }
}


完成したアドオンをテストする

リソースパックおよびビヘイビアパックが出来たら、クライアントから両パックを有効にしてワールドにログインして確認します。

ビヘイビアパックでリソースパックを指定している場合は、ビヘイビアパックを有効にすれば自動的にリソースパックも有効になります

ビヘイビアパック


ワールド内で「/summon 追加キャラクタのID」を使ってキャラクタを召喚します。

ビヘイビアパックのディレクトリ配下 entities ディレクトリの キャラクタ設定で、"minecraft:entity.description.is_summonable" 項目が true になっていないと /summon による召喚はできません。

キャラクタを召喚

表示されない、上手く動かない、と言った場合は各ファイルを見直して原因を取り除く必要があります。

大抵はスペルミスや記述ミスが原因ですが、どうしてもうまくいかない場合は、一度スケルトン状態 (最低限の設定のみ) にして召喚できるかどうか試してみるのがおすすめです。

そして重要なことは、ファイルを変更したら各パックのバージョン情報を更新 (バージョンナンバーを増やす) すること。そうしないと変更が反映されません




かなり大雑把な内容だけど、まあいっか( ゚Д゚)
気が向いたら各項目で手間取った部分などを記事にするかも。しないかも。

ポスト いいんじゃね。と感じたらポストしてもらえると喜びます。
タイーツ タイーツもできます。