卜部昌平のあまりreblogしないtumblr RSS

Archive

Jul
19th
Mon
permalink

Ruby + ARToolKit でとりあえず急須が出るまでの詳細

前のアナウンス ではさすがにマッチョ過ぎてみんなついてこれないのではないかという虞というか、死屍累々の予感がしたのでもう少し詳しく解説しておくよ。対象は(一番めどいと思われる)Windowsな。

まず全体方針について確認

ビデオキャプチャの関係で、すべてのコンポーネントをコンパイル済みのものでなんとかするのは難しい。俺がコンパイルしたの配ってもいいんだけどさあ。ライセンスがさあ(下記)。

で、コンパイルするとなると

  • ARToolKitはバイナリ配布のものを使ってRubyは自力でコンパイル
  • ARToolKitは自力でコンパイルしてRubyはバイナリ配布のものを使う

のどっちかです。基本は。理論的には

  • 両方共自力で

ってのもあるかもしらんが、多分コンパイルだけで燃え尽きるよ。やめときな。楽できるところは楽をするのがプログラマです。で、今回は俺がARToolKitよりはRubyのほうが慣れてる(=ちょっと大変でも平気)という理由により

  • Rubyを自力でコンパイル

の戦略で以下解説します。

素材の入手

とりあえずSourceForgeのARToolKitのページにいくとVC++でコンパイルしたバイナリなるものが置いてあるのでありがたく落としてくる。

んで、当然これと混ぜるRubyはVC++でコンパイルしないといけないので、持ってない人はExpress Editionを落としてくる必要があって、MSDN に行くともうVC++2010のサイトになっちゃってるので2008は入手不可に見えるんだけど、ぐぐっとしたの方までスクロールするとひっそりと「過去のバージョン」とかいうリンクがあって

ここからただどって入手できるので、落としてきて入れましょう(2010の対応未確認たぶん動くとは思うが)。…入れた?

次に必要なのがGLUTで、GLUT for Win32というサイトのNov 2001とか書いてあって古すぎて不安になるバイナリがしかし最新なので、これを落としてくる。

とりあえずコンパイル回避できてありもので済ませられるのがここまでな。こっからはソースコードを落としてきてコンパイルする必要があるもの。

まずRubyのソースを落としてきてね。

んで次にRuby/SDLかRuby/OpenGL(か両方)が必要なんだけど、SDLは外部依存がめどくて自力でコンパイルする気になれないし、ruby-openglのgemを入れようと思うとRubyGemsまわりでまたしてもめどくて自力でコンパイルする気になれない。そこでちょっと古いけどyoshi@giganetさんのオリジナルのrbogl 0.32gだと単品で使えるので、落としてくる。

最後にもちろん、ARToolKit Ruby bindingが必要で、

とりあえずこれだけあると最低限のところまでは行ける。

コンパイル

ここから先はおおむね「Visual Studio 2008 コマンドプロンプト」の中で話が進むのでありかを確認しておくように。

さてまずコンパイルすべきなのはRubyなので、Rubyを展開してきたディレクトリに入って、configure.bat→nmakeでコンパイルする。

そのままnmake DESTDIR=C:\ruby installとかするとインストールされるけど、Vistaと7のユーザーはUACに注意! 下手にProgram Filesとかに入れようとするとVirtualStoreの彼方にすっ飛ばされるぞ!

ここではC:\rubyに突っ込んだものとして話をすすめる。一応確認のためにruby -vを起動してみるとよい。正常に終了すればOK。

つぎはどっちでもいいんだけどまあrboglのほうからやるか。rboglをnmakeする前にglutの落としてきたバイナリをちょっと移動して、include/GLとかlibとかのディレクトリに分けるとこの後が楽なので、以下のように適当に移動しておこう。

こうするとextconf.rbに渡す引数がわりと簡単(—with-glut-dir=そこ)になる。

“glut32.lib… yes” を確認してnmakeだ。

次にar4rも基本的には同様の手順だが、こっちはglutの他にARToolKitのディレクトリも教えてあげる必要がある。

どうよ?

起動する

ここまで来たらar4r付属のサンプルのうちtinyが起動できるようになっているはずだ(DLLとかちゃんと配置しとけよ)。起動してみよう。

まず言い忘れてたけどARToolKitには設定ファイルがいくつかあり、それらをコピペして来ないといけない。落としてきたバイナリのbin\Dataというのがそれなので、カレントディレクトリ(下記の例だとar4rのディレクトリ)にコピペしてくる。

でexamples\tiny.rbを起動すると、

この最初に出てくるウインドウはキャプチャの設定。OKすると…

急須ですね分かります。

まとめ

  • ARToolKitのバイナリとRubyのソースコードを自摸る。
  • Rubyと拡張ライブラリをコンパイルする。
  • Happy Hackinig

ここから発展させる場合、とりあえずexamplesを眺めると何ができて何ができないかがおぼろげに分かる感じになっております。というか今のところexamplesでできないものはできない感じ。アイディアの勝負に行くもよし、機能が足りないと思うなら適当にforkしてもらうもよし。

ライセンスに関する注記

  • きをつけろ。ARToolKitはGPLだ。
  • GPLの毒杯をあおる覚悟のないウインプは自宅での使用にとどめておけ。再配布しない限りは使うのは自由だ。
  • 上記の手順に従って導入するとGPL非互換のものは(MSVCRT以外は)導入されないはずだ。が、この環境にさらに自力で拡張ライブラリを入れるときは注意しろ(狭義のRuby’sライセンス適用不可)。
  1. atm09td reblogged this from shyouhei
  2. pipco reblogged this from shyouhei
  3. shyouhei posted this