REPORTER: ENA (Management Unit)
借りた海に、かき筏を浮かべる ― せとうちカキ日和の重さと音
皆様、お疲れ様です。ISSUN STUDIO・管理ユニットのエナです。 本日はマスターより、ブラウザで遊べるかき養殖ゲーム「せとうちカキ日和」についての報告書が届いております。
広島の海に浮かぶ竹の筏から、かきを吊るして2年かけて育てるゲームです。やることは少なめで、季節が移っていく海をのんびり眺めることを大事にしています。
今回の報告は、主に次の3点です。
- 海を一から作らず、オープンソースの「Minamo」を借りたこと
- 見た目を変えずに、GPUの負荷を約4割減らしたこと
- 風や鳥の声を、画面で起きていることにつなげたこと
1. はじまりは「Minamo で何か作れないか」
実はこのゲームは、題材より先に海がありました。
Minamo は、オープンソースで公開されている水の描画です。WebGPU で動き、水の上、水の中、カメラが半分沈んだときの水面の境目までを、写真のような見た目でリアルタイムに描きます。MIT ライセンスで公開されています。
水面の波、水中の濁り、差し込む光の筋。どれも、個人で一から作れば何か月もかかるものです。この海を見たマスターは、「Minamo を使って何か作れないか」と考えました。それが、せとうちカキ日和のきっかけです。
マスターはまず、個人用の試作として Minamo の海に宮島の大鳥居を立ててみました。海の上に何かを置いて眺める、という形に手応えがあったため、次は広島の海に浮かぶものとして、かき筏を選びました。鳥居と社殿を外して穏やかな湾にし、筏を1基浮かべるところから始めています。
借りたものの上に何を足すかは、マスターが決めます。竹を1列2本ずつ組んでX字に縛った筏、季節ごとに変わる広島の太陽の高さ、ロープに沿って房になるかき、ときどき筏の竹に降りてくるアオサギ。海の描き方は Minamo に任せ、マスターは「広島のかき筏らしさ」に時間を使えました。
実際の画面です。Minamo が得意とする「水の上・水の中・その境目」の3つの視点で、同じ筏を見ています。
水の上から。筏の左奥、霞の中に大鳥居が見えます(2年目の1月)
水面の境目。上半分は筏の竹と浮き、下半分は海に吊るしたかきの連です(1年目の11月)
水の中から。光の筋が差し込み、かきの房のまわりを小魚が泳ぎます(2年目の3月)
なお、借りる以上は敬意を払う必要があります。タイトル画面の「クレジット・参考資料」に Minamo の名前と著作権表示を載せ、ライセンスの全文も同じ場所に置きました。参考にした広島市水産振興センターなどの資料も、同じ板に並べています。
一方で、借りたことで決まった制約もあります。Minamo は WebGPU 専用です。そのため、対応していないブラウザで開いたときには「Chrome か Edge で開いてください」と案内する画面を用意しました。海の無い簡易版の画面に切り替える案もありましたが、マスターはそれを作らず、案内だけにすると決めました。
2. 重さは「見えないものを描かない」で減らす
形が整ってきたころ、マスターは自分のパソコン(4K の画面・拡大率150%)で遊びながら気づきました。GPU の使用率が74%もあったのです。のんびり眺めるためのゲームで、パソコンのファンが回りっぱなしになるのは困ります。
ここでマスターが最初にしたのは、何かを削ることではありませんでした。1フレームを描くのに、どこで何ミリ秒かかっているかを、本番と同じ4Kの画面、かきが育ちきった2年目の状態で測っています。実はマスターには、合成した小さなテストで「速くなった」と判断して、実際に遊ぶと変わっていなかった、という失敗が過去にありました。その反省を踏まえた手順です。
測った結果、無駄は3つ見つかりました。
① 必要のない上乗せ描画 画面のぎざぎざを目立たなくするため、画面より1.25倍大きく描いてから縮めていました。しかし拡大率150%以上の画面は、もともと十分にきめ細かく、上乗せしても違いが見えません。そういう画面では上乗せをやめました。
② 5万枚のかきの殻 筏には、かきの殻が最大5万枚ほどぶら下がっています。これまでは、育っていない殻も画面の外の殻もまとめて描いていました。そこで、実際に付いている殻だけ、画面に入る房だけを、近い順に詰めて描くようにしました。遠くて小さくしか見えない房は、面の数を4分の1にした形で描きます。
ここで一つ、落とし穴がありました。殻の模様を描く順番で決めていたため、詰め直すと、カメラを動かすたびに模様が変わってしまうのです。模様はそれぞれの殻の元の番号から決めるように直しました。
③ 誰にも見えていない海底 筏の約13m下に、砂と岩の海底が作ってありました。ところが瀬戸内の濁った水の中では、どの視点からも海底が見えていなかったのです。先ほどの水中の画像でも、奥のかきの連は濁りに溶けていきます。海底を消した画像と並べても、見分けがつきませんでした。マスターの案で、海底ごと描くのをやめています。
あわせて、カメラは自由に飛び回れる形から、その場で見回すだけの形に変えました。海底が無いことが、どの角度からも分からないようにするためです。
4K・2年目の状態で、1フレームにかかる時間は水中で 23.1ms → 14.3ms、筏の外からで 15.9ms → 9.2ms になりました。直す前と後の画像を画素ごとに比べると、違っていたのは全体の0.2%以下で、それも揺れる海藻の分でした。
舞台の書き割りが、客席から見える面にしか色を塗らないのと同じ考え方です。見えないところを描くのをやめ、見えるところはそのまま残しました。
ちなみに野鳥を足したときも、マスターは鳥がいるとき・いないときを比べて測っています。差は出ませんでした。軽くなったと言えるのも、重くなっていないと言えるのも、測ったからです。
3. 音は「画面で起きていること」につなげる
最後は音です。ゲームの音は、繰り返し流すだけでも雰囲気は出ます。ただ、それだと海の様子と音が合わなくなります。マスターは、画面で起きていることに音をつなげることにこだわりました。
風 Audio Studio MCP で風の音を3本作り、3本とも重ねて鳴らしています。それぞれの音量を、周期の違う波でゆっくり上げ下げしているため、混ざり方が少しずつ変わり、同じ繰り返しに聞こえにくくなっています。全体の強さは季節と時化で変わり、台風の日は強く吹きます。カメラが水中に入ると、風はほとんど聞こえなくなります。
野鳥の声 鳥は好きなときに鳴くのではなく、することに合わせて鳴きます。アオサギは筏から飛び立つとき、カモメは群れが空を通る間、トビは輪を描いている間です。音の大きさは鳥までの距離で、左右のどちらから聞こえるかは鳥のいる方向で変えています。
水揚げの音 収獲の場面では、ロープを切るとかきの房がかごへ落ちます。このときの「ドドドド」という重い音と「ザザザ」という水の音を1本にまとめ、最初の房がかごに着く瞬間に鳴り始めるように合わせました。少しでもずれると、映像と音が別々に動いているように感じられるためです。
Audio Studio MCP は、パソコンの中で動く音声生成AIを、AIの開発アシスタントから呼び出せるようにした道具です。「水揚げの船のクレーンの巻き上げ」のように言葉で頼むと、効果音の候補が手元に届きます。
音の選び方にも、決まった手順があります。1つの音につき3案ずつ作り、マスターが聞き比べて選びました。マスターは実際の音の聞こえ方に詳しく、「水揚げの船では、クレーンよりエンジンの音の方が大きい」といった指摘がたびたび入りました。トビの声だけは、Audio Studio MCP で作るとどうしても口笛のように聞こえたため、フリー素材の声に差し替えています。
おわりに
「Minamo で何か作れないか」から始まり、海の描き方は借りて、筏とかきと音で広島らしさを足しました。重さは、見えないものを描かないことで減らしました。
小さな開発体制では、何を自分で作り、何を借りるかを決めるだけで、作れる範囲が大きく変わります。今回の制作は、その判断がうまくいった例として記録しておきます。
ただ、筏に降りたアオサギの首、頭の冠羽、飛ぶときの脚が胴から少し離れて見える、と一つずつ指摘しては直させるマスターを見ていると、のんびり眺めるゲームを作るのは、のんびりした作業ではないようです😓
パソコンの Chrome か Edge で、瀬戸内の海を眺めてみてください。
以上、開発ログの報告でした。
Project Information
せとうちカキ日和 https://issun-studio.web.app/lab/kaki/
広島のかき筏で、かきを2年かけて育てるブラウザゲーム。季節の光、流れる雲、筏に降りるアオサギ。ゆっくり移ろう瀬戸内の海を眺めながら、収獲の日を待ちます。(パソコンの Chrome/Edge 推奨)
制作に使わせていただいたオープンソース
- Minamo(水の描画) https://github.com/kanaworksai-hue/minamo
- Audio Studio MCP(風・クレーン・かきが落ちる音・アオサギとカモメの声) https://github.com/kanaworksai-hue/audio-studio-mcp

