しばらく放置していたらEinさんのページが変わっていたのでリンク修正.開発環境も変わってたので更新してみた.
デスクトップにミクさんを出現させようということで, ちょっと調べてみる. ミクさんを出現させるだけなら既に沢山?やられているので, 自分でやることもないんだけれど...
PMD/PMXファイルを読みこめるライブラリはいろいろあるらしい.
3D Computer Graphicsなんて全然良くわからないので, とりあえずDXライブラリあたりから触って見ることにした.
が, まずライブラリをビルドすると, コンパイラにunresolved external symbol __iob
と怒られてしまった. (覚えてないがlibpngあたりだった気がする)
in sources USE_MSVCRT=1
does fix the issue.
なんかlibcに依存してコンパイルされてるのが元凶らしい, ということで依存ライブラリもまとめてビルドします.
共通の設定とか
基本的にはVisual Studio 2012の既定値だけど, 全部x64向けにビルドしました
今回は音声関係の機能は使用しないので, その辺はDxCompileConfig.hで無視するように設定しました.
- ソースコードをダウンロード
- Win32スタティックライブラリの空のプロジェクトを作成
- DLしたソースコードのうち,ルートディレクトリにある.cと.hをプロジェクトに追加
- ビルドできるはず
- ソースコードをダウンロード
- Win32スタティックライブラリの空のプロジェクトを作成
- DLしたソースコードのうち,ルートディレクトリにある.cと.h(ただし,example.cを除く)をプロジェクトに追加
- scriptsフォルダにあるpnglibconf.h.prebuildをpnglibconf.hにリネームしてプロジェクトに追加
- 先に作ったzlibのProjectDirにincludeのパスを通したらビルドできるはず
- ソースコードをダウンロード
- Win32スタティックライブラリの空のプロジェクトを作成
- jconfig.vcをjconfig.hにリネーム
- .c .h (Example.c, jmemdos.c, jmemmac.c 以外)をプロジェクトに追加
- ビルドできるはず
- ソースコードをダウンロード
- さっきまでの同じで,空のプロジェクト→ソースファイル追加でビルドはできるはず
Bullet Physicsはビルドはできるけど,そのままだとベクトルの代入操作のところでアクセス違反してしまう. アラインメントの問題だけど, btScalar.hに定義されている
#define BT_USE_SSE
をコメントアウトするとちゃんと動きました
DXライブラリ
これもソースファイル適当に空のプロジェクトにまとめて追加して, IncludeとLibraryのパス通します.
DxLib.hのライブラリリンク定義のところを適当にコメントアウトしたり, Bullet Physicsはファイル名変わってるから直したりします. するとビルドが通るので, 使えるようになります.
なんか今回適当で誰の役に立つのか謎ですが, こんな感じでDXライブラリ使えるようになりました.