👨💻 第5章:スクリプトAPI入門
~JavaScriptでマイクラを自由に動かそう!~
📌 まず、スクリプトAPIとは?
スクリプトAPIは、Minecraft統合版でJavaScript(JS)を使ってゲーム内の動きやイベントを制御するための仕組みです。
これを使うと:
やりたいこと実現例ボタンを押してUIを表示「TPメニュー」などアイテムを使ったら効果発動ワープ棒、力のトーテムなどチャットを変えるニックネーム機能、ロール表示など状態を記録・変化させるのどの渇き、ステータス管理など
今回はジャンプしたらダメージをくらうようにしよう
📁 スクリプトの構成(最低限)
my_addon_bp/
├── manifest.json ← script定義あり
├── pack_icon.png
├── scripts/
│ └── main.js ← JavaScriptを書く場所
📄 manifest.json(Script対応)
{
"format_version": 2,
"header": {r
"name": "スクリプトテスト",
"description": "スクリプト、自作",
"uuid": "xxxx-xxxx-xxxx-xxxx-xxxx-xxxx",
"version": [1, 0, 0],
"min_engine_version": [1, 16, 0]
},
"modules": [
{
"type": "script",
"version": [1, 0, 0],
"uuid": "yyyy-yyyy-yyyy-yyyy-yyyy-yyyy",
"entry": "scripts/main.js"
}
],
"dependencies": [
{
"module_name": "@minecraft/server",
"version": "1.5.0"
}
]
}
✅ version は自分のマイクラに合うバージョンにしてね(例:1.19.0~1.20.0)
📜 scripts/main.js(サンプルコード)
import { world, system, GameMode } from "@minecraft/server";
// プレイヤーの onGround 状態を記録
const wasOnGround = new Map();
system.runInterval(() => {
for (const player of world.getPlayers()) {
// 観戦者はスキップ
if (player.getGameMode() === GameMode.spectator) continue;
const id = player.id;
const onGroundNow = player.isOnGround;
const onGroundBefore = wasOnGround.get(id) ?? true;
// 地面にいた → 空中に → ジャンプとみなす
if (onGroundBefore && !onGroundNow) {
player.runCommandAsync("damage @s 1"); // 2ハート分のダメージ
}
// 状態を保存
wasOnGround.set(id, onGroundNow);
}
}, 1); // 毎tick(20分の1秒)チェック
🔍 どこに入れる?
フォルダ入れる場所(Windows)behavior_packsC:\Users\<ユーザー名>\AppData\Local\Packages\Microsoft.MinecraftUWP…\development_behavior_packs\
🧪 その後Minecraft起動 → ワールド作成 → このパックを「ビヘイビアパック」に適用!
✅ 実行結果
ワールドに入ってジャンプをするとダメージがはいります
✨ できること(今後の拡張)
使い方モジュールできることUI表示@minecraft/server-uiボタン、入力欄、選択肢フォームなどプレイヤー操作@minecraft/server移動、テレポート、効果付与などイベント検知afterEvents, beforeEventsアイテム使用、チャット、死亡など
他にも教えて欲しいことがあればコメント欄に書いてくださいね~
コメント