執筆/雑誌/SD/2009/03
まず、動かすには。 †
- JMFをインストールする
- JMF 2.1.1e Softwareより、入手してください。
- Webカメラを接続する
- JMFに対応しているものである必要がありますが、たいていの場合は、大丈夫です。
- カメラサーバを起動する
- ソースコードのWebcamBroadcasterディレクトリのWebcamBroadcasterを実行します。
- コンパイル済みのバイナリがおいてありますので、下記のように実行できます。
- java WebcamBroadcaster
- 母艦PCのIPを調べる
- Androidエミュレータは、qemu上で動いているため、「localhost」によるアクセスは出来ません。そのため、母艦PCに何かしらのIPアドレスが必要になります。
- プライベートIPでも構いません。
- 調査法は、Windows系であれば「ipconfig」、Mac/Linux系であれば「ifconfig」で調べることが出来ます。
- ソースコード一式をEclipseに読み込む
- 技術評論社さんの特設ページからダウンロードしてください。
- File⇒Import⇒Existing Projects into Workspace を選択してください。
- 「Select root directory」に、解凍先のディレクトリを指定してください。
- 「Projects」欄に「NyARtoolkitAndroid」が表示されますので、選択して 「Finish」を押してください。
- ソースコードのIPアドレスの設定を変更する
- res/values/strings.xml
<string name="server_addr">192.168.86.1</string>
の 部分を上記で調べたものに変更します。
- マーカーを印刷する
- res/raw/marker.jpg
- を、印刷してください。
- 実行する
- Eclipseから、実行してください。エミュレータが起動して、カメラ画像が表示されるはずです。
- 上記で印刷したマーカーを、カメラで写すと、3Dオブジェクト(デフォルトでは、椅子)が表示されます。
表示させる3Dオブジェクトを変更する †
- assetsディレクトリに、読み込ませたい3Dオブジェクトのデータをコピーしてください。
- メタセコイヤ形式ファイルに対応しています。
- Androidの制限により、1MBまでのファイルしか読み出せません。
- ソースコード「NyARToolkitAndroidActivity#onCreate()」
mRenderer = new ModelRenderer(false, getAssets(), "chair01.mqo", 0.04f);
- の行をコピーしたファイル名に変更してください。
- 最後のfloat値は、倍率です。
G1やDev Phone 1で動かす †
- res/values/strings.xml
<string name="camera_name">jp.android_group.artoolkit.hardware.SocketCamera</string>
を、
<string name="camera_name">jp.android_group.artoolkit.hardware.Dev1Camera</string>
に変更する。
訂正 †
RGBの並びについて †
Camera×Callback×Bitmap節にて、RGBの持ち方に関する記述がありますが、
ビットマップとOpenGL/ESとのRGBの持ち方の違い
という方が正しいとの、指摘がありましたので、訂正させていただきます。
Android Tips †