Hatena::ブログ(Diary)

【長剣は】最強武器候補【鈍器です】 このページをアンテナに追加

無断引用禁止禁止、無断女人禁制禁止、無断右クリック禁止禁止無断転載させていただきました禁止、無断ローカルファイルに保存しないでください禁止、無断瞬獄殺禁止、無断無断禁止、無断禁止禁止!

ヘビーユーザーのベビールーサーです。
Nicoフレームワークがどうして普及したか、考えてみたんですが、
第一に、
こりゃ普及するはずですよ!!

OSX+Cpp+GLUT+SDLでRPG作っています。 twitter:Longsword

2012-01-28

82にちめ(Rocomoco27にちめ)

今日もサウンドプログラミングしてました。

感想。

  • MMLでリアルタイムテンポ変更するためには音符の「長さのデータ」をテンポ割りする前の状態でもっていなきゃいけない。そして現在のテンポをもとに引き算していくわけだね。たとえばテンポ120だと120ずつ減らしていくものが、テンポ200になると200ずつ減っていく。だから長さが縮まるって考えればいいんだね。この発想にはやくたどり着けばよかったけれど、固定テンポで考えていたからすんなりいってない。
  • 音色データは参照型としてもたないといけない。そうじゃないと曲を演奏しながらカオスパッドできないわけだ。たとえば「キャラのY座標に応じて音色をこもらせたい」というゲームがあったとしたら、Y座標に応じて、演奏中のデータの音色をグイグイ変更できなきゃいけない。
  • ゲーム側は、チャンネルごとのエンベロープを読み取れること。これがチャンネルボリュームにあたる。

MMLを演奏するだけじゃあだめで、ゲームを作るときに、どれだけ自由度高く作れるかってのが大事。音色のクロスフェードができたりするといいよね。実際にFM音源で音色的なモーフィングというのは難しいと思うけれど、ピアノトラックとオーボエトラックを用意しておいて、それらをクロスフェードさせると、音色のモーフィングっぽくなりそうだよね。なおかつリアルタイムにテンポを書き換え、パンも書き換えできれば、ぐいぐいいじってる感じがでると思う。

どうせ音をだすならそういうことがしたいし、そういうことができないのならwavを鳴らすだけでいいと思う。

ロマンが大事なんだ。

[Bascinet]名前変更した

だいぶ内部のはなし。

Rocomoco.GPUをRocomoco.Graphicsに、Rocomoco.DSPをRocomoco.Audioにしました。

それにともなって、class Rocomocoから受け継ぐ変数はGPU& gpuではなしにGraphics& graphics、DSP& dspではなくAudio& audioとしました。それだと長くて厭になるので、Graphics& grと、Audio& auとしてもアクセスできるようにしました。

またGraphics.bg[]をGraphics.bg0としてリファレンスを用意していましたが、これの管轄をRocomoco.bg0にうつしました。Rocomocoのユーザーは、あんまりGraphicsを意識して欲しくないのです。メインにアクセスすべきはclass BGのほうですからね。