備忘録としてMnecraft BEのscoreboardコマンドの使い方をまとめます。
なおscoreboardコマンドの使い方は動画でもご覧いただけます。
/scoreboardコマンドとは
/scoreboardコマンドを使用することで、特定のエンティティに任意の値を付与して管理したり、画面に表示したりすることができます。
ただしJavaEditionの/scoreboardコマンドほど多機能ではなく、基本的にはコマンドによって値を設定しコマンドによって値を管理する、くらいの機能しか現状では実装されていないようです。
/scoreboardコマンドの構文
/scoreboard␣objectives␣add/list/remove/setdisplay~
1-①スコアボードを作成する
『/scoreboard␣objectives␣add␣スコア名␣dummy␣スコア表示名』
新規でスコアボードを作成します。
例)
/scoreboard␣objectives␣add␣test␣dummy␣テスト
→test(表示名はテスト)というスコアボードを追加する。
スコアボードとは、特定の値を記入するための『掲示板』のような概念です。
例えば「Player1に来店ポイントを3与える。」といった場合はまず「来店ポイント」という掲示板を作成し、そこに「Player1 +3」と書き入れるようなイメージ。
そのための掲示板作成に該当するのが「/scoreboard objectives add ~」です。
なお「スコア表示名」はコマンドログなどに表示される際の表示名を指しますが、不要な場合は記入しなくてもOK。
dummyとは?
「dummy」はスコアの形式を指定する言葉で、結果として『dummy型スコアボード』が追加されます。なおBE(統合版)ではdummy型以外のスコアボードは未実装のため、形式指定が必ずdummyとなります。
dummy型のスコアボードはコマンドでのみ値を操作することができる形式です。
1-②スコアボードの一覧を確認する
『/scoreboard␣objectives␣list』
存在しているスコアボードの一覧を表示し確認します。
1-③スコアボードを削除する
『/scoreboard␣objectives␣remove␣スコア名』
スコアボードを削除します。
1-④スコアボードを表示する
『/scoreboard␣objectives␣setdisplay␣表示タイプ␣スコア名␣昇順/降順』
スコアボードを表示します。
例)
/scoreboard␣objectives␣setdisplay␣sidebar␣test␣ascending
→testスコアを昇順でサイドバーに表示する。
表示タイプは(belowname/list/sidebar)から選択可能。
昇順/降順は(ascending/descending)で指定します。
/scoreboard␣players␣add/list/operation/random/remove/reset/set/test␣~
2-①ターゲットにスコアの値を加算する。
『/scoreboard␣players␣add␣ターゲット␣スコア名␣加算する値』
指定したターゲットの指定したスコアに任意の値を加算します。
例)
/scoreboard␣players␣add␣@p␣test␣3
→最も近くのプレイヤーにtestスコアを3加算する。
2-②ターゲットのスコアの値を一覧表示する。
『/scoreboard␣players␣list␣ターゲット』
ターゲットを指定しない場合、何らかのスコアを持つすべてのエンティティを表示します。
ターゲットを指定した場合、指定したターゲットが持つスコアの値を一覧表示します。
またターゲット指定に「*」を記入した場合、すべてのエンティティのすべてのスコア値を一覧表示します。
2-③ターゲットのスコアの値を算術演算で変更する。
『/scoreboard␣players␣operation␣ターゲット1␣スコア名1␣操作符号␣ターゲット2␣スコア名2』
ターゲット1の指定したスコアの値をターゲット2の指定したスコアの値を用いて操作します。
とってもややこしいので数学的な知識が必要になるかもしれませんが、とってもややこしい計算が必要な時くらいしか「operation」は使いません。
値を操作する符号は以下。
- 『%=』・・・剰余除算
(ターゲット1のスコア1の値をターゲット2のスコア2の値で割った余りの数に置き換える。) - 『*=』・・・乗算
- 『+=』・・・加算
- 『-=』・・・減算
- 『/=』・・・整数除算
(ターゲット1のスコア1の値をターゲット2のスコア2の値で割った商の値に置き換える。) - 『<』・・・最小比較
(ターゲット1のスコア1の値がターゲット2のスコア2の値よりも大きい場合、ターゲット1のスコア1の値をターゲット2のスコア2の値に設定する。) - 『=』・・・等号
(ターゲット1のスコア1の値をターゲット2のスコア2の値に置き換える。) - 『>』・・・最大比較
(ターゲット1のスコア1の値がターゲット2のスコア2の値よりも小さい場合、ターゲット1のスコア1の値をターゲット2のスコア2の値に設定する。) - 『><』・・・交換
(ターゲット1のスコア1の値をターゲット2のスコア2の値と入れ替える。)
2-④ターゲットのスコアの値を指定した範囲内でランダムに置き換える。
『/scoreboard␣players␣random␣ターゲット␣スコア名␣最小値␣最大値』
ターゲットのスコアの値を、指定した範囲でランダムに決定することができます。
例)
/scoreboard␣players␣random␣player1␣test␣1␣10
→プレイヤー1のtestスコアを1から10の範囲でランダム置換する。
2-⑤ターゲットのスコアの値を減算する。
『/scoreboard␣players␣remove␣ターゲット␣スコア名␣減算する値』
指定したターゲットの指定したスコアの値から任意の値を減算します。
例)
/scoreboard␣players␣remove␣player2␣test␣100
→プレイヤー2からtestスコアの値を100減算する。
2-⑥ターゲットのスコアの値を削除する。
『/scoreboard␣players␣reset␣ターゲット␣スコア名』
スコア名を指定しない場合はターゲットの持つすべてのスコアの値を削除します。
スコア名を指定する場合は指定したスコアの値を削除します。
例)
/scoreboard␣players␣reset␣@a␣test
→全プレイヤーのtestスコアの値を削除する。
値を0に置き換えるのではなく、該当するスコアの値が無くなることに注意してください。
0に置き換えた場合はスコアボード表示に「0」が表示されますが、resetの場合は表示から除外されます。
2-⑦ターゲットのスコアの値を置き換える。
『/scoreboard␣players␣set␣ターゲット␣スコア名␣置き換える値』
指定したターゲットの指定したスコアの値を任意の値に置き換えます。
元の値は関係なく好きな値に書き換えたい場合に使用します。
2-⑧ターゲットのスコアの値が指定範囲内にあるかを判定する。
『/scoreboard␣players␣test␣ターゲット␣スコア名␣最小値␣最大値』
指定したターゲットの指定したスコア値が、任意の最小値~最大値の範囲に収まっているかどうかを判定することができます。
/scoreboardコマンドはこんな時に使う
基本的にサバイバルモードで遊んでいるときに『/scoreboard』を使うことはありません。
使うとすれば、クリエイティブモードでオリジナルゲームを作ったり、かなり込み入った検証をしたりといった限定的なケースで使用することになると思います。
▶スコアボードを活用した配布ワールド『9minigames』『迷宮~ラビリンス~』
ゲーム参加プレイヤーの得点を表示したり、コマンド実行の回数をカウントして制御したりといったレッドストーン回路だけでは困難な機能を構築することができます。