無断引用禁止禁止、無断女人禁制禁止、無断右クリック禁止禁止、無断転載させていただきました禁止、無断ローカルファイルに保存しないでください禁止、無断瞬獄殺禁止、無断無断禁止、無断禁止禁止!
ヘビーユーザーのベビールーサーです。
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のほうですからね。
