Minecraft1.12.2でMod作製 PART6. ゴーレム用ペットの追加

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

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









前回、追加したキル数をカウントしてダメージにボーナスの処理に足りない部分があったみたいで、ワールドに入る度にゴーレムがデスポーンするという問題が起きたけど、単純にdatamanagerへの書き込みと読み込み用の記述が抜けていただけだったw

datamanager用の記述の為に、キル数のカウントの処理も知人に作り直して貰ったw

[ゴーレムにパラシュートを装備]

バニラのオオカミと同じようにゴーレムも遠くに離れるとテレポートをしてくる。
これで起こる事故は、高所作業中にゴーレムが落下ダメージを受けて体力が減ってしまったり、死んでしまう事。
今はポピーで回復できるようにしてるけど、いずれは専用の回復アイテムに切り替える予定だから、落下ダメージを防ぐ要素を入れたいところ。

で、追加したのが「パラシュート」というわけw

一定の距離を落下したらパラシュートが開いて落下速度を遅くして、着地時の落下ダメージを無効にしてからパラシュートを解除する仕様。
今は3ブロック落下で開くようにしてるけど、現実のパラシュートみたいに、「ある程度の速度がないと、パラシュートが開けない」ようにしていく予定。

1.一定の距離を落下したらパラシュートを開く
2.パラシュートを開いてすぐの着地は落下ダメージをわずかに軽減
3.パラシュートを開いてから徐々に落下速度が低下

こんな感じにしたいw

それと、盾を装備していると、落下ダメージを受ける時にガード音がしている時があるから、もしかしたら落下ダメージを盾で防いでいるかも知れないw

[ゴーレム用のペットの作製]

ゴーレムのパートナーとしてオオカミのゴーレムを作ってみた。
サイズはバニラのオオカミの半分。

最初は、そのまま縮小したんだけど、レンガ模様のドットが荒くなっちゃって、変な感じだったから、モデル作成時に身体の各パーツのキューブのサイズを2倍にして、拡大縮小の倍率を25%にして完成。

2倍の4分の1だから、サイズは半分で解像度が2倍。
これでレンガ模様もそれっぽく見える。

ちなみに、この子は戦闘には参加しない仕様

[アイテムを持てるように準備]

モデルを作っている最中にふと思い立って、アイテムを持てるようにしてみた。
ゾンビやスケルトンの要素にある、「手にアイテムを持つ」仕様と、「スノーゴーレムが頭にカボチャブロックを装備している」仕様の処理を応用して、オオカミのゴーレムがアイテムを咥えている様に持たせる処理を作ってみた。

モデルにアイテム保持用のキューブを追加して、これの回転軸の位置を頭と同じにしておく、これで頭の向き(おねだりの首傾げ)や首だけを動かす動きにもアイテムが連動して動くようになる。

あとは、首の動きの処理の回転角度の処理をそのままコピーして、そこに角度を少し加えるだけ。
これで、首の動きについてきて、尚且つ口から斜めに傾いて描写されるようになる。

頭の回転
this.Head.rotateAngleX = headPitch * 0.017453292F;

アイテムの回転
this.Item.rotateAngleX = headPitch * 0.017453292F – 0.9F;

アイテムの回転の最後の「-0.9F」がアイテムの角度を決めている。

後はスノーゴーレムに使われているRenderLayerと同じ機能を使って、オオカミのゴーレムの「Item」というパーツにアイテムを描写するだけ。
これで描写されたアイテムは「Item」というパーツの動きに合わせて動く。

ちなみにレイヤーを追加する処理は「RenderSnowMan」の宣言の中にある

今のところ骨を右クリックで持たせるだけになっているけど、ベースができたので、イロイロと追加できそう。
例えば・・・
1.落ちてるアイテムを拾う
2.どこかから拾ってきたという感じでランダムにアイテムを入手

他にも面白いことが出来そうな気がする。

モデルも完成したから、次にゴーレムとの「ペア」の処理を作る。
お互いのユニークIDを登録して、パートナーとして認識させる。

この処理は「EntityTameable」の中のペットのオーナーのIDを取得したりする処理を参考に作った。

これによって追加できた処理が・・・
1.オオカミのゴーレムはパートナーであるゴーレムに追従
2.ゴーレムが死亡してホームにリスポーンする時に、オオカミのゴーレムも一緒に移動
3.オオカミのゴーレムが死亡する時に、パートナーのゴーレムのホームにリスポーン

作製予定
4.オオカミのゴーレムが攻撃を受けると、パートナーのゴーレムが攻撃してきたMobに攻撃をする
5.パートナーのゴーレムに対して、オオカミのゴーレムからの何かしらのアシスト

なんとなく思い付きで作ってみたけど、イロイロと面白そうな要素を追加できるかも知れない。
作るのに結構な時間がかかったから、良い方向で生かせるように出来ればと思うw

まぁ、おかげでレイヤーの処理とか、保持しているアイテムの処理と描画なども覚えたし、無駄ではなかったと思う。
パートナーの登録処理なんかも作れたし、他でも使えそうだからokかな。

順調に進んではいるんだけど、未だに「ワールドへの最初のログインの時に、ゴーレム召喚用のアイテムを入手」の処理が出来ていないw

他のModのその手の処理を見たけど、まだ理解できず作れない。
なので、テスト中はクリエイティブモードで入手してからサバイバルモードに戻すという手順で進めてるw

この処理が出来たら、α版として公開出来るかもしれない。
とりあえず、召喚用アイテムの自動入手と、プレイに支障をきたすバグをチェックしてからかな。

先日、Mod「Ancient Warfare2」のMobを攻撃させたらクラッシュしたから、こっちのバグかと思ったけど、「Doggy Talents」のDogに攻撃させてもクラッシュしたから、試しに「Ancient Warfare2」のバージョンを1つ前に戻したらクラッシュしなくなった。

ちょっとビックリw

後はMobごとのキル数によるダメージ増加の上限を、「MobのHPの上限に応じて変わる」ようにしたい。
他のModのHPが3桁を超えるMobや、2桁後半のMobなども、何度も倒しているうちに有利になるようにする。

ゴーレムが強くなりすぎる可能性もあるけど、そもそもHPの高いMobをゴーレム単体で倒すのは難しいから、装備や能力の充実と、プレイヤーのサポートを合わせて何体も倒していく事になる。
なのでHPの高いMobに対しては逆に労力に見合わないかも知れないw

ゲームバランスの様子も見ながら数値をいじっていく予定。
後はマルチでの挙動(そもそも起動できるか)も確認したいけど、自力でModサーバーを建てられないというw

マルチでの挙動が安定しないうちに公開しちゃうと、遊んでくれる人達に迷惑がかかっちゃうから、マルチでの動作確認も早めに済ませないといけない。

まだまだ公開の目途は立たないけど、とりあえずは進んでる感じ。
しばらくは今の状態でプレイして新しい要素のヒントを探そう。
ついでにバグがないかも確認w










次の記事

☆Minecraft1.12.2でMod作製 PRAT7. ゴーレムの死亡処理とコンフィグファイル

前の記事

☆Minecraft1.12.2でMod作製 PRAT5. ゴーレムの機能を追加

Minecraft 記事一覧へ