Skip to content

[9leap]enchant.jsのサウンド機能をすぐ使う

ちわ! shi3zだ。
今、故あってロサンゼルスに来ている。

こっちの日差しは眩しいぜ!

さて、7/1からまたまた始まった9Days Challenge。今回の新機能はサウンドだってんで、ちょろっとサイトをみてみたところ、サウンド機能の追加そのものはメチャクチャ簡単だった。

    game.preload('se5.wav','se1.wav','bomb4.wav','bomb1.wav');

とやってwaveファイルを読み込ませ・・・

    game.assets['se5.wav'].play();

これで再生するだけッ!
簡単!
圧倒的、簡単!

これだけでChrome,Safari,IE9で再生できちゃう。

ただし、iPhone(iOS)だけは注意が必要だ。
なぜかiOS版のSafariは、音を鳴らす前にタッチイベントが必要になってるらしい。
昔のFlash Liteみたいな不思議な仕様だがしょうがない。

そのため、enchant.jsはデフォルトではiOSで音が鳴らないようになっている。
音を鳴らしたかったら

    enchant.Sound.enabledInMobileSafari = true;

という一文をnew Gameの前に差し込むってわけだ。

しかしこれをやったとしても、iOSでの音の再生は・・・ものすごいラグがある。
これ、Appleの嫌がらせなのかiOSの欠陥なのかはよくわからないけど、とにかくラグってもんじゃない。

20秒から30秒くらい遅れてしまう。

そりゃあもう、完全に違うゲームじゃん!
ッテことになるだろう。

しかし音って偉大だな、と今回つくづく思った。
というのも、こないだサンプルとして紹介した3Dゲームだけど、あまりに簡単に音がつけられそうだから音をつけてみたのよ。

するとやっぱりねー音があるって偉大だなー。と思った。
全然違うんだよね。なんか、感覚が。

ちなみに音声データはenchant.jsの公式マテリアルから引用した。

実際のゲームに使われている音がいくつか入っているのでけっこう爆発音とかが多い。
ジングルを入れるといきなりファイルサイズが巨大になってしまうから注意しよう。

というわけでenchant.jsの新機能で音のプログラミングは簡単になったけど、iOSでうまく鳴らすのはどうやらかなり難しそうだ。この点、将来的には改善していきたいと思っている。

ちなみにenchant.jsのライバル(?)とも言われているImpactJSでは、なんとiOSではそもそも音がならないようになってるらしい!そんなんアリか!

・・・まあiOSの音がなんだかイマイチ・・いや、イマハチ・・・くらいなことは今回は忘れよう。少なくともChromeならちゃんと音は鳴る。

今回のコンテストは、とりあえず「音」を使ったもの、というテーマではあるけれども、既存のゲームに音を追加するだけでもかなり面白く、変わってみえてくる。

たとえばスイカ割りゲームみたいなのが文字じゃなくて音だけになる、なんてものもあり得るだろう。

制約が大きいからこそ、クリエイティビティが発揮されるチャンス!とも言える。
僕もなにか作品を作ってみようとアタマをひねってみるぞ!


Related posts:

  1. 9leap 9Days Challenge #3 enchant.jsがバージョンアップ!今度はサウンドだ!
  2. enchant.jsのサウンド機能で、ゲームをさらにカッコよく!
  3. enchant.jsでTwitter連携ゲームを作ろう! (その1 プラグイン解説編)
  4. 「jsdo.it」と「9leap」が黄金のコラボレーション!ゲームプログラミングがもっと身近に・学びやすく
  5. 9leap Camp@Tokyoレポート:4時間でスマートフォン対応のHTML5ゲームをゼロから創ってみる

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*