Flash/ActionScript

Flashでマイクを使用するインターフェイス

Flashでマイクを使用します。キャラクターに声をかけて起こすという新しいインターフェイスにチャレンジしましょう!

執筆者:渡辺 大介

マウスやキーボードだけがFlashのインターフェイスではありません。今回はパソコンのマイクにアクセスし、キャラクターに声をかけて起こすFlashを作成します。
声をかけるというインターフェイスをFlashで実現。パソコンのマイクに大声をかけてキャラクターを起こしてください。
Adobe Flash 8 Professionalを使用してサンプルを作成しています。

Flashでマイクを使用するには?

1フレームはタイトル画面
1. サンプルのFlashをここからダウンロードしてください。1~9フレームは図のように寝ているキャラクターのイラストが配置されていて「sleep」とラベルが付いています。また10~19フレームまではビックリして起きているキャラクターのイラストが配置され「wakeup」とラベルが付いていることを確認してください。

2. レイヤー「action」の1フレーム目に以下のActionscriptを記述してください。
stop();

_root.createEmptyMovieClip("micSound", 100);
System.showSettings(2);

micInput = Microphone.get();
micSound.attachAudio(micInput);

_root.micInput.setGain(50);
_root.micInput.setUseEchoSuppression(false);

this.onEnterFrame = function(){
	if(_root.micInput.activityLevel >= 50){
		_root.gotoAndStop("wakeup");
	}
}
少しずつ見ていきましょう。

stop();
_root.createEmptyMovieClip("micSound", 100);
System.showSettings(2);
1行目でタイムラインの再生を停止しています。
2行目は空のムービークリップを生成する「createEmptyMovieClip("生成するMC名",深度)」です。これを実行して空のムービークリップを作り、そこにマイクの音源を付けていくという流れになります。
3行目は、Flashの設定パネルを表示する「showSettings()」です。よくビデオチャット等にアクセスした際に表示される設定パネルがあります。ここに「2」を入力するとマイクの設定がFlashの再生開始前に表示されます。

micInput = Microphone.get();
micSound.attachAudio(micInput);

_root.micInput.setGain(50);
_root.micInput.setUseEchoSuppression(false);
次の4行でマイクの入力設定を行い、生成したムービークリップに付加します。
1行目、「識別名=Microphone.get()」は、マイクの入力をします。
2行目、「識別名.attachAudio(識別名)」は、以前ご紹介した「attachSound」のような物と理解すると分かりやすいです。これでリアルタイムにマイクの音源が再生されます。
3行目、「識別名.setGain(50)」は、マイク入力のボリュームです。「0~100」までの整数で入力してください。
最後の行「setUseEchoSuppression()」は、マイク入力を再生する際にエコーを反映するかどうかです。今回は大声を入力する目的ですので、ハウリングの原因になりやすいので「false」を入力し、エコーを停止しています。

this.onEnterFrame = function(){
	if(_root.micInput.activityLevel >= 50){
		_root.gotoAndStop("wakeup");
	}
}
最後の5行はマイクの入力レベルに対して、上限分岐を行っています。
条件の「micInput.activityLevel」で、マイクの入力レベルの情報を参照しています。この場合、入力レベルが50を超えた場合、タイムラインを移動します。



これで完成です!マイク機能が付いたパソコンに呼びかけてキャラクターが目覚めるか試してください。
完成したFlashファイルをダウンロード

今回はFlashでマイク入力を試しました。マイク入力はFlash単体では録音も出来ませんし、有用性は必ずしも高くはないかもしれませんが、インターフェイスとして音声を利用するのは面白いのではないでしょうか?

ところで、音声入力は「Flash Media Server」と連携して、録音やボイスチャットの機能を提供することが基本ですが、個人でサーバを構築するのは技術的にも経済的にも難しいものです。技術的な問題はさておき「RED5」という同等の機能を提供するオープンソースサーバがあります。価格的な問題でFMSの導入を断念しようとしている方は一度注目してみてはいかがでしょうか?


【関連記事】
attachSound()を使ったリズムゲーム
【編集部おすすめの購入サイト】
Amazonで Flash 関連の書籍をチェック!楽天市場で Flash 関連の書籍をチェック!
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます