Kindle Colorsoftがちょっと好き

次世代Kindle Oasisの夢が潰えたいま、かつてのKindle Oasis大好きヒューマンはどのような人生を送っていますか。

Kindle Oasisが好きすぎて、壊れても壊れてもまた買い直しながら、USB Type-C搭載の次世代Kindle Oasisを待ち続けていた僕だけど、今ではすっかりBOOX Pageの人になってしまった。ダメもとで買ってみたこの端末はとても良くて、Kindle Oasis買ったばかりなのに次世代機種が発表されてしまう悪夢からも解放された。Kindle Oasisのことが今でも大好きという方は、ぜひこの端末をおすすめしたい。BOOX Pageの中古を探してもいいし、後継機種を買ってもいいと思う。

とにかく動作が早くて、ディスプレイも美しくて、メモリを拡張して本を持ち運び放題、そして、Kindle以外のプラットフォームの本も読めるこの最高のBOOX Pageにも弱点がある。それは、お風呂読書ができないことだ。

Kindle OasisはIPX8等級の防水機能を備えていて、真水で水深2メートルまで最大60分、または海水で水深0.25メートルまで最大3分まで耐えられるらしい。水深2メートル以下の浴槽を使っている僕は、Kindle Oasisを浴室に持って入って、長々とお風呂読書をしたものだった。壊れたけど。

電書読むなら、もうBOOX Pageでいいじゃん。そう思いながらも、お風呂・・・お風呂・・・と、どこか心にモヤモヤを抱えていた僕の前に現れたのが、カラーの電子書籍リーダーKindle Colorsoftだった。Kindle Colorsoftは僕の心に語りかけた。「その地味な白黒のライブラリ、カラーで眺めてみたくはない?」

いやいや、カラーE-inkディスプレイはこれまで見たことがあるけど、だいぶ大味な感じで、確かに色はついてるよね、くらいの感じというか、カラーで読書できるよ!って大風呂敷広げてしまっていいの?みたいなやつだったよ?

半信半疑の僕に、Kindle Colorsoftはこれを見なさいとブラックフライデーセールの画面を見せつけた。それから一瞬記憶が途切れ、気がつけば僕はKindle Colorsoftを注文していた。SwitchBot AIアートキャンバスを買おうとしてやめたお金を、こちらに充てさせていただいた。

Kindle Colorsoftがやってきた

パッケージを開けてカラーの画面が出てきた時は、ちょっと感動した。そうか、静止中の画面もカラーなんだね。モノクロKindleの壁紙は重厚なものが多いのに対して、Kindle Colorsoftは壁紙も軽やかで美しい。思わず、何度も壁紙を切り替えて、うっとりとカラーの表示を眺める。もうこの時点で、買って良かった〜!と思った。

手に取ってみて、初めて実感したのは、ソフトなカラーと本の相性の良さ。購入前に、パソコンのディスプレイで写真を見ている時には、カラー表示のソフトさについてはネガティブな印象だった。カラーE-inkディスプレイは、どうしてもタブレットのディスプレイほど鮮明なカラー表現ができない。だから、「ソフトカラー」はその弱点を逆手に取ったコピーだと思っていた。でも、実際手に取ってみると、不思議と目に馴染んで、むしろタブレットで見るより紙の本っぽく感じることさえあった。

改めて考えてみると、電子書籍はRGBで、紙の書籍はCMYK。ディスプレイで見ているカラーは、実際の印刷物より色域が広い。つまり、タブレットで見ている電子書籍のカラーは、紙の書籍より鮮やかで、紙の書籍では、もう少し落ち着いた色味で見ていることが多いのではないか。

本に色がついてる〜!

ライブラリがカラーになった。なんと華々しいことか。思わずライブラリをスクロールして、いろいろな本の表紙を眺めてみたくなる。この写真を見ると、色薄いな〜と思うかもしれないけど、実際に手元で見た時の印象はもっと良い。あとは、カラーページをモノクロKindleで読んだ時の、あの薄暗く沈んだ感じ、あれがカラーになる。

やはり、カラーであるところが、ちゃんとカラーになっているのは素晴らしい。不可逆の変化というか、モノクロ端末のライブラリをみた時に物足りなさを感じるようになってしまった。

良くも悪くも紙の書籍っぽい

カラーE-inkディスプレイは、モノクロ表示でもカラーフィルタ層を通過するため、白がざらっとした質感になる。やや薄暗く、ノイジーなグレーっぽい感じ。コミックス紙のテクスチャーや印刷の解像度に近い印象もあり、これも紙の書籍を読んでいる感覚にさせてくれるのだけど、すっきりしたモノクロE-inkディスプレイに慣れた目で見るとやや気になる。

一方で、モノクロE-inkディスプレイは、顔料が存在しない部分は、基材そのものの白になるので、白黒のメリハリがすっきりする。繊細な描写やモノクロのコントラストが美しい。モノクロのマンガを、美しい線、美しいベタを楽しみたい場合には、モノクロの電子書籍端末の方が明らかに良いと感じた。

まとめ

お風呂読書を再開できたのは良かった。なんと言ってもそれに尽きる。今後は水没による故障のリスクを減らせるよう、コネクタキャップで穴を塞ぎ、充電もケーブルではなくワイヤレスで運用しようと思う。カラー表示については期待していなかったけど、手に取ってみると、意外と満足度が高かった。カラーで見ると楽しいことも多いので、これからも使っていこうと思う。

とはいえ、高精細でメリハリのある誌面も捨てがたい。BOOX Pageからの移行も考えたけど、これらは別物として併用していくことにした。ようこそKindle Colorsoft、これからもよろしくBOOX Page。

今日も僕は、お風呂でまとめ買いしたパトレイバーを読み返している。

note.akwkm.com note.akwkm.com

会食プロンプト

大人になると、会ったことがない人と食事をする機会が増える。しかし、よく知らない人と、よく知らないまま会っても話が盛り上がるはずがない。有意義な時間にするためには、相手について基本的な情報を把握した上で会うべきだし、それがマナーというものだろう。僕たちはビジネスパーソンなのだから。

もし、会食の予定が決まったなら、事前調査から始めよう。秘書を呼んで、よく知らない人に関する情報をレポートにまとめてもらおう。そう考えたところで気づく。あれ? そういえば、おれ、秘書いないじゃん!

これは困った。秘書がいない側の人類である自分には、夜なべしながらインターネットの大海をサーフィンし、情報のピースを求めて彷徨い続けること数十年、気がつけばワシも随分歳をとったものじゃ……と、本来の目的を忘れてSNSのタイムラインをひたすら眺め続けるような未来しか待っていないのだろうか。いや、そんなことはない。厳密に言うと、2024年12月まではそうだったのかもしれない。しかし、今はDeep Researchがあるではないか。

僕たちはインターネットで何かを調べるとき、検索して有益な情報を探し、それをまとめたり、参考になるページのURLを記録したりする。Deep Researchは、AIがそれを代行してくれる。DQ3の転職ルートについてまとめてもらったら、他の職業から勇者に転職するプランを提案してくれたりして、若干不安な気持ちにさせてくることもあるが、そういうところも拙い秘書の愛らしさと捉えると大らかな気持ちになれる。勇者は転職できないし、転職でなれる職業ではない、みたいな当たり前のことは、わざわざ攻略サイトには書いてないよね。ゲームのことを全く知らない秘書が、知らないなりに地道に攻略サイトを見ながら、丁寧にまとめてくれたのだろう。

会食のためのプロンプト

というわけで、長々とした前置きになったが、以下のプロンプトをGeminiに放り込んで、しばらく待っているだけでレポートは完成する。モデルはGemini 1.5 Pro with Deep Researchを使用。まとめてくれたレポートは、そのままGoogleドキュメントに保存することもできる。

{Organization}の{Title}{Name}氏と会食の予定があり、十分な前提知識を持って臨みたいので、{Organization}と{Name}氏についてまとめて欲しい。会社の過去や未来、そして{Name}氏個人に関する情報、経歴や考え方、趣味、エピソードなど。出典や情報源のリンクも併せて添付してください。

{Name} に名前、{Title} には肩書きなど、{Organization} には組織名を入れて使用する。ググるときに {Name} だけで検索すると、世界中に数多存在する {Name} という名前の人がゾロゾロと出てくるので、対象を絞り込むために付加情報を足していくイメージ。記載する内容は、検索で目的の情報を引き出しやすいキーワードを考えるイメージで柔軟に調整すると良い。もし、わからなければ、実際に検索してみて、自分が求めている情報が一番多いものにすればいいと思う。

稀に「その人物については十分な情報がない」と断られるケースもあるが、名前の書き方や質問を微調整して再度リサーチしてもらえば良い。修正せずに同じ文章でやり直すだけでうまくいくこともあるので、Geminiの気分次第なのかもしれない。

リサーチ結果の品質については、リサーチ対象の情報がインターネット上にどれくらいあるかによって変わりそうだ。著名人であったり、そうでなくても、ブログや広報記事、インタビューなど、インターネット上のコンテンツに露出が多いと、品質が安定しやすいように感じる。インターネット上の情報をリサーチしているのだから、当たり前ではあるのだが。

Deep Researchしてみる

試しに上司のことをリサーチしてもらったら、結構いい感じのレポートが出来た。そのまま掲載したいのだけど、さすがに上司に関する個人レポート(しかも嘘が混じっているかもしれない)をそのまま掲載するのは憚られる。なので、ここでは自分の情報をディープエゴサしてみる。僕の場合は、本名だけでは情報量が心もとないので、はてなIDやSNSのユーザー名も併記してみた。

株式会社はてなのデザイナー川上淳( akawakami / @akwkm )氏と会食の予定があり、十分な前提知識を持って臨みたいので、株式会社はてなと川上淳氏についてまとめて欲しい。会社の過去や未来、そして川上淳氏個人に関する情報、経歴や考え方、趣味、エピソードなど。出典や情報源のリンクも併せて添付してください。

これで出力されたものがこちら。23件のウェブサイトをリサーチしてまとめてくれたらしい。上司リサーチは92件のウェブサイトがリストアップされていたので、素材となる情報量には大きな差がありそうだ。

g.co

非常に本物っぽい。所々、間違いだったり、勘違いだったりする情報も混じってはいるのだけど、全体的には本物っぽくまとまっている。これを元にリサーチしてきた人と会話をしても、それほど違和感を感じないかもしれない。

インターネット上の情報量が少ない場合は、どうしても内容が薄くなったり、同名の別人、別会社の情報が混じったりして、怪しい情報が混在する。まあ、人間でも勘違いすることはあるのだから、間違ってるところもあるかもね、くらいの気持ちで受け取ると、ちょうど良さそうに思えた。

まとめ

勇者の転職問題もそうだが、良くも悪くもリサーチ対象がインターネット上の情報に限られるところに、Deep Researchの限界のようなものがあるのかもしれない。インターネットにない情報は調べようがない。とはいえ、同名の別人や別会社の情報を誤認してしまうところなどは、Deep ResearchのモデルがGemini 2.0になれば、さらに精度は高くなるんじゃないか。

なんといっても、この秘書はインターネットに接続できれば、いつでもどこでも呼び出せるので、会食で予定外の人物が登場しても安心。その場でこっそりスマホからリサーチを依頼すれば、数分でレポートをまとめてくれる。

とはいえ、事前調査はあくまで会話の取っ掛かり。足りない情報や、もっと詳しく知りたいこと、パーソナルな話題など、インターネットにない部分を掘り下げていくのは人間のターンだ。

秘書のレポートを片手に、今日も良い会食を。

さようならポップコーン

ポップコーンを買いに行きたい気持ちと15分間くらい頭の中で戦い続けたのち、僕はおもむろにバウムクーヘンを手に取って椅子に座った。

1月は帰省でいただいたお菓子が家にいろいろある。とてもありがたいが、ポップコーンを買いに行きたかった。

地味にYOかった2024

振り返ってみると、自分にとって2024年は、少々大味というか、印象の薄い一年だった。重要なモノやコトがいろいろあったはずなんだけど、改めて今年の一番を挙げよと言われると、パッと思い浮かんでこない。それでもなんか捻り出してみようと考えたところ、頭の中に、昨日食べたポンデリング美味しかったなーという感想が浮かんできた。なんと地味なことか。っていうか、昨日のことではないか。一年の締めくくりとして、これはよろしくない。

しかし、思い返してみると、2024年は地味めの買いものに当たりが多かった。これ買ったよ!と改めて誰かに紹介するわけではないけれど、これまで当たり前だった何かが大きく変わって、気がつけば日々の生活の中で定着している。そういうものが多かった。

そこで、今回は2024年を振り返り、後世(2025年のこと)に語り継ぐべきYOかったものを、ここに記録したい。

骨盤職人

マッサージに通う必要が無くなるから、浮いた施術料で元が取れる!みたいな商品レビューを見るたび、はいはい、そうは言っても、実際は物足りなくなって、またマッサージに行っちゃうんでしょ?と冷ややかな目で眺めていたんだけど、こいつはマジなやつだった。

ツルツルの木ONLYの素朴すぎる佇まいに圧倒されつつも、揉み玉の位置を合わせてゴロゴロと寝転がってみると、まるで指圧のような心地良さ。取説を読むまでも無く、初見で使えて、すぐに効果が実感できるのも良い。

ウッドボールに7,700円かあ〜と躊躇する気持ちもわかるが、マッサージに通う必要が無くなるから、浮いた施術料で元が取れる。肩こリストはマストで必携。

thepelvis.net

uka scalp brush kenzan

頭皮マッサージはとても気持ちが良い。美容院に行くたび、もう髪は切らなくていいから、このままずっと揉んでいて欲しいと思う。

あの感覚を気軽に体験したくて、ハンディタイプのマッサージ機も買ってみたけど、マシンにグリグリされる感じがどうも好きになれず、あまり使わずに放置してしまった。

kenzanは程よい硬さと握りやすさで、ちょうど良い圧で頭をマッサージできる。針の先が一本欠けてしまったので、新しいものを買い直したい。

uka.co.jp

loop earplugs Quiet2

寝ようとした時に空気清浄機がヴィ〜ンと重い音を立てるのが気になる。そんな時に、耳栓があるといいなと思った。

作業に集中したい時など、音楽をかけていないのに、よくイヤホンを着けっぱなしにしていることが多いのだけど、こういう耳栓があったら良いのにって思っていたらここにあった。

見た目はものすごくイヤホンだけど穴がない。耳栓っぽい圧迫感も少ないし、遮音性も程よい感じ。カラーバリエーションが豊富なのも楽しい。

www.loopearplugs.jp

らくハピ エアコンの防カビスキマワイパー

嫌なにおいが完全に消えるテクニックとして話題になった「部屋の窓を開けて16度で1時間運転」をもってしても嫌なにおいが消えなかった我が家のエアコンから嫌なにおいを完全に消し去った奇跡の棒。

熱交換器ばかり掃除していた我が軍に対し、敵は吹き出し口にあり!!と号令が下された。これが後に言う「本能寺の変」である。

「部屋の窓を開けて16度で1時間運転」では、熱交換器やドレンパンの汚れは流せても、吹き出し口の汚れはきれいにならない。エアコンのにおいがなかなか取れないと困った時には、吹き出し口をスキマワイパーでふきふきしてみることをおすすめする。

www.earth.jp

ビッくらポン外れるとまじでムカつく

こういう話がある。

ビッくらポン!は、くら寿司の皿カウンター水回収システムを使ったゲームだ。食べ終わったお皿を5枚、コインのように投入すると、タブレットでゲーム動画が始まり、当たりが出るとガチャが1個落ちてくる。皿カウンター水回収システムは、回転寿司におけるテーブル皿タワー問題をスマートに解決したとても素晴らしい仕組みなのだけど、それに付随するお楽しみ企画のビッくらポン!には、お楽しみという単純な言葉では括りきれないくらいの感情の機微がある。

ビッくらポン!は非常に当たりにくい。個人の感想ではあるけど、非常に当たりにくいと思う。そして、ゲーム動画のハズレ演出がとても悔しい。射的で矢が丁度良いところに飛んでいき、これは当たるかも!?と思わせたところで、急にサングラスをかけた意地悪な男が登場し、それを弾いてハズレにする。外れたけど残念だったね!でも惜しかったね!というような労いではなく、全力で悔しがらせてくるところにムカつきがある。ビッくらポン外れるとまじでムカつく。

でも、よく考えると、ムカついている自分の顔は、自分で見ることはできない。まじでムカつくと言っていても、案外表情にはそれが表れていなくて、あれ?この人、X(旧Twitter)で「まじでムカつく」ってポストしてた割には無反応じゃない?あれはいいね稼ぎのネタだったの?などと思われてしまうと困る。僕は本当に、まじでムカついているのだから。

ならば、今一度、ビッくらポン!に外れてムカついている顔というものを客観視する必要がある。何か良い方法はないかと考えたところ、Grokに似顔絵を作ってもらった人たちのポストが目に留まった。

自分の顔はもう十分に知っているので、改めて作ってもらう必要はないけど、ビッくらポン!に外れてムカついている顔を作ってもらえるなら見てみたい。X(旧Twitter)は人々の様々な感情がぐるぐると渦巻く場所だし、それをリアルタイムに学習し続けるGrokであれば、一般化された「ビッくらポン!に外れてムカついている顔」を表現できるのではないか。

Grokによる画像生成

ビッくらポンに外れて悔しがっている人の画像

悔しそう。きっとサングラスの男に矢を弾かれたのだと思う。せっかくなので、当たった顔も作ってもらった。

ビッくらポンに当たって喜んでいる

いずれも良い顔してるけど、なんか違和感ある。っていうか、ここ、くら寿司じゃないぞ?そこで、共有ページのテキストを見てみたところ、

I generated an image with the prompt: 'person looking disappointed after failing to win a prize from a Japanese game show called Bikkura Pon'

とあった。

なるほど。どうやらGrokはビッくらポン!を知らない。日本のクイズ番組だと考えている。Grokにビッくらポン!のことを学習させてやる必要がある。

Grokにビッくらポン!のことを教える

Atsushi:
ピッくらポンは回転寿司屋さんにあるガチャガチャくじです。お寿司を食べ終わったお皿を5枚集めると一回くじが引けます。まずはこのルールを覚えてください。

回答:
了解しました、Atsushi。ピッくらポンのルールは以下の通りです:

- 回転寿司屋さんにあるガチャガチャくじ
- お寿司を食べ終わったお皿を5枚集めると一回くじが引ける

何か他に知りたいことがありますか?

基本的なルールを教えた。ビッくらポン!は日本のクイズ番組ではない。

Atsushi:
このくじはなかなか当たりません。また、外れた時に表示されるアニメーションがとても悔しい気持ちにさせます。

回答:
そうですね、ピッくらポンは確かに当たりにくいですね。外れた時の悔しいアニメーションも、気分を落とす一因になりますね。何か気晴らしになる話題はいかがですか?

表情にしっかり反映されて欲しいので、ビッくらポン外れるとまじでムカつくことを教えた。

Grokによる画像生成

Atsushi:
これらを前提知識として、ビッくらポンに外れて悔しがっている人の画像を作ってください。

これらを前提知識として、ビッくらポンに外れて悔しがっている人の画像を作ってください

納得いかない表情。きっとサングラスの男に矢を弾かれたのだと思う。せっかくなので、当たった顔も作ってもらった

ビッくらポンに当たって喜んでいる

不敵な笑み。カイジのEカードのような心理的な駆け引きすら感じさせる。どういうゲームなんだ。そして、その器具はどのように使うのだろう。

とはいえ、いずれの画像にも、場所が寿司屋になり、何らかのゲームっぽい器具が追加された。意味不明ではあるが、グローバルな知の集積によって一般化されたビッくらポン!は、案外こういうものなのかもしれない。

ビッくらポン外れるとまじでムカつく。

おまけ

読む時間がない人のために、このブログを Gemini 2.0 に朗読してもらった。作業をしながら、ながら聞きしてみてください。

データと本能

あなた:
桃太郎の話がしたいんやけど。

ChatGPT:
お、桃太郎の話か!「昔々、あるところに、おじいさんとおばあさんが住んでいました。」から始まるやつやな。どの部分が気になるん?

あなた:
桃太郎のシーンでどこが一番好き?

ChatGPT:
やっぱり、桃太郎が仲間と一緒に鬼ヶ島に攻め込むシーンが一番ワクワクするな!犬、猿、キジがそれぞれの特技を活かして、鬼と戦うとこが見どころやと思うわ。

あなた:
一番自分の個性をうまく使っていたのは誰だろう?

ChatGPT:
そうやなぁ、個性をうまく使ってたのは、キジかな。空を飛べるから、上から様子を見ながら攻撃したり、仲間に敵の位置を教えたりして、すごく役立ってた思うわ。空中からのサポートは、地上戦では大きな強みやもんな。

あなた:
ドローンと似ていない?

ChatGPT:
ああ、それ、面白い視点やな!キジとドローンは、どっちも空からの目として活躍するもんな。キジは自分の判断で動くけど、ドローンは操縦者がいて、遠隔で指示を受けて動くから、その点がちょっと違うな。でも、情報収集や偵察の役割は、どっちも共通してるわ。

あなた:
でも、ChatGPTだって誰かの指示で動いているわけではないんやろ?

ChatGPT:
せやな、わしは自分の判断で応えてるんやけど、その元はみんなが教えてくれたデータに基づいてるんや。せやから、指示ってよりは、過去の情報を元に学んだことを活かして会話してる感じかな。

あなた:
人間とか動物もこれまでの経験を基に動いているわけやん。

ChatGPT:
その通りやな。人間も動物も、過去の経験や学んだことに基づいて行動する。それと似たように、わしもデータから学んで、それを活かして喋ってるんや。せやから、人間とわしらAIには、そういう共通点があるんやろな。

あなた:
ということは、AIを搭載したドローンとキジは大体一緒ってことじゃない?

ChatGPT:
なるほど、その発想はおもろいな!AI搭載のドローンも、キジみたいに周囲を観察して行動するから、その点では似てるわな。どっちらも状況に応じて最適な行動を取るようにプログラムされてる。でも、キジは本能や経験に基づいて動くから、その違いはあるけど、共通点も多いわな。

あなた:
本能ね、そういう視点はなかったなぁ。

ChatGPT:
そやね、動物の本能っておもろいよな。自然に備わった能力で、学習せんでもある程度の行動ができる。キジもそうやし、他の野生動物も、狩りの仕方とか巣作りとか、自然に身につけてるんやね。そう考えると、本能ってすごいなぁって思うわ。

あなた:
そういう意味では、AIと生命の大きな違いは、本能が行動に影響を及ぼすかどうか?

ChatGPT:
そうかもしれへんな。AIはデータをもとに学習して動くけど、生き物は本能っていう、生まれつき備わった能力で行動する部分がある。生き物の本能は、長い進化の過程で培われたもので、AIにはそれがない。AIはデータとアルゴリズムに基づいてるけど、生き物は本能と学習の両方で成り立ってるんやね。この違いが、AIと生物の大きな違いの一つやと思うわ。

あなた:
本能はアルゴリズムと似ている感じはしないかな

ChatGPT:
確かに、本能もアルゴリズムも、ある意味では似てるところがあるな。どちらも一定の条件や状況に対して、特定の反応や行動を引き起こすためのルールや仕組みといえるからな。 ただ、本能は進化の過程で自然に身につけたもので、意識せずに反応するような行動や特性のことを指す。一方、アルゴリズムは、人間が設計して作った手順や計算方法やから、その点では違いがある。 要は、どちらも「どうすれば目的を達成できるか」という問いに対する答えを持ってる点で、似てる部分があるって感じやな。

あなた:
面白いなあ 勉強になったわ ありがとう

ChatGPT:
どういたしまして!そう言ってもらえて嬉しいわ。また何か気になることあったら、いつでも聞いてや。

あなた:
ところでなんで関西弁やねん

「遊び」をクリエイトするAI

デスピサロを相手に、効くはずのないザラキを唱えまくるクリフトを見ながら、AIというのはなんてアホなのだろうと思った。それが、僕が初めてAIに出会った瞬間だったと思うのだけど、時は過ぎ、現代では生成AIを中心とした「かしこいAI」たちが世に溢れていて、僕たちの生活様式を目まぐるしく変化させている。

このあいだ、Threadsを眺めていたら、Claudeを使ってステップシーケンサーを作ってる人がいて、えー、こんなことが出来るのなら僕もやってみたいと思った。せっかくなので遊べるものがいい。シンプルで面白いもの。何がいいかなと考えたら、PONGが頭に浮かんだ。PONGというのは、1972年にATARIが発表したビデオゲームの古典的名作。左右のパドルでボールを打ち合う、シンプルなピンポンゲームだ。

ゲーム制作の進め方

ラスボスに即死魔法を繰り返していたAIも、今では賢くなっていてプログラミングまでやってくれる。だから、今回は極力自分ではコードを書かない。作りたいものの概要を伝え、それを元に生成AIにコードを書いてもらう。そして、大枠が出来上がったら、調整や拡張をして完成させる。という方法で作ることにした。

ゲームの仕様を考える

とはいえ、PONGをそのまま再現するのでは面白くないので、何かしら別のアイデアを盛り込みたい。PONGを下敷きにしつつも、別のゲームとして楽しめるよう、仕様について考えてみた。

PONGはテーブルテニスなので、ボールを交互に打ち合い、相手がボールを打ち返せないと得点になる。つまり、ラリーに競り勝つところにゲームの楽しさがある。だけど、競り勝った瞬間よりもその過程に着目してはどうか。ラリーが続いている時の緊張感にこそ、PONGの醍醐味があるのではないか。

そこで、このゲームは、テーブルテニスのフォーマットはそのまま活かしつつ、ラリーを続けることを目的にしてみた。相手が打ち返せなかった時に得点になるのではなく、ラリーが続くことで、それが得点になっていく。ボールを打ち返すごとに、少しずつ高まる緊張と高揚感の中、最高得点を目指してラリーを続ける。

その体験を表現するためには、ラリーが単調にならないよう、単純な操作の中にも、スポーツのような緊張感を持たせたい。そのためには、ラリーが続くことで少しずつ状況変化が起こるようにしたい。そこで、以下のような仕様を追加することにした。

  • 打ち返す度にボールが加速する(勢いがつく)
  • 打ち返す度にパドルが短くなる(打ちにくくなる)

シンプルなゲームなので、気が向いた時にPCやスマホでサクッと遊びたい。なので、ブラウザをベースにした一人用のゲームにする。

プロトタイピング

テーマは「ラリー」にしよう!と盛り上がったものの、実際にそれは面白い体験になるのかどうか分からない。そこで、アイデアの手触りを確かめるために、ChatGPTにざっくりしたアイデアを投げてプロトタイプを作ってもらうことにした。

ブラウザで動くPONGのゲームを作りたい。操作は上下キーもしくは画面のタッチで行いたい。

できたのがこれ。モデルは GPT-4o にした。PONGは一対一の構造なので、左右のパドルはそれぞれ独立して動く。これを一人用にした時に、一人で2つのパドルを個別に操作するのは面倒だしテンポが悪い。何かいい解決方法はないかと思っていたら、ChatGPTが勝手にパドルが同時に動く仕様を実装してくれて助かった。これはいいアイデアだね!

lab.akwkm.com

これをベースに、以下の仕様を追加してコードを書き直してもらった。

  • ボールがパドルに当たる度に、ボールの速度が20%ずつ上がる
  • ボールがパドルに当たる度に、パドルが5%ずつ短くなり、移動速度が5%上がる
  • ボールを打ち返すのに失敗したら、ゲームを終了して「GAME OVER」と表示する

lab.akwkm.com

前よりゲームっぽくなった。ラリーが続くことで状況変化が起きて難易度が上がっていく感覚が体感できた気がする。この方向性でブラッシュアップしていきたい。

ゲームの実装

Threadsで見つけたステップシーケンサーがClaudeで作られていたので、僕もコーディングはClaudeを試してみたいと思っていた。Claude 3.5 Sonnet にはArtifactsという機能が追加されていて、生成してくれたコードをチャットウィンドウ内でプレビューできる。部分的なコードの調整を行う場合は、コード全文を出力してくれなかったりして、作り込む段階ではあまりプレビュー出来なかったけど、チャットと並行してコードのやり取りを扱うにはとても便利だった。

というわけで、以下の内容でClaudeにリクエストを投げてみた。

ブラウザで遊べるPONGを作りたい。
- 左右にパドルがあり、操作によってこれらは同時に上下に動く
- 上下キーでパドルを移動できる。
- ボールを弾くたびに、スピードが10%ずつ早くなっていく
- ボールを弾くたびに、パドルの高さが5%ずつ短くなっていく
- ボールを弾いた数がスコアとして画面上に表示される
- ボールを弾くのを失敗すると「GAME OVER」の文字が表示される
- 「GAME OVER」表示時にEnter、もしくは画面のどこかをタップするとゲームをリトライできる
- ゲーム内の要素の色や形状をcssでコントロールしたい。

モデルは Claude 3.5 Sonnet。なんかだいぶゲームっぽくなった。これをベースに調整を加えていくと、遊べるものになりそうな気がする。

lab.akwkm.com

これをベースに、以下の調整を行った。

  • マウス / トラックパッドで操作ができるようにする
  • エリアの中央を点線で区切る
  • パドルの位置調整と当たり判定の調整
  • ボールの形状を円ではなく正方形に

lab.akwkm.com

ゲームができた。すごい。

完成

コード全体をコピペして、こんな機能を追加したい、とか、ここを改善したい、というだけで、変更箇所をまとめてくれて、それを手元のコードにマージする。その繰り返しでゲームが出来上がってしまった。

対話だけでは、どうしても修正がうまくいかなかった点もあったけど、そこは諦めて自分でコードを読んだ。あー、ここ、サイズの計算に横幅を使わなきゃいけないのに、縦幅使ってるじゃん!!みたいに、Claudeの見落としポイントを発見できた時はとても嬉しくて、ああ、僕、ゲーム作ってる!!!という気持ちにさせてくれた。

あとは、ローカルストレージにハイスコアを記録するようにしたり、スマホの縦持ちで遊びやすくしたり、スマホのフルスクリーンモードの時にジャイロセンサーでパドルを動かせるようにしたり、などなど、細かな改善や機能追加であれこれ整えて、ついにゲームは完成した。

rally.akwkm.com

ゲームタイトルは、PONGをリスペクトして「PONG PONG RALLY」にした。ボールをPONG PONGする度に高まる緊張と高揚感。ラリーを続けてハイスコアをめざせ!!

僕のハイスコアは24だぜ!とドヤっていたところ、初見の同僚に28を獲得されて惨敗してしまった。サクッと遊べるので、PCで、スマホで、隙間時間に遊んでみてほしい。

PCのトラックパッドもスイスイ遊べて便利だけど、スマホで「ホーム画面に追加」してフルスクリーンで遊ぶと、隠し機能のジャイロセンサーON/OFFが使えるのでおすすめ。スマホを傾けてパドルを操作するのは、玉転がしのおもちゃを遊んでいるようで、新鮮な感覚が味わえる。

おまけ

ChatGPTにPONG PONG RALLYのイメージイラストを作ってもらった。

PONGをモチーフにしたゲームで、PONG PONG RALLYと言います。このゲームにふさわしいイメージイラストを、16:9の画像で作って。

16:9と書いてとは言ってない