openFrameworksとは
openFrameworksってご存知でしょうか。
自分は「なんか聞いた事があるな〜」とか「なんかかっこいいことが出来るっぽいな〜」
という程度でした。
openFrameworksは、シンプルで先端的なフレームワークによって創作活動を支援するためのオープンソースのC++ツールキットです。ツールキットは、以下のリストあげたよく利用されるライブラリー群をまとめて汎用的な「糊」のような役割を果たすようにデザインされています。
・グラフィクス:OpenGL, GLEW, GLUT, libtess2, cairo
・オーディオの入出力と分析:rtAudio, PortAudio or FMOD, Kiss FFT
・フォント:FreeType
・イメージの読込と保存:FreeImage
・動画の再生と取込:Quicktime, videoInput
・様々なユーティリティー:Poco
コードは様々なプラットフォームで動作するように書かれています。現在は、5つのOS(Windows, OSX, Linux, iOS, Android)と、4つの開発環境(XCode, Code::Blocks, and Visual Studio, Eclipse)をサポートしています。APIは最小限で把握し易いようデザインされています。
簡単に言うと、openFrameworksはコードにまつわる様々な事柄をずっと容易にしてくれるツールなのです。わたしたちはこのツールをとても便利と感じています、きっとあなたもそうなるでしょう。
(openFrameworks公式サイトより抜粋)
いろいろな高性能なライブラリが整理されたかたちで、初心者にもわかりやすく利用できるように提供されているらしいです。
そんなだったら自分も使いこなせるようになりたい!と思いまして、これからコツコツ勉強していこうと思う次第です。
というわけで、まずは環境構築です。
自分はMacなので、MacとあとついでにiOS、Androidの3つの環境を整えたいと思います。
先に言ってしまうと、Androidがとても辛かったです。
エラー文言を見るのが嫌になったので1回諦めたのですが、悔しいから後日またトライしてなんとか出来ました。
環境
Mac mini
OS X 10.9.5
Xcode 6.1.1
Eclipse 23.0.2
ADT 23.0.4
NDK r9b
openFrameworks 0.8.4
Macの環境を作る
3つの中で1番簡単でした。
Xcodeが入っていれば、後はただoFをダウンロードして解凍するだけです。
公式サイトではXcodeのインストールから詳しく、しかも日本語で書かれています。
Xcodeセットアップガイド
iOSの環境を作る
これもXcodeが入っていれば、後はただoFをダウンロードして解凍するだけです。
と思いきや、用意されているサンプルのプロジェクトがビルドが通りません。
公式サイトでは実機にインストールするとこから詳しく、しかも日本語で書かれています。
というか、それしか書かれていません(笑)
iOSセットアップ
ググってみるとどうやらXcode6だと発生するみたいです。
解決方法は簡単でした。
Deployment Targetを7とか8とか任意のバージョンに設定して、
ソースコードのmain.mmに下記を追記。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
extern "C"{ size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d ) { return fwrite(a, b, c, d); } char* strerror$UNIX2003( int errnum ) { return strerror(errnum); } time_t mktime$UNIX2003(struct tm * a) { return mktime(a); } double strtod$UNIX2003(const char * a, char ** b) { return strtod(a, b); } } |
Androidの環境を作る
まずは公式を確認します。
android eclipse(japanese)
MacとiOSは日本語訳があったのにAndroidは何故か英語。。。
しかもenglishとjapaneseで内容が違います。(japaneseが古い)
android ADT(english)
仕方ないので頑張って読み解いていきました。
手順は大きく5つです。
- ADT、NDK、oFをダウンロードする
- eclipseにNDKプラグインを入れる
- paths.makeを作る
- eclipseの環境設定をいじる
- ofAndroidLibをインポートする
- サンプルをインポートして実行する
各手順で「おや?」って思ったところや、ハマって辛かったところを書き残しておきます。
①ADTとNDKをダウンロードする
いつのまにかAndroidStudioになってました。
最近Androidから遠のいていたので、ふと気になって見てみたら変わってました。
これはこれで今度しっかり使ってみたいです。
(今回、AndroidStudioは使いません。)
NDKのバージョンについてですが、公式ではr8dをおすすめしてて、r9bならちょっと修正を加えると書いてあります。
しかし実際はr9bで、しかも何も修正を加える必要はありませんでした。(自分の環境では)
バージョンで動く動かないがあるみたいなので、r8b、r8d、r9bの3つを試してたのですが、r9bでしか動きませんでした。
r8b、r8dだと以下のようなエラーで実機にインストールできません。
②eclipseにNDKプラグインを入れる
URL間違るっていうワナに嵌りました。
プルダウンで出てくる
というやつでインストールしようとしたら
An error occurred while collecting items to be installed
と言われて失敗します。
ググったらすぐでした。というか公式の日本語の方の手順にも書いてありました。(なぜか新しい英語の方では書いてない・・)
正解のURLはこちら。
③paths.makeを作る
下記の場所にあるpaths.default.makeを同じ場所にコピペします。
ファイル名をpaths.makeにして中身を修正します。
of_v0.8.4_android_release/libs/openFrameworksCompiled/project/android/paths.default.make
Antのパスは記載しなくてよくなった的なことが公式に書かれています。
AndroidのSDKとNDKのパスを書きましょう。
④eclipseの環境設定をいじる
ここでもNDKのパスを設定します。
2カ所あります。
あとSyntax and Semantic Errorsのチェックを外して構文エラーを出なくするようにします。
⑤ofAndroidLibをインポートする
サンプルプロジェクトたちをインポートするとofxAndroidが参照できないとエラー吐いてくるので、
下記にあるofAndroidLibをインポートします。
of_v0.8.4_android_release/addons/ofxAndroid/ofAndroidLib
これでようやく準備が整いました。(たぶん)
サンプルのandroidOpenCVExampleを実機にいれてみます。
小さっ!
Androidのせいでやたら長くなってしまいましたが、
以上でMac、iOS、AndroidのopenFrameworksの環境構築は終了です。
Androidは動くまでの道のりが本当に長かった・・・
これでようやくコーディングに集中できます。
とりあえずいろいろサンプル動かして遊んでみたいと思います。