Studio ついんくる ||Lesson-Lesson6 音編||

Lesson6 音編

背景と前景とBGMと効果音

さて、ここまでで私達は文字・背景・前景を表示させてきました。文字は特に必要なタグはありませんでしたし、背景・前景とも同じタグを使用して 表示させることができました。今回はBGMと効果音を流します。その役割や、BGMは画像で言う背景、効果音は画像で言う前景にたとえることができるでしょう。 しかしながら画像とは違い、両者とも別のタグを使用します。これは、BGMと効果音の性質の違いがあるためです。 BGMは音の背景です。背景は1つ以上必要ありませんが、効果音はどうでしょう?複数の効果音が同時に再生される可能性だってあるのです。 それを理解した上で、これらの再生を行っていきましょう。

Tip

効果音というと『バキ』とか『ドカ』なんかを思い浮かべる方も多いかと思いますが、 効果音には"台詞"も含まれます。『バキ』『ドカ』も『うぐぅ』も『犯人をあなたです。』も全て効果音と 言うことです。

素材の入手

音楽素材を制作するには少々手間がかかりますので、インターネット上で無償配布されている音楽を入手するといいでしょう。 無償配布を行っているサイトは無数に存在しますが、下記のWebサイトをご紹介いたします。
Tam Music Factory
雑音空間
H/MIX GALLERY

BGMの再生

はじめにBGMの再生を説明したいと思います。BGMの再生には、playbgmタグを 使用します。BGMに使用できる音楽形式は、WAVE形式(*.wav)、MIDI形式(*.smf / *.mid)、もしくはCD-XAのデータで、プラグインにより 他の音楽形式を使用することも可能です。また、Config.tjsに設定されている音楽形式のみBGMとして再生することができるので、 標準のMIDI形式以外の音楽形式を使用する場合はConfig.tjsのBGMの設定を変更する必要があります。 では下のソースを見てください。
[playbgm storage="hogehoge.mid"]
追加記述storageはもうおなじみですね?BGMの再生はこれで完了です。読み込んでしまえば再生されるのです。 ちなみにこのソースでBGMを再生した場合は、 音楽が終わってもまた初めから再生し始めます。これを行いたくない場合は追加記述loopを使用します。

[playbgm storage="hogehoge.mid" loop="false"]
このように追加記述loopfalse(行わない)にしてまえば繰り返し再生は行われない設定になります。 loopという追加記述はBGMの繰り返し再生の設定を行うもので、標準ではtrue(行う)の設定となっています。 さて、これらのタグを繰り返して、BGMを途中から変更するソースを書いてみましょう。
[playbgm storage="hogehoge.mid"]
ある焼肉屋で骨付きカルビを頼んだのだが、普通のカルビがきた。[p][r]
店員が間違えに気づき謝ってきたが、自分は特に気にしなかった。[p][r]
数分後、その店員がキムチを持ってきてこう言った。[p][r]
「本当にすみません…。これほんのキムチですが…。」[p][r]
[playbgm storage="hogehoge2.mid"]
俺は激怒した。[p][r]
実行してみましょう。音が突然入れ替わり不自然な印象を受けることかと思います。間髪いれずに音を入れ替えるわけですから当然の話ですね。 そこで、音の入れ替えにフェードインフェードアウトという方法を実行してみましょう。 フェードインとは小さな音量からだんだんと通常の音量になり再生される方法で、 フェードアウトはその逆、どんどん音量が小さくなって音が消える方法です。これにはfadeinbgmタグfadeoutbgmタグを使用します。先ほどのソースでは、[再生]→[再生]としましたが、 このタグを使用する場合は[再生]→[停止]→[再生]となります。では次のソースを見てください。

フェードインorアウト

[fadeinbgm storage="hogehoge.mid" time="2000"]
ある焼肉屋で骨付きカルビを頼んだのだが、普通のカルビがきた。[p][r]
店員が間違えに気づき謝ってきたが、自分は特に気にしなかった。[p][r]
数分後、その店員がキムチを持ってきてこう言った。[p][r]
「本当にすみません…。これほんのキムチですが…。」[p][r]
[fadeoutbgm time="1000"]
[fadeinbgm storage="hogehoge2.mid" time="2000"]
俺は激怒した。[p][r]
このソースにある追加記述timeは、フェードイン、フェードアウトにかける時間をミリ秒で指定します。 例えば、1秒かけてフェードインを行う場合はtime="1000"となります。通常の秒数に×1000すれば良いのです。しかしながら 上記のソースでもまだ、不具合があります。それは、フェードアウト中に次のソースへ進んでしまうために、フェードインが無理やり割り込んでくる形になってしまうことです。 フェードが完全に終了してから次のソースへ移る場合は、wdタグを使用します。 これは、フェードを待ってから文字を表示させる事も同じです。そこで下の例を見てください。
[fadeinbgm storage="futuu.mid" time="2000"]
ある日、私は森に迷ってしまった。[p][r]
夜になりお腹も減ってきた。[p][r]
そんな中、一軒のお店を見つけた。[p][r]
「ここはとあるレストラン」[p][r]
変な名前の店だ。[p][r]
私は人気メニューの「ナポリタン」を注文する。[p][r]
数分後、ナポリタンがくる。私は食べる。[l]
[er]
……なんか変だ。しょっぱい。変にしょっぱい。頭が痛い。[p][r]
私は苦情を言った。[p][r]
店長:「すいません作り直します。御代も結構です。」[p][r]
数分後、ナポリタンがくる。私は食べる。今度は平気みたいだ。[p][r]
私は店をでる。[p][r]
しばらくして、私は気づいてしまった……[l]
[fadeoutbgm time="2000"]
[wb]
[er]
ここはとあるレストラン……[p][r]
[fadeinbgm storage="kurai.mid" time="2000"]
人気メニューは……ナポリタン……[p][r]

上の文章は恐怖を煽るような構成になっています。そこで一度、無音の状態を作ってから"オチ"を作るとしましょう。 上のソースでは、フェードアウトとフェードインの間に[wb]を使用しフェードアウトするまで ゲームの流れを止めています。それから文字を表示して、別のBGMをフェードインしています。 つまり「ここはとあるレストラン……」の部分で無音状態を実現することができるのです。

Tip

[wb]にはcanskipという追加記述があります。これはフェード終了を待っている停止時間をスキップできるかを 設定する記述です。標準ではスキップできないようになっていますが、もしこれを可能に変更したい場合は、[wb canskip="true"] とします。詳しくはDicのwbタグを見るといいでしょう。

効果音

さて、次は効果音です。効果音で再生できるのはWAVE形式か、プラグインで再生可能にした形式のみなので注意が必要です。 効果音はBGMとは違い、複数の音を一度に扱えます。まずは下のソースを見てください。
[playse storage="hogehoge.wav" buf="0"]

playseタグは効果音を再生するタグです。そこへ例のごとくstoragehogehoge.wavを読み込んでいるわけです。ではbuf=0とはどのような働きを持つのでしょうか? このページの冒頭で私は「効果音は画像で言う前景にたとえることができる」といいました。これは前景で使用したlayer="0" と同じ意味です。ん?ってことはlayer="1"なんていう追加記述も使えたのだから、buf="1"も使えるはずですね。 ではソースをこのように変更してみましょう。
[playse storage="hogehoge.wav" buf="0"]
[wait time="500"]
[playse storage="hogehoge.wav" buf="1"]
[wait time="500"]
[playse storage="hogehoge.wav" buf="2"]

[wait time="500"]0.5秒待てという命令です。便利な記述なので覚えておいてもいいかもしれません。 さて、このソースを実行すると、0.5秒置きにhogehoge.wavが再生されるかと思います。 この複数の音が共存できる仕組みをバッファといいます。バッファの説明にはよくが使用されますが、少し難しいかもしれないので ここではCDプレイヤーに例えたいと思います。0、1、2とはCDプレイヤーに名づけられた名前で、これらには別々の(もちろん同じでもO.K.) 音楽CDをセッティングできます。上のソースはその3台のCDプレイヤーに次々と再生をさせていた状態だったのです。

Tip

ここでの効果音は台詞も含まれます。文字に声を対応させるには、
[playse storage="serifu01.wav" buf=0]
こういうとき、普通は傘を持ってくれるものです。[p][r]

とすればよいのです。


Tip

効果音にもフェードイン・フェードアウトを行えるタグがあります。詳しくはfadeinseタグ等をご覧ください。

[次へ進む]

Back to the Lesson([top]>[Lesson]>[Lesson6 音編])