Minecraft【動く装置】タイマー楽譜で演奏(鍵盤付き)。No.8

2024-04-03

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

タイマー楽譜でメロディ再生。曲や音色も簡単切り替え。鍵盤が動く自動演奏付き。

タイマー楽譜で演奏。v1.20

タイマー楽譜に鍵盤が動く、自動演奏機能を追加しました。装置は少し難しくなりましたが、見た目は面白くなったと思います。楽譜は音の長さとクリック回数を入力。一箇所にブロックを置くだけで音色も変更出来ます。統合版の仕様により、Java版と同じ装置に出来ませんが、楽譜は両方で使えます。座標入力は多いですが、コマンドは簡単なので中級者向けの装置となります。※ファンクションを使用。楽譜の作成はJava版、統合版はWindowsを推奨。

 

◻︎装置の特徴
・鍵盤が動く自動演奏。
・入力簡単、タイマー楽譜。
・ファンクションの読み込み。(新旧サンプル曲、全8曲付き)
・execute if blocksとif blockの違い。

 

更新履歴
2024-4-1/自動演奏追加。演奏に合わせて鍵盤が動きます。
2023-2-18/新設計!鍵盤装置。統合版の新コマンドにも対応しました。※完成動画は旧式のタイマー楽譜で演奏です。

 

プレイ動画。v1.20

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

 

 

目次

1.作成準備
・ログの非表示。・スコアボードの作成。
2.コマンドブロックの設置
3.装置全体図
・タイマー楽譜で演奏の装置全体図。
4.鍵盤装置
・防具立ての設置。・音符ブロックの設置。
5.ファンクション
・鍵盤の設置。・鍵盤用ファンクション「key」。・鍵盤用ファンクション「key2」。
6.視聴エリア
・視聴台。・サンプル曲。
7.コマンド
・コマンド入力。・コマンド変更(統合版)。
8.仕上げ
・低音と高音。・仕上げ。・遊び方。
9.タイマー楽譜
・鍵盤表。・楽譜の作成。
10.楽譜の読み方
・記号や拍子の種類。・音符と音の長さ。・Onpuの入力例。
11.ダウンロード
・データのダウンロード(アドオン、データパック)。
12.フォルダの場所
・ファンクションフォルダの場所。

 

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

 

作成準備

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

ログの非表示。

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

/gamerule commandBlockOutput false
/give @s command_block

 

スコアボードの作成。

◻︎スコアボード「Onpu」を作成。

/scoreboard objectives add Onpu dummy

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

 

コマンドブロックの設置

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

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

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

 

装置全体図 

タイマー楽譜で演奏の装置全体図。

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

開始点は座標(0 -60 0)。

❶視聴エリア ❷鍵盤装置

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

 

鍵盤装置

防具立ての設置。

音符ブロックや音色を簡単に変更出来るように、防具立てを設置しておきます。

防具立て「O」は座標(1 -60 0)、「R0」は座標(0 -60 3)。

防具立て「O」に数字持たせタイマーにします。白・黒鍵盤に合わせ「R0〜R24」の名前で防具立てを設置(全25個)。「T」の防具立ては、名前を全て「T」にして設置。音色変更に使用(全25個)。※「O」はアルファベットのオー。Rはレッドストーンの略。数字は音符ブロックのクリック回数と合わせます。

【Java版】

/summon armor_stand 1 -60 0 {CustomName:"\"O\""}
/summon armor_stand 0 -60 2 {CustomName:"\"T\""}
/summon armor_stand 0 -60 3 {CustomName:"\"R0\""}

【統合版】

/summon armor_stand O 1 -60 0
/summon armor_stand T 0 -60 2
/summon armor_stand R0 0 -60 3

画像を参考に、チャットコマンドで設置していきます。

 

音符ブロックの設置。

音階を変えた音符ブロックを、あらかじめ設置しておきます。

「い、う、え、お、か」の座標を確認。

防具立て「T」の頭上に、音符ブロックを設置。数字に合わせてクリック回数を変更します。「い」はレッドストーンブロック。「う」はクォーツブロック、「え」はクォーツのハーフブロック。「お」はブラックストーン、「か」はブラックストーンのハーフブロック。

 

ファンクション

テキストエディタを使って、鍵盤用のファンクションを作ります。※鍵盤用のファンクションを作らなくても、曲は再生出来ます。

鍵盤の設置。

レッドストーンブロックで音符ブロックを鳴らした時、連動して鍵盤が動く装置を作ります。

白色の「G1」は座標(1 -58 2)。 黄色の「G1」は座標(1 -59 9)。

クォーツブロックで白鍵盤、ブラックストーンで黒鍵作ります。※見た目を整えるためダミー鍵盤も設置。防具立て「R0〜R24」の頭上の座標、白・黒鍵盤の座標を確認。

 

鍵盤用ファンクション「key」。

レッドストーンブロックを検知して、鍵盤をハーフブロックにします。※鍵盤の数だけ、コマンドが必要になります。

【Java版/統合版 共通】

①execute if block 0 -58 3 redstone_block run clone 8 -60 0 8 -60 0 0 -58 8
②execute if block 1 -58 4 redstone_block run clone 5 -60 0 5 -60 0 1 -59 9

白色の「F0」にレッドストーンブロックがある時、黄色の「F0」「か」をクローン。
白色の「G1」にレッドストーンブロックがある時、黄色の「G1」「え」をクローン。

①②を参考に座標を変え、全25個のコマンドを作ります。ファイル名は「key.mcfunction」で保存します。

 

鍵盤用ファンクション「key2」。

空気ブロックを検知して、鍵盤を通常ブロックにします。※鍵盤の数だけ、コマンドが必要になります。

【Java版/統合版 共通】

①execute if block 0 -58 4 air run clone 7 -60 0 7 -60 0 0 -58 8
②execute if block 1 -58 4 air run clone 4 -60 0 4 -60 0 1 -59 9

白色の「F0」が空気ブロックの時、黄色の「F0」「お」をクローン。
白色の「G1」が空気ブロックの時、黄色の「G1」「う」をクローン。

①②を参考に座標を変え、全25個のコマンドを作ります。ファイル名は「key2.mcfunction」で保存します。

◎execute if block
指定したブロックが座標にある時、信号を出す。座標にレッドストーンブロックがあるか無いかを検知しています。

 

視聴エリア

視聴台。

視聴エリアでは、音楽の再生と停止、音色や曲が変更出来ます。

「あ」「A」①②は地面下。「あ」は座標(7 -61 14)。①③④⑤⑥は動力が必要。「A」はレッドストーンダスト。①はレッドストーントーチを設置。③④⑤⑥はレバーを設置。

【Java版/統合版 共通】

①scoreboard players add @e[name=O] Onpu 1
②scoreboard players reset @e[name=O] Onpu

【音符タイマー】
①信号がある時、防具立て「O」に「Onpu」を1を足す。
②信号がない時「Onpu」をリセット。

「A」の上にオークの原木と感圧版、レバーを設置。①②はハーブブロックや苔のカーペットで隠す。「あ」にブロックを置いた時、音色が変わるようにします(座標確認)。③④⑤⑥にはサンプル曲やオリジナル曲を入力。

 

サンプル曲。

低音、高音の入った新しいサンプル曲。

【Java版/統合版 共通】

③function note:athens4
④function note:korobushka
⑤function note:nutcracker
⑥function note:oklahoma

※統合版は「:」を「/」に変更。

③「アテネの廃墟」 第4曲
④「コロブチカ」 ロシア民謡
⑤「くるみ割人形」 行進曲
⑥「オクラホマミキサー」 アメリカ民謡

----------------------------------------------
低音、高音無し。旧サンプル曲。
----------------------------------------------
function note:mart
function note:mario
function note:mickey
function note:mayim

ファミリーマート入店曲、初代マリオ、ミッキーマウスマーチ、マイムマイム。

 

コマンド

コマンド入力。

コマンド使って鍵盤に動きを付けたり、音を鳴らします。

②③は動力が必要。※統合版は③が不要。音符ブロック内側の「き、く」の座標を確認。範囲座標「C」とします。

【Java版】

①execute unless blocks 0 -58 3 14 -58 4 0 -53 3 all
②function note:key2
③fill 0 -58 3 14 -58 4 air
------
④function note:key
⑤execute at @e[name=T] run clone 7 -60 14 7 -60 14 ~ ~1 ~

【統合版】①⑤はJava版と同じ。③は不要。

②function note/key2
④function note/key

①「C」の範囲座標が、5ブロック上の範囲座標と同じかどうかを検知。
②ファンクション「key2」を実行。
③信号がある時「C」の範囲座標に空気ブロックを設置。
------
④ファンクション「key」を実行。
⑤視聴台「あ」の座標にあるブロックを、防具立て「T」の1ブロック上にクローン。

◎execute unless blocks
ブロックの種類は問わず、指定した範囲元範囲先が同じかを比較。違いがあれば信号を出す。今回は「if」ではなく「unless」を使い、範囲元にレッドストーンブロックが置かれた時を検知しています。※単体は「if block」で検知。範囲を比較するには「if blocks」を使用します。

 

コマンド変更(統合版)。

統合版は処理速度が遅いため「execute unless blocks」の代わりに「setblock air」を使います。

①は座標(0 -59 5)。リピートコマンドブロックは全て動力が必要。

◻︎チャットコマンド使ってブロックを設置。
①setblock 0 -59 3 repeating_command_block ["facing_direction"=2]
②setblock 1 -59 4 repeating_command_block ["facing_direction"=3]

【統合版】

①setblock 0 -58 3 air

①信号がある時、座標に空気ブロックを設置。

音を鳴らすために召喚したレッドストーンブロックを消します。①を参考に座標を変え、コマンドを入力していきます(全25個)。

 

仕上げ

低音と高音。

低音と高音を作るには、装置を増設するのが簡単ですが、今回の追加のサンプル曲はコマンドで再生しています。音を鳴らすには、追加で防具立てを設置します。

防具立て「D」は座標(1 -60 6)、「E」は座標(15 -60 6)。

【Java版】

/summon armor_stand -1 -60 6 {CustomName:"\"低音\""}
/summon armor_stand 15 -60 6 {CustomName:"\"高音\""}

【統合版】

/summon armor_stand 低音 -1 -60 6
/summon armor_stand 高音 15 -60 6

防具立ての頭上に音符ブロックを設置します。

 

仕上げ。

鍵盤の周りをブロックで囲みキーボード風に仕上げます。

 

遊び方。

【曲の選択】 ①のレバーを押し、ファンクションを実行。
【再生と停止】 「A」の感圧版に乗ると曲を再生、降りると停止。※レバー操作も可。
【音色の変更】 ブロックを「あ」に設置すると、音色の変更が出来ます。
【テンポの変更】 tickコマンドで、テンポを変更出来ます。※Java版のみ。 /tick rate 20

 

タイマー楽譜

鍵盤表。

音階と音符ブロックのクリック回数が分かる鍵盤表。

音符コマンド。

テキストエディタを使って、タイマー楽譜を作ります。コマンドはコピーして音符を入力していきます。

【Java版/統合版 共通】

①execute as @e[scores={Onpu=12}] at @e[name=R6] run clone 2 -60 0 2 -60 0 ~ ~4 ~
②scoreboard players reset @e[scores={Onpu=24..}] Onpu

①防具立て「O」のスコア「Onpu」に合わせて「え」のレッドストーンブロックを防具立て「R6」の4ブロック上にクローン。 ※「Onpu=12」は音の長さ。「name=R6」は音符ブロックのクリック回数(音階)。
②防具立て「O」の「Onpu」が24以上になった時「Onpu」をリセット。 ※曲をループする時に使います。

 

タイマー楽譜で「ドレミ」と鳴らす場合)

♯ドレミ
execute as @e[scores={Onpu=12}] at @e[name=R6] run clone 2 -60 0 2 -60 0 ~ ~4 ~
execute as @e[scores={Onpu=24}] at @e[name=R8] run clone 2 -60 0 2 -60 0 ~ ~4 ~
execute as @e[scores={Onpu=36}] at @e[name=R10] run clone 2 -60 0 2 -60 0 ~ ~4 ~
.
.
.
scoreboard players reset @e[scores={Onpu=48..}] Onpu

※ファンクションの場合、コマンド以外のコメントには「♯」を付けておきます。

楽譜はファイルの拡張子を「.mcfunction」で保存。※ファイル名は半角英数。

 

楽譜の読み方

記号や拍子の種類。

音符と音の長さ。

 

Onpuの入力例。

開始のスコアが「Onpu=0」だと音が出せないので、0以上の数字にします。 休符やタイも音は鳴らさず足していく。割り切れない数字は、小節の長さを優先し調整します。 ※16音符や連符などうまく音が鳴らない場合があります。音符を減らしたりして誤魔化します。

 

ダウンロード

データのダウンロード。

サンプル曲と鍵盤用ファンクションが入ったデータをダウンロード出来ます。

【統合版】 v1.20.72 アドオン
「Onpu.mcpack」をMinecraftにインポート。
ダウンロード/Onpu.mcpack

【Java版】 1.20.4 データパック
「Onpu.zip」を解凍して、フォルダを「datapacks」に入れて起動します。※Onpuフォルダがない場合、作成してください。フォルダの場所参照。
ダウンロード/Onpu.zip

※二次配布は禁止です。

 

フォルダの場所

オリジナル曲を追加するには、ファンクションフォルダの中にタイマー楽譜を入れます。

ファンクションフォルダの場所。

【Java版】

タイマー楽譜で演奏.zipを解凍。「datapacks」→「Onpu」→「data」→「note」→「functions」

【統合版】

アドオンをインポートしたら、導入したいワールドで一度ビヘイビアーパックを有効化します。ファンクションフォルダの場所は、デバイスによって異なります。

◻︎ワールドの場所
日付順に並び替え→日付の一番新しいワールドを開く。「behavior_packs」→「Onpu」→「functions」→「note」

◎iOS
「ファイル」アプリから、ブラウズ→「minecraftWorlds」で検索。

◎Android
Minecraftの設定→プロフィール→ファイルストレージの場所を外部にチェック。
「ファイルマネージャー」などのアプリから

メインストレージ\Android\data\com.mojang.minecraftpe\files\games\com.mojang\minecraftWorlds

◎Windows ※AppDataは隠しファイルになっています。

C:\Users\ユーザー名\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftWorlds

※マインクラフトを起動中に修正した場合は、/reload コマンド。タイマー楽譜を追加した場合は再起動する必要があります。