*

【AS2.0】イントロがあるBGMをループさせる方法

公開日: : 最終更新日:2015/03/07 プログラミング

intro

こんにちは。桐村です。ゲームに場面にあった BGM は必須ですよね。卒業研究では ActionScript で RPG を作ったり、個人で FLASH ゲームを作った経験がありますので、BGM をゲームに組み込む機会もありました。ゲームにおいては BGM をループしなければならない場合が多いです。

市販されているコンシューマゲームのゲーム BGM は生演奏されているものも多いですが、綺麗に切れ目なくループさせてるなー。一体どうやってやってるんだろうなー。と思っていたのですが、ゲーム会社に務めているわけでもなく考えてもわからないので、精度は落ちますが独自にイントロがある BGM をループさせる方法を考えたわけです。

今回は ActionScript2.0 で BGM をループする方法を紹介します。

BGM には二通りあります。

  • イントロがない BGM
  • イントロがある BGM

イントロがない BGM をループする方法は簡単です。

var s:Sound = new Sound(this);
s.attachSound("識別子");
s.start(再生開始位置,ループ回数);

BGM に識別子を付けて attachSound メソッドでサウンドオブジェクトに関連付けます。そして start メソッドでループ回数を指定します。再生開始位置は最初からであれば「0」を指定します。イントロがある BGM だとそうはいきません。このままだと2回目のループでもイントロが再生されてしまいます。

識別子の指定方法

ちなみに BGM に限らず ActionScript でオブジェクトを扱う場合、識別子を与えます。これで ActionScript で各オブジェクトを判別できるようになります。方法は次のようにします。

  1. ライブラリから読み込んだサウンドを右クリックし、プロパティを開く。
  2. サウンドプロパティが開くので、「ActionScript用に書き出し」にチェックする。
  3. 識別子に任意の名前を指定する。(下図参照)

intro3

前置きはこれくらいにして、イントロがあるBGMをループさせる方法です。

ファイルを準備します

intro4イントロとループする部分を波形編集ソフトなどを使って2つに分割します。
この時、波形編集ソフトで拡大して100ミリ秒でも狂いなく切り取っておかないと不自然なループになります。

イントロがある BGM を無限ループする方法

//イントロ部分
var bgm_intro:Sound = new Sound();
bgm_intro.attachSound("intro");
bgm_intro.start();
//ループ部分
//イントロが終わったらループを再生する
bgm_intro.onSoundComplete = function() {
  var bgm_loop:Sound = new Sound();
  bgm_loop.attachSound("loop");
  bgm_loop.start();
  //ループ部分の曲が終わったらもう一回再生する
  bgm_loop.onSoundComplete = function() {
    bgm_loop.start();
  };
};

まず最初にイントロ部を普通に1回再生させます。イントロが終わったらループ部を再生し、ループ部の再生が終わったらもう一度ループ部を再生するという仕組みです。

再生が終わったらという判定は onSoundComplete メソッドを使用します。onSoundComplete の前にサウンドオブジェクトを指定して以下のように記述します。

サウンドオブジェクト名.onSoundComplete = function() { 処理内容 };

これでイントロがある BGM もゲーム音楽としてループ再生する事が可能です!

最初に紹介した方法ではループ回数を9999と指定しても9999回再生したら止まってしまうので、イントロがない BGM でも onSoundComplete の方法を利用すれば無限ループが可能です。ゲーム制作にお役に立てたら幸いです。

上部広告

  • Pocket

おすすめトピックス

関連記事

非常口
html5で脱出ゲームは作れるのか?(1:画面遷移)

Adobe FLASH がモバイルの世界から殲滅され、PC の世界からも淘汰されつつある今日この頃。かつて動きのあるコンテンツの作成に使われた FLASH は html5 にシフトされてきています。 FLASH が活用さ […]

escapess
html5で脱出ゲームは作れるのか?(2:効果音を鳴らす)

html5 で脱出ゲームは作れるのか?html5 の可能性を模索する連載第二回目です。今回は大抵の脱出ゲームで使われる「効果音」を鳴らしてみました。 目次1 ブラウザごとの音声ファイルの対応2 mp3 ファイルの事前ロー […]

オフィス画像モニタ
謎エラー勃発!「オブジェクトを指定してください。」が出たら確認する事

こんにちは。桐村です。Webデザイナーではありませんが、jQueryは触る事もあります。巷のウェブサイトではよく見かける画像スライダーとか、ページの下までスクロールしたら現れる上まで戻るボタンとか。現在ではほとんどが j […]

上部広告

著者について

名前:Azell
作曲したり風景写真撮ったりWeb制作したりする人です。 好きな事を楽しくブログに綴れていけたらと思います。

フォローはこちら

       

上部広告

       
スマホサイト
プラグイン無しで簡単に実現するスマホサイトの上からドロワーメニューの作り方【jQuery】

近年どこでもスマートフォン向けサイトが用意されているのが当たり前です。

sumaho-footer2
これを見れば簡単!スマホサイトのフッターメニューをサクッと作るサンプル

スマートフォンなどのモバイル端末でウェブサイトを見る人が急増し、今の時

gifuparking
名鉄岐阜駅直結の最も近い駐車場、24時間営業で2日以上停められます

名鉄岐阜駅から名古屋方面へ旅行やお出かけ、また中部国際空港へ電

wordpressengry
WordPress管理画面の投稿一覧で表示される投稿数を変更するには

WordPress の管理画面と言えば、WordPress でブログや

パンケーキ
札幌市大通で絶品サッポロパンケーキ!タイル貼りのカフェ「ミント」

札幌の地下鉄大通駅から徒歩3分、アクセスも良いタイル貼りのオシ

→もっと見る