投稿

4月, 2013の投稿を表示しています

Mac Fanの表紙が動きます(Mac Fan X ARART)

イメージ
Mac Fanの表紙が動きます。
Mac Fan (マックファン) 2013年 06月号の表紙がアマゾンで見れるようになりました。表紙の前田敦子さんの右肩あたりに

表紙が動き出す!!
iPhoneアプリ「Mac Fan X ARART」で表紙を覗いてみよう

という文字が見えます。どういうことでしょうか?

このARARTとは
iPhoneのカメラで取得した映像がディスプレイの中で動き出す
というアート作品です。
例えば、花のつぼみの絵にカメラを向けてディスプレイに映すと、アプリの中でその映像を分析し、つぼみの位置のところを開花する花の動画に変換し表示します。ユーザーには現実の世界(つぼみ)とは違う別の世界(開花の様子)がディスプレイの中に見えます(まあこの拡張世界をどううまく作るかはセンスが必要ですが)。


下のが公式のビデオです。


ARARTチームはいろいろな会社の宣伝活動に技術を提供しているようです(たぶん)。

今回、このARARTがMac Fanの表紙で体験できるようになります。
Mac Fanの表紙用に作ったアプリ「Mac Fan X ARART」をダウンロードして紙面に向けて実行すれば出来ます。

Mac Fanがどのような世界を用意しているかは見てのお楽しみということで、とりあえずこのARARTというのをやってみます。

アプリはこちらで取得出来ます。(Mac Fan + ARARTのアプリとは別)
ARART

やり方は
アプリをダウンロードとインストール絵画が置いてあるサイトを表示アプリを実行です。
詳しく説明していきます。

アプリをダウンロードとインストール
アプリを起動後に追加でインストールするデータがかなりあります。そちらは回線に余裕のある環境でダウンロードしてください。

サイトを表示
パソコンでこちらのサイトを表示します。
http://arart.info/museum/
絵を紙に印刷してもアプリを実行できます。

アプリを実行
アプリを起動するとカメラ機能が有効になり、画面にはカメラに取り込んだ映像が表示されます。
まずは絵画が画面に入るようにして下さい。停止させた状態で少し(1〜2秒)経つと動画が始まります。
無理な体勢で全部の絵画を見ていくと手が疲れるので、楽な姿勢で見れるポイントを初めに決めておくのがお勧めです。
画像認識はかなりよいの精度です。絵の大…

Form Sheetの画面回転処理

あるViewControllerから別のViewControllerをモーダルで呼び出すときにform sheetという表示方法がある。このform sheetというのは画面全体を覆うのではなく"回"のように中央に小さなViewを表示するタイプ。

この呼びだされたもの自体もViewControllerなので、デバイス回転に対するメソッドを持つことが出来るが、form sheetの場合はその回転メソッドは無視して、呼び出し(親)の向きに従うようである。

iOS View Controllerプログラミングガイドにこう書かれています。

画面全体を占めないView Controllerは一般に、向きを考慮しなくても構いません。親View Controllerか ら描画領域を指定されるので、その中に描画すればよいのです。一方、ルートView Controller(ある いは画面全体を表すView Controller)は、デバイスの向きを意識することが多いでしょう。

ということで「親View Controllerか ら描画領域を指定される」に「向き」も含まれていると解釈すれば、親ViewControllerに従うという理解で良さそうです。

ただ、iOS5とiOS6で挙動が若干違うようです。
記述してある対応画面が親コントローラと子コントローラで同じならばいいんですが、問題となるのはiOS5で違う場合の処理です。いろいろやってみたのですが、どうも法則がつかめず。

パターン1 親の対応方向が子の対応方向を含む
わからない
(例)
親コントローラ:全方向
子コントローラ:rightのみ
iOS5 親は回転に反応せず。子はrightのみ。
iOS6 親が全方向に対応し、それに子も従う
(例)
親コントローラ:全方向
子コントローラ:UpSideDownのみ
iOS5 親は回転に反応せず。子はUpSideDownのみ。
iOS6 親が全方向に対応し、それに子も従う
(例)
親コントローラ:全方向
子コントローラ:rightとUpSideDownのみ
iOS5 親も子もrightとUpSideDown。
iOS6 親が全方向に対応し、それに子も従う
(例)
親コントローラ:全方向
子コントローラ:portraitとUpSideDownのみ
iOS5 親も子もportraitとUpSideDown。
iOS6 親が全方…