2014年12月21日日曜日

8.2.MMD 音声同期

MMDに音声同期をさせます。

前回も説明した関数を少し説明しておきます。
MP3のオープンと開いたファイルにエイリアスをつけておきます。
mciSendString(TEXT("open ../Release/zzz.mp3 alias __MP3__"), NULL, 0, NULL);
音声にオフセットをつけます。微妙なタイミングの調整ですね。
mciSendString(TEXT("seek __MP3__ to 400"), NULL, 0, 0);
音声を再生します。
mciSendString(TEXT("play __MP3__ notify"), NULL, 0, hWnd);
再生中の音声の位置を取得します。下記ソースではそこから更新タイミングを算出しています。
mciSendString(TEXT("status __MP3__ position"), szBuf, sizeof(szBuf) / sizeof(TCHAR), NULL);

2014年12月18日木曜日

8.1.MP3 音声再生

せっかくなので、音声再生させます。
今はタイマでモデル更新していますが、音声の経過で更新するのが普通ですね。
MP3を mciSendString 関数を使って再生します

7.5.MMD Open GL シャドウ(ステンシルバッファ)

7.4の動画は影をつけてしまっていました。
OpenGLのステンシルバッファを利用して影を表示しています。以下コード。

7.4.MMD アプリ実行

さっそく実行しました。

2014年12月17日水曜日

tips 実行ファイルに作業パスが含まれて、素性がばれる!

Release の デバッグ情報の生成をOFFしましょう。
pdbファイルが作成されなくなって、実行ファイルに作業パスが含まれないようになります。
ユーザ名とかが含まれているのが嫌な場合に。。。。

tips msvcr120.dll msvcr140.dll がない?

作成したアプリを他のPCで動かそうとしたらDLLが無いので動きません。
下記対応方法があります。
1.他のPCにVisualStudioをインストールする
2.作成したPCの C;\windows\system32\msvcr120.dll をアプリと同じディレクトリに入れておく。(おすすめ)
3.アプリをマルチスレッドDLL (/MD) ではなくて、マルチスレッド (/MT) で作成する。