oF - openFrameworks SolutionSetting for VC++
WindowsでopenFrameworksプロジェクトを作成する時、emptyExampleをコピーする方法もありますが、いろいろとアドオンを追加しようとするととたんに面倒になります。
oFのフォーラム(ofProject script for windows)ではPythonによる支援スクリプトが紹介されていますが、対象はv2.5用であり、自分の環境v2.6ではパッケージが対応せず使用出来ませんでした。
クロスな環境としてはPythonは良いかもしれませんが、VC++ですとWindows環境が対象になりますし、コマンドラインもまた面倒です。そして、このためだけにv2.5をインストールするのもなんですし、Pythonをインストールしてないユーザーにとってちょっと手間がかかります。
そこで、それらの作業を軽減するためのGUIツールを作成しました。
必要環境は .Net Framework 2.0 以上で、VisualStudio 2008(Visual C++ 2008) または Visual C++ 2008 Express Edition が対象です。
OSは Windows XP(x86)、Windows 7(x64) で動作確認しました。
まずは oF_Setting の各機能を説明し、後半では ofxBox2d を対象とした操作手順の例を紹介します。
■Project
作成するアプリケーションの情報を登録します。
Solution File
ソリューション・ファイルを指定します。
上にあるドロップダウン・リストは履歴が登録されています。初期状態では何もありません。
※右横のアイコンについてはSettingの「アイコンについて」を参照。Project File
プロジェクト・ファイルを指定します。
※右横のアイコンについてはSettingの「アイコンについて」を参照。Add specified folder.
プロジェクト下の指定フォルダ内にあるソース(*.cpp,*.h)ファイルを自動的に追加する場合にチェックします。
右横のテキストボックスで指定された名前が対象のフォルダ名です。初期値は「src」です。
例えば TestProject というフォルダに Test.vcproj が存在した場合、TestProject –> src をルートとしてファイルを探索します。存在しなければ何もしません。
また、空欄にすることで TestProject をルートにして探索します。
Clear Filter field, then add the file.
ソリューションエクスプローラにあるフォルダは、vcprojファイル内では Filter項目 として記述されています。
新規にプロジェクトを作成すると「ソース ファイル」「ヘッダー ファイル」「リソース ファイル」が初期登録されますが、これら既にあるFilter項目を全て削除し、新たにファイルを再登録する場合にチェックします。通常はチェックしたままで大丈夫です。
Search sub folders.
探索ルート下にある全てのサブフォルダを探索し追加対象とします。
Output sample code.
「Add specified folder」の対象フォルダに、ファイルが1つも存在しない場合に限り、初期のサンプルファイルを追加します。
サンプルファイルはoF_Settingの起動フォルダにある、「src」フォルダ内を探索して追加します。
よって、このオプションを使用する場合は、先に oF_Setting起動フォルダ –> srcフォルダ にコピーする元ファイルを入れておいて下さい。
例えば、標準サンプルにある emptyExample のソースファイル(main.cpp, testApp.cpp, testApph)をコピーしておくと良いでしょう。Create backup.
Build時にソリューション・ファイルとプロジェクト・ファイルのバックアップを作成します。
バックアップは、それぞれ *.日時.bak というファイル名で同じフォルダに作成されます。
「Convert only.」でBuildする場合は作成しません。
Convert only.
Buildを実行すると実際にファイルを書き換えますが、書き換えずに結果のみを知りたい場合にチェックします。
Build
処理を実行し書き換えます。
「Convert only.」がチェックされている場合は書き換えません。
About
バージョン情報を表示します。
Exit
終了します。
ProjectタブとSettingタブで設定した内容は、次回起動時に自動的に読み込まれます。また、履歴にはソリューション名で登録されます。
■Setting
openFrameworksの基本情報を登録します。
Root
openFrameworksのルートとなるフォルダを指定します。
新規設定した場合や、場所を変更した場合は、必ず横のリフレッシュ
を実行して下さい。(下層フォルダのチェックを行います)
初期状態のままなら、最低限ここだけを設定してリフレッシュするだけになります。Libs Directory
Libsフォルダを指定します。
※初期の階層構造を変更していない場合はそのままで構いません。Addons Directory
Addonsフォルダを指定します。
※初期の階層構造を変更していない場合はそのままで構いません。DLL Directory
DLLのあるフォルダを指定します。oFフォルダ –> export\vs2008 なら vs2008 を指定して下さい。
※初期の階層構造を変更していない場合はそのままで構いません。Solution File
oFのソリューション・ファイルを指定します。通常は oFフォルダ –> libs\openFrameworksCompiled\project\vs2008 にあります。
※初期の階層構造やファイル名を変更していない場合はそのままで構いません。Project File
oFのプロジェクト・ファイルを指定します。通常は oFフォルダ –> libs\openFrameworksCompiled\project\vs2008 にあります。
※初期の階層構造やファイル名を変更していない場合はそのままで構いません。
◆アイコンについて
ファイル・フォルダの各入力エリアは、エクスプローラからドラッグ&ドロップして登録することが出来ます。
また、右隣のアイコンをクリックするとファイル・フォルダ選択ダイアログが表示されます。
■Include Dir
追加のインクルード用フォルダを登録します。
デバッグ用とリリース用と別々に指定可能で、両方とも兼用であれば「same Debug」をチェックします。
初期状態で必要な部分は自動的に追加されるので、通常は記述する必要はありません。
■Lib Dir
追加のライブラリ用フォルダを登録します。
デバッグ用とリリース用と別々に指定可能で、両方とも兼用であれば「same Debug」をチェックします。
初期状態で必要な部分は自動的に追加されるので、通常は記述する必要はありません。
■Lib
リンクするライブラリを登録します。
デバッグ用とリリース用と別々に指定可能です。
必要な基本ライブラリは記載済みなので、必要に応じて追加・削除して下さい。
■Addon
プロジェクトに必要なアドオンを登録します。
アドオン(Addons Directoryで登録)フォルダ下を探索して、そこから得られた全ソース(*.cpp,*.h)ファイルがここに反映されています。
ここでプロジェクトに登録するファイル全てをチェックします。
- SubTree is selected togerther
選択した項目から下の階層全てをチェック・解除します。
1つずつチェック・解除したい場合は、このチェックを外して下さい。 - リフレッシュ・アイコン
途中でフォルダ構造が変化した場合など、再読込が必要な時に使用します。
※Addon Libタブのリフレッシュと動作は共通です。
■Addon Lib
必要なアドオン用ライブラリを登録します。
アドオン(Addons Directoryで登録)フォルダを探索して、そこから得られた全ライブラリ(*.lib)ファイルがここに反映されています。
ここでプロジェクトに登録するライブラリ(アドオン側で用意されたもの)全てをチェックします。
- SubTree is selected togerther
選択した項目から下の階層全てをチェック・解除します。
1つずつチェック・解除したい場合は、このチェックを外して下さい。 - リフレッシュ・アイコン
途中でフォルダ構造が変化した場合など、再読込が必要な時に使用します。
※Addonタブのリフレッシュと動作は共通です。
Libファイルにはデバッグ用とリリース用があると思いますので、項目をダブルクリックするか、項目上の右クリックで表示されるコンテクストメニューからどちらかを選択して下さい。
両方同じライブラリの場合もあるので、近いうちに両対応出来る修正版を出します。問題無い方は現状のままお使い下さい。
2010.04.12-06:35に修正版をアップしました。
[D] はデバッグ用、[R] はリリース用、[B]は兼用、[-]は指定無し(兼用とする)として設定されます。
■Log
実行結果を表示します。
ソリューション・ファイルの結果に続き、プロジェクト・ファイルの結果がまとめて表示されます。
プロジェクト・ファイルは実際にはXML形式ですが、Log表示では簡易的に表示されますのでご注意下さい。(あくまでも確認用です)
ダウンロード
●2010.07.12 - oF_Setting v1.0.3.1
インクルード先の一覧がプロジェクトに反映されてなかったバグを修正しました。
●2010.06.28 - oF_Setting v1.0.3.0
これまでAddonで取得するファイルは *.c *.h の2種類だけでしたが、*.hpp等の拡張子が存在する場合があるためユーザー指定としました。
Addonタブ上部のテキストボックスに拡張子を記述します。
※各拡張子は | で区切って下さい。
●2010.04.12 - oF_Setting v1.0.1.0
-----
■操作手順
前回でも使用した ofxBox2d を例に新規で作成していく手順を説明していきます。
- VC++で新規プロジェクトを作成します。
ここではappsフォルダに Test というフォルダを作成し、その中に TestBox2d というプロジェクトを作成することにします。apps –> Test –> TestBox2d

「Win32コンソール アプリケーション」を選択して、追加のオプションを「空のプロジェクト」で作成します。
「ソリューションのディレクトリを作成」は任意で構いません。 - ofxBox2dのサンプルをコピーしてきます。
addons/ofxBox2d/example/src
のsrcフォルダをまるごとプロジェクトにコピーしておきます。
ソリューションのディレクトリを作成していた場合は、上図のようになります。 - oF_Setting.exe を起動します。初回の場合はSettingタブでopenFrameworks関係の設定をします。
「Root」にルートなるフォルダをドラッグドロップするか、右端のアイコンをクリックしてフォルダの選択をして下さい。
Rootが設定出来たら、リフレッシュ
を押してチェックします。全てが緑のアイコンになれば大丈夫です。
今後oFのフォルダ構成が変更されたり、名前が変わったりした時に対処しやすくするため、設定項目を多く設けてます。
次回起動からは省略出来ます。環境が変わった場合は再設定して下さい。 - Projectタブを開き、作成したソリューションとプロジェクト・ファイルの設定とOptionを設定します。

Option項目はそのままで構いません。
次回起動からは省略出来ます。環境が変わった場合は再設定して下さい。 - Addonタブを開き、必要なアドオンをチェックします。
今回は ofxBox2d と ofxVectorMath を使用するので、下図のようにチェックします。
1つ1つは面倒なので、上段にあるSubTree項目がチェックされているのを確認し、ofxBox2d をチェックした後に example のチェックを外します。
チェックし終えたら念のため、必要ファイルがチェックされているか確認してみて下さい。 - 設定が終わったら Buildボタンを押して構築します。
無事に完了すると成功した旨のメッセージが出て、自動的にLogタブが開きます。
特に理解する必要はありませんが、書き換えに心配な方はProjectタブの「Convert only.」をチェックしてからBuildすればログのみ確認出来ます。 - VC++を起動し、ソリューションを開きます。
もしVC++を起動したままであれば、VC++をアクティブにしたと同時に下図のメッセージが表示されます。
これはソリューションに関わるファイルに対して、外部から変更が加えられた場合に表示されるメッセージなので、そのまま「再読み込み」を実行します。 - 無事にプロジェクトが構築されているか確認します。

確認項目は以下の通りです。
・「openFrameworksLib」プロジェクトが追加されている
・指定したアドオンが追加されている
・「src」フォルダ以下のファイルが追加されている(追加する設定にしていた場合)
・依存関係の順番が合っている - これで一通り準備が整いましたが、ofxBox2dのサンプルはVC++でのエラーを含んでいます。
testApp::setup() 関数内の cos(i) と sin(i) で、int型の i をキャストする必要があります。
それぞれ (float)i でキャストしておきましょう。
VCのコンパイラは頭固いですが、明示的に変換しておく癖を付けておくのは悪くありません。ただ、ちょっとうるさいというか。。。 - コンパイルして実行して下さい。
これにて無事構築完了です。
一度Settingタブを設定してしまえば、次回以降はProjectタブとAddonタブ(Addon Libタブ)が主な設定項目となります。
手動で行うよりは楽になったと思いますし、慣れればかなり早く作業に取り掛かれます。
余談ですが、アドオンを追加する場合、そのアドオンが他のアドオンを利用しているケースがあります。例えば今回の ofxBox2d は ofxVectorMath を利用しています。
これはソースを見ればどれを利用しているのか判断出来ますが、自分の場合は、利用したいアドオンを追加し、コンパイルでエラーが出たらメッセージを元に別のアドオンを追加し直す、という手抜きをしています。悪い例ですが。。。。
と、この様なケースがあるので、無事コンパイルが通るまで oF_Setting は終了させないようにしておけば、追加して再読込の繰り返しをスムーズに行えます。
もちろん、終了させても前回の状態を維持してますので大丈夫です。
以上、Visual C++を対象に書きましたが、前回のようにコンパイラの問題を避けることも含め、こだわりが無ければ公式サイトで紹介されている Code::Blocks を利用してみるのも良いかもしれません。(まだ少ししか触れてませんが、いつか比較など出来ればと思っています)
厳密なエラーチェック等は行っておりませんが、何か不具合等ありましたらコメントよりお知らせ頂ければ幸いです。
| 固定リンク
「プログラミング」カテゴリの記事
- oF - openFrameworks SolutionSetting for VC++(2010.04.11)
- oF - openFrameworks for Windows(2010.03.31)
- Proce55ing - CircleCubes(2010.01.05)



コメント
支援ツール素晴しいですね。
さっそく試させていただきます。
また、遅ればせながら、ようやくoF.jpフォーラム開設しました。
http://openframeworks.jp/forum/
有用な情報あれば、ぜひいろいろ教えてください。
よろしくお願いします!
投稿: 田所 | 2010-04-15 16:02
Forumオープンおめでとうございます!
また、当サイトの紹介をして頂きありがとうございます。
何かありましたら是非Forum活用させて頂きますので、
こちらこそよろしくお願い致します!
投稿: SatE-O(サテヲ) | 2010-04-16 06:18
BETともうします。
こちらの支援ツールを使う場合でも前回の記事の「ofxBox2d」のアドオンの修正等は必要なのでしょうか?
アドオンの修正がどうしてもうまくいかず、こちらで出来れば良いなと思い試したのですが、うまくいかないようです。
よろしくお願い致します。
環境:
WIN VISTA
Microsoft Visual C++ 2008 ExpressEdition
投稿: BET | 2010-04-18 10:37
BETさん、はじめまして!
ofxBox2dのアドオン修正についてですが、createShape()関数内の修正部分、つまりコードに関するものでしょうか?
それともoF_Settingでうまくアドオンが追加できてなかったということでしょうか?
もし、コンパイルでエラーが出ていたとしたら、どのようなメッセージなのか教えて頂けると幸いです。
投稿: SatE-O(サテヲ) | 2010-04-18 13:05
BETです。
さっそく返答いただいていたのに
遅くなり申し訳ありません。
とoF_SettingでのAdon追加が上手くいかなったのですが
何度か試して上手く言った・・・と思います。
と言うのも以下の部分
>cos(i) と sin(i) で、int型の i をキャストする必要があります。それぞれ (float)i でキャストしておきましょう。
この部分が、すいません余りに知識不足で解決出来ていない為か、Bildするとエラーになってしまいます。
その為、上手くいったと言いきれない状態です。
(float)i でキャストとは
cos(i)をcos((float)i)に
sin(i)をsin((float)i)と
すれば良いのでしょうか?
お手数でですがよろしくお願い致します。
投稿: BET | 2010-04-20 00:29
こんばんはBETさん。
>とoF_SettingでのAdon追加が上手くいかなったのですが
もし、これならoF_Settingを見直さなければなりませんが、
いろいろとその状況を教えて頂く必要がありますので、
まずは、キャストについて解決していきましょう。
>(float)i でキャストとは
>cos(i)をcos((float)i)に
>sin(i)をsin((float)i)と
それで大丈夫です。
その修正を行った上で、エラーが出ているということでしょうか?
宜しければ、そのエラーメッセージを全てまるごとコピー&ペーストして頂けますでしょうか?
投稿: SatE-O(サテヲ) | 2010-04-20 02:16
SatE- O(サテヲ)さん
BETです。
お手数をおかけして申し訳ありません。
>cos(i)をcos((float)i)
>sin(i)をsin((float)i)
のように直し、再度デバグしましたがエラーになるようです。
//この部分を修正致しました。
--------------------------------------
// the joints
for(int i=0; i------ ビルド開始: プロジェクト: TestBox2d, 構成: Debug Win32 ------
1>コンパイルしています...
1>ofxBox2d.cpp
1>e:\of_prerelease_v0061\libs\freeimage\include\freeimage.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2057: 定数式が必要です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2133: 'vertexArray' : サイズが不明です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2057: 定数式が必要です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2133: 'pts' : サイズが不明です。
1>main.cpp
1>e:\of_prerelease_v0061\libs\freeimage\include\freeimage.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2057: 定数式が必要です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2133: 'vertexArray' : サイズが不明です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2057: 定数式が必要です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2133: 'pts' : サイズが不明です。
1>testApp.cpp
1>e:\of_prerelease_v0061\libs\freeimage\include\freeimage.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2057: 定数式が必要です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dpolygon.h(139) : error C2133: 'vertexArray' : サイズが不明です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2057: 定数式が必要です。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>e:\of_prerelease_v0061\addons\ofxbox2d\src\ofxbox2dline.h(54) : error C2133: 'pts' : サイズが不明です。
1>コードを生成中...
1>ビルドログは "file://e:\of_preRelease_v0061\apps\Test\TestBox2d\TestBox2d\Debug\BuildLog.htm" に保存されました。
1>TestBox2d - エラー 18、警告 3
========== ビルド: 0 正常終了、1 失敗、1 更新不要、0 スキップ ==========
よろしくお願い致します。
投稿: BET | 2010-04-20 05:34
こんにちはBETさん。
エラーを見ると、今回の修正に対しては無事クリアできているようですが、
前回の記事( http://zampoh.cocolog-nifty.com/blog/2010/03/of---openframew.html )の「Box2dの修正」で説明した箇所への修正が行われていないように思われます。
前回の記事を見ながら、ofxbox2d/src にある ofxbox2dline.h が修正されているかご確認下さい。
それから更にもう1つこちらから訂正事項があります。
前回の「Box2dの修正」では、2箇所の修正が1箇所になったと記述してましたが、実は2箇所のままでした。
ofxbox2d/src の ofxBox2dPolygon.h への修正も必要で、リポジトリをUpdateした時にうまく反映されておらず、
修正したものが正常な状態として残ってました。こちらのミスです、すみません。
この2つ目の修正を前回の記事に訂正事項として追記しましたので、併せて2つのファイルの修正をしてみて下さい。
初心者の方には分かりにくい書き方になってしまいすみません。
ご不明な点があれば、どんなことでも構いませんのでご質問下さい。
投稿: SatE-O(サテヲ) | 2010-04-20 13:07
SatE- O(サテヲ)さん
BETです。
検証していただきありがとうございます。
>「Box2dの修正」で説明した箇所への修正が行われていないように思われます。
こちらが手付かずでした。申し訳ありません。
記事を見てすでに頭が?ですがなんとか挑戦してみます。
また、不明点をコメントさせていただきますので、何卒よろしくお願い致します。
投稿: BET | 2010-04-20 13:21
SatE- O(サテヲ)さん
BETです。
無事実行できました。
なんですが、
少し気なる事が。
実行結果がSatE- O(サテヲ)さんの画面キャプチャーと違い触ると跳ねる物体がひとつだけ表示されました。
cmd画面に
「OF_NOTICE: - Box2D Created-」と表示。
これは良いような気もしますが一応
エラー無いのでこれで良いようにも思いますが気になったのでご報告させていただきました。
投稿: BET | 2010-04-21 00:44
BETさん、まずは成功おめでとうございます。
これで1歩進めましたね、こちらとしても嬉しい限りです。
画面キャプチャと異なるとのことですが、最初はそれで合っています。
何故あのような画面になったのか解説していきますと、
testApp.cpp の testApp::keyPressed()関数をご覧になって下さい。
keyPressed関数は、ユーザーからのキー入力を処理するイベント関数です。
見てみると何となくピンときませんか?
keyPressed関数の引数である key には入力されたキーが入ってきます。
例えばif文で括られた最初の key=='c' というのは、cキーが押された場合の処理ということですね。
コメントを読むと、4ピクセル~20ピクセルのランダムな半径、と書いてあります。
各行の解説は割愛しますが、ofxBox2dCircleのインスタンスを生成しているので、cキーを押すとランダムな大きさで円形オブジェクトを表示する、ということになります。
このような感じでzキー、bキーの処理が続き、sキーがラインの描画、fキーはマウスカーソルの位置に力(force)を与えます。
言葉では分かりにくいでしょうから、実際に各キーを押してみて下さい。c、z、bキーは押しっぱなしでも良いですね。
いろいろやっていると画面キャプチャと似たような状態になってくると思います。
※一応、画面左上にも説明は書いてあります。
あまり表示させすぎると重くなるのでご注意を。
PS
宜しければお名前を「名前」欄に記述して頂けると幸いです。
投稿: SatE-O(サテヲ) | 2010-04-21 01:44
oF_Setting for VC++をお使いの皆様へ。
Version 1.0.3 をリリースしました。
これまでAddonで取得するファイルは *.c *.h の2種類でしたが、*.hpp等があるためユーザー指定としました。
ダウンロードは上記文章中からどうぞ。
投稿: SatE-O(サテヲ) | 2010-06-27 23:29
はじめまして。
ここに書かれている様な手順を踏んでいるのですが、
\projects\of_prerelease_v0061_vs2008_fat\addons\ofxbox2d\src\ofxbox2dutils.h(2) : fatal error C1083: include ファイルを開けません。'ofMain.h': No such file or directory
というエラーが起き、パスが自動で設定されていないようで困ってます。何か助言がありましたらよろしくお願い致します。
投稿: jun | 2010-07-05 20:40
junさん、はじめまして!
最近PCのOS環境を入れ替えていて、ようやく開発環境が整ったところで、これから検証致します。
私的で大変申し訳御座いませんが、もうしばらくお待ち下さいm(_ _)m
-- 追記
調べた結果、仰る通りインクルード先の登録に問題がありました。申し訳御座いません。
取り敢えずv1.0.1でも問題ありませんので、修正までの間、旧版をお使い頂くようお願い致します。
今週中には修正致しますので、しばらくお待ちください。
投稿: SatE-O(サテヲ) | 2010-07-07 05:44
遅くなりましたが、バグを修正したv1.0.3.1をリリースしました。
ご迷惑をお掛けしますが、ご利用の方は新版への差し替え願いますm(_ _)m
また、不具合などありましたらご報告願えれば幸いです。
投稿: SatE-O(サテヲ) | 2010-07-12 06:53
お久しぶりです!以前、他の記事でoFのアドバイスを頂いたchicoと申します。Beyond Interactionを元にBox2dの項までなんとかたどり着くことができました(^-^;addonの追加にはoF_Settingを使用させて頂いております。m(_ _)m
初心者の質問で申し訳ないのですが、お時間のある時にアドバイスを頂けたら幸いです。
※当方vs2010Express、of_preRelease_v0062_vs2010_FATを使用しております。必要環境とは異なるので無謀な質問かと思いますがその点も含めて宜しくお願いします。
1、新規プロジェクトを作成した際、そのファイルの中を見てみるとTestBox2d.opensdf、TestBox2d.sdf、TestBox2d.sln、TestBox2d.suoが作成されており、TestBox2d.vcxproj TestBox2d.vcxproj.filters TestBox2d.vcxproj.userがさらに下のディレクトリに配置されています。これらはemptyExampleと同様に、TestBox2d.slnなどと同じディレクトリに置いたほうがよいのでしょうか?
2、ofxBox2dのサンプルのコピーの場所は手順1に準じてTestBox2d.vcxproj TestBox2d.vcxproj.filtersと同じディレクトリに配置するので宜しいでしょうか?
3、vs2010、of_preRelease_v0062を使用しておりますのでoF_SettingのSrringタブ内の該当する箇所を変更したのですが、Solution Fileが見当たりません。。openFrameworksCompiled\project\vs2010\の順に見ていきますとobjファイル、openframeworksLib.vcxproj、openframeworksLib.vcxproj.filter、openframeworksLib.vcxproj.userしかありません。素人の感ですが、openframeworksLib.sln自体が作成されていないのでは!?と思いました。どの様に対応すればよいのでしょか?(Solution File以外は全て緑色のチェックになっています)
4、手順3と同じくProjectタブのSolution Fileは不明のため空欄です。(Solution Fileは緑色のチェックになっています)
5、Addonのタブ内の作業は操作手順通りにできました。
Include Dirタブ、Lib Dirタブに変更すべき箇所はありますでしょうか?
6、Buildはしておりません。
本当に質問ばかりで申し訳ありません。
説明不足で分かりにくいところが多々あるとは思いますが宜しくお願いしますm(_ _)m
投稿: chico | 2011-02-22 04:39
chicoさん、こんばんは~
忙しくてなかなかお返事出来ずにすみませんm(_ _)m
そしてoF_Settingをご利用頂きありがとうございます^^
まずVS2010をお使いとのことですが、VS2008とはソリューションやプロジェクトの内部仕様が変更されております。
よってoF_SettingはVS2010では使用出来ない状態でして、現在対応を考えております。
1については、Beyond InteractionとデフォルトのVCのプロジェクト作成方法の違いですね。
新規プロジェクトの作成時にディレクトリを作成するかどうかのチェック項目がありますので、それを外しておくとslnファイルはルートに作成されると思います。
途中でファイルの場所を変更するとソリューションやプロジェクトファイルの中身を書き換える必要が出てきますので、一度作成したらそのままで大丈夫でしょう。
2についても同様で、そのままで構いません。
3以降については前述のようにVS2010に対応してないためにお使いになれません。
自分も開発環境を2010にしているのですが、oF(v0062)を使う時はexamplesフォルダのemptyExampleをコピーしたりして凌いでおります。
また、アドオンについては同梱のアドオンを使う場合に限り、addonsExamplesフォルダのallAddonsExampleをコピーして使うか、目的のアドオンのプロジェクトをコピーして下さい。
以下にVS2010&oF0062を使用し、Beyond Interactionの3-4_Aをコンパイルする手順を示します。
・Box2Dの場合、ofxBox2dフォルダをaddonsフォルダ内にコピーし(既にofxBox2dアドオンを持っている前提)、addonsExamplesフォルダにある「vectorMathExample」をコピーします。(例えばapps\user\vectorMathExample)
今回は ofxBox2d と ofxVectorMath の2つを使用するので、ベースとなるソースはvectorMathExampleで良いと思います。
・3-4_Aフォルダにあるsrcフォルダ内の3つのファイル(main.cpp,testApp.copp,testApp.h)を、コピーした vectorMathExample\src に上書きコピーします。
・ソリューションファイルを開いて、ソリューションエクスプローラのvectorMathExampleプロジェクトにあるaddonsに「ofxBox2d」というフィルターを作成します。更にその中に「src」というフィルターを作成します。
・作ったsrcフィルターに、addons\ofxBox2d\srcフォルダをまるごとドラッグ&ドロップします。
・するとsrcフォルダ内のファイル全てがsrcフィルターに登録されます。(階層構造は無視して構いません)
・次にvectorMathExampleプロジェクトを右クリックしてプロパティを開きます。
・構成を「全ての構成」(デバッグ/リリース共通なので)にして、「C/C++」→「全般」を開き「追加のインクルードディレクトリ」の最後に
..\..\..\addons\ofxBox2d\src
..\..\..\addons\ofxBox2d\src\lib
..\..\..\addons\ofxBox2d\src\lib\Box2D
..\..\..\addons\ofxBox2d\src\lib\Box2D\Include
..\..\..\addons\ofxBox2d\src\lib\Box2D\Source
..\..\..\addons\ofxBox2d\src\lib\Box2D\Source\Collision\Shapes
..\..\..\addons\ofxBox2d\src\lib\Box2D\Source\Collision
..\..\..\addons\ofxBox2d\src\lib\Box2D\Source\Common
..\..\..\addons\ofxBox2d\src\lib\Box2D\Source\Dynamics
を追加します。
・最後にビルドして終了です。
だいたいこのような感じでプロジェクトを構築していきますが、アドオンによってはLIB(ライブラリ)が同梱されているものもありますので、その場合はプロジェクトのプロパティにあるリンカーで登録しておきます。(その時がありましたらまたお聞きください)
なかなか対応版を作成出来る状況にないのですが、不明な点があればいつでもお聞きください^^
ご迷惑おかけしますm(_ _)m
投稿: SatE-O(サテヲ) | 2011-03-02 03:10
こんばんわ!SatE-Oさん o(_ _)o
お忙しい中、貴重なアドバイスありがとうございます!
返信が遅れてしまい失礼しました。
ご指摘通りに作業を行い、なんとかプロジェクトの作成とビルドに成功できました。
しかし、実行してみるとSatE-Oさんの画面キャプチャーとは異なり「draw something!」という見慣れない画面が登場してしまいます。testApp.h、testApp.cppもBeyond Interactionに記載されている内容と異なっております。
度重なる素人質問で大変失礼いたしますが、お時間のある時にご指南を頂けたら幸いです。m(_ _)m
投稿: chico | 2011-03-05 04:22
chicoさん、おはようございます!
まずはビルドの成功おめでとうございます^^
「draw something!」が出るということは、コピー元であるvectorMathExampleの実行画面になっていると思いますが、実行する時はどこから実行しているでしょうか?
恐らくビルドしたものと実行したファイルが異なっているためだと思います。
また、今回の実行結果はキャプチャの画像ではなく、Beyond Interactionの3-4_Aと同じ結果となりますので、宜しくご確認下さい^^
投稿: SatE-O(サテヲ) | 2011-03-05 06:07
初めまして。ゆいと申します。
本日、Beyond Interaction を購入してさっそく Visual Studio 2008 を使い openFrameworks を始め、Windowsでの使用が記載していなかったのでこちらのサイトを発見しました。突然ですが、質問してもよろしいですか?
SatE-O様のツールで新規プロジェクトを作成しようとしたのですが、
操作手順1を終え、2に行くときにsrcフォルダは作成されていないのですが、このフォルダはemptyExampleからのをコピーしたのでしょうか?
投稿: ゆい | 2011-03-27 01:15
ゆいさん、はじめまして!
>操作手順1を終え、2に行くときにsrcフォルダは作成されていないのですが、このフォルダはemptyExampleからのをコピーしたのでしょうか?
そうです、emptyExampleのsrcフォルダをそのままフォルダごとコピーしてきて下さい。
良い作品が出来るといいですね^^
投稿: SatE-O(サテヲ) | 2011-03-28 07:14