MENU

マイクラ アドオン制作 Blockbenchでモデリング 4

マイクラのアドオン制作日記も4回目となりました。今日はスポーンルールやドロップアイテムの設定を完成させていきたいです。ただ、ここまで来るともうBlockbenchを使用する機会はなくなりますのでタイトル詐欺になってしまいますね(汗)

ですが、モブを作ったならスポーンエッグ無しでもきちんとスポーンさせたいので、その辺の所は最後まで記録させていただきます。

その代わりに「Blockbench記事を謳うのならば!」と、記事ラスト作成したモデルについて、もう少し詳細に構成などを紹介したいと思います!

この記事を読むとわかること
  • オリジナルMobを自然に出現させる設定方法
  • スポーンルールファイルの書き方と各条件の意味
  • Mobを倒したときにドロップするアイテムの設定手順
  • Blockbenchでモデリングの詳細な構成を紹介
目次

オリジナルMobを自然スポーン スポーンルールの設定方法

マインクラフトのアドオン制作で、自作したMobを自然にスポーンさせたい場合には、専用のスポーンルールファイル(spawn_rules)を作成する必要があります。

スポーンルールでは、Mobがどんな環境で出現するか、どのブロックの上に出現できるか、どのくらいの頻度で出現するかなどを細かく指定できます。

スポーンルールの基本構造と配置場所

スポーンルールの設定ファイルは、ビヘイビアパック内の「spawn_rules」フォルダに配置します。

ファイル構成はこのようになります。

development_behavior_packs > 〇〇(任意のビヘイビアパック名)> spawn_rules > 〇〇.json

ファイル名はMobの名前に合わせて作った方が管理しやすいです。

スポーン条件を細かく調整する

以下は、筆者が水棲生物「baspis(バスピス)」用に実装したスポーンルールの内容です。ご参考までに紹介させていただきます。

この設定で、Mobは水中の砂や土などのブロック上に群れでスポーンするようになります。

スポーン範囲や出現高度、密度なども調整できるため、自然な生態系に近づけるのではないかと思います。

スポーンルールの具体例とその意味

ここでは、先ほど紹介したスポーンルールファイルをさらに詳しく分解し、それぞれの要素がどのような意味を持ち、どう使われるのかに触れていきます。

各条件の意味と調整ポイント

  • “identifier”:Mobの識別子。entity.jsonの設定と完全一致している必要があります。
  • “population_control”:スポーン管理のカテゴリ指定。このモブでは「water_animal」とすることで、魚系と同様にしています
  • “minecraft:spawns_on_surface”:ブロックの上にスポーンできることを許可する設定。水棲Mobでも指定しておくと安定します。
  • “minecraft:spawns_underwater”:水中スポーンを許可する設定。
  • “minecraft:spawns_above_block_filter”:Mobが出現できるブロックを指定。今回は sand, gravel, dirt, stone が対象。
  • “minecraft:distance_filter”:プレイヤーからの距離でスポーンを制限。
  • “minecraft:weight”:出現率の重み。どれくらいスポーンしやすいかを調整します。
  • “minecraft:density_limit”:1チャンクあたりの出現上限。ここでは surface: 20 として、1チャンク内で20体までの出現に制限。
  • “minecraft:height_filter”:スポーンできる高さの範囲。今回はY座標が -20 ~ 40 の範囲で出現。
  • “minecraft:herd”:一度にスポーンするMobの数。群れで出現させたい場合に調整する設定です。

スポーンしない原因として考えられるミス

意図した通りにスポーンしない場合、次のような点が原因になっていることが多いです。

  • ブロックフィルターがマイナーなブロックに限定されていないか
  • 出現可能なY座標の位置が合っていない
  • スポーン確率(weight)が低すぎるため他のMobに負けている
  • ワールド内でスポーン条件を満たす場所がない
  • identifierのスペルミス.spawn_rules.jsonのフォルダ配置ミス

次は、Mobを倒したときにドロップするアイテムの設定、ルートテーブルの作成方法について紹介していきます。

Mobのドロップアイテムを設定する!ルートテーブルの作り方

マイクラで自作したMobを倒したときに、特定のアイテムをドロップさせるには「ルートテーブル(loot table)」の設定が必要です。

ここでは、ルートテーブルの基本構造やファイル配置、そしてMobに設定する手順まで紹介していきます。

ルートテーブル(loot table)とは?

Mobの死亡時やブロックの破壊時に、アイテムをドロップさせるルールを定義するファイルです。

構造は「プール(pools)」と「エントリー(entries)」を軸に構成されます。

Mobに対して使用する場合、ルートテーブルは「entities」フォルダ内に作成します。

ルートテーブルのファイル構成と配置場所

ルートテーブルファイルは、ビヘイビアパック内の以下の場所に保存します。

/loot_tables/entities/baspis.json

このファイル名が、後ほどentity.jsonの中で指定する際に必要になります。

基本的な書き方と実例コード

以下は、Mobを倒したときに「タラ(cod)」を1個ドロップする例です。タラのコードをそのまま参考にしてます

“rolls”はドロップ抽選を何回行うかを指定します。

この例では「1回抽選し、1つのアイテムを選ぶ」構成です。

“entries”で、ドロップするアイテムを定義しています。

“type”: “item”はアイテム型を指定。

“name”: “minecraft:cod”でドロップするアイテムを指定しています。

Mobとルートテーブルを紐づける方法(entityファイルで指定)

ルートテーブルを設定しただけでは機能しません。

Mob本体のentity.jsonファイル内に以下のように記述することで、ドロップ設定が有効になります。

ファイル名はルートテーブルで作成したものを指定してください。

これで、モブを倒すと、指定したアイテムがドロップされるようになります。

…ここまでで、オリジナルモブ「サカバンバスピス」は一通りのことは出来るようになったと思います。繁殖などに関しては今回設定するつもりはありません。他のモブ制作を始めたら、次は今回触れなかった部分も着手してみたいです。

今回のシリーズについてはここまでで落着とさせていただきます!

ありがとうございました!

この記事のまとめ
  • オリジナルMobを自然スポーンさせる方法を解説
  • スポーンルールの記述例と各条件の意味を紹介
  • Mobのドロップアイテム設定にはルートテーブルを使用
  • 出現環境やドロップ内容を設定

…そして最後に

この制作日記シリーズでBlockbenchにて作成しました自作モブのモデリング。構成などを紹介いたします。以前の記事ではあまり細かく作成段階の様子を記せませんでしたので、ここで触れていきたいと思います!

Blockbench モデリング

まずはモデル全体。

モデルは一つ一つエレメント(キューブ)の大きさ、角度、位置などを編集して、組み合わせてモデルを作っていきます。その際に各部位パーツごとにフォルダで分けてエレメントを作ります。

フォルダを作る理由は、アニメーションを作成する際に稼働部位として必要になるからです。Blockbenchでは、エレメント単位でアニメーションを編集することはできません。エレメントを格納している『フォルダがアニメーション可能な部位』となります。なので、例えば腕を作る際に「肩」「ひじ」「手首」の3か所で動きを付けたい場合には、「二の腕」「上腕」「手」のフォルダを作り、それぞれのフォルダ内に各部位のモデリングをしていくことになります。

順番に、フォルダ構成とそれぞれに属するエレメント(キューブ)を見ていきます。

まずは「bone」。

これはモデルを構成するエレメント全てをまとめているフォルダです。このboneフォルダの中に以下head、body、tail、finというフォルダを格納しています。

boneフォルダを作っても作らなくても、モデリング自体はできます。しかし、アニメーションを作成する時や、マインクラフトにモデルを反映する際、不具合などが生じる事もあります。なので親フォルダとしてboneフォルダを作成し、その中に各パーツを格納する子フォルダを作るという構成が安定していて管理もしやすいのではないかと思います。

そして親フォルダ「bone」の内部へ。

「head」フォルダ。

「head」フォルダ内部は5個のエレメントで構成しています。分解するとこんな感じです。

「body」フォルダ

内部は3個のエレメントで構成。

「tail」フォルダ。

「tail」フォルダの構成は、2個のエレメントとフォルダの中にもう一つフォルダを作っています。「tail」フォルダの子フォルダとして「fin」フォルダを用意し、その中に2個のエレメントがあります。tailとfinは同じ尻尾の分類なので一緒のフォルダの中に作っても良かったのですが、アニメーションでfinの部分だけ別で動かしたかったのでフォルダを分けています。

筆者個人的にtailという親フォルダの中にfinフォルダを入れた方が管理しやすかったので、このような構成になりました。もちろん、finフォルダはtailフォルダの外に出しても問題無いです。

分解するとこんな感じです。

それと、頭と胴体は水平ですが、尻尾の部分は少しだけ角度をつけています。エレメントに角度を付ける際は回転ツール(ローテーション)を使用します。

モデリングの内容はこれだけです!単純な造りになっています!

もっと使い方を極めれば複雑なモデルも作れるようになる…はず!そう信じてこれからも邁進していきたいと思います!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次