まず、いちばん簡単な、無圧縮 PCM の Wav ファイルのルーチンを作ります。
Wav ファイルの中を、自在にアクセスできるようにするルーチンです。

Microsoft のサンプルに、これと同じルーチンがあるので参考にしたのですが、
やたらと難しい処理をしているので、かえって時間がかかったかもしれません(笑)

ファイルの読み書きを高速にするために、バッファリングを設定しているのですが、
サイズが 8KB なので、Wav にすると 0.04 秒しかありません。

Wav ファイルを扱うときには、もっと長い時間で読み書きするので、こんなに小さい
バッファだと、中間の処理が増える分、逆に遅くなると思います。

という感じで、サンプルを読んでいると、疑問に思うところがいっぱいあったりします(笑)

なんとか、ひと通りのルーチンができ上がったので、明日はテストを行います。
これができたら、次は ADPCM の Wav ファイル、そして Ogg ファイルへと進みます。

DirectSound のプログラムをするために、資料をそろえていたのですが、
やはり、マイクロソフトが提供するものが、1次情報ということで有力です。

DirectX には、開発者向けの DirectX SDK というものがあって、この中に
サンプルプログラムが入っています。

このプログラムと合わせて、マイクロソフトのサイトにある MSDN という、
これまた開発者向けの解説を読む、というのが王道であります。

DirectSound は、Vista 以降は使われなくなったこともあり、現行の SDK には
サンプルがありません。2007 年 11 月版の SDK までさかのぼる必要があります。

古いプログラムなので、VisualStudio 2010 用に修正して、すべて OK になりました。

サウンドのプログラムでポイントになるのは、つなぎ目のないループ再生、
この1点に尽きるような感じがします。

つなぎ目のところでは、スレッド処理が絡んでくるので、神経質なプログラムに
なりそうですね。

FigureMaster のサウンド機能のすべてを担当する、オーディオプラグインですが、
作ってみると、シンプルなデザインになりそうです。

処理の流れが1本道で、す〜っと処理が流れて終わり、みたいな感じです。
これは、マルチスレッドが使えないためだったりします。

グラフィックスの場合は、キャラクタのアニメーションなどに時間がかかるので、
複数のスレッドで手分けできるのですが、サウンドは計算量が少ないのです。

そのため、仕事が少ない場合は、ひとりで行ったほうが早い、ということなります。

また、トラックは BGM、効果音、音声の3本があるのですが、
これらを並列で処理することは、できません。

これはサウンドデバイスが、複数のスレッドから、同時に命令されることを
想定していないためです。

サウンドのマルチスレッド処理は、BGM のストリーミング再生で、
ファイルを継ぎ足しながら再生する場合に、裏でファイルのロードを行います。

ということで、オーディオプラグインは、メインスレッドが、1音ずつ順番に
BGM、効果音、音声を処理していく、という流れになります。

システム系のプラグインの中では、いちばん作りやすいプラグインかもしれませんね。

サウンドのプログラムでは、まずデバイスの選択を行います。
ここが、ちょっとややこしい所です。

1台のパソコンに、複数のサウンド機能が付いていることがあります。
この場合、ゲームで使用するサウンドデバイスを、選択することになります。

同じようなことが、グラボでもありまして、複数枚のグラボがある場合、
どのグラボを使うかを、プログラムが選択することになります。

ここで、グラフィックとサウンドでは、選択の方法が異なります。

グラフィックでは、ゲーム画面を表示しているモニタを Windows に問い合わせて、
モニタに信号を送っているグラボを選択する、という方法です。

サウンドでは、ここまでシンプルではなくて、スピーカーのつながっている
サウンドカードという選択はできません。

また、コントロールパネルで、スピーカー数などを設定することができます。
サウンドは、Windows が多くの設定値を管理しているのです。

というわけで、「Windows の規定値」となっている、サウンドカードを選択する
ことにします。これが、いちばん安全でしょう。

DirectSound と XAudio は、Windows との連携がしっかりできるので良いのですが、
いろんな OS で動く OpenAL は、どうなるか不明な部分があります。

Open~ という名前が付いているものは、いくつかあるのですが、OS に依存しないと
いうとカッコいいのですが、逆に言うと Windows と連携できないわけで。

サウンド機能のように、コントロールパネルで設定するものは、
Open~ は弱いかもしれません。

大型連休の後半は、ガノさんと色々なジャンルのイベントに行ってきました。

ガノさんには、私の専門外のジャンルについて、色々と教えてもらいました。
創作のヒントを、意外なところから得ていたりして、とても視野が広がったと思います。

イベントに参加してみると、流行しているものとか、売り場のディスプレイの
やり方などが分かって、参考になります。

ソフトウェアの販売ブースでは、コンセントがなく電源の確保が大変なのですが、
タブレットPC という大きめのモバイルを、多くのサークルが使用していました。

タブレットPC でデモ画面の表示していると、買い手も内容がよくわかります。
買い手は歩きながら見るので、一見して分かるような工夫は大切です。

加えて、パンフレットで文章での説明と、サイトのアドレスを示していました。
体験版の CD を配布したり、サイトからダウンロードして欲しいという形でした。

ソフトウェアの場合、会場だけで買い物が完了するのではなくて、家に持ち帰って、
サークルのサイトから、各種の情報を引き出すことになります。

むしろイベント会場は、売り手と買い手が、互いに知り合うきっかけの場所
という認識でよいと思います。

ゲームでは、圧倒的に多かったのが、ノベルタイプのゲームです。
システムは、吉里吉里が使用されています。吉里吉里は、強いですね。

中には、女性がひとりで、シナリオとキャラクタの絵を描いて、背景と音をフリー素材で
作ったゲームがあり、ゲームの品質も高く、十分に楽しめる良作でした。

会場で売り場にいた女性が本人だと思うのですが、通りかかった人に、「どうぞ!」 と
有無を言わさぬ勢いでサンプルを渡していて、アグレッシブな人だなと感心しました。

イベントに参加すると、各種ジャンルの人たちが、作品づくりに取り組んでいるのが
よくわかります。私たちも、売り手として参加できるように、がんばって活動しましょう。

Powered By FC2ブログ. copyright © 2012 デジタル彼女で遊ぼう! all rights reserved.
アクセスカウンター

プロフィール

Author: はんら

リンク
最新記事
最新コメント
最新トラックバック
カテゴリ
検索フォーム

月別アーカイブ
RSSリンクの表示
Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム
QRコード

QRコード