この記事について
この記事はDTMテクニック集 Advent Calendar 2022 12/17(土)のエントリーです。
前回の記事は、sdhizumiさんのピアノロール経験者のためのMML入門です。
本日は某青いロボットの2Dゲーム作品の生誕35周年です。おめでとうございます!
(ちなみに筆者と同い年)
この記事では、1980年代~1990年代のファミコンやゲームボーイ等で発売された
某青いロボットが活躍する2Dアクション
をイメージした8bitサウンドBGMの作り方をざっくり紹介します。
インディーゲーム開発等の参考になれば幸いです。
前提環境
曲を作成するに当たり、筆者は以下のツールを使用しています。
環境の詳細については割愛しますが、記事記載のノートを手っ取り早く聴きたい場合は、前回記事を参考にMSXplayのMML Editorを利用するのも良いでしょう。
サンプル記載のMMLのコマンドの詳細についてはnsd.libのドキュメントをご覧ください。
記事終盤には作成したMMLの全体とコンパイル済みNSFファイルのリンクも載せておきます。
同時発声数はファミコンの仕様に則り、メロディ・オブリガート用(矩形波)2ch、ベース用(三角波)1ch、ドラム用(ノイズ)1chの合計4つ。
5番目のサンプリング(DPCM)chは使いません。
まずは曲の「起承転結」を決める
BGMの構成として「起承転結」をどうするか決める必要があります。
いわゆる イントロ
、Aメロ
、Bメロ
、サビ
のセクションです。BGMはループすることが前提なのでアウトロ
は不要です。
当時のゲームのデータ容量に依存したり作品に依ったりしますが、大体は以下のようなパターンがあります。
- |:
イントロ
→Aメロ
→Bメロ
→サビ
:| - |:
Aメロ
→A'メロ
→Bメロ
→サビ
:| - |:
イントロ
→Aメロ
→A'メロ
→Bメロ
→サビ
:| - |:
イントロ
→Aメロ
→A'メロ
→イントロ
→Bメロ
:| -
イントロ
→イントロ
→ |:Aメロ
→Bメロ
:|
中にはこんな変わり種もあったりします。。。w
- |:
Aメロ
-Aメロ(キー1音上げ)
-Aメロ(キー2音上げ)
- ... -Aメロ(キー11音上げ)
:|
今回は |: Aメロ
→ A'メロ
→ Bメロ
→ サビ
:| のパターンで悪の科学者の本拠地
風の曲を作ってみます。
各セクションのコード進行を考える
上で決めた各セクション Aメロ
、A'メロ
、Bメロ
、サビ
のコード進行を考えます。
本拠地まで来るとゲームのストーリーも終盤になってくるので、マイナーコードを使います。
Aメロ
、A'メロ
には階段状の進行を主に使います。
| G | F | D# | D F# | G | F | D# F | G |
Bメロ
は王道進行にすることで「転」がわかりやすいです。
| Eb | F | D | G | Eb | F | Bb | D |
サビ
も王道進行にしつつ盛り上がるようなものに。
| Eb | F | D | G | C | Eb | D | F# |
ベース、ドラムパターンを決める
ロックな曲調にするため、ベースは終始シンプルにコード進行のルート音でズンダダ
鳴らすパターンを繰り返します。
t180
TR3 q2
// Aメロ
TR3 o3 l16 [g8gg]8 [f8ff]8 [e-8e-e-]8 [d8dd]4 [f+8f+f+]4
TR3 o3 l16 [g8gg]8 [f8ff]8 [e-8e-e-]4 [f8ff]4 [g8gg]8
// A'メロ
TR3 o3 l16 [g8gg]8 [f8ff]8 [e-8e-e-]8 [d8dd]4 [f+8f+f+]4
TR3 o3 l16 [g8gg]8 [f8ff]8 [e-8e-e-]4 [f8ff]4 [g8gg]8
// Bメロ
TR3 o3 l16 [e-8e-e-]4 [f8ff]4 [d8dd]4 [g8gg]4 [e-8e-e-]4 [f8ff]4 <[b-8b-b-]4 >[d8dd]4
// サビ
TR3 o3 l16 [e-8e-e-]4 [f8ff]4 [d8dd]4 [g8gg]4 [c8cc]4 [e-8e-e-]4 [d8dd]4 [f+8f+f+]4
// ※「q」はクォンタイズコマンド。これを指定することで歯切れが良くなります。数値はお好みでどうぞ
// ※「[ ]」はリピートコマンドで、カッコ内に記述されたノートを指定した回数繰り返します
ドラムはハイハットのチッチキ
鳴らすイメージをメインで、2拍目と4拍目の頭にはスネアを鳴らす感じで音程を変えたものを繰り返す。8小節目の最後にフィルインを入れるのを忘れずに。
// Aメロ
TR4 o2 l16 [crcc : brcc]16 bbbb
TR4 o2 l16 [crcc : brcc]16 bbbb
// A'メロ
TR4 o2 l16 [crcc : brcc]16 bbbb
TR4 o2 l16 [crcc : brcc]16 bbbb
// Bメロ
TR4 o2 l16 [crcc : brcc]16 bbbb
// サビ
TR4 o2 l16 [crcc : brcc]16 bbbb
// ※「:」はbreakコマンドであり、指定ループ回数時にこのコマンドに来るとループを脱して後のノートを演奏するものです
// サウンドドライバによっては文法が異なるため、MSXplayで記述する場合は「|」に置き換えてください
メロディを書く
作る人のセンスに依るところが大きいですが、まず骨子となるリズムを決めてからコードの和音の音を紡いでいけば、印象に残るフレーズができるかと思います。今回はAメロ
に以下のリズムを当て込んでいきます。
t180
TR1 v15 @1 q1
// Aメロ
TR1 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 d4.c16<a+16 a2^1
TR1 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 <a2g4af+4.e-4d4c4
TR1 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 d4.c16<a+16 a2^2. o5 df
TR1 o5 @1 l8 g4fd4c<a+4 a4a+>c4<afa a4g
TR1 g^2^1
// A'メロ
TR1 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 d4.c16<a+16 a2 v10 >d4.c16<a+16a2 v15
TR1 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 <a2g4af+4.e-4d4c4
TR1 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 d4.c16<a+16 a2 v10 >d4.c16<a+16a4 v15 o5 df
TR1 o5 @1 l8 g4fd4c<a+4 a4a+>c4<afa a4g g^2^2 @1 o5 d4f4
// Bメロ
TR1 o5 @1 l8 gd4g^2r4 a4a+4>c4 <a4a+a4fgd^2. d4 c4cc4.<a+4 a4>cf4gfg d1^2 d.e-.f
// サビ
TR1 o5 @1 l8 f.g.d g4a+4 a+4.a16g16a4d4 f+.g.a d4>c4 c4.d16c16< a+4 ga+ >c4<g>c^2 c.d.e- d4c4 d1 l16 f+d<af+ >d<af+d af+d<a >f+d<af+
オブリガートを追加する
オブリガートのパターンは色々あります。
- 発声を遅らせて音量を下げたメロディを鳴らして、疑似エコーを掛ける
- メロディと同じリズムパターンでキーを変えて和音感を出す
- メロディと独立したサブメロを鳴らして華やかに
- メロディとは別のリズムパターンで鳴らして賑やかに
今回はAメロ
に1.でメロディの印象付けの強調、A'メロ
に2で重厚感付け.、Bメロ
に4.で転換がわかりやすく、サビ
に2.で「結」に向けての盛り上げ、として使います。
t180
TR2 @0 q1 v10 D2
// Aメロ (1.)
TR2 r8 v6 // 発声を遅らせて音量を下げる
TR2 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 d4.c16<a+16 a4. v10 @0 >d4.c16<a+16a2^ v6
TR2 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 <a2g4af+4.e-4d4c4
TR2 o4 @1 l8 g4a4 a+g4a+4. g4a+4>c4 d4.c16<a+16 a4. @0 v10 >d4.c16<a+16a4. v6 o5 df
TR2 o5 @1 l8 g4fd4c<a+4 a4a+>c4<afa a4g
TR2 g^2^2.^8 v10 // 冒頭で遅らせ多分の帳尻を合わせる
// A'メロ (2.)
TR2 o4 @0 l8 d4f4 gd4g4. d4g4a4 a+4.a16g16 f2 v6 a+4.a16g16f2v10
TR2 o4 @0 l8 d4f4 gd4g4. d4g4a4 f+2e-4f+d4.c4<a4f+4
TR2 o4 @0 l8 d4f4 gd4g4. d4g4a4 a+4.a16g16 f2 v6 a+4.a16g16f4 v10 @0 o4 a+>d
TR2 o5 @0 l8 e-4d<a+4ag4 f4ga4fdf f4dd^2^1
// Bメロ (4.)
TR2 o4 EC1,5 l16 v10 o5 EC- [dr<gra+rgr>]2 EC- [fr<ar>cr<ar>]2 EC- [dr<frarfr>]2 EC- [gr<a+r>dr<a+r>]2
TR2 EC- [dr<gra+rgr>]2 EC- [fr<ar>cr<ar>]2 EC- [dr<fra+rfr>]2 EC- fr<a+r>dr<a+r> l8 EC* o4 a+.>c.d
// サビ (2.)
TR2 o5 @0 l8 d.e-.<a+ >e-4g4 g4.f16e-16 f4<a4 >d.e.f+ <a4>a4 a4.a+16a16 g4 e-g g4dg^2 g.a+.>c <a+4g4 a1 l16 >d<af+d af+d<a> f+d<af+ >d<af+d
2.については指定したノートによってはコード進行で想定する和音から外れるケースもあるので、たまーに指摘を受けたりします。
人に依っては不協和音のように聴こえたりしますが「和音の転回」として別のコードに仕立てているので、くり返し聴くうちに慣れるものです。コード進行に囚われず敢えて外すことも時には必要ですヨ。
完成した曲
コンパイル済みNSFデータはこちら ※VirtuaNSFで再生可能
動画
メロディを思いつくタイミングについて
今回はコード進行を先に決めた後にメロディを作りましたが、外出中やお風呂入ってるとき等でふとした瞬間にメロディを先に思いつくこともあります。忘れないうちにメモする必要がありますが、MMLでの記法を知っておけばメモ帳アプリにすぐに書けるのでMMLを知っておいて損は無いです。
終わりに
以上、ざっくりではありますが今回紹介した作り方でそれなりにそれっぽい曲を作ることができます。
ですがこれはほんの一部にしか過ぎません。もっと紹介したいところですがまた次の機会があれば。
宣伝1
ゲームBGMの作曲及び8bit音源へのコンバート承ります。
「レトロゲームものでBGMも実機音源にこだわりたい!」というクリエイター様は是非Twitterアカウント:hydden0310にご連絡ください!
宣伝2
RPGツクール・アクションゲームツクールの公式素材DLCを販売しています!
試聴動画