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);
ソフトウエア技術者やっています。主にARM組み込みソフトを作っていましたが、最近はいろいろなアプリケーションとか作っています。 いろいろなことをしてすぐ忘れるので備忘録をつけようかなと。 なるべく誰でもできるように書いていこうかなと思います。 (時間がたった後のバカな自分のために。。。。)
2014年12月21日日曜日
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) で作成する。
error MD_DynamicRelease MT_StaticRelease
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MD_DynamicRelease' が MT_StaticRelease の値 'main.obj' と一致しません。
プロパティ→構成プロパティ→C/C++→コード生成→ランタイム ライブラリの設定が
リンクするライブラリ、共通プロパティなどと異なる場合に出ます。
何と何が違うのかもきちんと出力されますので、違うところを合わせてあげてください。
プロパティ→構成プロパティ→C/C++→コード生成→ランタイム ライブラリの設定が
リンクするライブラリ、共通プロパティなどと異なる場合に出ます。
何と何が違うのかもきちんと出力されますので、違うところを合わせてあげてください。
2014年12月16日火曜日
7.3.MMDアプリ作成
とりあえず何かモデルに踊ってもらいましょう!
1.空のプロジェクトを作成します。
2.ソースコードをかきます。最後に載せます。
3.インクルードパスを通します。
4.MMDとBulletPhysicsを共有化し参照します。
X.マルチバイト文字を使用することとしておきます。
X.ランタイムライブラリはマルチスレッド DLL(/MD)でビルドします。
1.空のプロジェクトを作成します。
2.ソースコードをかきます。最後に載せます。
3.インクルードパスを通します。
4.MMDとBulletPhysicsを共有化し参照します。
X.マルチバイト文字を使用することとしておきます。
X.ランタイムライブラリはマルチスレッド DLL(/MD)でビルドします。
2014年12月15日月曜日
7.2.MMD 下準備② MMD をライブラリ化
直接プロジェクトに組み込んでもいいのですが、この際libにします.too。
1.Win32コンソールアプリケーション"MMD"を作成します。
2.次へ→スタティックライブラリを選択します。
3.ARTK_MMD_src/src/MMD(前回DLしておいたもの)を下記の通り登録します。
4.インクルードパスを通します。
5.ビルドします。MMD/Release/BulletPhysicsWrap.libができます。
X.マルチバイト文字を使用することとしておきます。
X.ランタイムライブラリはマルチスレッド DLL(/MD)でビルドします。
1.Win32コンソールアプリケーション"MMD"を作成します。
2.次へ→スタティックライブラリを選択します。
3.ARTK_MMD_src/src/MMD(前回DLしておいたもの)を下記の通り登録します。
4.インクルードパスを通します。
5.ビルドします。MMD/Release/BulletPhysicsWrap.libができます。
X.マルチバイト文字を使用することとしておきます。
X.ランタイムライブラリはマルチスレッド DLL(/MD)でビルドします。
7.1.MMD 下準備① Bullet Physics のWrapper をライブラリ化
直接プロジェクトに組み込んでもいいのですが、この際libにします。
1.空のソリューション"MMD"を作成します。
2.新しいプロジェクトを追加します。
3.Win32コンソールアプリケーション"BulletPhysics"を作成します。
4.次へ→スタティックライブラリを選択します。
5.ARTK_MMD_src/src/BulletPhysics(前回DLしておいたもの)を下記の通り登録します。
6.インクルードパスを通します。
7.ビルドします。MMD/Release/BulletPhysicsWrap.libができます。
X.マルチバイト文字を使用することとしておきます。
X.ランタイムライブラリはマルチスレッド DLL(/MD)でビルドします。
1.空のソリューション"MMD"を作成します。
2.新しいプロジェクトを追加します。
3.Win32コンソールアプリケーション"BulletPhysics"を作成します。
4.次へ→スタティックライブラリを選択します。
5.ARTK_MMD_src/src/BulletPhysics(前回DLしておいたもの)を下記の通り登録します。
6.インクルードパスを通します。
7.ビルドします。MMD/Release/BulletPhysicsWrap.libができます。
X.マルチバイト文字を使用することとしておきます。
X.ランタイムライブラリはマルチスレッド DLL(/MD)でビルドします。
2014年12月12日金曜日
2014年12月10日水曜日
6.Bullet Physics コンパイル
ダウンロードしたbuild3-masterのbuild3の下に vs2010.bat があるので実行。
すると vs2010 ディレクトリが作成され、その中に sln ファイルができる。
必要なのはBulletCollision BulletDynamics LinearMath の3つ
すべて、ランタイムライブラリをマルチスレッドDLL設定にしておきます。
ビルドします。
binディレクトリに libファイルが3つできます。
すると vs2010 ディレクトリが作成され、その中に sln ファイルができる。
必要なのはBulletCollision BulletDynamics LinearMath の3つ
すべて、ランタイムライブラリをマルチスレッドDLL設定にしておきます。
ビルドします。
binディレクトリに libファイルが3つできます。
3.glewのコンパイル
ダウンロードしたソースコード一式を展開すると、build/vc12/glew.slnがあるので、Visual Studio Express 2013で開く。
すでにプロジェクトでglew_sharedが選ばれているので、ビルド。
glewはデバッグしないので、Releaseでコンパイルします。
bin/Release/Win32の中にglew32.dllができます。
lib/Release/Win32の中にglew32.libができます。
MXがついた構成はMultiple Rendering Contextsをサポートさせたい場合
glewはデバッグしないので、Releaseでコンパイルします。
bin/Release/Win32の中にglew32.dllができます。
lib/Release/Win32の中にglew32.libができます。
MXがついた構成はMultiple Rendering Contextsをサポートさせたい場合
2.freeglut コンパイル
ダウンロードしたソースコード一式を展開すると、VisualStudio/2012/freeglut.slnがあるので、Visual Studio Express 2013で開く。
すでにプロジェクトでfreeglutが選ばれているので、ビルド。
2010プロジェクトから置換しますか?って聞いてきますので、Yes!
glutはデバッグしないので、Releaseでコンパイルします。
libの中にfreeglut.libとfreeglut.dllができます。
Release staticってなに?って方はお調べください。
マルチスレッド(/MT)でビルドしていますがマルチスレッドDLL(/MD)のほうがいい気がします。
すでにプロジェクトでfreeglutが選ばれているので、ビルド。
2010プロジェクトから置換しますか?って聞いてきますので、Yes!
glutはデバッグしないので、Releaseでコンパイルします。
libの中にfreeglut.libとfreeglut.dllができます。
Release staticってなに?って方はお調べください。
マルチスレッド(/MT)でビルドしていますがマルチスレッドDLL(/MD)のほうがいい気がします。
2014年12月9日火曜日
1.Visual C++ & OpenGL ソースコードのダウンロード
Visual C++からOpenGLを使うためには
freeglutからsource 2.8.1をダウンロード。
GLEWからsourceをダウンロード。
ついでに、Bullet Physicsもダウンロード MMDもここからダウンロードしておく。
どうしてGLUTじゃなくて、freeglutなの?
という方は自分で調べてみてくだされ。
freeglutからsource 2.8.1をダウンロード。
GLEWからsourceをダウンロード。
ついでに、Bullet Physicsもダウンロード MMDもここからダウンロードしておく。
どうしてGLUTじゃなくて、freeglutなの?
という方は自分で調べてみてくだされ。
Vitual Studio Express 2013 ダウンロード
Visual Studio Express 2013 Download
目的によっても違うのですが、Visual Studio Express 2013 with Update 4 for Windowsをダウンロードします。 私の場合はISOを落としてインストールしました。
目的によっても違うのですが、Visual Studio Express 2013 with Update 4 for Windowsをダウンロードします。 私の場合はISOを落としてインストールしました。
どうでもいい話(1)
どうでもいい話だが、、、
Visual Studio express 2013 を再インストールするに当たり、すべてアンインストールしよう!
Visual Studio 2005あたりから入っているが、すべて消そう。
ポリシーとして、あまりwindowsを汚さない!
Visual Studio express 2013 を再インストールするに当たり、すべてアンインストールしよう!
Visual Studio 2005あたりから入っているが、すべて消そう。
ポリシーとして、あまりwindowsを汚さない!
2014年12月8日月曜日
Visual Studio Express 2013 C++ と OpenGL
Visual Studio Express 2013 C++ で OpenGL を利用するための準備。
1.Visual Studio Express 2013 をインストール
2.glew32.dll が必要である。glewのsourceをDL。Visual Studio Express 2013 C++でコンパイルする。
3.glut32.dll が必要である。freeglutのsourceをDL。Visual Studio Express 2013 C++でコンパイルする。
コンパイル済みのDLLがあるが、汎用性を考慮してコンパイルする。
(実はコンパイル済みのDLLでいろいろはまった。。。。)
1.Visual Studio Express 2013 をインストール
2.glew32.dll が必要である。glewのsourceをDL。Visual Studio Express 2013 C++でコンパイルする。
3.glut32.dll が必要である。freeglutのsourceをDL。Visual Studio Express 2013 C++でコンパイルする。
コンパイル済みのDLLがあるが、汎用性を考慮してコンパイルする。
(実はコンパイル済みのDLLでいろいろはまった。。。。)
はじめに
Visual C++とOpenGLを使ってMMDを実装していきます。
OpenGLと音声、動画、などを扱っていこうと思います。
いろいろ調べて、実装は完了したのですが、備忘録的にブログを作成していきます。
ソースコードも積極的に載せていこうと思います。
OpenGLと音声、動画、などを扱っていこうと思います。
いろいろ調べて、実装は完了したのですが、備忘録的にブログを作成していきます。
ソースコードも積極的に載せていこうと思います。
登録:
投稿 (Atom)