NOW SHOWING

サンゴ礁の一日

ピクセルアートの海の生態系

↗ 単体で開く

朝 → 昼 → 夕 → 夜を20秒でループ。挙動はランダムなので、リロードするたびに違う光景になります。

これは何?

AIにどんなものが生成できるかを試してみたくて、Claudeにピクセルアートの「サンゴ礁の一日」を依頼しました。外部ライブラリも画像ファイルも使わない、HTML1ファイルだけで動くアニメーションです。スプライトはすべてコード内のドット配列やプロシージャル生成で描かれていて、生き物はそれぞれ自分のルールで動き、互いに反応し合います。

制作日
2026.09.23
モデル
Claude Opus 5.5
内部解像度
320 × 180
パレット
30色
1日の長さ
20秒ループ
構成
HTML 1ファイル

生き物と挙動

小魚の群れ ×3群

ボイド(分離・整列・結合)で群泳。サメが来ると散開し、数秒後に再集結。夕方以降は岩陰で休む。

サメ

画面を往復して巡回し、ときどき群れに狙いを定めて接近。遠景にもう1匹。

クマノミ

イソギンチャクの周りを離れず、サメやウミガメ、エイが近づくと触手の中へ隠れる。

ウミガメ

ゆったり横断し、水面に顔を出して息継ぎ。泡を吐く。

カニ・エビ

カニは横歩きと砂つつき。エビは大きな影が来ると尾を使って後ろへ跳ぶ。

タコ

岩場を這い、サメが近いと岩の色に擬態。至近距離では墨を吐く。夜はカニを追う。

エイ

砂地すれすれを滑空して砂煙を上げ、ときどき砂をあさる。

チンアナゴ

大きな生き物やカニが近づくと砂に引っ込み、ゆっくり顔を出す。

チョウチョウウオ

ペアでサンゴをつついて回る。サメが来るとサンゴに逃げ込む。

クラゲ

拍動で浮き、ゆっくり沈む。夜になると発光する。

ウツボ

夜に巣穴から体を伸ばし、近くを通る魚に噛みつこうとする。

ヒカリキンメダイ

夜だけ岩穴から現れ、点滅しながら群れで泳ぐ。

夜光プランクトン

生き物が通った跡がふわっと光る。夜はサンゴの先端も蛍光する。

背景の動き

光の筋、砂地のコースティクス、揺れる海藻、マリンスノー、水面で弾ける泡、太陽・月・星。

30色って本当?

プロンプトでは「32色前後のパレット」と指定し、コードには30色のパレットが定義されました。生き物や地形のドットは、この30色だけで塗られています。

ただし、背景の水と空のグラデーション、時間帯の色味、光の筋や透け感は上から重ねて表現しているので、画面全体の色数は30色を超えます。実際のフレームを数えると次のとおりでした。

30素材のパレット色数
420〜7601フレームあたりの実際の色数

使ったプロンプト

最初の依頼文(全文)+ 直後の追加指示
# 依頼
ピクセルアートの「サンゴ礁の一日」アニメーションを、単一のHTMLファイル(Canvas)で実装してください。
目的は「AIが1回のプロンプトでここまで作れる」ことをXで見せることです。眺めているだけで驚きがあるくらい、生き物の数と動きの種類を多くしてください。

# 世界観
- 浅い海のサンゴ礁を横から見た断面構図。上部に水面、下部に砂地とサンゴ、岩場
- 雰囲気は「にぎやかで情報量多め」。画面のどこを見ても何かが動いている状態にする
- 時間が流れ、朝→昼→夕→夜→朝とループする(1周90秒程度)
  - 昼:水面から光の筋(コースティクス)が差し込み、色鮮やか
  - 夕:全体が橙色に寄る
  - 夜:暗くなり、クラゲや夜光プランクトンが発光する。昼の魚は岩陰で休み、夜行性の生き物が出てくる

# 生き物(それぞれ独自のルールで自律的に動くこと)
- 小魚の群れ:ボイド(分離・整列・結合)で群泳する。複数の群れを配置
- サメ(1〜2匹):ゆっくり巡回し、ときどき群れに近づく。近づかれた群れは散開して逃げ、しばらくすると再集結する
- クマノミ:イソギンチャクの周りを離れず、危険が近づくと中に隠れる
- ウミガメ:画面をゆったり横断し、たまに水面へ息継ぎに上がる
- カニ・エビ:砂地を横歩きし、ときどき砂をつつく
- タコ:岩場を移動し、サメが近いと体色を岩と同じ色に変える
- エイ:砂地すれすれを滑空し、砂煙を上げる
- クラゲ:拍動しながら漂う。夜に発光
- そのほか、泡、揺れる海藻、漂う粒子など背景の動き
- 生き物同士の反応(逃げる・隠れる・追う)が見えるようにし、同じ光景が二度と繰り返されないようにする

# ピクセルアートの表現
- 内部解像度は低く(例:320×180)描画し、画面サイズまで整数倍で拡大。補間はオフ(image-rendering: pixelated、imageSmoothingEnabled = false)
- 限られたパレット(32色前後)で統一感を出す
- スプライトは画像ファイルを使わず、コード内のドット配列やプロシージャル生成で作る
- 各生き物に数フレームのアニメーション(ヒレの動き、拍動など)をつける
- 奥行きを出すため、背景・中景・前景の3層程度で描き分け、奥ほど色を青く薄くする

# 技術要件
- 外部ライブラリ・外部ファイルなし。HTML1ファイルで完結し、ブラウザで開くだけで動く
- requestAnimationFrameで60fpsを保つ。生き物の数が多くても重くならないよう工夫する
- アスペクト比16:9。ウィンドウサイズに合わせて中央に配置し、余白は黒
- 開いた瞬間から見栄えがよい状態で始まる(生き物がすでに配置されている)
- 録画の邪魔になるUIは一切表示しない。キー操作(例:Dキー)で生き物の数やFPSを出すデバッグ表示だけ用意してよい

# 仕上げ
- 実装後、コードを見直して、動きの不自然な点や、止まって見える領域がないか確認し、改善してから最終版を出してください
- 最後に、実装した生き物と挙動の一覧を簡潔に添えてください

---
(追加指示)
今更だけど20秒くらいのアニメーションでも充分

どうやって作られたか

  1. 上のプロンプトを投げ、直後に「20秒でも充分」と一言だけ追加。これを受けてAIがHTML1ファイルを実装(依頼文の「1周90秒」ではなく20秒ループになっているのはこのため)。
  2. 同じ回答の中で、AIが自分でヘッドレス描画して各時間帯の画面を書き出し、不自然な点を直してから最終版を出力。群れが散ったまま戻らない、クラゲが水面に溜まる、夕焼けが一瞬で終わる、などを修正。
  3. 後から別の依頼で、コードを1フレームずつ描画してffmpegで20秒のMP4に書き出し(画面録画ではないのでコマ落ちなし)。

ダウンロード

もっと読む

コピーしました