Minecraft1.12.2でMod作製 PART2. Mobの種類とスポーン

こちらはPCゲーム「Minecraft」のMod作製日記です。

Minecraft.1.12.2でのMod作製の作業進捗を書いています。
Minecraft.1.12.2での完成を目標としていますが、Minecraft.1.13の仕様によってはそちらへ移行してからの完成を目指すかも知れません。









一体目のMobが完成したことで、意欲が増したのもあって、ゴーレムの種類を増やしてみる事にした。

手始めに、海系のバイオームや浜辺でスポーンするプリズマリンのゴーレムを追加する。

海辺という事で、水に由来しそうなブロックという流れで、「プリズマリンレンガ」のテクスチャをベースにしてゴーレムのテクスチャを作る。

モデルは元のミニゴーレムの物をコピーするだけ。

追加で作ったクラスは・・・

・ゴーレムのデータが入ったクラス

・ゴーレムのモデルとテクスチャを描画するクラス

・ゴーレムのモデルのクラス

この3つ(中身は元のミニゴーレム内容の名称などの書き換え)を作った後は・・・

・Mobを参照する為のクラスにミニゴーレムとIDを登録

・Mobのデータとスポーン情報を登録するクラスにミニゴーレムを登録

これで新しく作った他のミニゴーレムもスポーンするようになる。

でも、これらのクラスの事がいまいち理解できていないまま作っているので、ちゃんとした説明ができないw

理解できるようになったら、それぞれのクラスついても解説しながら、Mobの作り方を記事にしてみたいけど、まだまだ先の話かな。

とりえずMod作製の進捗としては、プリズマリンレンガのミニゴーレムが完成。

スポーンするバイオームも指定して、海に由来するバイオームにしてみた。

ステータスは鉄のミニゴーレムと変えてないけど、そのうち変更する予定。

とりあえず、手懐ける為のアイテムを「骨」から「ポピー」に変更したけど、これが意外と大変だった。

「骨」はアイテムとして登録されているけど、「ポピー」はブロックとして登録されていて、オオカミからコピーしてきた手懐ける部分の「骨」を「ポピー」に置き換えただけだとダメだった。

まず、右クリックした時の処理として作られていて、そこでまず、プレイヤーの手に持っているアイテムを読み込む。

そして「手に持っているのが〇〇だったら」って流れだけど、「ポピー」の場合はブロックなので・・・

「 if (itemstack.getItem() == Item.getItemFromBlock(Blocks.RED_FLOWER) 」で「RED_FLOWER」というブロックであるかを判定。

その後に「RED_FLOWER」メタデータを参照する。

調べていて知ったのが、「タンポポ」は独立して「YELLOW_FLOWER」なのに、他の花は「RED_FLOWER」のデータ値で分けられていた。

なので、「RED_FLOWER」の情報の後に変数にメタデータを代入する。

「 int enumflowercolor = itemstack.getItemDamage(); 」

メタデータはダメージ値として登録されているみたいで、場所によってはメタデータと書かれたりしているので、少しややこしいかも知れない。

「RED_FLOWER」のメタデータと変数に代入したら、今度は「ポピー」のメタデータと一致しているか、という条件分を作る。「ポピー」のメタデータは「0」なので・・・

「 if (enumflowercolor == 0) 」

これでポピーだった場合にその先に続く命令文のおかげで、ミニゴーレムが手懐けられる。

元になっている「オオカミ」のデータは「EntityWolf」のクラスにあるので、「宣言を開く」で中身を見る事が出来る。

この中身の必要な部分をコピーしてきて、書き換えたりしてアレンジする感じ。

「EntityWolf」の中を見て、何が必要で、どれが何の処理かを理解するのが一番、大変だったけどw

特に変更も無く、見た目が違うMobを作りたいなら、コピーでいいんだけどねw

2体目が完成し、登録も完了したら、他のミニゴーレムも作りたくなって、砂岩と石と木のミニゴーレムも作ってみた。

スポーンするバイオームはそれぞれ違うバイオームを設定。

手懐ける為のアイテムは共通でポピー。

木のミニゴーレム以外は、炎上しても炎などの炎上する原因から離れたら即、鎮火する設定を作ってみた。

解らないなりきにイロイロ弄ってみて、なんとか出来てる感じ。

[ミニゴーレムのモデルも更新]

元のミニゴーレムとユニークゴーレムのモデルを作り直してみた。

とりあえずで作った前のモデルから細かい部分を修正。

各パーツのサイズと位置関係と、回転軸の位置を調整してから、他のミニゴーレムのモデルにコピー。

まったく同じでテクスチャ違いならモデルは一個でいいんだけど、もし叶うならゴーレムの種類に応じて何かしらの差をつけてみたい。

できるか分からないけど、アクセサリや、装備みたいなのを付けられるようにしてみたいw

なので、ベースのモデルができたから、後はそれぞれに共通部分は更新の度にコピーして、個別の部分はそれぞれにって感じ。

ただ、どういう風に差をつけるかが決まってない上に、それが実装できるかも怪しいw

とりあえず例のユニークゴーレムに変化できるのは「プリズマリンレンガのミニゴーレム」だけにしてみた。

完全に遊び心で、この処理を考える労力を他に回した方がいいのかも知れないけど、遊び心は大事♪

ちなみに、この子だけ水中での移動速度が少し速いw

次の目標はミニゴーレムに装備できるアイテムを作りたい。











次の記事

☆Minecraft1.12.2でMod作製 PRAT3. Mobのスポーンに反応するイベント

前の記事

☆Minecraft1.12.2でMod作製 PRAT1. Mobに挑戦

Minecraft 記事一覧へ