Minecraft【動く装置】タイマー作成。

2024-03-04

Java版1.20.4、統合版はv1.20.62で動作確認。

コマンドを使って、時間を計るタイマーを作成。

基本タイマー。

経験値とスコアボードを使った基本的なタイマーを紹介します。タイマーを使えば、ゲームに制限時間を作ったり、決まった時間に装置を動かしたり出来るようになります。コマンドを少し変えて、時間を増やしたり、減らしたりします。スコアボードタイマーの応用では、アクションバーに時間を表示します。

◻︎装置の特徴
・経験値、スコアボードタイマー。
・「matches」を使ったスコアの検知。
・アクションバーにタイマー表示。

 

 

 

目次

1.作成準備
・ログの非表示。
・スコアボードの作成。
2.コマンドブロックの設置
3.1秒を計る装置
・クロック回路。
4.経験値レベルを使ったタイマー
・経験値タイマー。
・経験値ストップウォッチ。
5.スコアボードを使ったタイマー
・スコアボードタイマー。
・スコアボードストップウォッチ。
6.スコアボードタイマーの応用
・時間をアクションバーに表示。

 

 

更新履歴
2024-3-4/古くなっていた情報を新しくしました。
2023-1-13/Java版1.19以降、統合版のv1.19.50以降に対応。統合版の新しいコマンドにも対応しました。

 

作成準備

コマンドは1人用で作成しています。マルチプレイで使う場合は、ターゲットセレクタを変更してください。 ※「tag」や、防具立てを指定。

ログの非表示。

◻︎ログの非表示とコマンドブロック入手。

/gamerule commandBlockOutput false
/give @s command_block

 

スコアボードの作成。

◻︎数字を数える「count」と、サイドーバー表示用の「time」を作っておきます。

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

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

 

コマンドブロックの設置

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

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

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

 

1秒を計る装置。

クロック回路。

1秒を計るクロック装置を作っておくと、タイマー作りが簡単になります。クロック回路の作り方は色々ありますが、今回はスコアボードを使ったティック式を使います。※Java版と統合版とも同じコマンドで動作します。

 

 

 

経験値を使ったタイマー

プレイヤーの経験値を使ったタイマーです。経験値を使うので、サバイバルモードには不向きですが、スコアのサイドバー表示も不要なので使いやすいです。クリエイティブモードでは経験値バーが表示されないですが、動作はしています。

経験値タイマー。

数字が減っていくタイマーです。目標の時間が決まっている時におすすめ。

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

【Java版】

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

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

①xp -1000L @p
②xp 20L @p
------
③execute if entity @p[lm=1]
⑧title @a title 時間切れ!
------
⑦xp -1L @p

◎解説

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

経験値が1以上ある時、タイマー装置の電源が入り、1以下になると装置が止まります。経験値は0表示が出来ません。時間を変えたい場合、②数字を変更します。※コンパレータを使うと遅延が発生します。実際の時間が1秒になるように「ティック」の数をを調整しています。

 

経験値ストップウォッチ。

数字が増えていくストップウォッチです。目標時間は決まってないが、時間を計りたい時に使います。時間を止める装置も必要になります。今回は、木の棒をトリガーにしたストップウォッチを作ります。

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

【Java版】

②give @p minecraft:stick
③clear @p stick 0
⑦xp add @p 1 levels

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

③clear @p stick 0 0
⑦xp 1L @p

◎解説

②プレイヤーに木の棒を与える
③プレイヤーが木の棒を持っている時、信号を出す。
⑦ティックを0にした時、経験値レベルを1足す。

木の棒を投げるか、プレイヤーから木の棒を削除するとタイマーが止まります。
削除コマンド /clear @p stick

 

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

経過時間をサイドバーに表示します。表示したいものが増えると見えにくくなります。

スコアボードタイマー。

機能は経験値タイマーと同じですが「0」も表示出来ます。

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

 

【Java版/統合版 共通】

◻︎サイドバーに「time」を表示。

/scoreboard objectives setdisplay sidebar time

 

【Java版】

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

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

⑧title @a title 時間切れ!

◎解説

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

スコアボード「time」の秒が1以上ある時、タイマー装置の電源が入り、0になると装置が止まります。時間を変えたい場合、②の数字を変更します。※コンパレータを使うと遅延が発生します。実際の時間が1秒になるように「ティック」の数を調整しています。

 

スコアボードストップウォッチ。

機能は経験値ストップウォッチと同じです。2種類のスコアボードをリセットするため、コマンドブロックを1個追加します。

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

【Java版】

②give @p minecraft:stick
③clear @p stick 0
⑦scoreboard players add 秒 time 1
⑨scoreboard players set 秒 time 0

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

③clear @p stick 0 0

◎解説

②プレイヤーに木の棒を与える
③プレイヤーが木の棒を持っている時、信号を出す。
⑦ティックを0にした時、経験値レベルを1足す。
⑨「time」の秒を0に設定。

木の棒を投げるか、プレイヤーから木の棒を削除するとタイマーが止まります。
削除コマンド /clear @p stick
「秒」のリセット /scoreboard players set 秒 time 0

 

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

経過時間をアクションバーに表示します。機能はスコアボードタイマーと同じです。

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

サイドバーに表示していたスコアボード「time」の秒の数を、アクションバーに代入します。

スコアボードタイマーに、コマンド1個を追加。⑩は「動力が必要」に変更。

【Java版】

⑩title @p actionbar ["",{"score":{"name":"秒","objective":"time"}},{"text":" 秒"}]

【統合版】

⑩titleraw @p actionbar {"rawtext":[{"score":{"name":"秒","objective":"time"}},{"text":" 秒"}]}

◎解説

⑩信号がある時「time」の秒の数をアクションバーに表示。

ストップウォッチも同じなので、挑戦してみてください。タイマーを使ったディスプレイも紹介しています。