こんにちは、ギャップラー小林です。今回は iOS アプリ・ファミキャプを開発した、なぐなび氏による制作秘話をお伝えします!
「画像認識ライブラリのサンプルアプリを作ってよ。」
そう言われたのがいつでしたか、プロジェクトの更新履歴を追うと8月頭ぐらいみたいですね。
8月からリリースまでの約3ヶ月半、通常業務の合間を見つけてはコツコツと作り上げてきたのですが、実は最初はファミキャプとは全く中身が異なるアプリでした。
「画像認識ライブラリ」の凄さを体験できるアプリとは何か?すんなりアイディアが出ると思いきや、これがなかなか難しい。
画像認識する対象は、
- 複雑な絵柄であること ラボのページにも書かれてますね
- なるべく沢山の絵柄のある、なんらかのシリーズであること 一度にたくさんの画像を認識し分けられる事を発揮させるため
- ある程度容易にその絵柄を目撃できること 多くの方にこのライブラリの性能を体験してもらうため
最初に出たアイディアは交通標識アプリでした。
道端の交通標識にカメラを傾けると、その意味をアプリ上に表示するといった内容です。
最初は「おお!これは今までにないアプリを作れそうだ!」と思ったのですが、実は問題がありました。
交通標識は似た絵柄が多いんでよね。
例えば、下の2つは今のライブラリでは認識させる事が難しいんです。
(※パラメータのチューニング次第では実現させる事が出来ますが、今回は通常の使用方法での作例を目指していました。)
というのは、絵柄がシンプルで、相互の特徴点の組み合わせに類似が多過ぎて、右の絵柄は左の絵柄も満たしてしまう状態になります。良いアイディアだったんですけどね! いつかサンプルアプリとは別に、ライブラリの機能をフルに用いていつか作ろうと思います!
このほか、色々とアイディアが出たのですが交通標識と似た理由で却下、そんな中に出た「これはいけるかも!」と思ったアイディアが棒倒しゲームでした。
「画像認識ライブラリ」が画像を認識するカラクリは、こちらからダウンロードできる「特徴点データ生成ツール」を用いて特徴点データを予め登録しておき、これとカメラで撮影した画像から抽出した特徴点データの類似率で「似ているか?」を判定しています。
これを逆手に取って考えたのが「対戦アプリで、お題の画像を交互に塗りつぶして先にライブラリが画像認識できなくなったほうが負け!」
というような砂の替わりに画像を用いた棒倒しゲームでした!
そのゲームの画面がこちら。作り始めたばかりの頃のものだから見られると恥ずかしいですね。
- 左の画面
黄色と茶色がプレイヤーごとに塗りつぶした跡です。 これを繰り返していつかエッフェル塔を「アプリの中の人(=ライブラリ)」が認識できなくなったらそのターンのプレイヤーが負け! なゲームです。
- 右の画面
「アプリの中の人」の類似率を調整する画面。ハミング距離設定が2つある?なんでだ?
見た目もゲーム性もまだまだ荒削りだけど、煮詰めて行けば面白いアプリが出来そうだ!
と思っていたのですがある人に言われてしまいました。
「内容がマニアックで開発者より過ぎる。勝敗の仕組みがユーザに伝わり辛い」
…確かに。 開発者向けのサンプルアプリだけど、 ストアで配布するものだから最低限、開発者以外の方にも楽しんでもらえるアプリでなければならない! 残念ですがこれも却下せざるをえませんでした。
そして、やっとたどり着いたアイディアが「ファミキャプ」です。 最初の認識対象の条件に立ち戻り、
- ある程度容易に、その絵柄を目撃できて
- 沢山あるなんらかのシリーズで
- 適度に複雑な画像素材
が本当にないかを試行錯誤。 それで閃いたのがファミコンカセットのラベルでした。
これなら1枚ごとに異なる複雑な画像が沢山あります。
だけどある程度容易に目撃…とは言えないのでは?と思ったのですが、「レトロゲーの人気は未だ健在!誰でも簡単にカセットを手に出来ますよ!」というアイディア発案者の熱意あるゴリ押しにより採用されました。
その後は、1000本以上のファミコンカセットの各種データを整理するのに苦労しつつも、なんとか予定通りに弊社の画像認識ライブラリのサンプルアプリとして「ファミキャプ」を公開することができました。
公開後、ギズモード・ジャパンにも紹介されました。当初の目的と異なりましたが、開発者ではない多くのユーザにも楽しんでもらえたのは嬉しい誤算でした!
ということで、ファミキャプの誕生に至るまでにはたくさんの試行錯誤があったんですね。 ファミキャプ自身もチューニングに相当な時間を費やしており、制作にかなり苦労している様子も度々見かけていたのですが、それでも作っている間の彼は本当に楽しそうでした!
ファミキャプは今後も何か動きがあるようなので、新たな展開にご期待ください!