Minecraft: Education の「ブロックコーディング×Agent(作業ロボ)」体験を Java版マイクラで再現 — Paperプラグイン「twbridge」試作

2025-11-15

以前の記事「Minecraft: Education の「ブロックコーディング×Agent(作業ロボ)」体験を JAVA版マイクラで再現」では、Minecraft: Education Edition の「ブロックコーディング×エージェント」体験を、TurboWarp+WebSocket の構成で再現する構想をまとめました。

今回の記事では、その構想をもとに実際に Paperプラグインとして実装 してみました。
プラグイン名は twbridge(TurboWarp Bridge)。名前の通り、TurboWarpとPaperサーバのあいだをブリッジするプラグインとなります。

目次

目指したのは「コードブロックでエージェントを操れるJava版」

目的は、子どもがEducationで楽しんでいた「ブロックコーディングで作業ロボ(Agent)を動かす」体験を、Java版(Paper) でも「無料」で再現することです。クライアント側にMODを入れずに使えるよう、TurboWarp(Scratch互換の高速環境) と WebSocket を採用しました。TurboWarpの拡張ブロックから命令を送り、サーバ側のプラグインが受け取って実行します。

今回実装したこと

現在のバージョンでは、以下のブロックを実装しました。

  • WebSocket接続/切断
  • Minecraftコマンド送信(例:/say など)
  • エージェントのスポーン/デスポーン

これらはプラグイン内のウェブサーバから配布されるカスタム拡張(.js)としてTurboWarpに読み込めます。

custom js

Paperに twbridge.jar を入れて起動しますと、コンソールに拡張のURLが表示されます。TurboWarp側でそのURLを指定するとブロックが使えるようになります。/say Hello from twbridge! がサーバに反映されると、ブロックから操作できていることを体感できます。

PDCAを「ブロック」で回せる環境づくり

このプロジェクトの最終的な目標は、「Minecraft内でPDCAサイクルを学べる環境」を整えることです。
子どもたちは、ブロックを組んでエージェントに命令を出し、結果を見て修正します。
これがそのまま Plan → Do → Check → Act のサイクルに対応します。

  • Plan:ブロックで行動計画を立てる
  • Do:エージェントが実行する
  • Check:ワールド上で結果を観察する
  • Act:ブロックを修正して再挑戦する

「ブロックコーディング×Agent」を使って、この流れを短時間で何度も繰り返すことで、自然と改善の考え方を身につけていくことができると考えました。

今後の課題

実装してみて分かった課題も多いです。

  1. 複数プレイヤーの識別
    同じサーバに複数人が接続している場合、どのプレイヤーのエージェントを操作するかを特定する必要があります。
    現状は接続時にプレイヤー名を登録して識別していますが、より堅牢なUUID管理にしたいです。
  2. コマンドの実行タイミング
    TurboWarpはブロックを一気に評価するため、Minecraft側でコマンドが詰まることがあります。
    将来的には一定間隔でコマンドを実行するキュー処理を導入したいです。
  3. セキュリティと権限管理
    WebSocketを開ける関係上、どの範囲まで許可するかは慎重に検討中です。
    とりあえずは、ローカルネットワーク内の教室など閉じた環境での運用を前提としています。

すべてプラグイン側で完結

こうした課題を踏まえ、設計方針を「Paperプラグインだけで完結」にしています。
外部サーバやNode.jsを立てる必要はなく、twbridgeプラグイン1つを導入するだけで、次の要素がすべて揃うようにしています。

  • WebSocketサーバ(TurboWarpからの命令受け口)
  • 拡張(.js)ファイルのホスティング
  • Paperサーバ内でのコマンド実行・エージェント管理

これにより、セットアップは最小限になったと思います。
Paperのplugins/にtwbridge.jarを入れて再起動すると、コンソールにTurboWarpの拡張用URLが表示され、そのURLをTurboWarpの「拡張を追加」から指定すれば準備完了です。

turbowarp and agent for Minecraft Paper

今後の拡張予定

次のステップとして、以下のブロックを追加する予定です。

  • 移動(前進・後退・上下移動)
  • 方向転換(右回転・左回転・180°回転)
  • ブロック操作(設置/破壊)
  • 条件分岐・繰り返し
  • ブロック検知(前方・下方)

これらを段階的に実装し、最終的には MakeCodeのエージェント操作ブロックに近い操作感 を目指します。
さらに、エージェントの状態をWebSocket経由でTurboWarp側に返す「双方向通信」も構想中です。