概要[]
この記事は、初心者向けの内容となっている。また、リソースパックの作成チュートリアル記事の続きである。そのチュートリアル記事には、この記事に繋がる内容が含まれるので、この記事の前に目を通しておくことをお勧めする。
特定のコンポーネントの詳細について知りたい場合は、 エンティティデータ参考資料を参照。この記事では以下の内容について記述する。
- JSON データ形式の概要
- ビヘイビアーパックの作成方法
- Mob の振る舞いの変更方法
この記事には、pig.json
ファイルの内容も随時例示する。この内容と初期状態の Minecraft の pig.json
ファイルの内容とを見比べて、次に行う予定の変更点や作業内容を確認できる。
所要時間[]
1〜1.5 時間で終えられる内容となっている。
必要なもの[]
以下のツールが必要となる。
テキストエディタ[]
種類は問わないが、プログラミング用の IDE をお勧めする。Notepad++ は無料であり、多くのプログラミング言語の構文ハイライト機能を備えている。 ここからダウンロードできる。 複数のファイルを効率的に管理する目的においては、Visual Studio Code を使用することもお勧めである。
画像編集ソフト[]
Windows 標準のペイントでも画像の編集は可能である。だがニワトリなどの透過画像を保存することができない。そこでここでは、無料な上に透過画像を保存することができる GIMP をお勧めする。 ここからダウンロードできる。
Paint NET も透過度に対応し、よりシンプルな UI を持っている。ここからダウンロードできる。
JSON データ形式[]
エンティティの振る舞いを変更し始める前に、JSON がどのように機能するのかを簡単に理解する必要がある。JSON の技術的な詳細についてはそれほど深く説明しないが、より深く知りたい場合は http://www.json.org/ などを閲覧するとよい。
JSON は、次の2つの異なるデータ構造を基にする。
- オブジェクト
- 順序付けされない、単一または複数の、名前と値の組の集まり。
- 「""」(二重引用符)で括られた文字列による名前と、それに対する値を「:」(コロン)で結んで「,」(コンマ)で区切ったものを「{}」(波括弧)で括り、
{ "名前": 値, "名前": 値 }
のように記述する。
- 配列
- 順序付けされた、単一または複数の値の集まり。
- 値をコンマで区切り、「[]」(角括弧)で括り、
[ 値, 値, 値 ]
のように記述する。
階層構造を持たないオブジェクトだけでなく、オブジェクトや配列を要素にしたオブジェクトを作成することもできる。
オブジェクトを要素に持つ例[]
{
"minecraft:scale": {
"value": 0.5
}
}
上記のオブジェクトは、minecraft:scale
が名前で、"value": 0.5
という別の名前と値の組であるオブジェクトを値に持つ、名前と値の組で構成されている。
複数の要素を持つオブジェクトを持つ例[]
{
"minecraft:health": {
"value": 20,
"max": 20
}
}
配列を持つオブジェクトを持つ例[]
{
"minecraft:type_family": {
"family": [ "zombie", "undead", "monster" ]
}
}
- 注意
名前と値は常にコロンで結ばれ、値はコンマで区切られる。また、すべての開き波括弧「{」は閉じ波括弧「}」を対にし、角括弧「[]」および二重引用符「""」についても同じことが言える。これらの対の片方を忘れないことは非常に重要であり、1つでも欠けていると、意図しない結果を招き、JSON の記述が機能しなくなる可能性がある。
幸いにも、JSON の有効性を点検するのに役立つ便利なWebアプリがいくつかある。そのうちの1つは http://pro.jsonlint.com/ であり、JSON ファイルのコードをコピーしてテキスト欄に貼り付け、チェックボタンを押す。チェックマークが緑色に変わった場合、JSON コードは上手くいっているだろう。チェックマークが赤に変わる場合、何が問題であるのかの説明が表示される。 注意として、これは JSON ファイルの記述が全面的に正しいかではなく、波括弧や角括弧などが欠けていないかを確認するためにのみ使用する必要がある。JSON ファイルの記述が技術的には有効だが、Minecraft 内では機能しないという場合を検知できる訳ではないからだ。例えば、Minecraft で使用する JSON ファイルにはコメントを入れることができるが、これは通常 JSON データ形式では無効な構文である。このWebアプリは、コメントがある場合は JSON ファイルが無効であると示すので、このWebアプリを利用して構文を点検するときは、前もってコメントを削除することを忘れないこと。
ビヘイビアーパックの作成[]
ビヘイビアーパックは、エンティティを構成するさまざまな振る舞い(ビヘイビアー)を変更する Add-on である。現時点では、既存の動作を追加、削除、または変更して既存のエンティティの振る舞いを変更することのみに対応している。この記事では、例としてクリーパーの爆発動作をブタに追加する。ブタの振る舞いを変更する前に、既存のものとは別のビヘイビアーパックを用意しなければならない。
次の手順に従ってビヘイビアーパックのフォルダを作成する。
behavior_packs
フォルダの直下に、任意の名前の、ビヘイビアーパックとなるフォルダを作成する。この記事では、例としてチュートリアルビヘイビアーパック
という名前にする。behavior_packs
フォルダのパスは、com.mojang/behavior_packs/
である。
com.mojang
フォルダのパスはMinecraftの動作環境によって次のようになっている[1]。
動作環境・基本ソフト 場所 Windows C:\[ユーザー名]\AppData\Local\Packages\
Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojangAndroid [ストレージ名]/games/com.mojang
Samsung Gear VR(Galaxy) Amazon Fire TV iOS Apps/com.mojang.minecraftpe/Documents/games/com.mojang
- なお、iOSの
Apps/com.mojang.minecraftpe/Documents/
フォルダは、iTunesのファイル共有機能を用いて、任意の端末を選択 → サイドバー設定内の「ファイル共有」 → App内「Minecraft」 → 「Minecraftの書類」と進むなどして参照できる。
- なお、iOSの
JSON ファイルを作成する[]
チュートリアルビヘイビアーパック
フォルダの直下に、manifest.json
という名前の JSON ファイルを作成する。このファイルはビヘイビアーパックを Minecraft に認識させるために必要である。また、このファイルにはビヘイビアーパックの名前、説明、ID (UUID) を記述する。UUID については下記を参照。
注意[]
ファイルの拡張子は .txt
でなく .json
である
変更の際に Windows では警告表示が出るが、「はい」を押せばよい。
拡張子が表示されない場合は、下の画像のように上部の「表示」をクリックし、「ファイル名拡張子」にチェックを入れればよい。
UUID とは[]
UUID は異なる Add-on のパックを区別するために必要となる、文字列の ID である。そのため UUID は固有のものである必要があり、異なるパックで使いまわしたりしてはいけない(表示されなくなるためである)。 UUID の生成は容易に行うことができる。ここではこのサイトを紹介する。
manifest.json
[]
manifest.json
をテキストエディタで開き、次のように入力するかコピー&ペーストする。
manifest.json
{
"format_version": 1,
"header": {
"description": "チュートリアルビヘイビアーパック",
"name": "チュートリアルビヘイビアーパック",
"uuid": "e3c5a9be-1cfc-4a74-9f70-9213bab32090",
"version": [0, 0, 1]
},
"modules": [
{
"description": "使われない",
"type": "data",
"uuid": "14d5fb6b-ef0a-47e5-8a98-d615709c1a03",
"version": [0, 0, 1]
}
],
"dependencies": [
{
"uuid": "891f5751-bb0e-47c6-91f0-fdc4e76949ef",
"version": [0, 0, 1]
}
]
}
このマニフェストファイルの依存関係UUID ("dependencies"
配列内の "uuid"
フィールドを参照)を、リソースパックの作成チュートリアル記事で作成したリソースパックのマニフェストファイルのモジュールUUID ("modules"
配列内の "uuid"
フィールドを参照)に一致させ、このマニフェストファイルのパックUUIDとモジュールUUIDも変更する。最初の "name"
要素と "description"
要素の値には、Minecraft で表示したい文字列を入力できる(日本語で文字化けを起こす場合は文字コードをUTF-8にする)。
- 注意1
このマニフェストファイルはリソースパックの manifest.json
と似ているが、モジュールタイプが "resources"
ではなく "data"
である点が異なる。また、パックUUIDとモジュールUUIDには2つの新しいUUIDが必要である。他のAdd-onパック(リソースパックとビヘイビアーパック)と同じ UUID を使用した場合、Minecraftには片方の Add-on しか表示されない。
- 注意2
このマニフェストファイルには、リソースパックの作成チュートリアル記事で作成したリソースパックに比べて、新しい要素がある。それは "dependencies"
要素であり、他のAdd-onパックをこのビヘイビアーパックに紐付けするために追加した。この例では、このビヘイビアーパックを上記記事で作成した Tutorial Resource Pack に依存するようにした。これは、このビヘイビアーパックの依存関係UUIDが、紐付けるリソースパックのモジュールUUIDと一致することを確認することによって行われる。このビヘイビアーパックが読み込まれると、必要なリソースパックも読み込まれる。
アイコンの作成[]
アイコンを作成する手順はリソースパックのアイコンを作成するのと同じである。詳細はリソースパックの作成を参照。この記事の例では、リソースパックと同じアイコンを使用する。
ビヘイビアーパックの点検[]
これで、Minecraft で点検する準備が整った。まず、 Minecraft を立ち上げて新しい世界を作り、画面の左側で下にスクロールして、「ビヘイビアーパック」を選択する。次に、画面の右側に「チュートリアルビヘイビアーパック」が表示されるまでスクロールして、選択する。ポップアップで「続行」を選択すると、その世界の実績の解除を無効にする。この記事の例では、ゲーム画面は次のようになる。
- 注意
Minecraft は、ビヘイビアーパックを世界に適用する際、そのコピーを世界のセーブデータ内に保存する。そのため、ビヘイビアーパックを変更するたびに、新しい世界を作成する必要があることに注意する。この場合も、world
フォルダに含まれているAdd-onパックを手動で置き換えればその世界に適用できる。これを行う場合、そのAdd-onパックを他の世界に適用したいときは、改めて手動でそのAdd-onパックを com.mojang/behavior_packs
フォルダに配置すると良い。
JSON ファイルの配置[]
これでビヘイビアーパックの準備ができた。次に、フォルダ構造の設定と JSON ファイルの配置をする。
チュートリアルビヘイビアーパック
フォルダに、entities
という名前の新しいフォルダを作成する。
entities
フォルダは、エンティティの振る舞いを変更するためのすべての JSON ファイルを置く場所である。Vanilla_Behavior_Pack/entities/pig.json
から、 pig.json
を entities
フォルダにコピーする。 pig.json
がコピーされたら、それをテキストエディタで開く。
エンティティ用 JSON ファイルの概要[]
JSON 記述データの編集を始める前に、エンティティ用 JSON ファイルがどのように設定されているかを簡単に紹介する。
Minecraft のエンティティ用 JSON ファイルは、4つの異なる要素に分かれている。
minecraft:entity
[]
これはすべての種類ののエンティティの主要なオブジェクトで、すべての振る舞いやイベントはこのオブジェクトに含まれる値に依存する。
- エンティティ用 JSON の疑似データ記述
{
"format_version": "1.8.0",
"minecraft:entity": {
"description": { 基本的な情報はここへ },
"component_groups": { コンポーネントグループはここへ },
"components": { コンポーネントはここへ },
"events": { イベントはここへ }
}
}
- 注意1
上記はエンティティ用 JSON ファイルの構成を例示するための疑似データ記述であり、Minecraft 向けの有効な JSON ではない。 pig.json
を見てみると、「コンポーネントグループはここへ」というのは実際にはコンポーネントで埋められていることがわかる。
- 注意2 –
"format_version"
書式バージョン(format version)は、どの版の書式の JSON ファイルのを読み込もうとしているのかを Minecraft に伝えるために使用される。JSON ファイルを編集して新しいコンポーネントを追加するときには、"format_version"
の番号を変更して、探しているものを Minecraft に指示する必要がある。
この番号を勝手に変更してはいけない。Minecraft 既定の JSON ファイル書式が更新された際に、更新された内容と一致するように JSON ファイルを更新する必要がある。また、JSONファイルを更新した場合は、この番号を新しい番号に変更するか、更新された Minecraft の既定の JSON ファイルから新しい書式の JSON ファイルをコピーしてから、古い書式で JSON ファイルの作成した際に変更した箇所を上書きする必要がある。
コンポーネントグループ[]
振る舞いのグループを定義するために使用され、複数の振る舞いの簡単な削除・追加を可能にする。エンティティの状態(例:豚の赤ちゃんと豚の成体の状態)別の振る舞いも定義する。
pig.json
には、pig_baby
、pig_adult
など6つのグループがある。これらのグループの振る舞いは、その状態が現在エンティティに付与されている間にのみ適用される。したがって、ブタが子ブタの場合、pig_baby
コンポーネントグループの振る舞いは適用されるが、pig_adult
グループの振る舞いは適用されない。
コンポーネント[]
その種類の全てのエンティティで実行される各種振る舞いを定義するために使用される。
この記事の例の場合、minecraft:identifier
や minecraft:type_family
のようなものがここにあることを確認。これは、あらゆる状態のブタにこれらのコンポーネントを持たせたいことによる。
イベント[]
イベントは、コンポーネントグループを追加・削除する動機を設定するために使用され、追加したコンポーネントまたは Minecraft 既定のネイティブコードによって引き起こされる。
イベントは、無作為化関数を使用して異なる結果から無作為に選ぶことができる(pig.json
の「minecraft:entity_spawned
」を参照)。重み(選ばれやすさを決める値)は100以上になる可能性があることに注意する。これは百分率ではないためである。例えば、大人の豚を作るための重みを23に設定し、それから豚の赤ちゃんを作るための重みを100に設定すると、スポーンする際、大人の豚は23/123の確率に、赤ちゃんの豚は100/123の確率になる。
留意すべきコンポーネント[]
minecraft:identifier
[]
これはその JSON ファイルがどの種類のエンティティに対して動作を実行するのかを Minecraft に伝える識別子で、全てのエンティティに必要ある。識別子には適切な名前を付ける必要がある。誤った識別子を与えた場合、意図しない結果を得るか、エンティティはまったく機能しないかもしれない。エンティティの識別子がわからない場合は、Minecraft 既定のビヘイビアーパックでそのエンティティの JSON ファイルを参照。Minecraft 既定のビヘイビアーパックの入手はAdd-on 記事のテンプレートファイルの項を参照。また、JSON ファイルは Vanilla_Behavior_Pack/entities/
にある。
minecraft:type_family
[]
これはエンティティの種族分類を設定する。種族分類は、さまざまなコンポーネントのエンティティを選別処理するために使用される。種族分類が使用されている例については、"minecraft:rideable"
と "minecraft:breedable"
を参照。
minecraft:entity_spawned
[]
これは、ある種族のエンティティが出現させられたときに発生するイベントである。pig.json
では、これは豚が赤ちゃんとして出現するのか大人の豚として出現するのかを決める無作為化関数を持っている。
豚を爆発させる[]
コンポーネントの追加[]
ここまでエンティティ JSON ファイルの設定方法について見てきた。それではブタのコードを実際に編集していく。
Minecraft 既定の entities
フォルダ (Vanilla_Behavior_Pack/entities/
) で creeper.json
ファイルを見つけて、新しいテキストエディタウィンドウで開く。これで、自作ビヘイビアーパック Add-on の pig.json
と Minecraft 既定の creeper.json
が2つのウィンドウで開いた状態になった。
最初にやりたいことは、豚に標的を見つけさせることとする。これを行うには、 minecraft:nearest_attackable_target
および minecraft:target_nearby_sensor
コンポーネントを pig.json
の "components"
オブジェクトに追加する。
components
オブジェクトで minecraft:behavior.random_look_around
を見つける。それは events
要素の前の最後のコンポーネントであるべきである。
random_look_around
の閉じ角括弧の後にコンマを追加する。これが、標的に関するコンポーネントを追加する場所になる。target_nearby_sensor
コンポーネントおよび nearest_attackable_target
コンポーネントを、 creeper.json
からpig.json
に入力するか、コピー&ペーストする。pig.json
の components
要素の終わりは、次のようになっているはずである(新しい文字列は緑色で強調されている)。
期待される pig.json
の状況
...
"minecraft:behavior.random_look_around": {
"priority": 9
},
"minecraft:behavior.nearest_attackable_target": {
"priority": 1,
"entity_types": [
{
"filters": { "other_with_families": "player" },
"max_dist": 16
}
],
"must_see": true
},
"minecraft:target_nearby_sensor": {
"inside_range": 3.0,
"outside_range": 7.0,
"on_inside_range": {
"event": "minecraft:start_exploding",
"target": "self"
},
"on_outside_range": {
"event": "minecraft:stop_exploding",
"target": "self"
}
}
...
target_nearby_sensor
の閉じ波括弧は、components
オブジェクトの最後の要素であるため、その後にコンマがないことを確認。
minecraft:nearest_attackable_target
[]
このコンポーネントは、特定の制限を考慮して最も近い標的を見つける。
- Priority – この要素はそのコンポーネントの優先度を設定する。優先順位の高いコンポーネントは実行される可能性が高くなる。数字が小さいほど優先順位が高くなることに注意。
- Entity_types – エンティティが標的として認識するエンティティの種類を選別する。
- Max_dist – エンティティが標的となるエンティティを感知できる距離を設定する。
- Must_see – エンティティが標的を感知する為に、対象のエンティティが視認できる必要があるかどうかを設定する。
この記事の例では、プレイヤー型を選別しているので、そのエンティティから 16m 以内に入ったら、プレイヤーを標的として認識できるようになる。
minecraft:target_nearby_sensor
[]
このコンポーネントは、エンティティの標的がどれだけ近いかに基づいてイベントを発生させる。
- Inside_range – 標的がそのエンティティの感知範囲内にいると見なされる距離を設定する。
- Outside_range – 標的がそのエンティティの感知範囲外にいると見なされる距離を設定する。
- On_inside_range – 標的が
inside_range
より近いときに指定されたイベントを引き起こす。 - On_outside_range – 標的が
outside_range
より遠いときに指定されたイベントを引き起こす。
この記事の例では、on_inside_range
と on_outside_range
がそれぞれイベント minecraft:start_exploding
と minecraft:stop_exploding
を引き起こしていることを確認。まだこれらのイベントを追加していないので、これは現在何もしない。
イベントの追加[]
pig.json
の events
オブジェクトの一番下までスクロールし、minecraft:on_unleash
の波括弧の後にコンマを追加する。これが、爆発開始イベントと爆発中止イベントを新たに追加する場所である。
minecraft:start_exploding
イベントと minecraft:stop_exploding
イベントを、 creeper.json
から pig.json
に入力するか、コピー&ペーストする。pig.json
の events
要素の終わりは、次のようになっているはずである(新しい文字列は緑色で強調されている)。
期待される pig.json
の状況
...
"minecraft:on_unleash": {
"remove": {
"component_groups": [
"minecraft:pig_leashed"
]
}
},
"minecraft:start_exploding": {
"remove": {
"component_groups":[
"minecraft:hunting"
]
},
"add": {
"component_groups": [
"minecraft:exploding"
]
}
},
"minecraft:stop_exploding": {
"remove": {
"component_groups": [
"minecraft:exploding"
]
},
"add": {
"component_groups": [
"minecraft:hunting"
]
}
}
...
これでクリーパーが持つようなイベントが発生するので、次に整理をする必要がある。作成するブタの振る舞いは狩猟用コンポーネントグループを必要としないので、start_exploding
要素から "remove"
要素を、stop_exploding
要素から "add"
要素を削除することができる。データ記述は次のようになる。
期待される pig.json
の状況
...
"minecraft:on_unleash": {
"remove": {
"component_groups": [
"minecraft:pig_leashed"
]
}
},
"minecraft:start_exploding": {
"add": {
"component_groups": [
"minecraft:exploding"
]
}
},
"minecraft:stop_exploding": {
"remove": {
"component_groups": [
"minecraft:exploding"
]
}
}
...
どちらのイベントも、minecraft:exploding
というコンポーネントグループを追加および削除していることを確認。作成している豚の振る舞いはまだこのコンポーネントグループを持っていない。
コンポーネントグループの追加[]
"component_groups"
要素の1番上まで pig.json
をスクロールする。pig_leashed
にする必要がある最後のコンポーネントグループを見つけ、閉じ波括弧の後ろにコンマを追加する。次のように入力するか、creeper.json
から "minecraft:exploding"
コンポーネントグループをコピー&ペーストする。pig.json
は、次のようになっているはずである(新しい文字列は緑色で強調されている)。
期待される pig.json
の状況
...
"minecraft:pig_leashed": {
"minecraft:behavior.move_towards_restriction": {
"priority": 2,
"speed_multiplier": 1.0
}
},
"minecraft:exploding": {
"minecraft:explode": {
"fuseLength": 1.5,
"fuseLit": true,
"power": 3,
"causesFire": false
}
}
},
"components": {
"minecraft:damage_sensor": {
...
minecraft:explode
[]
fuseLength – エンティティが爆発準備に入って点灯してから爆発するまでの時間(秒)を設定する。
fuseLit – このコンポーネントが追加されたときに、エンティティが自動的に爆発準備に入り点灯するかどうかを設定する。
power – 爆発力を示し、与えられるダメージと爆発半径がどれほど大きいかを設定する。
causesFire – 爆発によって近くのブロックが破壊されるかどうかを設定する。
豚が爆発する前に膨らむように、コンポーネントグループに "minecraft:scale"
を追加する。
"explode"
コンポーネントの閉じ波括弧の後ろにコンマを追加して、次のように入力する(新しい文字列は緑色で強調されている)。
期待される pig.json
の状況
...
"minecraft:exploding": {
"minecraft:explode": {
"fuseLength": 1.5,
"fuseLit": true,
"power": 3,
"causesFire": false
},
"minecraft:scale": {
"value": 2
}
}
},
"components": {
"minecraft:damage_sensor": {
...
minecraft:scale
[]
値 – エンティティの通常の大きさへの係数。例えば、2 の値は大きさを 2 倍にし、0.5 の値は大きさを半分にする。
Add-on の点検[]
- Minecraft を立ち上げる。
- 新しい世界を作る。
- ゲームモードをクリエイティブにする。
- チートをオンにする。
- 設定で Add-on を選択。
- 右側のリストで「チュートリアルビヘイビアーパック」を見つけて選択する。
- 世界で活動し始める。
- クリエイティブインベントリから豚のスポーンエッグを取り出して豚を出現させる。
- 20m ほど離れる。
- コマンドを使用してゲームモードをサバイバルに切り替える(
/gamemode s
)。 - ブタに向かって走る。
おめでとう![]
この記事では、Add-onで可能なことのほんの一面に触れたに過ぎない。エンティティを爆発させる以上のことができるようにしたいなら、エンティティデータ参考資料を参照して、エンティティに追加できる他の振る舞いやコンポーネントを確認すると良い。また、Minecraft 既定にビヘイビアーパックがどのように記述されているのかを常に確認することもできる。
振る舞いに関する簡単な付記[]
現在、全てのエンティティの振る舞いのすべてがデータ駆動となってはいない。したがって、飛行(コウモリ、ガスト、ブレイズ)や水泳(イカ、ガーディアン、エルダーガーディアン)のような特別な動きの振る舞いの細かな仕様を変更することはできない。これはまた、それらの振る舞いを持つエンティティに追加する振る舞いを妨げるかも知れない。たとえば、イカの水泳の動きはハードコーディングされているため、イカが水中にいる間は近接攻撃を受けることはできない。また、エンティティから別のエンティティやアイテムを出現させることは不可能である。例えば、ニワトリが卵を産む能力はまだデータ駆動ではなく、ビヘイビアーパック Add-on でそれを制御することはできない。
将来的なこれらの変更は楽しみにされている!
課題[]
基本的な経験を積んだ今、いくつかの課題を用意した。
- プレイヤーがゾンビに乗れるようにする。
- プレイヤーがアイテムで方向を制御できるようにする(
pig.json
のitem_controllable
とcontrolled_by_player
を参照)。
- プレイヤーがアイテムで方向を制御できるようにする(
- 村人に弓が与えられたときに、村人をスケルトンに変換させる(オオカミの飼いならしや村人の変換を参照)。
- 太陽と月の質感を変える。
- 牛にガストの発射体を撃たせる。
JSON の問題解決[]
JSON ファイルの変更が Minecraft 内で機能していないように思われる場合は、次の事柄を確認すると良い。
- すべて正しく入力したことを確認する。入力の誤りと記号類の欠落は、望ましくない動作を引き起こす。
- JSON ファイルが正しいフォルダにあり、正しく名前が付けられていることを確認する。
- すべての JSON ファイルを含む
entities
というフォルダがある。
- すべての JSON ファイルを含む
- エンティティが正しい識別子を持っていることを確認する。
- Minecraft 既定のビヘイビアーパックのエンティティ用 JSON ファイルを確認する。
- 既定の JSON ファイルは
Vanilla_Behavior_Pack/entities
にある。
ビヘイビアーパックの書き出しと共有[]
ビヘイビアーパックを作成したので、おそらく他の人と共有したいと思うだろう。これには、以下の手順を行う。
- 作ったビヘイビアーパックのフォルダに移動する。
- (
com.mojang/behavior_packs/チュートリアルビヘイビアーパック
)
- (
- すべてのファイルとフォルダを選択する。
- 選択したファイルとフォルダを ZIP 形式で圧縮する。
- 圧縮した ZIP ファイルに
チュートリアルビヘイビアーパック.mcpack
という名前を付ける。- ファイル拡張子を必ず
.mcpack
に変更する。 - ファイル拡張子を変更してもよいかどうかを確認するポップアップが表示されても、続行する。
- ファイル拡張子を必ず
これで、他の人にその .mcpack
ファイルを送ることができる。それを開くと、Minecraft はまだ立ち上がっていなければ起動し、開いた Add-on パックを取り込むだろう!
- 注意 1
これがうまくいくかどうかをテストするには、 behavior_packs
フォルダ内のコピーを削除し( 先に必ず予備を取っておくこと!)、次に .mcpack
ファイルを開いて取り込む。うまくいかない場合は、.mcpack
ファイルの元となる ZIP ファイルを作成するときに、フォルダ自体ではなく behavior_pack
の内容を選択したことを確認する。
- 注意 2
ビヘイビアーパックがリソースパックを参照している場合でも、ビヘイビアーパックのパックマニフェストにそのパックへの依存関係が与えられていても、.mcpack
ファイルはそのリソースパックも自動的に含めることはない。リソースパックの依存関係がある場合は、リソースパックの .mcpack
ファイルも作成するか、世界を作成して、書き出すビヘイビアーパックとリソースパックを適用してから、その世界を書き出すと良い。その世界が取り込まれると、その世界のセーブデータのフォルダには、その世界のAdd-onパックがその世界のセーブデータフォルダ直下の behavior_packs/
と resource_packs/
のフォルダにある。これらのAdd-onパックを com.mojang/behavior_packs
フォルダや com.mojang/resource_packs
にコピーして、ビヘイビアーパックメニューおよびリソースパックメニューでそれらを表示し、他の世界に適用することができる。
手近な方法
Bedrock Edition には、JSONの煩わしさなしに Add-on を作成するためにダウンロードできるサードパーティ製のアプリがいくつかある。Google Playユーザーは、AP Technologiesの「Add-ons Maker」を入手できる。インターフェースは使いやすく、JSON コードを書くことはまったくない。書き出しは、以前に作られた世界を選んでそれを送るぐらいの簡単な作業である。Minecraft アプリはまた、自動的に将来の使用のためにコピーを保存する。
関連項目[]
エディション |
| ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
開発 | |||||||||||||
技術情報 | |||||||||||||
マルチプレイ | |||||||||||||
限定要素 |
| ||||||||||||
削除済み |
新人向け |
| ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
全般 | |||||||||||||
チャレンジ |
| ||||||||||||
建築 | |||||||||||||
生産 |
| ||||||||||||
エンチャントと製錬 | |||||||||||||
ブロック破壊 |
| ||||||||||||
メカニズム |
| ||||||||||||
サーバー |
| ||||||||||||
技術的なチュートリアル |
| ||||||||||||
古いチュートリアル |
|