ARToolKitマルチマーカを使うプログラムが難しい件

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2012/09/16(日) 20:39:52.21
ARToolKitの勉強中の学生です。
"3Dキャラクターが現実世界に誕生!ARToolKit拡張現実感プログラミング入門"を購読しています。
おかげで、マルチマーカを使うサンプルプログラムを動作させることができ、よりARToolKitに興味が湧きました。
そこで私は、このプログラムを少し工夫してもっと面白いプログラムにしようと思い、
マーカが隠れたらループで音が鳴るようにしたいと考えました。
2デフォルトの名無しさん
垢版 |
2012/09/16(日) 20:40:44.51
そこでまずはPlaySound関数を使用するための準備として、

#pragma comment(lib,"winmm")

winmm.libをリンクします。次に

int org = 0;

orgというオリジナルの変数(グローバル関数)を作り、そしてマルチマーカを使うサンプルプログラムの
3Dオブジェクトの描画を行う関数の3Dオブジェクトを出現させる部分のソースコードを以下のように書き足しました。
3デフォルトの名無しさん
垢版 |
2012/09/16(日) 20:41:27.48
if(visible >= 0)
{
//マーカが見えている場合
mySetLight(); //光源の設定
glEnable(GL_LIGHTING); //光源ON
mySetMaterial(); //材質特性の適用
glutSolidTeapot(20.0); //ソリッド表現のティーポット
glDisable(GL_LIGHTING); //光源OFF
org--;
}

else if(org >= 3)
{
//マーカが3つ以上隠れているとき
PlaySound("se_sad02.wav",NULL,SND_FILENAME | SND_LOOP | SND_ASYNC); //wavファイル再生           getchar();
}

else
{
//マーカが見えていない場合
glColor3f(0.0, 0.0, 1.0); //色指定
glutWireTeapot(20.0); //ワイヤーフレーム表現のティーポット
org++;
}
4デフォルトの名無しさん
垢版 |
2012/09/16(日) 20:44:24.43
マルチマーカの6つのマーカの内1つが隠れた場合orgをインクリメント(+1)して、見えたときorgをデクリメント(-1)します。
orgが3以上になったとき、PlaySound関数を使って指定したwavファイルをループ再生するというプログラムにしたかったのですが、
このソースでコンパイルすると、Webカメラでマーカを映した瞬間映像をキャプチャしていた画面がフリーズして、
指定していたwavファイルがループ再生されるという結果になってしまいました。
どのようなソースコードを書けば正常に動作するのでしょうか?
ご教授願いますm(_ _)m
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況