はじめに
1.Visual C++ & OpenGL ソースコードのダウンロード
2.freeglutコンパイル
3.glewのコンパイル
4.GLUT サンプルプログラム
5.OpenGL サンプルプログラム
6.Bullet Physics コンパイル
7.1.下準備① Bullet Physics のWrapper をライブラリ化
7.2.下準備② MMD ライブラリ化
7.3.MMDアプリ作成
7.4.MMD アプリ実行
7.5.MMD Open GL シャドウ
8.1.MP3 音声再生
8.2.MMD 音声同期
ソフトウエア技術者やっています。主にARM組み込みソフトを作っていましたが、最近はいろいろなアプリケーションとか作っています。 いろいろなことをしてすぐ忘れるので備忘録をつけようかなと。 なるべく誰でもできるように書いていこうかなと思います。 (時間がたった後のバカな自分のために。。。。)
2015年1月24日土曜日
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);
前回も説明した関数を少し説明しておきます。
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日木曜日
2014年12月17日水曜日
tips 実行ファイルに作業パスが含まれて、素性がばれる!
Release の デバッグ情報の生成をOFFしましょう。
pdbファイルが作成されなくなって、実行ファイルに作業パスが含まれないようになります。
ユーザ名とかが含まれているのが嫌な場合に。。。。
pdbファイルが作成されなくなって、実行ファイルに作業パスが含まれないようになります。
ユーザ名とかが含まれているのが嫌な場合に。。。。
tips msvcr120.dll msvcr140.dll がない?
作成したアプリを他のPCで動かそうとしたらDLLが無いので動きません。
下記対応方法があります。
1.他のPCにVisualStudioをインストールする
2.作成したPCの C;\windows\system32\msvcr120.dll をアプリと同じディレクトリに入れておく。(おすすめ)
3.アプリをマルチスレッドDLL (/MD) ではなくて、マルチスレッド (/MT) で作成する。
下記対応方法があります。
1.他のPCにVisualStudioをインストールする
2.作成したPCの C;\windows\system32\msvcr120.dll をアプリと同じディレクトリに入れておく。(おすすめ)
3.アプリをマルチスレッドDLL (/MD) ではなくて、マルチスレッド (/MT) で作成する。
登録:
投稿 (Atom)