社員奮闘記

「GR Remote開発ストーリー」のご紹介

2015-07-28

こんにちは。ふーです。
新製品「GR II」の目玉であるWi-Fi対応をさらに活用していただくべく、「GR Remote」というWebアプリが発表されました。「電源ON、フラッシュポップアップ以外のGR IIのすべての操作」がスマートフォンやタブレット側で行なえるという、なかなかに気合の入ったアプリになっています。

開発を担当したエンジニアみずからの言葉で、開発の背景や経緯、開発者の想いなどを語ってもらいましたのでご紹介します。ちょっと長めですが、ぜひ最後までお付き合いください。
ではどうぞ!

-----------------------------------------------
みなさんはじめまして。
GRのファームウェア開発チームでアーキテクチャ設計を担当しています細野と申します。

アーキテクチャ設計という言葉になじみがない方も多いかもしれません。一言で説明するのであれば、カメラ内部の「まちづくり」といったところでしょうか。カメラ内部は、レンズ制御、オートフォーカス、撮像センサー制御、画像処理などたくさんの「施設」が連携して「まち」を形成していますが、そこで生活している人々が生き生きと活躍できるよう(=最高のカメラのパフォーマンスを引き出せるように)、区画整備をしたり、道路をつくったり、基本的なルールをつくったりする仕事です。

GR2013年モデル(以後GR2013)では、GRシリーズのデジタルカメラが誕生して以来初となる、ゼロからのアーキテクチャ再構築(=まちの再整備)を実施しました。難易度が極めて高い大規模なシステム開発でしたが、ファームウェア開発チーム全員でやりきりました。GR2013をお使いのGRファンの皆様も、GRD4までとカメラの操作感が全く異なっていることを感じている方も多いかと思います。その特長としてレンズの描写や画質が強調されるGRですが、特にGR2013以降、操作レスポンスの良さも評価されることが多くなりました。それはまぎれもなく「新しいまち」の成果です。

150728-01.jpg
[GRの起動シーケンス(イメージ図)]
GR IIではWi-Fiや新規エフェクト搭載でシステム規模が大幅に拡大したが、GR2013と同じ起動時間1.0秒を達成した。電源ON~LCD点灯~AF開始~レリーズ~電源OFFのシーケンスがトータルでスムーズに流れるよう、官能面にも配慮して設計されている。ちなみにWi-Fi(アクセスポイント)起動も約1秒。

アーキテクチャの再構築は、投資も大きくかつ失敗の確率も高いため、頻繁に実施できることではありません。そのため、少し未来に必要になるであろう仕組みがあらかじめシステムに組み込まれます。GRの情報伝達機構はその代表例です。GR2013の時点で既に、カメラ内部の情報伝達機構(=道路)はカメラの外部(のまち)と繋がることを想定して設計されていました。

150728-02.jpg
[GRの情報伝達機構概念図]
カメラ内部から発信された指示と、スマホから発信された指示の、両方が同じ形式でカメラ内を流れる。「スマホ連携」というよりは「スマホはGRシステムの一部」。GR IIでは、ついにGRのシステムがカメラの外の世界に飛び出すことになった。

上の図を見てください。カメラの中では様々な機能同士が情報伝達して、カメラ全体としての機能を実現しています。緑色の車がこのカメラ内部の情報伝達にあたります。GR2013では緑色の車だけが走っている状態でした。
GR IIでは、カメラの外にあるスマホという「まち」と繋がりました。そして、スマホからもカメラ内部に向けて情報を発信することができるようになりました。赤色の車がこれにあたります。

GRのカメラシステムの特長は、内部から発信された指示と、外部から発信された指示を区別せず、同じように処理されるように設計されていることです。スマホから「モードダイヤルを回したよ」という情報を送信すれば、それはカメラのモードダイヤルを回したときと全く同じ動作をカメラが実行するということです。これが遠隔操作による「フルコントロール」実現のひみつです。

カメラ内の道路は、カメラ内部の隅々まで、ほんとうに奥深くまで続いています。これは、スマホからカメラの奥深くまで情報を届けることができるということを意味します。カメラ操作は言うに及ばず、カメラ操作では提供されていない機能(例えばレンズの繰り出し・収納)まで遠隔操作できるということです。これはもう「フルコントロール」を超えていますね。

カメラからは「Avモードにダイヤルを回したよ」、スマホからは「Tvモードにダイヤルを回したよ」と、同時に送信したらどうなると思いますか? GRのシステムにとっては、道路にそれぞれの車が走ってきているだけですので、それらが処理先に到着した順番で確実に処理されていきます。これは、スマホからの遠隔操作とカメラの操作は併用可能ということを意味します。遠隔操作中もカメラ操作に制約が出ることは一切ありません。

「カメラ操作とスマホ操作が併用できるとなんかいいことあるの?」と思われる方もいらっしゃるかもしれません。「遠隔操作中であっても、とっさのシャッターチャンスを逃さない」とか「カメラ側で撮影条件を設定して三脚に固定した後、構図を維持したままスマホ側で微調整」とか「スマホ側をワイヤレスディスプレイとして使い、カメラ側で操作して撮影」とか具体例を挙げることも可能なのですが、それらは一側面にすぎません。
「自由度の高さ」こそがGR IIのリモートコントロールシステムの本質的なアドバンテージだと考えています。ユーザのアイデアと工夫次第で、100人100様の使い方ができるということです。

150728-03L.jpg 150728-03R.jpg
[GR Remoteからのリモートコントロール]
タッチAFはあたりまえ。モードダイヤルやAFレバーまで遠隔操作可能。カメラが地面に密着していて操作できなくても、LCDが見えなくても、スマホからGRをコントロールすれば大丈夫。

150728-04.jpg
[GR Remoteでワイヤレスディスプレイ]
スマホをGRのワイヤレスディスプレイとして使用することもできる。右手にGR、左手のスマホで構図確認。レリーズは左手でも右手でも可能。

ところで、カメラの中に赤い車が走るようになったら、道が混雑する(=カメラの性能やレスポンスが低下する)ような気がしませんか?まさにその通りで、スマホからの遠隔操作中にカメラの性能が低下する問題が発生していました。プロジェクトマネージャからは「現状のままでもいいよ」と言われていたのですが、GR II量産開始の2週間前、本当にギリギリのタイミングでしたが「4車線化工事」が完了しました。その結果、遠隔操作中もカメラのパフォーマンスは一切低下しなくなりました。

この4車線化工事にこだわったのにはもうひとつの理由があります。カメラ内の情報伝達効率が大幅に改善されるので、Wi-Fiを使用していないときにも消費電力の削減につながるのです。GR IIの撮影可能枚数が290枚から320枚にアップしたのにはこういった背景があります。

GR2013では表舞台に出ることのなかったGRのリモートコントロールシステム。GR IIでWi-Fiを搭載したことで、持てるポテンシャルの全てを引き出すことが可能になりました。

~~~

このように、カメラ側のリモートコントロールの仕組み自体は2013年の時点で既に準備できていたので、GR2013の開発がひと段落した後、当時PENTAX製品で採用され始めたWi-Fi SDカードを利用してスマホ側のアプリを試作してみました。試作第一版は2013年末に完成しました。アプリ名はこのとき既に"GR Remote"。もちろんGRをフルコントロール可能です。

150728-05.jpg
[試作版GR Remoteのプレゼン資料]
2013年末に試作版が完成。キャッチフレーズは"GR2013 Optimized Remote Control System"。このフレーズは「汎用性を重視するよりもその機種の個性を活かした方が楽しいモノができるはず」という私の主張でもある。

早速、GR2013と試作版GR Remoteを一緒に持ち歩き始めました。想像していた通り、撮った写真をシェアするのって楽しい...。特にGRでの撮影は、見せたくなる・伝えたくなる写真が量産されるので、どんどんシェアしたくなります。
そして新たな発見もありました。それは、写真を見たりダウンロードしたりするだけのときでも、リモートコントロールが役に立つということ。ポケットにしまう前にレンズを収納したり、バッグに入れたカメラの画像をブラウジングした後、そのままスマホから電源OFFしたり、スマホで操作しているときは消費電力を抑えるためにLCDを消灯したり。市販のWi-Fi SDカードではこうはいきません。

150728-06L.jpg 150728-06R.jpg
[カメラシステムとスマホの連携動作]
撮った写真を即ダウンロードするQuickview機能。カメラ内の画像管理データベースと連携しており一瞬で画像が表示される。ダウンロードもVGAサイズなら最速で1秒以下。誤操作でバッグの中でレンズが繰り出さないよう、ロックすることもできる。レンズロック中は再生モード専用のカメラ動作となる。このような気の利く動作はWi-Fi内蔵型ならでは。

150728-07.jpg
[GR IIのWi-Fi ON中のカメラ動作]
試作版GR Remoteでリモートコントロールしていた機能の一部は、GR IIではカメラ側に内蔵させた。Wi-Fi ON中は、カメラ収納しやすさ重視かつ省電力優先の動作に自動的に切り替わる。Wi-Fi ONはWi-Fiボタンの他に、電源OFFから再生ボタンを押し続けることでも可能。カメラWi-Fi ON~ポケット収納~スマホ操作開始の流れがとてもスムーズ。

GR Remoteは、このとき既にWebアプリ形式(ブラウザアプリ形式)でした。
通常のアプリ形式とWebアプリ形式には、それぞれメリット/デメリットがあると思いますが、私は、特にWebアプリ形式の「即時性」に可能性を感じています。ユーザから要望をいただいてから、アプリに機能を追加したり(そして時には不具合を修正したり...)といったことがほとんどリアルタイムにこなせます。開発作業はファームウェアエンジニアとしては経験したことがないほどスピーディーですし、ユーザに配信するのもサーバにアップロードするだけで完了です。GR BLOGと同じように、作り手と使い手の距離を縮めるツールになり得るのではないか...。

150728-072-L.png 150728-072-R.png
[Webアプリ形式]
エンジニアとしての私もカメラの外の世界に飛び出すことになった。外の世界がここまで進んでいたとは正直驚いた。回線にもよるがアプリ起動は極めて高速。GR Remoteは全画面形式にも対応しており、スマホのホーム画面に登録しておけば通常のアプリとほとんど区別がつかない。キャッシュ版なら初回ダウンロード後はオフライン動作が可能なので、電波状況が悪い場合に備えてブックマークしておくと便利。ブックマークするページによってアプリ起動後最初に表示するページを切り替えることもできる。

150728-08L.jpg 150728-08R.jpg
[レスポンシブWebデザイン]
画面サイズやプラットフォームによらず動作するのもWebアプリ形式のメリットのひとつ。動作保証対象外ではあるものの、PCや古いスマホでも動作する可能性がある。

~~~

ところで、先日6/22の任三郎さんのエントリで、
----
企画会議の場で半分冗談で「こんなのつくってみました」と紹介したところ、場にいた人たちが「これイイネ!」というノリになって搭載が決定した
----
とあって、いかにも簡単に搭載が決定したかのようですが、実際には、そこに至るまでに相当な紆余曲折がありました。

エンジニアですから、やっぱり作ったものは世に出したいものです。

実はGR IIのプロジェクトが本格化する前に、GR2013とGR Remoteに対応したWi-Fi SDカードをセットで商品化しないかとか、GR Remoteの一部の機能をGR以外のカメラに載せないかといった提案を何回か企画部に打診したのですが、よい返事はもらえませんでした。企画部に限らず社内的に、Webアプリ形式のデメリット(通常のアプリ形式と比較して動作速度が遅い、アプリを起動するのにWebサイトにアクセスするのが直感的でないなど)が強調されることが多く、GR Remoteの商品化は諦めざるを得ない状況でした。

あるとき、転機となるブレイクスルーがありました。
当時のGR Remoteは、スマホ側に表示されるライブビューはカメラのモニタリング画像(いわゆるスルー画)だったのですが、同僚のエンジニアと「ここにカメラのメニューとか出たら面白いね」などと冗談半分に話していました(一般的なデジタルカメラのLSIは、ハードウェアでLCD表示するため、LCDに表示されるデータをソフトでアクセスしてスマホに送ることは不可能/GR ENGINE Vも例外ではない)。その3日後くらいだったでしょうか、「こんなのできたけど」と。ブラウザで表示したライブビューに、カメラのメニューがそのまま表示されていました。

150728-09L.jpg 150728-09R.jpg
[GRのLCDがそのままスマホに表示]
GR Remoteの大きな特長のひとつ、カメラのLCD表示内容がそのままスマホに表示される。自分の手元でGRの全てがコントロール可能に。

これ、すごくないか...。最高に楽しいな...。なんでも手元でできるな...。なんかGRっぽいな...。

そこからは、これは世に出さないといけないという使命感にかられました。

GR II開発も既に終盤に差し掛かっていました。これが本当のラストチャンスでしょう。綿密に準備しました。
企画部を説得するためには、はっきりいって第一印象が重要(エンジニアとしては悲しいけどこれが現実)。やれることは全てやりました。アプリはモダンなフラットデザインに作り直し、最近のWebサイトで流行のパネルのスライドイン、配色テーマはGRっぽいダーク基調に急遽変更、見栄えのするサンプル画像をGR STORYのサイトから拝借、さらにアプリが自動で動作するデモモードも用意しました。

頃合いを見計らって「こんなのつくってみました。どうです?GR IIに載せませんか?」と。

150728-10L.jpg 150728-10R.jpg
[GR Remoteデモモード]
社内プレゼン用に用意したデモモード。アプリが自動で動作してGRをコントロールする。プレゼンのとき、誰かが「未来を見ているよう」と言ってくれたが、実はJavaScriptで簡単に実現できる。現在、GR Remote配信サイトの自動デモに流用されている。

GR IIへの搭載が決定してからも一切妥協しませんでした。といいますか「全てのアイデアを試そう」と周りの人が協力してくれました。一番嬉しかったのが、「GR II発売の前日までアプリの機能を絶えず進化させたい」という無理な要求を会社が受け入れてくれたこと。残された時間は僅かでしたが、これまで検討してきた新たな試み――アプリWeb配信、オープンソースソフトウェア活用、GRだけに特化した最適化など――の大部分を実現することができました。まさかGR IIでここまで到達できるとは思ってもみませんでした。GR Remoteを世に出すために協力してくださった皆様のお陰です。本当に感謝しています。

~~~

7月14日、GR Remoteバージョン1.0.0を配信サイトにアップロードしました。
気がつけば、アーキテクチャの構想から4年以上、GR Remoteの試作開始から2年もの月日が流れています。

4年間いろいろなことがありました。楽しいときより苦しいときの方が多かった...。

時々、GR2013のときのアーキテクチャ再構築を思い起こして、何が成功の要因だったのか考えることがあります。エンジニアリングやマネジメントの様々な工夫や努力が成否を分けた面もありますが、最終的には、より高いレベルのカメラを目指したいという開発者ひとりひとりの気持ちがシステム開発の難易度を上回ったのだと思っています。

GR2013は、GRファンにも開発者にも愛される幸せなカメラとなりました。

GR IIはどうでしょうか。理想のカメラに近づくことができたでしょうか...。

私は常にGRを持ち歩いていますが(GR開発者ではありますが、私もGRファンのひとりです)、GR IIと過すようになったこの数ヶ月感じること、それは一緒にいて本当に楽しいカメラだということです。
再設計されたオートホワイトバランスから生み出される画像、かつてないアングルからの撮影、そしてそれをいつでもシェアできる...。GRのコンセプトとしてこれまでは謳われてこなかった(しかし潜在的には確かに存在していたと思う)「楽しさ」がGR IIで大きく花開いたと感じています。

デジタルカメラの主役はレンズや撮影や画像処理であって、Wi-Fiが主役になる日は永遠に来ないと思います。全く使わない人もいるかもしれません。でも手を抜きたくなかった...。脇役だからといって手を抜きたくなかった...。Wi-Fiをただの「おまけ」にしたくなかった...。

2年間模索してきたアイデアと、今ユーザに提供できる技術の全てをGR IIに盛り込みました。その結果、最高に楽しいカメラが実現できたと思っていますがどうでしょうか。

GRファンの皆様にもその楽しさが伝わればいいなと思っています。
-----------------------------------------------

細野さん、ありがとうございました!

TwitterFacebookはてなブックマークに追加del.icio.us に登録この記事をクリップ! 投稿者 ふー | TrackBack(7)

この記事へのトラックバック一覧

気の長い話 [from Truth之カタワラデ]

富士山を下山している時にザックの背面部分の布帛部分が裂けて破れているのを発見購入したお店に修理依頼をした店主は高齢で心配したがお元気そうにしていてホッとし... 続きを読む

TrackBack 2015/08/04

修理と寄席 [from Truth之カタワラデ]

富士山で不覚にもK-S2を持ったまま転倒ファインダー内にゴミが2個出たので新宿のサービスセンターへ30分ぐらいで完了!ボディに少し傷は付いたが正常に作動す... 続きを読む

TrackBack 2015/08/03

声に出して君を呼ぶ [from 今日も明日も愛してる]

夏帽子かぶりなおしてまた歩く八月 RICOH GR DIGITAL 4で撮影 続きを読む

TrackBack 2015/07/31

七月最後の日 [from 今日も明日も愛してる]

やりたい事だけ、またはやらなくてもいい事だけ 事という字は大げさだ RICOH GR DIGITAL 4で撮影 続きを読む

TrackBack 2015/07/31

夏空の下 [from Piece Of My Life]

GR, Pモード, F5.6, 1/1600sec, ISO AUTO, EV-0.7, マルチ測光, WB-MPA, 画像設定 ポジフィルム調 難... 続きを読む

TrackBack 2015/07/29

まっすぐ行けば空と海 [from 今日も明日も愛してる]

RICOH CX6で撮影 続きを読む

TrackBack 2015/07/28

夏服の街 [from 今日も明日も愛してる]

RICOH CX6で撮影 続きを読む

TrackBack 2015/07/28

PAGE TOP