Youtubeチャンネルはこちら!コマンド解説を動画で観れます!

【必修】行動をカウントするscoreboardコマンド【マイクラ】

【必修】行動をカウントするscoreboardコマンド【マイクラ】

この記事では、Minecraft Java Edition(バージョン1.18.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

scoreboardコマンドについて知りたいマインクラフター
「scoreboardコマンドってどういうことができるコマンドなのかな……? どうやって使うのか教えて欲しい。コマンドを使っていくうえで、覚えておくべき?」

こんな疑問を解決します!

本記事の内容
  • 行動をカウントするscoreboardコマンド
  • 行動したかどうかの判定に便利
  • 覚えておくと出来ることがかなり増える

こんにちは! マインクラフターのなつめ(@natsume_717b)です。

なつめ

マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
配布マップ・ダウンロードページ

この記事では、コマンドの中でもかなり有能なscoreboardコマンドについて解説していきます。

scoreboardコマンドが何をするのかという基本的なところから、実際にどのようにして使うのかも紹介。
また、scoreboardコマンドの有能性についても語っているので、ぜひ最後まで読んでくれると嬉しいです。

コマンドを勉強し始めた人からするとやや難しいと思う場面もあるかもしれませんが、scoreboardコマンドは出来て損することは一切ないので、ぜひ覚えるべきです。

それでは、さっそくscoreboardコマンドについて見ていきましょう!

動画による説明は以下から視聴することができます。



行動をカウントするscoreboardコマンド

scoreboardコマンドは、特定の行動を行ったかどうかをカウントするコマンドです。
そして、カウントした値は別のコマンドで活用していきます。

カウントできるものとしては、○○を作った回数、プレイ時間や歩いた距離、走った距離など多種多様に存在しています。

カウントできるものを全て解説することは難しいので、MinecraftWikiのスコアボードのページを参考にすることをおすすめします。

なので、歩いた距離をカウントしているとすると、「〇マス歩いた時、□□が起きる」なんてコマンドの組み方ができます。

実際にscoreboardコマンドを使ってみる

実際にコマンドを組んでみましょう。

scoreboardはまず、スコアボードの作成が必須です。
スコアボードを作成しない限り、カウントを始めてくれません。

/scoreboard objectives add Jump minecraft.custom:minecraft.jump "ジャンプした回数"

上記のコマンドを言語化すると以下のようになります。

/scoreboard objectives add スコアボードの名称(自分で決めれる) カウントするもの "画面表示するときの名称"

今回はスコアボードの名称をJumpとして、カウントするものはジャンプした回数にしました。
また、スコアボードの値を画面に表示させる際の名称を「ジャンプした回数」と表示されるようにもしました。

スコアボードの値を画面に表示させる

基本的にスコアボードを扱うときは、これだけで準備OKです。
とはいえ、慣れていない場合はスコアボードの値を確認したいという時もあるかと思います。

そこで、画面横にスコアボードの値を表示させるコマンドを紹介します。

/scoreboard objectives setdisplay sidebar Jump

このコマンドも分かりやすいよう、言語化したものを置いておきます。

/scoreboard objectives setdisplay 表示させる場所 表示させたいスコアボードの名称

成功していれば、以下の画像のように表示されているはずです。
(スコアボードの値が0の場合は表示されませんので、表示されていないという方はカウントを増やしてみましょう)

setdisplayを使って画面等に表示させた場合、非表示にするにはそのスコアボードを一度削除する必要があります。

新しく作り直す必要があるため少々面倒ですが、以下のコマンドを使って削除。
先述したコマンドで再度作り直しましょう。

/scoreboard objectives remove 消したいスコアボードの名称

スコアボードの値を参照しつつ、コマンドを実行する

それでは、いよいよスコアボードの値をコマンドに活用していきます。
今回は「10回ジャンプした人に対して、ダイヤモンドを1つ付与する」という例で説明していきます。

ジャンプをカウントするスコアボードの作り方は先述していますので、scoreboardコマンドの操作は省略させていただきます。
ジャンプをカウントするスコアボードを作成できている状態を前提として、お話していきます。

まずはコマンドブロックを用意して、リピート、無条件、常時実行に設定しましょう。
そして、そのコマンドブロックに以下のコマンドを打ちこみます。

execute as @a[scores={Jump=10}] run give @s minecraft:diamond 1

このコマンドはexecuteコマンドになっており、コマンドの実行者を「Jumpの値が10であるプレイヤー」に変更しています。

as @a[scores={Jump=10}] の部分で、コマンドの実行者が変更されています。

なので、後半にあるgiveコマンドでの@sは「Jumpの値が10のプレイヤー」を意味していることになります。

これで10回ジャンプしたらダイヤモンドがもらえるようになりました。
しかし、ダイヤモンドを付与してくれるコマンドブロックはリピートしているうえに、スコアボードの値は10のまんまです。

要するに、ジャンプした回数が10のままの場合、延々とダイヤモンドが手に入ってしまいます。
これでは1つだけ付与させようとしている意味がありません。

そこで、以下のコマンドを入力したチェーンコマンドブロックを、リピートコマンドブロックと向きを合わせて設置します。
(チェーンコマンドブロックの設定は、条件付き、常時実行にします)

scoreboard players reset @a[scores={Jump=10..}] Jump

入力されているものはscoreboardコマンドで、特定のスコアボードの値をリセットするものです。
対象となるプレイヤーを@a[scores={Jump=10..}]にしているので、Jumpしている回数が10以上を記録しているプレイヤーが全員対象になります。

なので、Jumpの値が10以上のプレイヤーは即Jumpの値が0にリセットされます。

これでダイヤは1つしか付与されないようにできるので、延々とダイヤモンドが手に入ることはなくなります。

行動したかどうかの判定に便利

一通りscoreboardコマンドの使い方などを解説してきましたが、scoreboardコマンドの強みはなんといっても、行動したかどうかの判定に使えることです。

例えば、先ほどまで使っていた「ジャンプした回数」をカウントする項目を利用すれば、ジャンプしたかどうかを検知することが可能です。

他にも「minecraft.crafted:minecraft.crafting_table」という項目を利用すれば、作業台を作ったことがあるかどうか、なんてことも判定できます。

これらはscoreboardを使わないとできないことなので、特定の行動を監視することに非常に便利といえます。

欠点としては、項目に存在しないものは判定できない点です。
ですが、dummyというコマンドでしか値が変動しない項目を利用することで、上手くいく場合もあります。

例えばA地点を通ったかどうかを判定させたい場合、A地点の座標にいる時にdummyの値を増やせばカウントできていることになります。

というわけで、dummyの存在もあって行動したかどうかの判定がscoreboardコマンドは得意としています。

覚えておくと出来ることがかなり増える

最後に、scoreboardコマンドを覚えておくべきかどうかについてお話しておきます。
といっても、ここまで読んでいただいたらめちゃくちゃ便利だということは分かってくださるかと思います。

scoreboardコマンドでカウントしつつ、ターゲットセレクターにスコアボードの値を指定することで様々な条件を付与することが可能です。
これはscoreboardコマンドあってこそですし、汎用性もかなり高いので、コマンドを勉強しているという方は早めに扱えるようにしておくべきですね。

過去にscoreboardコマンドを使ったギミックなども紹介しているので、この記事を活かしつつ参考にしてもらうとより理解が深まるかなと思います。

まとめ

というわけで、今回のまとめです。

今回使ったコマンドはこちら。

今回使ったコマンド
  • スコアボードを作成するコマンド
/scoreboard objectives add スコアボードの名称(自分で決めれる) カウントするもの "画面表示するときの名称"
  • スコアボードを画面に表示させるコマンド
/scoreboard objectives setdisplay 表示させる場所 表示させたいスコアボードの名称
  • スコアボードを削除するコマンド
/scoreboard objectives remove 消したいスコアボードの名称
  • スコアボードの値をリセットするコマンド
    (0にするコマンド)
/scoreboard players reset 対象 リセットしたいスコアボードの名称
ポイント
  • scoreboardコマンドを使うことで、様々な行為などをカウントすることができます。
  • カウントした値を使って、コマンドの対象を選択することができ、差別化などが可能となります。
    →特定の行動をしたかどうかの判定にも、役立ちます。
  • コマンドを使う以上は、scoreboardコマンドは覚えておいた方が良いです。

この記事は以上になります。