Minecraft【Java版/統合版】タイマー作成。

2023-02-02

ミニゲームや各種仕掛けに使える!簡単タイマー。

Java版1.19.3、統合版はv1.19.51で動作確認。

 

 

簡単タイマー。

スコアボードを使って、タイマーを作成します。タイマーには時間が減っていく「カウントダウン」タイマーと、時間が増えていく「カウントアップ」タイマー(ストップウオッチ)があります。それぞれのタイマーを経験値レベル、サイドバー、アクションバーに表示します。 秒表示のみタイマーですが、ミニゲームの制限時間や経過時間を計るには十分だと思います。

◻︎装置の特徴
・Java版「matches」、統合版「test」を使ったスコアの検知。
・アクションバーにタイマー表示。

 

 

お知らせ

晋遊舎(しんゆうしゃ)出版のマイクラ本に、作例を提供させていただきました。コマンドを使ったゲーム作りを、とても丁寧に分かりやすく説明された入門書となります。ピストンを使って簡略化したタイマーなども掲載されています。全国の書店、晋遊舎サイトにて発売中です。ぜひ読んで見てください。

発売日/2021年 12月17日
晋遊舎サイト

 

 

更新履歴
2023-1-13/Java版1.19以降、統合版のv1.19.50以降に対応。統合版の新しいコマンドにも対応しました。

 

 

目次

1.作成準備
・フラットワールド。
・チャットコマンド。
2.コマンドブロックの設置
3.経験値レベルを使ったタイマー
・カウントダウンタイマー。
・カウントアップタイマー。(ストップウォッチ)
4.スコアボードを使ったタイマー
・カウントダウンタイマー。
・カウントアップタイマー。(ストップウォッチ)
5.スコアボードタイマーの応用
・時間をアクションバーに表示。

※一部Java版と統合版のコマンドに違いがあるので気をつけてください。

 

作成準備

フラットワールド。

マインクラフトのバージョンも上がり、フラットワールドの作成が簡単になりました。 詳しくは、下記の関連記事を参考に作成してください。

 

 

チャットコマンド。

チャットに大量のコマンドログが流れ、装置作成の邪魔になるのでログを非表示にしておきます。※Java版では、新規ワールド作成時にも非表示に出来ます。

◻︎コマンドログの非表示 ※表示する場合 「false」を「true」に変更。

/gamerule commandBlockOutput false

装置作成に必要なコマンドブロックを手に入れます。
◻︎コマンドブロックの入手

/give @s command_block

 

コマンドブロックの設置

Java版と統合版では、コマンドやブロックの名称など違いがあります。装置の解説はJava版の名称で統一しています。

コマンドブロックは画像に合わせて配置。「ブロック種類」「レッドストーン」を変更します。変更がある場合は、個別に解説していきます。

配置したコマンドブロックの状態/すべて無条件
※()内は統合版の名称。

コマンドブロックの色 ブロックの種類 レッドストーン
黄色 インパルス
(衝撃)
動力が必要
(レッドストーンが必要)
青色 チェーン 常時実行
(常にアクティブ)
紫色 リピート
(反復)
常時実行
(常にアクティブ)

 

経験値レベルを使ったタイマー

カウントダウンタイマー。

経験値バーをタイマーに使用します。コマンドが完成したら、ゲームモードをアドベンチャーモードにして確認してください。クリエイティブモードでは経験値バーが表示されないですが、動作はしています。

①の横にボタンを付けて開始スイッチ。④は「動力が必要(レッドストーンが必要)」に変更。レッドスーントーチ(のたいまつ)を設置。

 

【Java版/統合版 共通】

◻︎スコアボード「count」を作っておきます。

/scoreboard objectives add count dummy

◻︎削除する場合。 scoreboard objectives remove count

【Java版】

①xp add @p -10000 levels
②xp set @p 20 levels
③execute if entity @p[level=1..]
④scoreboard players add ティック count 1
⑤execute if score ティック count matches 18..
⑥scoreboard players set ティック count 0
⑦xp add @p -1 levels
⑧title @a title {"text":"時間切れ!","bold":true}

【統合版】④⑥はJava版と同じ。

①xp -10000L @p
②xp 20L @p
③execute if entity @p[lm=1]
⑤scoreboard players test ティック count 20
⑧xp -1L @p
⑨title @a title 時間切れ!

①経験値レベルをクリアします。※多めに引いて経験値レベルを0にしています。
②経験値レベルを20に設定。※1レベル=1秒。今回は20秒タイマーにしてあります。
③経験値レベルが1以上の時、信号を出します。
④「count」のティックを1増やします。
⑤「count」のティックが18の時、信号を出します。※18tickで約1秒。
⑥「count」のティックを0にします。
⑦ティックを0にした時、経験値レベルを1減らす。
⑧タイトルに「時間切れ!」と表示。

経験値レベルが1以上ある時、タイマー装置の電源が入り、1以下になると装置が止まります。経験値レベルは0表示が出来ません。時間を変えたい場合、②の数字を変更します。

◻︎30秒タイマーの場合。Java版 ※統合版も同じ箇所を変更。
②xp set @p 30 levels

 

カウントアップタイマー。(ストップウォッチ)

カウントダウンタイマーから、黄色の数字のコマンドだけ変更します。

【Java版】

②xp add @p 1 levels
③execute if entity @p[level=1.. 19]
⑦xp add @p 1 levels

【統合版】

②xp 1L @p
③execute if entity @p[lm=1,l=19]
⑦xp 1L @p

②経験値レベルを1に設定。
③経験値レベルが1から19の時、信号を出します。※経験値レベルが19になった時に装置を止めると、表示が20で止まります。
⑦ティックを0にした時、経験値レベルを1足す。

時間を変えたい場合、③の数字を変更します。
◻︎30秒タイマーの場合。 Java版/@p[level=1..29] 統合版/@p[lm=1,l=29]

 

スコアボードを使ったタイマー

カウントダウンタイマー。

サイドバーに「time」が表示され、「秒」の横の赤い数字がカウントされます。クリエイティブモードでも表示可能です。

①の横にボタンを付けて開始スイッチ。④は動力が必要(レッドストーンが必要)に変更。レッドスーントーチ(のたいまつ)を設置。

 

【Java版/統合版 共通】

◻︎スコアボード「count」「time」を作っておきます。

/scoreboard objectives add count dummy
/scoreboard objectives add time dummy

◻︎削除する場合。
scoreboard objectives remove count
scoreboard objectives remove time

【Java版】

①scoreboard objectives setdisplay sidebar time
②scoreboard players set 秒 time 20
③execute if score 秒 time matches 1..20
④scoreboard players add ティック count 1
⑤execute if score ティック count matches 18..
⑥scoreboard players set ティック count 0
⑦scoreboard players remove 秒 time 1
⑧title @p title {"text":"時間切れ!","bold":true}

【統合版】①②④⑦はJava版と同じ。

③scoreboard players test 秒 time 1 20
⑤scoreboard players test ティック count 18
⑥scoreboard players test 秒 time 0 0
⑧title @a title 時間切れ!

①サイドバーに、スコアボード「time」を表示します。
②「time」の秒に20を設定。
③「time」の秒が1から20以上の時、信号を出します。
④「count」のティックを1増やします。
⑤「count」のティックが18の時、信号を出します。
⑥「count」のティックを0にします。
⑦ティックを0にした時「time」の秒を1減らす。
⑧タイトルに「時間切れ!」と表示。

「time」の秒が1以上ある時、タイマー装置の電源が入り、0になると装置が止まります。 時間を変えたい場合、②③の数字を変更します。

◻︎30秒タイマーの場合。Java版 ※統合版も同じ箇所を変更。
②scoreboard players set 秒 time 30
③execute if score 秒 time matches 1..30

 

カウントアップタイマー。(ストップウォッチ)

カウントダウンタイマーから、黄色の数字のコマンドだけ変更します。

【Java版】

②scoreboard players set 秒 time 0
③execute if score 秒 time matches 0..19
⑦scoreboard players add 秒 time 1

【統合版】②⑧はJava版と同じ。

③scoreboard players test 秒 time 0 19

④「time」の秒を0に設定。
③「time」の秒が0から19の時、信号を出します。※「time」の秒が19になった時に装置を止めると、表示が20で止まります。
⑦「time」の秒を1増やします。

時間を変えたい場合、③の数字を変更します。
◻︎30秒タイマーの場合。Java版 ※統合版も同じ箇所を変更。
③execute if score 秒 time matches 0..29

 

スコアボードタイマーの応用

時間をアクションバーに表示。

サイドバーに表示していた数字を、アクションバーに表示。防具立てのスコアに時間を持たせて、アクションバーに代入します。クリエイティブモードでも表示可能です。

①の横にボタンを付けて開始スイッチ。③④は動力が必要(レッドストーンが必要)に変更。③にはレッドスーントーチ(のたいまつ)を設置。

【Java版】
◻︎スコアボード「count」「time」を作っておきます。
「bar」と名前を付けた防具立てを設置。

/scoreboard objectives add count dummy
/scoreboard objectives add time dummy
/summon armor_stand ~ ~ ~ {CustomName:"\"bar\""}

※サイドバーに「time」が表示されている場合、スコアボード「time」を消してから作り直します。
/scoreboard objectives remove time

①scoreboard players set @e[name=bar] time 20
②execute if entity @e[scores={time=1..}]
③scoreboard players add ティック count 1
④title @a actionbar ["",{"score":{"name":"@e[name=bar]","objective":"time"}},{"text":" 秒"}]
⑤execute if score ティック count matches 18..
⑥scoreboard players set ティック count 0
⑦scoreboard players remove @e[name=bar] time 1
⑧title @a title {"text":"時間切れ!","bold":true}

【統合版】①②③⑥⑦はJava版と同じ。

◻︎スコアボード「count」「time」と「bar」と名前を付けた防具立てを設置。

/summon armor_stand bar ~~~
④titleraw @a actionbar {"rawtext":[{"score":{"name":"@e[name=bar]","objective":"time"}},{"text":" 秒"}]}
⑤scoreboard players test ティック count 18
⑧title @a title 時間切れ!

①名前が「bar」の「time」に20を設定。
②「time」が1以上の時、信号を出す。
④アクションバーに「bar」のスコア「time」と「秒」を表示します。
⑦「bar」の「time」から1減らします。

「time」のスコアが1以上ある時、タイマー装置の電源が入り、0になると装置が止まります。時間を変えたい場合、①の数字を変更します。

◻︎30秒タイマーの場合。Java版、統合版 共通
①scoreboard players set @e[name=bar] time 30

時間を持たせる対象を、スコアボード「time」の秒から防具立ての「bar」にしています。コマンドはサイドバーに表示する時とほぼ同じなので、詳しい説明は割愛しています。ストップウオッチも同じなので、挑戦してみてください。

 

タイマーを使ったディスプレイも紹介しています。(Java版、統合版対応)
詳しくはサイト内の関連記事を参考にしてください。

 

 

おすすめ記事もどうぞ!