Minecraft【作るゲーム】 スロットマシン。No.6

2024-07-15

Java版1.21、統合版はv1.21.2で動作確認。

3つの絵柄を揃える。目押しで遊べるスロットマシンを作成。

スロットマシンv1.20。

防具立ての向きと連動してデジタルリールを回す、3リール1ラインの回胴式遊技機。乱数を使っていないので、目押しで遊べるスロットマシンです。スコアボード通貨「Coin」を使用。難しいコマンドは使っていませんが、制作手順が多いため上級者向けの装置となります。「当たり判定回路」や「景品回路」を外すと中級者向け。簡単に作れるようになります。

※記事内容を大幅に変更しました。うまく表示されない場合は、ブラウザのキャッシュをクリアしてください。

 

◻︎装置の特徴
・目押しで遊べるスロットゲーム。
・4種類のボーナスとリーチ機能。
・「防具立て」を使ったデジタルリール。
・「execute if blocks」を使った当たり判定回路。

 

更新履歴
2024-6-26/防具立てを使った回転式リール、電球を使ったディスプレイに変更。
2023-2-4/新設計!回路を簡単にして、統合版の新コマンドにも対応しました。

 

完成動画。v1.20

旧式/ v1.0はこちら。 v1.1はこちら

 

 

目次

1.作成準備
・ログの非表示。
2.コマンドブロックの設置
3.スロットマシン装置全体図
・防具立ての設置。・スコアボードの作成。
4.絵柄
・ボーナス絵柄・絵柄の設置。・回転スイッチ。
5.リール回路
・リール配列。・防具立ての角度。・左リール出力。・中リール出力。・右リール出力。
6.当たり判定回路
・リプレイとチェリー。・BIGとBARとリーチ。
7.プレイエリア
・景品回路。・操作ボタン。
8.仕上げ
・外観作り。
9.遊び方
・操作方法。
10.ワールドデータとスキン
・完成データのダウンロード。・スロットマシンスキン。

 

※「as」や「minecraft:」などのコマンドは簡略化しています。一部のコマンド、マルチプレイやサーバーでは必要な場合があります。

 

作成準備

ログの非表示。

◻︎ログの非表示と各種ブロックを入手。

/gamerule commandBlockOutput false
/give @s command_block
/give @s structure_block

 

コマンドブロックの設置

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

◎配置したコマンドブロックの状態/すべて無条件。

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

 

スロットマシン装置全体図

フラットワールドを作成したら、座標(0 -60 0)へ移動して開花したツツジの葉を設置。装置は開始点座標(0 -60 0)を基準に、南が正面がになるよう設置にしています。座標を合わせてブロックを設置していくと、コマンドはコピー&ペーストで作れます。

開始点は座標(0 -60 0)。「L」は座標(5 -60 12)。「C」は座標(7 -60 12)。「R」は座標(9 -60 12)。※ストラクチャーブロックは目安。

❶プレイエリア ❷リール回路 ❷当たり判定回路 ❹絵柄

スロットマシン装置を4つのエリアに分けて作ります。❶には回転スイッチ、景品回路、操作ボタンがあります。 ※装置を小さく作るため、一部重なっている部分があります。

◻︎南向きを確認するには
ストラクチャーブロックを設置して、境界線の青い線が伸びる方が南。※赤い線は東。

 

防具立ての設置。

❷リール回路に3つの「防具立て」を設置。絵柄を回転するために使います。左リール「L」、中リール「C」、右リール「R」。※タグを使ってもOKです。

【Java版】

/summon armor_stand 5 -60 6 {CustomName:"\"L\""}
/summon armor_stand 7 -60 6 {CustomName:"\"C\""}
/summon armor_stand 9 -60 6 {CustomName:"\"R\""}

【統合版】

/summon armor_stand L 5 -60 6
/summon armor_stand C 7 -60 6
/summon armor_stand R 9 -60 6

 

スコアボードの作成。

スコアボード「Coin」を作り、サイドバーに表示しておきます。ゲーム内通貨として使用。

【Java版/統合版】共通

/scoreboard objectives add Coin dummy
/scoreboard objectives setdisplay sidebar Coin

 

絵柄

ボーナス絵柄。

「ボーナス」が4つと「はずれ」が2つ。画像を参考に3×3ブロックの絵柄を作ります。

◎ボーナス
【BIG】①数字の「7」を3つ揃えたらビッグ当たり。
【BAR】②数字の「7」が2つと右リールに「クリーパーの顔」でレギュラー当たり。
【CHERRY】④「チェリー」が1個出れば小当たり。
【REPALAY】⑤「R」が1個出れば「Coin」を使わず絵柄が回転。

◎その他
【APPLE/NOTE】③「リンゴ」と⑥「音符」は、はずれ絵柄。

 

絵柄の設置。

錆止めされた銅の格子、電球で絵柄を作り3つのディスプレイに表示します。

「A」は座標(6 -57 5)。

「A」の座標から、絵柄に合わせて錆止めされた銅の格子、電球を設置。※背面にレッドストーンを置いて電球を光らせておきます。

 

①BIG(7)。②BAR(クリーパーの顔)。③APPLE(リンゴ)。④CHERRY(チェリー)。⑤REPALAY(リプレイ)。⑥NOTE(音符)。「」は座標(2 -57 9)。「」は座標(6 -57 9)。「」は座標(10 -57 9)。

設置した絵柄①〜⑥の範囲座標を確認しておきます(クローン元)。絵柄を3つのディスプレイに表示するので、「」の座標も確認(クローン先)。※装置の完成までディスプレイは非表示にして解説します。

 

回転スイッチ。

防具立てを回転したり止めたりするスイッチを作ります。

①は座標(5 -61 11)。①③⑤は動力が必要。①〜⑥は地面下。※カラーコンクリートは目安。 ①からレッドストーンリピーターも設置。

【Java版/統合版 共通】

①execute at @e[name=L] run tp @e[name=L] ~ ~ ~ ~12 ~
②setblock 5 -60 12 air
------
③execute at @e[name=C] run tp @e[name=C] ~ ~ ~ ~15 ~
④setblock 7 -60 12 air
------
⑤execute at @e[name=R] run tp @e[name=R] ~ ~ ~ ~18 ~
⑥setblock 9 -60 12 air

①③⑤にレッドストーンブロックを置いた時、防具立てを回転。粘着ピストンで②④⑥に移動した時、レッドストーンブロックを消します。※①③⑤の数字を大きくすると、絵柄が早く変わります。

 

リール回路

リール配列。

「ボーナス」と「はずれ」絵柄組み合わせ、1リール5枚で3つのデジタルリールを作ります。※ボーナス以外の絵柄が揃わないように注意。【絵柄】ボーナス絵柄参照。

 

防具立ての角度。

防具立ての向きを検知するコマンドを作ります。1リール5枚の絵柄を作るので、一周360度の防具立てを72度で5等分します。数字が被らないように、向きの範囲を指定します。

※向きを検知するコマンドは、Java版で解説していきます。統合版は下記のコマンドを差し替えて入力してください。

【Java版】数字と記号を使って範囲を指定。

execute at @e[y_rotation=0..71]
execute at @e[y_rotation=72..143]
execute at @e[y_rotation=144..-144]
execute at @e[y_rotation=-143..-72]
execute at @e[y_rotation=-71..-1]

【統合版】コマンドで最小と最大の数字を入力して範囲を指定。

execute at @e[rym=0,ry=71]
execute at @e[rym=72,ry=143]
execute at @e[rym=144,ry=-144]
execute at @e[rym=-143,ry=-72]
execute at @e[rym=-71,ry=-1]

※0度(南向き)から180度(北向き)まで正の数。180度以上は負の数になります。

 

 

左リール出力。

防具立て「L」の向きに合わせて絵柄を変更。「」のディスプレイにクローンします。

①は座標(5 -60 9)。

【Java版】※統合版も同じ手順なので省略。

①execute at @e[name=L,y_rotation=0..71] run clone 6 -57 4 8 -55 4 2 -57 9
②execute at @e[name=L,y_rotation=72..143] run clone 6 -57 1 8 -55 1 2 -57 9
③execute at @e[name=L,y_rotation=144..-144] run clone 6 -57 5 8 -55 5 2 -57 9
④execute at @e[name=L,y_rotation=-143..-72] run clone 6 -57 4 8 -55 4 2 -57 9
⑤execute at @e[name=L,y_rotation=-71..-1] run clone 6 -57 0 8 -55 0 2 -57 9

向き検知コマンドに、防具立ての名前「L」を追加。クローンコマンドを繋げます。

◻︎リール配列表の「」に合わせて、クローン元の座標を変更します。
①BAR ②REPALAY ③BIG(7) ④BAR ⑤NOTE

 

中リール出力。

防具立て「C」の向いている方向に合わせて、絵柄を変えて「」のディスプレイにクローンします。

①は座標(7 -60 9)。

【Java版】※統合版も同じ手順なので省略。

①execute at @e[name=C,y_rotation=0..71] run clone 6 -57 0 8 -55 0 6 -57 9
②execute at @e[name=C,y_rotation=72..143] run clone 6 -57 5 8 -55 5 6 -57 9
③execute at @e[name=C,y_rotation=144..-144] run clone 6 -57 3 8 -55 3 6 -57 9
④execute at @e[name=C,y_rotation=-143..-72] run clone 6 -57 2 8 -55 2 6 -57 9
⑤execute at @e[name=C,y_rotation=-71..-1] run clone 6 -57 5 8 -55 5 6 -57 9

向き検知コマンドに、防具立ての名前「C」を追加。クローンコマンドを繋げます。

◻︎リール配列表の「」に合わせて、クローン元の座標を変更します。
①NOTE ②BIG(7) ③APPLE ④CHERRY ⑤BIG(7)

 

右リール出力。

防具立て「R」の向いている方向に合わせて、絵柄を変えて「」のディスプレイにクローンします。

①は座標(9 -60 9)。

【Java版】※統合版も同じ手順なので省略。

①execute at @e[name=R,y_rotation=0..71] run clone 6 -57 3 8 -55 3 10 -57 9
②execute at @e[name=R,y_rotation=72..143] run clone 6 -57 4 8 -55 4 10 -57 9
③execute at @e[name=R,y_rotation=144..-144] run clone 6 -57 1 8 -55 1 1 10 -57 9
④execute at @e[name=R,y_rotation=-143..-72] run clone 6 -57 5 8 -55 5 10 -57 9
⑤execute at @e[name=R,y_rotation=-71..-1] run clone 6 -57 3 8 -55 3 10 -57 9

向き検知コマンドに、防具立ての名前「R」を追加。クローンコマンドを繋げます。

◻︎リール配列表の「」に合わせて、クローン元の座標を変更します。
①APPLE ②BAR ③REPALAY ④BIG(7) ⑤APPLE

 

当たり判定回路

リプレイとチェリー。

絵柄が「チェリー」または「リプレイ」の時、コマンドを実行します。

「チ」は座標(1 -60 5)。「リ」は座標(13 -60 5)。「あ」は範囲座標(1 -60 5)、(13 -60 5)。「リ」横のレッドストーンリピーターは3回クリック。※地面下のブロックは目安。

【Java版】

①playsound entity.dolphin.play player @a 7 -59 13
②scoreboard players add @p Coin 10
------
③fill 5 -60 11 9 -60 11 air
------
④fill 1 -60 5 13 -60 5 air
⑤fill 5 -60 11 9 -60 11 redstone_block

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

①playsound mob.dolphin.play @a 7 -59 13

◻︎プレイエリア参照。
【チェリー】
①プレイエリアで、イルカの鳴き声を再生。※景品回路③の2ブロック上の座標。
②プレイヤーに「Coin」を10追加。

【リプレイ】
③「い」の範囲座標に空気ブロックを設置。絵柄の回転を止める。
④「あ」の範囲座標に空気ブロックを設置。当たり判定回路をリセット。
⑤「い」の範囲座標にレッドストーンブロックを設置。再び絵柄を回転。

 

BIGとBARとリーチ。

絵柄が「7」または「クリーパー」の時、「匠、右、中、左」に設置されたレッドストーンブロックと、あらかじめ設置してあるレッドストーンブロックを比較します。※「R3」と「BAR」は一部共有。

「匠」は座標(7 -60 5)、「右」は座標(5 -60 5)、「中」は座標(4 -60 5)、「左」は座標(3 -60 5)。 「BIG」「R1」「R2」「R3」「BAR」の範囲座標は下記コマンドを参照。地面下のブロックは目安。

【Java版】

①execute if blocks 9 -60 0 11 -60 0 3 -60 5 all
②execute if blocks 9 -60 1 11 -60 1 3 -60 5 all
③execute if blocks 9 -60 2 11 -60 2 3 -60 5 all
④title @a title "リーチ!"
------
⑤execute if blocks 9 -60 3 11 -60 3 3 -60 5 all
⑥playsound entity.firework_rocket.twinkle player @a 7 -59 13
⑦scoreboard players add @p Coin 30
------
⑧execute if blocks 9 -60 0 13 -60 0 3 -60 5 all
⑨playsound entity.cat.ambient player @a 7 -59 13
⑩scoreboard players add @p Coin 20

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

④title @a title リーチ!
⑥playsound firework.twinkle @a 7 -59 13
⑨playsound mob.cat.meow @a 7 -59 13

◻︎プレイエリア参照。効果音の再生場所は、景品回路③の2ブロック上の座標。

【リーチ】「7」の絵柄が2つ出た時を検知。
①「R3」の範囲座標と比較先「左」の座標〜のブロックが同じなら信号を出す。
②「R2」の範囲座標と比較先「左」の座標〜のブロックが同じなら信号を出す。
③「R1」の範囲座標と比較先「左」の座標〜のブロックが同じなら信号を出す。
④タイトルに「リーチ!」と表示。

【BIG】「7」の絵柄が3つ揃った時を検知。
⑤「BIG」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
⑥プレイエリアで、花火の音を再生。
⑦プレイヤーに「Coin」を30追加。

【BAR】「7」の絵柄が2つと「右」に「クリーパー」が出た時を検知。
⑤「BAR」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
⑥プレイエリアで、猫の鳴き声を再生。
⑦プレイヤーに「Coin」を20追加。

 

プレイエリア

景品回路。

当たり絵柄の時、当たり判定回路にレッドストーンブロックを設置します。

①〜⑧のコマンドブロックは地面下。「B、C」には音符ブロックを設置。「C」は3回クリック。

【Java版】※統合版も同じ手順なので省略。

①execute at @e[name=L,y_rotation=72..143] run setblock 13 -60 5 redstone_block
②execute at @e[name=L,y_rotation=144..-144] run setblock 3 -60 5 redstone_block
------
③execute at @e[name=C,y_rotation=72..143] run setblock 4 -60 5 redstone_block
④execute at @e[name=C,y_rotation=-143..-72] run setblock 1 -60 5 redstone_block
⑤execute at @e[name=C,y_rotation=-71..-1] run setblock 4 -60 5 redstone_block
------
⑥execute at @e[name=R,y_rotation=72..143] run setblock 7 -60 5 redstone_block
⑦execute at @e[name=R,y_rotation=144..-144] run setblock 13 -60 5 redstone_block
⑧execute at @e[name=R,y_rotation=-143..-72] run setblock 5 -60 5 redstone_block

◻︎当たり判定回路を参照。
【左】「リプレイ」と「7」を検知。
①絵柄が「リプレイ」の時、「リ」の座標にレッドストーンブロックを設置。
②絵柄が「7」の時、「」の座標にレッドストーンブロックを設置。

【中】「7」「チェリー」「7」を検知。
③⑤絵柄が「7」の時、「」の座標にレッドストーンブロックを設置。
④絵柄が「チェリー」の時、「チ」の座標にレッドストーンブロックを設置。

【右】「」「リプレイ」「7」を検知。
⑥絵柄が「クリーパー」の時、「」の座標にレッドストーンブロックを設置。
⑦絵柄が「リプレイ」の時、「リ」の座標にレッドストーンブロックを設置。
⑧絵柄が「7」の時、「」の座標にレッドストーンブロックを設置。

 

操作ボタン。

「Coin」を消費して、絵柄を回転するレバーと、ボタンで止めるスイッチを作ります。

①上に金ブロックとレバーを設置。②は条件付き。矢印は粘着ピストンの方向。上にロードストーンと石のボタンを設置。「い」は範囲座標(5 -60 11)、(9 -60 11)。

【Java版/統合版 共通】

execute if entity @p[scores={Coin=5..}] run scoreboard players remove @p Coin 5
fill 5 -60 11 9 -60 11 redstone_block
fill 1 -60 5 13 -60 5 air

①プレイヤーの「Coin」が5以上の時、「Coin」を5引く。
②「い」の範囲座標にレッドストーンブロックを設置。絵柄を回転。
◻︎当たり判定回路参照。
③「あ」の範囲座標に空気ブロックを設置。当たり判定回路をリセット。

 

仕上げ

外観作り。

ディスプレイを囲み、スロット風の装飾を作ります。

◎作成ポイント

電球は点灯しておけるので、絵柄の切り替えを早くすることが出来ます。レッドストーンランプより使い勝手が良いですね。コマンドブロックが気になる場合は、地面下やマシン内に隠してください。「Coin」は経験値やアイテムと交換出来るようにすると良いかも知れません。ゲームモードをアドベンチャーモードにしたら完成です。

装置はシングルプレイ用です。マルチプレイで遊ぶには、ターゲットセレクタにタグや引数を追加してください。

【Java版/統合版 共通】「Coin」の入手コマンド。

/scoreboard players add @p Coin 30

 

遊び方

当たり絵柄を揃えて「Coin」を増やします。

操作方法。

1.「Coin」が5以上ある時、レバーを下げると絵柄が回転。
2.石のボタンで回転を止め絵柄を揃えます。
3.絵柄が揃うと「Coin」が増えます。

※「Coin」が5以下の時は、スロットマシンは動きません。

 

ワールドデータとスキン

完成データのダウンロード。

ワールドデータは、コマンド入力不要。「開始レバー」を下げると装置が起動します。本体右のボタンを押すと、Coinが入手出来ます。

◎ダウンロード先/スロットマシンv1.20

【統合版】スロットマシンv1.20.mcworld
iOS、Android/Minecraftで開く。Windows/ダブルクリックでインポート。

【Java版】スロットマシンv1.20.zip
解凍後、ワールド内の「saves」フォルダに入れる。

※二次配布は禁止です。

 

スロットマシンスキン。

スティーブタイプ 64×64px Skin
ダウンロード/ slot_s0ch