引き続き、RjDj Sprint Tokyoの際に得たノウハウの備忘録を。そういえば、先日RjDjがアップデートされていたな。
今回は、シーンをiPhoneに転送する際のもう一つの方法を。RjDj Composers Packに付属するrjzserverを使って実機に転送してみる。RjDj Sprint Tokyoの際には一人でこの方法を使って実機転送しまくっていた。というのも、いちいち rjdj.me のWEBサービスにアップする作業が手順が多くてちょっと面倒だったのと、他人のディスクスペースを公開しないjunkなシーンで埋めることに少々抵抗があったから。おそらく、自分のWAVファイルとかをシーンに組み込んだりしてサイズが大きくなったものは、rjdj.me にアップするよりもrjzserverを使ってローカルで転送した方がアップロード、ダウンロードの時間も節約できるだろう。
今回もMac OS Xをベースに進めていくが、基本的には同じことをwindowsでも実現できるはず。ホスト側のMacと実機のiPhone/iPod touchは同じLANに接続されている方が望ましい。これは、rjzserverはiPhone/iPod touchからみた場合WEBのproxyサーバーとして機能するため。
ちなみに、先日多摩美でレクチャーをしていただいた際にFrank氏本人から聞いた話によると、次期RjDjではファイル転送のための機能を内蔵するため、rjzserverは必要なくなるだろう、とのこと。なので、この手順はいずれ不要になるはず。
1. 実機に転送するシーンを用意する
how2RjDj 1(http://blog.yasaka.com/archives/2009/09/how2rjdj-1.html)の「5. image.jpgとinfo.plist」までで行ったことと同じ。実は、rjzserverを使う場合は .rjz 形式にしなくても rjzserver 側ですべて圧縮、拡張子の変更といった処理を自動的にしてくれる。なので、シーンを作ったら、すぐに rjzserver にアクセスすればiPhone/iPod touchに転送して動作確認できる。これはシーン制作の際には非常に便利。
2. Mac側とiPhone/iPod touchのネットワークを確認
Mac本体とiPhone/iPod touchが同じネットワークに接続されていることを確認する。Mac側であれば、システム環境設定の中のネットワークという項目の中にある「状況」というところにIPアドレスが表示されている。
iPhone/iPod touch側は、「設定」の中の「Wi-Fi」の中の接続されている無線LANアクセスポイントの名称の矢印をtapするとIPアドレスなどが表示される。
両方とも無線LANで接続されているのであれば、同じアクセスポイントに接続されていることが確認できればOK。そうでない場合は、同じサブネット内にいることが確認できればOK。
3. rjzserverを起動
続いて、Mac側で rjzserver を起動する。Macの場合、RjDj Composer Packのフォルダ内にアプリケーション形式で用意されている。WindowsやLinuxでは、rjzserverというフォルダの中にある rjzserver.py というファイルを python で実行することで起動される。
※ここで注意。2009/09/17現在、RjDjComposerPack_mac.zipに含まれているrjzserverのアプリは10.6、つまりSnow Leopardでは動作しない。どうも、使用しているライブラリの依存関係が崩れてしまっているようだ。10.5(Leopard)では問題なく動作している。Snow Leopardでは rjzserver をアプリケーション形式にビルドし直す必要がある。この手順は最後に示す。
rjzserverを起動すると以下のようなウィンドウが表示される。
続いて、「File」メニューから「Set scene directory」を選び、rjzファイルが置いてあるフォルダを指定する。
今回の場合は、「RjDjComposerPack_mac」直下に置いてあるので、このフォルダを指定する。
すると、ウィンドウに「Set .rj scenes directory to /Users/yasaka/Desktop/RjDjComposerPack_mac」と表示され、設定ができたことが確認できる。
確認ができたら、rjzserverのウィンドウ内に表示されていた「Listening on」のところに表示されているURLをコピーし、Mac側のWEBブラウザにペースとして表示できるか確認する。僕の手元では、「http://192.168.0.104:8314/」となっていた。
このURLにブラウザでアクセスし、以下のような画面が表示されればrjzserver側の準備は完了。
4. iPhone/iPod touch側のネットワークの設定
iPhone/iPod touch側に rjzserver をプロキシサーバーとしてアクセスするよう設定する。先ほどとiPhone/iPod touchのIPアドレスを確認したときと同様、「設定」の中の「Wi-Fi」の中の接続されている無線LANアクセスポイントの名称の矢印をtapする。IPアドレスなどが表示されるが、画面を下にスクロールしていくとHTTPプロキシという項目がある。
初期状態では「オフ」になっていると思うので、まずは「手動」を選択する。すると、「サーバ」、「ポート」、「認証」といった項目が表示される。
ここに、rjzserver の動いているMacのIPアドレス、そしてrjzserverが利用しているポート番号を入力する。先ほどrjzserverを起動した際に表示されていた「Listening on」のあとに表示されていたURL部分からIPアドレスとポート番号を取り出す。手元では、「http://192.168.0.104:8314/」となっているが、このうち「192.168.0.104」の部分がIPアドレスで、「:」のあとに続く「8314」という部分がポート番号を表している。
情報が用意できたら、HTTPプロキシとして設定する。「サーバ」の項目にIPアドレスを、そして「ポート」の項目にはポート番号を入力する。
入力ができたらホームボタンでSpringBoardに戻る。
HTTPプロキシの設定がうまくいっているか確認するためにSafariを起動する。起動したら、URLの部分に「http://rjdj.me/」と入力する。
入力ができたら、「Go」ボタンをtapする。以下のような画面が表示されれば、rjzserver との接続設定は完了。
5. iPhone/iPod touchから rjzserver にアクセス
rjzserverで指定したディレクトリにシーンのフォルダが配置されていることを確認したあとに、先ほどiPhone/iPod touchのSafariで開いたURLを再度開く。接続できるとこのような画面が表示される。
フォルダのまま、つまり、「test1.rj」として置いてあるはずのシーンが、Safari内では「Install test1.rjz」と、 .rjz 形式で表示されていることがわかる。このリンクをtapすると、RjDjが起動し、シーンファイルがインストールされる。
このように、毎回修正するたびに .rjz 形式のファイルを作成する必要がなく、また rjdj.me のWEBサービスにアップする手続きも不要であるため、頻繁に修正、インストールを繰り返す際には非常に便利。
ちなみに、作業が終わったあと、iPhone/iPod touchのネットワーク設定に再度アクセスし、HTTPプロキシを「オフ」にすることをお忘れなく。HTTPプロキシを有効のままだと他の作業ができないので注意していただきたい。
お試しあれ。
おまけ. Snow Leopardで rjzserver をビルドする
冒頭にも説明したように、RjDj Composers Packに含まれているrjzserver.appはLeopard用にビルドされたもので、Snow Leopardでは動作しない。動かそうとすると、こんな画面が表示される。
エラーを見る限りでは、ライブラリ周りの整合性の問題のように見えたので、rjzserver をリビルドする。
1. build-mac.sh を修正
RjDj Composers Pack内の rjzserver というフォルダの中に「build-mac.sh」というシェルスクリプトがある。これをそのまま実行しようとすると最後の方に rjdj.me へ出来上がったアプリをアップロードする部分まで含まれているので、その部分を削る。
まず、テキストエディタで「build-mac.sh」を開く。くれぐれも、「build-mac.sh」をダブルクリックしないように。Mac OS Xに標準のテキストエディットでも開けるはず。以下のようなウィンドウが開く。
この内容を、以下のように修正する。
つまり、最終的には
#!/bin/sh
svn -r447 co http://svn.makotemplates.org/mako/trunk/lib/mako
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/bin/py2applet -i mako.cache rjzserver.py media/
の3行以外は削除することになる。削除できたら保存する。
2. build-mac.shをターミナルから実行
続いて、「アプリケーション」内の「ユーティリティ」フォルダ内にある「ターミナル」というアプリケーションを起動する。
ウィンドウが開いたら、「cd」コマンドで、RjDj Composers Pack内の rjzserver フォルダへ移動する。手元の場合はデスクトップ上にRjDj Composers Packを置いてあるので、
cd ~/Desktop/RjDjComposerPack_mac/rjzserver
という記述になる。ちなみに、この時点で「cd コマンドってなに?」という方は、これ以降続けない方がいいかも...。
移動したら、「ls」コマンドで先ほど修正した「build-mac.sh」ファイルがあるのを確認する。
確認できたら、
sh ./build-mac.sh
と実行する。すると、以下のようにいろんなメッセージが表示される。
色々と表示されたあとに、最後にこんな感じで再びプロンプトが表示される。
Finderでrjzserverフォルダの中を確認し、rjzserverアプリが存在していればビルドは完了。
あとは、上記のように起動して設定すれば同じように利用できるはず。ちなみに、ビルドは32bitモードでしか確認していないので、64bitモードでどのようになるかは確認できていないのでご注意を。