Minecraft【基本装置】乱数を作る装置。
Java版1.20.6、統合版はv1.20.81で動作確認。
毎回違った結果を出力する、擬似乱数をコマンドで作成。
擬似乱数、抽選装置。
コマンドで擬似乱数を作り、出力結果を変える事で、サイコロやおみくじのような抽選装置を作ることが出来ます。乱数はゲームを面白くするのに重要で、欠かせない要素になります。敵の攻撃をパターンを変えたり、もらえる報酬を変えたりなど使い所は多いです。
乱数を作る方法はいくつかありますが、コマンド・回転式、Java版専用の抽選装置紹介します。※Java版では、1.20.2で「random」コマンドが追加されました。
◻︎装置の特徴
・randomコマンド使った乱数装置。
・回転式の乱数装置。
・UUIDを使った乱数装置(Java版専用)。
更新履歴
2024-5-12/画像変更と詳細な解説を追加しました。
目次
1.【Java版/統合版】コマンド式の抽選装置。
・スコアボード作成。
・抽選装置(randomコマンド)。
2.【Java版/統合版】 回転式の抽選装置。
・防具立ての召喚。
・抽選装置(回転式)。
・角度の検知。
3.【Java版】専用。UUID式の抽選装置。
・スコアボード作成。
・抽選装置(UUID式)。
【Java版/統合版】コマンド式の抽選装置。
「random」コマンドを使って、簡単に擬似乱数を作ることが出来ます。※Java版は1.20.2以上。
スコアボード作成。
◻︎チャットコマンドで入力。
/scoreboard objectives add count dummy /scoreboard objectives setdisplay sidebar count |
/スコアボード「count」を作成。
/サイドバーに「count」を表示。※確認用
抽選装置(コマンド)。
【Java版】
◻︎①インパルス(動力が必要)にボタンやレバーを設置。
execute store result score 乱数 count run random value 1..4 |
【統合版】
◻︎①インパルス(動力が必要)にボタンやレバーを設置。
scoreboard players random 乱数 count 1 4 |
【Java版/統合版】
◻︎②インパルス(動力が必要)から③④⑤チェーンで繋ぐ(常に実行)。
execute if score 乱数
count matches 1..1 run say 1等 ------ execute if score 乱数 count matches 2..2 run say 2等 execute if score 乱数 count matches 3..3 run say 3等 execute if score 乱数 count matches 4..4 run say 4等 |
①信号がある時「1〜4」の数字から、ひとつをスコアボード「乱数」に表示します。
②③④⑤スコアボード「乱数」から出力された数字を検知してコマンドを実行。抽選数分のコマンドブロックが必要です。
【Java版/統合版】 回転式の抽選装置。
防具立てを回転し、向きを検知します。回転が速ければ、狙った角度で止めるのが難しいので、擬似乱数発生装置として使用することが出来ます。防具立ては綺麗に回転するので、見た目も面白くなります。機械的に同じタイミングで止めると、同じ結果になってしまうのがデメリットです。
スコアボード不要。ひとつの装置でクロック信号、乱数を作る装置としてマルチな使い方も出来ます。
防具立ての召喚。
【Java版/統合版】
◻︎チャットコマンドで入力。
/summon armor_stand ~ ~ ~ |
/防具立てを召喚。※帽子を被せておくと方向が分かりやすい。※統合版の場合は名前を付けて召喚。/summon armor_stand 防具立て ~~~
抽選装置(回転式)。
リピートブロックは1秒間で20回の信号(20ティック)を繰り返すので、防具立てのy軸を「18度」でテレポートすれば、1周約1秒で回転します。
テレポートする時、防具立ては回転するように動きますが、検知出来るのは「指定した角度」または「指定した角度を含む範囲」だけです。
例えば「0度」1箇所を検知するには、開始点を「0度」にして、防具立てのy軸を360度で割り切れる角度にします。
【Java版/統合版】
◻︎チャットコマンドに入力。
/execute at @e[name="防具立て"] run tp @e[name="防具立て"] ~ ~ ~ 0 ~ |
/防具立てを南に向きにします。※開始点を設定(角度の初期化)。
◻︎①リピートブロック(動力が必要)にレバーを設置。
execute at @e[name="防具立て"] run tp @e[name="防具立て"] ~ ~ ~ ~18 ~ |
①信号がある時、防具立てを「18度」回転します(回転角度の大きさ)。
角度の検知。
南が原点で「0度」。南西北は正の数「0度〜180度」。北東南は負の数「-180度〜0度」になります。※北は正の数と負の数が被っています。「180度、または-180度」のどちらでも検知出来ます。
◻︎角度表
東西南北の範囲角度。円を4等分して、抽選結果を4通り作る場合。
【Java版】
◻︎②インパルス(動力が必要)から③④⑤チェーンで繋ぐ(常に実行)。
execute if entity @e[name="防具立て",y_rotation=0..90] run say 1等 ------ execute if entity @e[name="防具立て",y_rotation=91..180] run say 2等 execute if entity @e[name="防具立て",y_rotation=-179..-90] run say 3等 execute if entity @e[name="防具立て",y_rotation=-89..-1] run say 4等 |
【統合版】
◻︎②インパルス(動力が必要)から③④⑤チェーンで繋ぐ(常に実行)。
execute if entity @e[name="防具立て",rym=0,ry=90] run say 1等 ------ execute if entity @e[name="防具立て",rym=91,ry=180] run say 2等 execute if entity @e[name="防具立て",rym=-179,ry=-90] run say 3等 execute if entity @e[name="防具立て",rym=-89,ry=-1] run say 4等 |
※「rym=」開始角度〜「ry=」終了角度の指定が必要。
②③④⑤信号がある時、防具立ての向いている方向を検知して、コマンドを実行。方向の角度を決める時、検知が被らないように数字を1度ずらしておきます。※抽選数分のコマンドブロックが必要です。
開始点を「45度」にして、「90度」で回転すれば、1/4の抽選装置が出来ます。1等は30度、2等は60度など、角度は均等にしなくても自由に変更出来ます。抽選結果の数や角度に合わせて、回転角度の大きさを調整します。
【Java版】専用。UUID式の抽選装置。
エンティティのUUID番号を利用した、擬似乱数発生装置です。※1.20.1以前のバージョンでの使用。
reddit 参考サイト。
スコアボード作成。
【Java版】
◻︎チャットコマンドで入力。
/scoreboard objectives add count dummy /scoreboard objectives setdisplay sidebar count /scoreboard players set 範囲 count 3 |
/スコアボード「count」を作成。
/サイドバーに「count」を表示。※確認用
/「count」に範囲を作成。数字は好きな数字に変更。※「3」の場合「0〜3」の範囲で抽選。
抽選装置(UUID式)。
【Java版】
◻︎①インパルス(動力が必要)から②③④チェーンで繋ぐ(常に実行)。
summon armor_stand ~ ~ ~ {CustomName:"\"ランダム\""} ------ execute store result score 乱数 count run data get entity @e[name="ランダム",limit=1] UUID[0] 1 scoreboard players operation 乱数 count %= 範囲 count kill @e[name="ランダム"] |
◻︎⑤インパルス(動力が必要)から⑥⑦⑧チェーンで繋ぐ(常に実行)。
execute if score 乱数
count matches 1..1 run say 1等 ------ ⑥⑦⑧省略。※コマンド式参照。 |
①防具立て「ランダム」を召喚。
②防具立て「ランダム」のUUIDを「count」の乱数に代入。
③乱数を範囲で割り算し余りを表示。
④防具立て「ランダム」を削除。
⑤スコアボード「乱数」から出力された数字を検知し、コマンドを実行。
⑥⑦⑧コマンド式と同じため省略。抽選数分のコマンドブロックが必要です。