ゴゴゴゴゴゴゴゴ何を残してもいいし、何も残さなくたって構わないホームごあいさつポートフォリオアニメーションレイアウトクロッキーデッサン油彩オリジナルイラストファンアート模写サイトマップ【C++】DirectXにおける3Dアニメーションプログラミングを分析する~その2前回、PMDファイルからモデルを、VMDファイルからモーションを読み込んで、自作のウィンドウプログラム上でアニメーションさせるまでやった。前回の3Dアニメーションには、致命的な欠点があった。手足が、衣服のメッシュを突き抜けてしまうのだ。今回は、物理演算のエンジンを組み込んで、スカートや袖の動きをシミュレートさせてみた。モデル以外に、物理演算で設定している箱までレンダリングされてしまっているが、それはおいおい修正していくものとして今回は見えないものとしてください。手足が衣装を突き抜けなくなり、ちゃんと布地のような挙動をするようになった。それでは、前回のプロジェクトに物理演算エンジンを組み込むまでの手順を整理しておくことにする。今回も技術的な情報は全て、ニコニコ動画のうp主、mはげさんの動画とサイトを参考にさせていただいた。さんの公開マイリストうp主のmはげさんのサイト結構ながい道のりとなったので、概略から述べるとこうなる。library」のソースをゲット。library」ビルド用ソリューションを作成。3.ソースを若干修正して上記ソリューションをビルドしライブラリを作成。4.前回のプロジェクトにライブラリとヘッダファイルを追加。5.前回のプロジェクトの構成を調整して、物理演算部分のソースのコメントをはずしてビルドして完成。library」のソースをゲット】ソースは下記のサイトからダウンロードして展開する。落としてきたソースにはVS用のソリューションファイルは添付されていない。(旧バージョンではあったらしい)日本語のユーザーサイトによると、現行版はCMakeという外部ツールを使って、VSのソリューションファイルを生成してから、ビルドするそうだ。下記のサイトからCMakeをゲットしてインストール。http://www.cmake.org/CMakeの操作はこんな感じ。1に展開したBulletソースのルートフォルダを指定する。2にVSプロジェクトを出力する先を指定する。3の「Configure」をクリックすると、ウィンドウの情報がいろいろ変化するが、男は黙って「Generate」をクリックする。実は、俺の環境では生成されたVSプロジェクトはそのままだとビルドエラーが発生した。エラーが出た箇所を修正してビルド。<algorithm>以上、無事ビルドに成功した。ちなみに、ReleaseビルドとDebugビルドの二回行って、リリース用ライブラリとデバッグ用ライブラリを作成すること。前回のプロジェクトのソースフォルダにビルドしたライブラリを全部配置する。あと、ヘッダファイルも必要なので、こちらは先に展開したBulletのソースフォルダからとってくる。とってくるヘッダファイルは下記のとおり。BulletCollisionフォルダごとBulletDynamicsフォルダごとBulletMultiThreadedフォルダごとBulletSoftBodyフォルダごとLinearMathフォルダごとMiniCLフォルダごとvectormathフォルダごとBullet-C-Api.hbtBulletCollisionCommon.hbtBulletDynamicsCommon.hあとは、前回ビルドする際にコメントアウトした物理演算用のコードのコメントをはずしてビルドすれば完了...かと思いきや問題が発生。リリースビルドは成功するものの、デバッグビルドすると大量のエラーが発生した。【前回のプロジェクトの構成を調整】おそらく、Bulletのビルドの際、デバッグビルドの構成が何かしら、組み込み先のビルド構成と異なるので問題が発生しているらしい。正確な原因は不明だが、とにかくBulletのプロジェクト設定を見ながら、設定の違う部分を探してみた。CMakeで作ったBulletのデバッグ構成の[C/C++]→[コード生成]が下図のようになっていた。ちなみに組み込み先のプロジェクトのデバッグ構成は下図だ。(たぶんデフォルトのままのはず)いくつか異なる点があり、どうも怪しい。いうことで、これらを全部、Bulletのデバッグ構成にあわせてみたところ、見事にビルド成功となった。リリース構成もBulletと自分のとで設定は異なるんだけれども、こちらは特に変更なしでもビルドが通っている点が解せない。これはあくまで俺の推測だけれども、リリース構成ではスタンドアローンで動くようにランタイムオブジェクトも全て抽出されるのに対して、デバッグ構成ではそれがプロジェクト依存になっているのではなかろうかと。原因は結局よくわからない。誰かわかる人いたら教えてください。長い道のりだったけれども、一応3Dアニメーションに必要なものが一通りそろったサンプルになったと思う。これからじっくりソースを解析していこうと思う。コメントをキャンセルメールアドレスが公開されることはありません。VolThemes.。