マイクラScoreboardコマンド生成
単体コマンドと、目的別の複数コマンド手順を作成できます。
注意
スコアを初期化するコマンドと、毎回実行するコマンドは分けてください。初期化を繰り返すと、記録した値を意図せず変えてしまいます。
このツールでできること
- 目的(追加・設定・演算)を選ぶ
- 対象とスコアを指定
- 必要なコマンドを順にコピー
設定できる項目は選択したバージョンによって変わります。
簡易ジェネレーター
scoreboardの目標名は、作成・加算・表示の各コマンドで一致させてください。既存の目標を毎回作り直さないことも重要です。
生成結果
scoreboardの用途
scoreboardは、ポイント、お金、キル数、進行度、ランキング表示などに使えます。ミニゲームやサーバー運営で頻繁に使うため、目的ごとにコマンドを分けて作ると管理しやすくなります。
このコマンドをゲーム制作に使う
討伐数を保存する例では、scoreboardでプレイヤー別の進行状況を管理します。討伐クエストの組み立てで、初期化・実行順序・不具合の確認方法まで確認できます。
scoreboardの使いどころ
scoreboardは、お金、ポイント、キル数、残り時間、チーム得点、ミニゲームの進行管理に使うコマンドです。最初にobjectiveを作り、その後にset/add/remove/displayを組み合わせます。
sidebarに表示するには?
objectiveを作った後、display slotをsidebarに設定します。複数の表示を切り替える場合は目的別にobjectiveを分けると管理しやすくなります。
scoreboardでできることと組み立て方
scoreboard は、プレイヤーやエンティティごとに数値を記録する仕組みです。お金、ポイント、キル数、タイマー、チェックポイントの番号など、ミニゲームや配布ワールドの「状態」を管理するのに使います。
基本の3ステップ
/scoreboard objectives add money dummy {"text":"所持金"}
/scoreboard players set @p money 100
/scoreboard objectives setdisplay sidebar money
目的(objective)を作る → 値を入れる → 表示する、の順です。表示場所は sidebar(画面右)、list(Tabキーのプレイヤー一覧)、below_name(名前の下)から選べます。
自動で数える条件(Java版)
- dummy:コマンドでしか変わらない数値。お金やポイントに使います。
- deathCount:死亡回数 playerKillCount:プレイヤーを倒した数 totalKillCount:Mobも含めて倒した数
- health:現在の体力(below_nameに表示すると頭上にHPが出ます)
- minecraft.used:minecraft.carrot_on_a_stick:ニンジン付きの棒を使った回数。右クリック検知によく使われます。
- trigger:OP権限のないプレイヤーでも /trigger で値を変えられる目的。メニューやワープ選択に使います。
統合版で使える条件は基本的に dummy のみで、キル数などは自分でコマンドを組んで数える必要があります。
値の計算
/scoreboard players add @p money 10
/scoreboard players remove @p money 50
/scoreboard players operation @p total += @p money
operation を使うと、スコア同士の足し算・引き算・掛け算・割り算・比較(< と > で小さい方・大きい方を取る)ができます。
タイマーを作る例
/scoreboard objectives add timer dummy
/scoreboard players add #game timer 1 (リピートで毎ティック実行)
/execute if score #game timer matches 1200.. run say 60秒経過!
リピートコマンドブロックは1秒に20回動くので、1200で60秒です。#game のように # で始まる名前は、実在しないプレイヤー用の「変数」として使え、サイドバーには表示されません。
条件で分岐する
/execute as @a[scores={money=100..}] run say 100以上持っています
/execute if score @p money >= @p price run say 購入できます
うまくいかないとき
- 目的の名前は16文字以内の英数字が安全です(Java版の古いバージョンでは制限があります)。
- set する前のプレイヤーはスコアを持っていないため、
scores={money=0}に一致しません。参加時に0をsetしておきましょう。 - sidebarに表示できる目的は1つだけです。複数を切り替える場合は setdisplay を実行し直します。