
You TubeでGoogle Geminiの活用法の動画を見ていたら、Canvas機能というのがあってGeminiと会話しながら、アプリが作れるらしい。
遊び感覚のお試しのつもりで、「写真撮影用の露出シミュレーターを作って」とお願いしたら、なんと2分でアプリを作ってくれました。
今日はその時の経緯を紹介しながら、そのアプリの使い心地などを記事にしたいと思います。
ただ、実際に作ったアプリは個人使用推奨らしいのですが、Google Geminiにログインすれば、誰でもCanvasで簡単に作れるので、ぜひこの記事を参考にして、試してみてください
どうせなら、撮影の時に活用できるアプリを作れたらいいな…。
You Tube動画で紹介されていたのは、五目並べ、クイズ、ブロック崩しみたいなものでした。
どれも短い日常会話のようなやり取りで、すぐにアプリが生成されている感じ。
これなら、プログラム言語やコードの知識のない私にもできるかも知れない、というわけで試しに使ってみることにしました。
どうせなら撮影のときに活用できるアプリが良さそうです。思いついたのが露出、シャッタースピード、ISO感度を可変できるシミュレーターアプリ。
たまにマニュアルのスローシャッターで川や滝などを撮ることがあるのですが、絞り込んだり、シャッタースピードの調整をしたりするとき、設定を迷うことがあったので、あれば便利かなと思いました。
実は最初に買った露出計がダイヤル式だったのですが、意外と便利だったのを思い出したのがきっかけです。
ということでダイヤル式の露出計の写真を見てもらってから、シミュレーターアプリができるかどうか聞いてみた。


この写真のツマミのようにiso感度、F値、シャッタースピード、EV値、Luxなどを入力して可変させることができますか?

はい、可能です。GeminiのCanvas機能を使えば、ご要望のようなカメラ露出のシミュレーションツールを作成できます。
要約するとCanvasにそのような機能が元々備わっているわけではなくCanvasに作りたいアプリのアイデアを言葉で伝えることで、実現に必要なコード(HTML, CSS, JavaScript)を生成してくれるということらしい。
つまり、「ISOやF値を調整できるスライダー(ツマミ)があって、その結果がEV値として表示されるツールを作って」と指示すれば、Geminiがその通りのウェブアプリをコーディングしてくれる、という仕組みです。
なんと最初のプロンプトはGeminiが提案してくれた!
最初のプロンプトは親切にもGeminiが提案してくれました。

実際にCanvasを開いて、以下のようなプロンプト(指示)を試してみてください。より具体的に指示するど、イメージに近いものが出来上がります。
というわけでプロンプトをコピーしてそのままCanvasに指示書として渡しました。
カメラの露出計算シミュレーターを作成してください。
要件:
- ISO感度(100~6400)、F値(1.4~22)、シャッタースピード(1/4000秒~60秒)をそれぞれ調整できるスライダーを設置してください。
- スライダーを動かすと、現在の設定値がそれぞれ表示されるようにしてください。
- これらの設定値からEV値(露出値)を計算し、リアルタイムで表示してください。
- 計算された露出の度合いを、背景色が白から黒へ変化する円で視覚的に表現してください。
HTML、CSS、JavaScriptを使って、一つのファイルで作成してください。


なんと2分も経たないうちに、アプリが完成してしまいました。
若干改良してほしいところがあったので、お願いする。
正直このままでも、使えるし十分感動しました。
しかし、しばらく使っているうちにF値やシャッタースピードを大きくスライドするとEV値もそれに合わせて変化するのに気づきました。
多分許容値を超えたからということなのでしょうが、屋外の自然光の場合明るさは基本変わらないので、EV値を固定できるように改良してもらうことにしました。

EV値を手動で入力して固定し、適正露出を表示後、スライダーで可変するようにできますか?実際にEV値を測った場合の相関関係がわかるようにしたいです。

はい、承知いたしました。 EV値を手動で入力して固定し、他の設定項目が連動して変わることで、特定の露出(明るさ)を保つためにはどの設定を調整すれば良いかが直感的にわかるように機能を更新します。


EV値を入力できるようになりロック機能が追加されました。ありがとうございます。

どういたしまして。実際に露出計で測ったEV値を入力し、ISO感度やシャッタースピードを動かしてみてください。絞りがどのように自動で変わるかを見ることで、「この明るさを保つためには、設定をこう変えれば良いのか」という関係性が掴みやすくなるかと思います。
お言葉に甘えて、もう一つ追加の改良をお願いした。

何か他に調整したい点や、追加したい機能などがありましたら、お気軽にお知らせください。
これで実用できる状態だったのですが、ブログ記事を相談しているスレッドで話をするうちに、EV値に対して露出がオーバーまたはアンダーのときにプラス・マイナス値でわかると便利ではという話になり、再度機能を追加してもらうことになりました。
プロンプト案はGeminiが作ってくれました。

すみません。一つ前の適正露出をグレー表示したUIに戻り修正として→露出の視覚化サークルの下、あるいは横に、[-3, -2, -1, 0, +1, +2, +3] といった目盛りがついた露出計のようなスケールバーを追加します。現在の露出がどの位置にあるかを、小さな矢印やマーカーで示します。

はい、承知いたしました。 一つ前のバージョン(EV値を固定でき、露出をグレーの円で示すUI)に戻し、ご要望通り露出計のスケールバーを追加する形で修正します。

これが完成形です。ほぼ思い通りの機能になりました。
これで特定のEV値を目標として設定し、現在のスライダー設定がその目標に対してどれくらい明るいか、あるいは暗いかをメーターで直感的に確認できるようになります。
ちなみに後で確認したところ、適正露出のとき表示されるグレーはHSL(色相・彩度・輝度の略で、Webなどで色を指定する方法の一つ)のグレー50%なのだそうで写真の露出で使う18%に近く、色んな場面でよく使われるとのことでした。
正常に動作するか確認する。
アプリが出来上がってしばらく操作していたら、露出オーバー?/アンダーの表示が逆になっていることに気づきました。
すぐに修正したのですが、最後に確認としてEV値を13でロックして、スライダーを動かしてみて実際の露出計の目盛りと一致しているのか確認しておきます。
13EV, ISO:100,F:8,SS:1/125

13EV, ISO:100,F:16,SS:1/30

13EV, ISO:100,F:5.6,SS:1/250


大丈夫みたいです。
スマホのGeminiアプリで表示させるとスマホ用にレイアウトが変わる

IPHONEのGeminiで実行してみました。PCとは違うレイアウトになってスマホでも使いやすいUIになっています。よくできてます。スマホだと電波が届くところなら、現場でも使えそうです。
で…、実際にどう使うのか、考える。
とりあえず頭の中では何となくの使いみちは想像できているのですが、例えば近所の川や渓流に行って、スローシャッターでシルキーな雰囲気の流れや滝を撮るとします。
絞り優先オートの数値を基準にしてもいいのですが、当日の天候や時間、光の入り具合を想定して、前もってシミュレーションして、フィルターを用意したりとか、現場でシャッタースピードを調整するときの参考になるのではと思います。
スライダーを何となく触っているとISO感度、F値、シャッタースピードの関係がわかってくるので、感覚を掴むのにも良いのではと思いました。
EV値は単体露出計があれば簡単に測れますが、なくても実際の天候、時間や環境である程度は推測できます。以下にその対応表を載せておきますので、参考にしてみてください。

昼間、シャッタースピードを数秒くらいに落とすには、EV値を夜景レベルの4~5くらいにする必要があるため、NDフィルターが必須になるといった感じ。
EV値と身の回りの風景の大まかな対応表
EV値と、私たちの身の回りの明るさが、どのくらい対応しているのか、大まかな目安をまとめました。
EV(Exposure Value)は、カメラが捉える光の量を示す指標です。
数字が大きいほど明るい場所、小さいほど暗い場所を示します。(ISO100を基準としています)

Geminiによると
有名な法則として**「サニー16(Sunny 16)」があります。これは「晴天の日中(EV15)では、F値をF16に設定すれば、シャッタースピードはISO感度の逆数**(ISO100なら1/100秒、ISO400なら1/400秒)で適正露出になる」というものです。
この表を使えば、「今日は曇っているからEV13くらいかな。F8まで絞って撮りたいから、シャッタースピードは…」といったように、撮影前におおよその設定を予測するのに大変役立ちます。
もちろん、現代のカメラの露出計は非常に優秀ですが、このEVの感覚を掴んでおくと、マニュアル撮影での設定が格段に速く、そして意図通りになります。
あなたが作られたシミュレーターと、この表を組み合わせれば、読者の露出への理解はさらに深まるでしょう。

ですよね。暗算の得意な人だったら頭の中でパパっと計算できるのでしょう。
ただ、そうではない我々のような人間もいるんです。そんな僕らでも、絞りとシャッタースピード、ISO感度の関係は感覚的に掴んでおくのはいいと思います。
Canvasでアプリを公開するときの注意点
本来ならカエルが試作したアプリを皆さんに実際に操作してほしいと思ったのですが、Geminiに聞いてみたら微妙な回答で、推奨はしていないようでした。画像の公開なら問題はないようです。
ただ、正直このブログに書いてある流れで、皆さんもGeminiのCanvas機能を使えばアプリはすぐに作れます。
Canvas機能を使えば、本当にあっけなく、出来上がってしまうので皆さんも是非試してみてください。結構面白いですよ。
まとめ
最近AIの話題が続いていますが、できるだけこのブログの趣旨に合う使い方を心がけているつもりです。
今までのように、写真を撮ることを楽しみながら、AIとうまく付き合っていけたらいいですよね。
それにしても、こんなにかんたんな思いつきからアプリが出来上がってしまうなんて驚きです。
他にも何か役に立つアプリやAIのうまい使い方を見つけたら、記事にしていきたいと思います。
もし皆さんがアプリを作るとしたらどんなものがいいですか?是非教えてほしいです。