Your SlideShare is downloading. ×
0
SimpleAudioEngine
カスタマイズ
株式会社シュハリ 
松浦 晃洋
自己紹介
• 松浦 晃洋!
• 株式会社シュハリ 代表取締役!
• 株式会社スマートエデュケーション

チーフエンジニア!

• Cocos2d-x 開発のレシピ執筆

•
•

@syuhari!
facebook.com/syuhari
リズムタップ
リズムオンステージ
SimpleAudioEngineをいじる!
•

BGM を同時に2つ再生

•

効果音の同時再生数を増やす

•

効果音毎にボリュームを変える

•

ピッチを変えて再生

•

BGM にシーク機能を追加
OpenALとは
•

3Dオーディオの API

•

音源とリスナを3次元空間に配置して、音が立体
的に聞こえるようにすることが可能
SimpleAudioEngineをいじる!
•

BGM を同時に2つ再生

•

効果音の再生数を増やす

•

効果音毎にボリュームを変える!

•

ピッチを変えて再生

•

BGM にシーク機能を追加
効果音毎にボリューム設定
•

OpenAL のゲインを使用
•

ゲインとは距離減衰

•

音源からどれくらい離れているかにより音の大
きさが変わる

•

ドップラー効果など再現可能
SimpleAudioEngineをいじる!
•

BGM を同時に2つ再生

•

効果音の再生数を増やす

•

効果音毎にボリュームを変える

•

ピッチを変えて再生!

•

BGM にシーク機能を追加
ピッチを変えて再生
•

OpenAL のピッチを変える
•

ピッチとは音の高低、再生速度の違い

•

BGM のピッチを上げるとスーパーマリオのよ
うにゲーム終盤でプレイヤにプレッシャーをか
けたり
iOS
SimpleAudioEngine.h
unsigned int playEffect(const char* pszFilePath, bool bLoop,
float gain, float pitch);

SimpleAudi...
Android
Cocos2dxSound.java
private int doPlayEffect(final String pPath,
final int soundId, final boolean pLoop,
float gain...
SimpleAudioEngineをいじる!
•

BGM を同時に2つ再生

•

効果音の再生数を増やす

•

効果音毎にボリュームを変える

•

ピッチを変えて再生

•

BGM にシーク機能を追加
シーク機能を追加
•

指定秒数までスキップしてから再生

•

現在再生中の秒数を取得
iOS
SimpleAudioEngine.h
void setBackgroundMusicCurrentTime(float currentTime);

SimpleAudioEngine_objc.m
-(void) setBackgr...
Android
Cocos2dxMusic.java
public void setBackgroundMusicCurrentTime(float sec) {
!

…
!

int msec = (int)(sec * 1000.0f);...
サウンド関係の問題点
•

Galaxy S4 はシークにバグがある
•
•

•

指定した秒数からずれる
ズレ方はバラバラ

Nexus5 の再生の問題
•

容量の大きいファイルを再生するとおかしくなる

•

長時間ストリーミング再生し...
まとめ
•

リズムゲームを作るなら
•

iOS だけなら簡単

•

Android は端末毎にかなりクセがあるので調整
にかなり時間がかかる
Upcoming SlideShare
Loading in...5
×

SimpleAudioEngine のカスタマイズ

2,990

Published on

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,990
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

Transcript of "SimpleAudioEngine のカスタマイズ"

  1. 1. SimpleAudioEngine カスタマイズ 株式会社シュハリ  松浦 晃洋
  2. 2. 自己紹介 • 松浦 晃洋! • 株式会社シュハリ 代表取締役! • 株式会社スマートエデュケーション
 チーフエンジニア! • Cocos2d-x 開発のレシピ執筆 • • @syuhari! facebook.com/syuhari
  3. 3. リズムタップ
  4. 4. リズムオンステージ
  5. 5. SimpleAudioEngineをいじる! • BGM を同時に2つ再生 • 効果音の同時再生数を増やす • 効果音毎にボリュームを変える • ピッチを変えて再生 • BGM にシーク機能を追加
  6. 6. OpenALとは • 3Dオーディオの API • 音源とリスナを3次元空間に配置して、音が立体 的に聞こえるようにすることが可能
  7. 7. SimpleAudioEngineをいじる! • BGM を同時に2つ再生 • 効果音の再生数を増やす • 効果音毎にボリュームを変える! • ピッチを変えて再生 • BGM にシーク機能を追加
  8. 8. 効果音毎にボリューム設定 • OpenAL のゲインを使用 • ゲインとは距離減衰 • 音源からどれくらい離れているかにより音の大 きさが変わる • ドップラー効果など再現可能
  9. 9. SimpleAudioEngineをいじる! • BGM を同時に2つ再生 • 効果音の再生数を増やす • 効果音毎にボリュームを変える • ピッチを変えて再生! • BGM にシーク機能を追加
  10. 10. ピッチを変えて再生 • OpenAL のピッチを変える • ピッチとは音の高低、再生速度の違い • BGM のピッチを上げるとスーパーマリオのよ うにゲーム終盤でプレイヤにプレッシャーをか けたり
  11. 11. iOS SimpleAudioEngine.h unsigned int playEffect(const char* pszFilePath, bool bLoop, float gain, float pitch); SimpleAudioEngine_objc.m -(ALuint) playEffect:(NSString*) filePath loop:(BOOL) loop pitch:(Float32) pitch pan:(Float32) pan gain:(Float32) gain { … return [soundEngine playSound:soundId sourceGroupId:0 pitch:pitch pan:pan gain:gain loop:loop]; … }
  12. 12. Android Cocos2dxSound.java private int doPlayEffect(final String pPath, final int soundId, final boolean pLoop, float gain, float pitch) { } // play sound int streamID = this.mSoundPool.play( soundId, gain, gain, Cocos2dxSound.SOUND_PRIORITY, pLoop ? -1 : 0, pitch); …
  13. 13. SimpleAudioEngineをいじる! • BGM を同時に2つ再生 • 効果音の再生数を増やす • 効果音毎にボリュームを変える • ピッチを変えて再生 • BGM にシーク機能を追加
  14. 14. シーク機能を追加 • 指定秒数までスキップしてから再生 • 現在再生中の秒数を取得
  15. 15. iOS SimpleAudioEngine.h void setBackgroundMusicCurrentTime(float currentTime); SimpleAudioEngine_objc.m -(void) setBackgroundMusicCurrentTime:(float)currentTime { ! [as setCurrentTime:currentTime]; ! }
  16. 16. Android Cocos2dxMusic.java public void setBackgroundMusicCurrentTime(float sec) { ! … ! int msec = (int)(sec * 1000.0f); this.mBackgroundMediaPlayer.seekTo(msec); ! … ! }
  17. 17. サウンド関係の問題点 • Galaxy S4 はシークにバグがある • • • 指定した秒数からずれる ズレ方はバラバラ Nexus5 の再生の問題 • 容量の大きいファイルを再生するとおかしくなる • 長時間ストリーミング再生しているとおかしくなる
  18. 18. まとめ • リズムゲームを作るなら • iOS だけなら簡単 • Android は端末毎にかなりクセがあるので調整 にかなり時間がかかる
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×