« Effekseerの導入に当たって調べた長い道のり?2 | トップページ | Effekseerの導入のテスト動画 »

2015.06.20

Effekseerの導入に当たって調べた長い道のり?3

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

Visual Studio 2012がインストールできたので
Effekseerのサンプルを動かしてみます。


ここのリンクが、かげさんが検証した時のサンプルの場所になります。
https://t.co/MZOLDCQOnv

2015/06/21修正
上の取り消し線のところでは、
かげさんが検証した時のサンプルの場所をリンクしてましたが
現在は削除されて下記のURLになっているとのことです。

DXライブラリのフォルダの指定が相対指定になっているみたいで
展開された「プロジェクトに追加すべきファイル_VC用」フォルダを
見てくれているようで、サクッと動きました!

こうなると初音ミク冒険記に組み込んでみたくなります!

さて、ここで現状の初音ミク冒険記本体のソースフォルダ
HatsuneMikuBoukenkiをコピーして
コピーしたフォルダ名をHatsuneMikuBoukenkiEffekseerに変更。
(Visual Studioのバージョン違いによる問題が起きた時の対策です)

実は今、記事を書いていてHatsuneMikuBoukenkiEffecseerと
kとcを間違えてたことに気づきました。
いかん、いかん・・・

早速、Visual Studio 2008版のソリューションファイルを開きます。

まずは、おもむろにF5キーで、この段階で動くかの確認です。

はい、予想通りVisual Studio 2008 → Visual Studio 2012に
ソリューションファイルをコンバートする時に
勝手に落とされる情報がありました・・・

プロジェクトのプロパティの項目がいくつか抜け落ちてます。

error C1083: include ファイルを開けません。 'DxLib.h': No such file or Directory

ということで
DXライブラリのパスは、2か所の指定どちらも落ちていたので
DXライブラリのホームページのVisual Studio 2012の設定を
見ながら設定し直しました。

また、Luaのパスは、「..\」を使った相対パスにしていたつもりが
2箇所、「F:\」から始まる絶対パスになっていました。

Windows7とWindows8のデュアルブートだと
ドライブレター(ドライブの文字)が変わるので
Windows7でFドライブだったのは、Windows8ではDドライブになってるので
変更が必要です。

次にリンクエラーの話。

error Lnk2026: モジュールは SAFESEH イメージには安全ではありません。
ってやつだ。 そもそも日本語がおかしい気がするけど これはVisual Sutdio 2012のエラーなんで ツッコミは無しでお願いします

こいつは「構成プロパティ」-「リンカー」-「詳細設定」にある
「安全な例外ハンドラーを含むイメージ」で
いいえ(/SAFESEH:NO)を選択すると回避できました。

error LNK1207: ~の PDB形式に互換性がありません。 削除して再度ビルドして下さい。

初音ミク冒険記は、
基本的にプロジェクト構成をReleaseで作っているのだが、
Releaseフォルダにできるpdbファイルの形式に互換性がないようで、
Relaseフォルダの拡張子pdbのファイルを削除する必要がありました。
(単純にリビルドしたほうが良かったのかもしれません)

ちなみにReleaseモードでも
ブレイクポイントを使ったデバッグはできるので、
かげさんは初音ミク冒険記の本体の開発では
Debugモードでコンパイルすることはほとんどありません。
(C#側の開発ツールは何も考えずDebugモードですが・・・)

Debugモードでビルドするとデバッグ情報が付く。
Releaseモードの方がexeファイルが小さくなるのはこのためだ。
exeファイルのサイズが小さいとロードが早いし、
Releaseモードでだけポインタ系エラーが出る
なーんてことがあることを経験的に知っているので
VC++の時は、Releaseモードでしか開発していないのです。

これで起動できたものの、今度はデバッグ時に設定されているはずの
コマンドライン引数が外れてました。
初音ミク冒険記はコマンドライン引数に1とか適当なのをつけると
ピアプロ・キャラクター・ライセンスなどの説明を省略して起動できる
開発用モードがあるのです。

ここまでで、Visual Studioのバージョン違いによる問題は解決!

Effekseerのサンプルを見る限り、ほとんどコピペでいけるはずと
思っていたんですが、どこに貼り付けるか考えないといかんのぉ・・・
という状態に。

何気に初音ミク冒険記の初期化処理は
結構いろいろとやっています。

そもそも初期処理にしても、
・プラットフォームのプレ初期処理
・DXライブラリの初期処理
・プラットフォームの初期処理
・ゲームシステムの初期処理
とやってることが多いのです・・・

とりあえずコピペの場所は、
サンプルのDXライブラリの関数を目安にしました。

ソース修正は、終わったので
ビルド前に環境の確認をします。

サンプルのお手軽なところは
DXライブラリの「プロジェクトに追加すべきファイル_VC用」が
そのままあるところです。

DXライブラリの使い方解説は
コチラを参考にどうぞ。

上記リンクのVisual Studioのバージョンごとの説明で出てくる
「プロジェクトに追加すべきファイル_VC用」が展開されたフォルダに
なっています。

念のため、今現在DXライブラリを使っている人は、
今現在の「プロジェクトに追加すべきファイル_VC用」として設定しているフォルダを
名前を変更するなどしてバックアップしておいて
展開された「プロジェクトに追加すべきファイル_VC用」フォルダを
コピーすると良いでしょう。

なお、既にDXライブラリを使っている人だと
DXライブラリのバージョンを変えずに済ませたいという人もいると思います。

が、ココで問題があります。
かげさんはココでハマりました。

error LNK1104: ファイル 'DxDrawFunc_vs2012_x86.lib'を開くことができません
とかが出て、全然、リンクが通りません・・・

たしかにEffekseerのサンプルには、エラーになっているlibファイルがあり
かげさんが元々使っていたDXライブラリ3.13dには存在しません。

なのでエラーが出るファイルを
地道にコピーしてビルドを繰り返していきました。

が、libを開けないの後には

error LNK2005: ~は既に DxLib.lib(DxGraphicsWin.obj)で定義されています
と言ったエラーが大量に出て、今度こそ意味不明な状態に・・・

Effekseerの開発者さんに確認してみたところ
Effekseerから始まるlibではないので
DXライブラリの古いバージョンと新しいバージョンの競合が
原因ではないか?とのこと。

DXライブラリのバージョンを変えずに済ませる時は
readme.txtに書かれている
Effekseerから始まる6個のlibファイルと
Effekseerから始まる3個のhファイルをコピーするんですが
問題は、コピー先にあるDXライブラリのバージョンです。

2015/06/21追記
上のlibファイルの個数ですが、
かげさんが検証した時とは現在違って増えているみたいです。
詳細は、実際にreadme.txtを参照してください。

実は、DXライブラリの3.14cとそれ以前だと
DXライブラリの中の構成が結構変わっているみたいで
3.14cからは、~_vs2012_x86.libという類のlibが大量に増えています。
(過去バージョンのDXライブラリのフォルダ比較で確認しました)

どうやらこれが原因で競合が起きているみたい。
なお、2015/06/20時点ではDXライブラリは3.14cではなく
3.14dを使った方が良いです。
3.14dだと前の記事で書いた2013だと動かない
という問題も解消されます。
(が、かげさんがハマっていた段階では3.14dは公開されていなかった)

ということで、かげさんところの
「プロジェクトに追加すべきファイル_VC用」フォルダを
Effekseerのサンプルにあった
「プロジェクトに追加すべきファイル_VC用」フォルダに
ごっそり入れ替えて実行!

すると
Boukenkideeffekseer

やりました!

実は、かげさん、寝る直前にここまで確認した関係で
テンションが上がりすぎて、全然眠れませんでした・・・

さすがに翌日の仕事に影響しそうで
思わず精神安定剤を飲んで寝たくらいです。

かげさんにとっては、そのくらいの事件だったのです!

そして
Effekseerを使うにあたっての疑問」につながるのでした。


 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

トラックバック

この記事へのトラックバックの一覧です: Effekseerの導入に当たって調べた長い道のり?3:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。