【マイクラ統合版】左クリック(攻撃)を検知する方法を解説! – 1.21.120で変わったScriptAPI

はじめに

先の1.21.120のアップデートでマイクラ統合版は様々な点で変化しました。これはScriptAPIも例外ではありません。様々なクラスやメソッドが追加された中で、「左クリックを検知するプロパティー」が追加されたのはご存じでしょうか?

厳密に言えば左クリックそのものではなく攻撃モーションのトリガーですが、アドオン制作上、だいぶ汎用性が高いことは間違いありません。これは従来の「右クリック検知」とは明確に一線を画す存在です。

Character
素振りを検知できるということですね

本記事では、この左クリック検知のプロパティに焦点を当て、左クリックをトリガーする方法についてまとめていきます。

準備

本記事はScriptAPIそのものを前提とします。これは、「JavaScriptというプログラミング言語を用いてゲームシステムをカスタマイズする機能」のことです。まだ環境構築が済んでいない場合は、先に以下の記事をご覧になることをおススメします:

manifest.json

本機能は執筆時点(2025.11)ではベータ版です。したがって、アドオンの要項を定義するmanifest.json内でベータ版のminecraft/serverモジュールを呼び出す必要があります。具体的には、dependencies内で

Copied!
"dependencies": [
    {
      "module_name": "@minecraft/server",
      "version": "beta"
    }
],

のように記述する必要があります。

Character
同アップデートでベータ版の呼び出しには「beta」だけで済むようになりました

モジュールのインストール

続いて、当該ベータ版モジュールのインストールも行いましょう。厳密にはこれは必須ではないのですが、VSCodeなどでスクリプトを記述する際に補完機能が出てくるので、これをやっておくと便利です。

まずは、コマンドプロンプトを起動し、cdコマンドでアドオンがあるフォルダに移動します。

Copied!
cd "C:\Users\(ユーザー名)\AppData\Roaming\Minecraft Bedrock\Users\Shared\games\com.mojang\development_behavior_packs\(アドオンのフォルダ名)"
  • (ユーザー名)と(アドオンのフォルダ名)は個人の環境に合わせて変更してください

パス名に空白を含むので、今回の場合は引用符は必須です。なお、アドオンの作業フォルダのパスについてはこちらの記事も詳しいです:

続いて、以下のコマンドを実行します。

Copied!
npm init

何やら聞かれると思いますが、エンターキーを押し続ければ先に進めます。

最後に、以下のコマンドを実行して今回のベータ版のモジュールをインストールします。

Copied!
npm install @minecraft/server@2.4.0-beta.1.21.120-stable
Character
今回はベータ版を指定するので「@beta」を付します

これにて今回用いるminecraft/serverモジュールのインポートが完了します。後はスクリプトを書くだけですね!

スクリプト

さて、今回の本題、左クリック(攻撃アクション)をトリガーするプロパティーを使っていきます。まずは、アドオン内にscriptsフォルダを作成し、その中にmain.jsを配置していつも通りimport文を宣言しましょう:

Copied!
import * as server from "@minecraft/server";
Character
これはいつも通りですね

続いて、以下は左クリックを検知してメッセージを表示するプログラムです:

Copied!
server.world.afterEvents.playerSwingStart.subscribe(ev => {
  const player = ev.player;
  player.sendMessage("腕を振りました");
})

ご覧の通り、左クリックを行ったプレイヤーを取得して変数playerに格納し、そのplayerについてsendMessageを用いてメッセージを表示しています。他にもitemStackやswingSourceなどが使えるようです[参考]。

Copied!
const itemStack = ev.heldItemStack; // 左クリック時に持っていたアイテムを取得
const swingSource = ev.swingSource; // 攻撃モーションに至った原因
  • swingSourceはPreviewです

確認

上記のプログラムを書いて保存すると、ゲーム内で素振りに対してメッセージが表示されることが分かると思います:

おしまい

以上のように、1.21.120のアップデートにて「左クリックそのもの」を検知できるようになりました。従来はMolangやアニコンを駆使して何とかできていたものが、こうして簡単にできるようになったことは我々アドオン制作者にとって大きなことです。積極的に活用できるといいですね。

最新情報をチェックしよう!