0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【マインクラフト(統合版)】Websocketサーバーを使って「ホバーユニット(+ライフルキャノン)」を作ってみました

Posted at

はじめに

今回のアイテムはGシリーズでのとあるモビルスーツのバックパックを参考に3D風の2Dでアレンジしています。
マインクラフトのキャラクターは元々等身が低いので、「ファンネルユニット」実装時と同じようにSD風に仕上がりました。

このアイテムはオフハンド専用装備なので、他のアイテムと組み合わせて使います。今回の実装に合わせてライフルも追加実装しています。

動作環境

プラットフォーム
Windows10
マインクラフト(統合版)
Bedrock Edition v1.21.71
socket-manager
v1.14.1
言語
PHP v8.2.4(v8.1.0以降)

オフハンド装備の効果

ホバーユニットはメインハンド装備の特定アイテム(ファンネルユニット、ライフルキャノン)にNジャマーの影響を与えて性能を向上させます。
例えばライフルキャノンの場合は砲弾を発射しますが、ホバーユニットの有り無しで以下のように変化します。

▼ホバーユニット無しの時

▼ホバーユニット有りの時

動画データが間引きされているので少しわかりにくいですが、砲弾と爆発がひとまわり大きくなり威力も倍増しています。

「風の杖」でご紹介した補充アイテム要らずの無限打ちの実装を行っているので弾切れの心配はありません。

対人戦を意識すると地形が悲惨な状況になる事が予想されますので、爆発によるブロックの破壊は起こらないように実装しています。

ちなみにファンネルユニットを装備している場合は、同時に扱えるファンネルが6機から12機に増えます。

ホバーユニットによる飛行

しゃがんだ状態でファンネルユニット、あるいはライフルキャノンを使うとホバリングモードへ移行後飛行を開始します。

ファンネルユニットとライフルキャノンは飛行による直進と舵取りをコントロールします。
例えば以下のようにプレイヤーが向いている方向へ旋回する事ができ、ジャンプボタンで安全に着地する事ができます。


以下のアイテムには飛行中の役割分担があります。
・ファンネルユニット
高度を調整する。
飛行中に使うとファンネルは射出できないが、プレイヤー目線で水平面から上を向いている時は上昇し、下を向いている時は下降する。
・ライフルキャノン
高度調整はできないが、上空からの砲撃が可能。

ホバリングモード

▼飛行中のライフルによる攻撃

通常は上の画面のようにライフルキャノンなどの専用アイテムを使わない限り飛行中の攻撃はできません。
ですが、ホバーユニットによる飛行中にメインハンドアイテムを外すか持ち替える事でその場で停滞するホバリングモードへ移行します。
この時は以下の画面のように他の武器を使う事が可能となります。


▼「光の剣」の場合

上空からバルカン砲を放っている気分になれます。

アイテムの取得

socket-manager環境のビヘイビアパック/リソースパックなどのアドオンパックを適用しておけば、以下の方法で「ライフルキャノン」「ホバーユニット」が手に入ります。

「ライフルキャノン」の取得

クラフトする場合

▼必要な素材
必要な素材

「PS装甲」は釣りでのジャンク品として登録しています。
ジャンク品の登録方法については以下のページをご覧ください。

「Eパック」は武器鍛冶師との取引で手に入ります。

▼レシピパターン
 

ショップで購入する場合

以下のショップで購入できます。

「召雷の魔石」実装時と同じようにWebsocketサーバーを介したネットショップとの接続中は発射できないようにしています。

コマンドで取得する場合

以下はワールドオーナーやシステム組み込み用としてコマンドで取得する方法です。

「ホバーユニット」の取得

クラフトする場合

▼必要な素材
必要な素材

「PS装甲」は釣りでのジャンク品として登録しています。
ジャンク品の登録方法については以下のページをご覧ください。

「Eパック」は武器鍛冶師との取引で手に入ります。

「Nジャマー」は行商人との取引で手に入ります。

▼レシピパターン

ショップで購入する場合

以下のショップで購入できます。

コマンドで取得する場合

以下はワールドオーナーやシステム組み込み用としてコマンドで取得する方法です。


あとはsocket-managerでWebsocketサーバーを起動後、マインクラフトからの接続が完了すれば「ライフルキャノン」「ホバーユニット」を含めた各種コンテンツが使えるようになります。

socket-managerの導入方法やアドオンパックの所在については以下のページでご紹介していますのでご興味のある方はご覧ください。

アドオンパックの適用方法については以下のページでご紹介しています。

サーバーサイドの処理

ホバーユニットを使った飛行前後のコントロール(HUD表示や落下ダメージ制御など)はサーバーサイドが担っています。

プレイヤーのイベント検知は、以下のページでご紹介させて頂いたPlayerTravelledItemUsedのイベントを利用していますが、状態検知(ホバーユニットの装備状態やしゃがんだ状態)についてはItemUsedイベントのバリアント値を介してやり取りを行っています。

飛行中のファンネルユニットによる高度調整を行う時には、ItemUsedイベントを検知後プレイヤーの仰角を指定したquerytarget(Websocketサーバー専用)コマンドを発行する事で制御しています。

おわりに

飛行中の実装は、「ファンネルユニット」実装時のAI機能を飛行機能に絞って再構築後、「座れるエンティティ」と組み合わせて作成しています。

また、エンティティの召喚時にマインクラフトユーザー名をタグとして付与しているので、他のプレイヤーと競合しないように配慮しています。

今回ホバーユニット自体には特殊な実装はありませんが、ライフルキャノンの方は「発射アイテム」として実装後、光の剣のライトバレットをベースにして「発射体エンティティ」を作成しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?