---
title: "着ぐるみ天気予報「FursuitWeather」を公開しました | C#もぐもぐ"
description: "着ぐるみ（fursuit）で活動するのに適した天気かどうかがわかるWebサービス「着ぐるみ天気予報（FursuitWeather）」を公開しました。暑さ指数（WBGT）に着ぐるみの着衣補正を加えた活動判定を中心に、何がわかるのか、どう使うのか、位置情報と無料枠の扱いを紹介します。"
url: "https://blog.223n.tech/posts/243/"
---

# 着ぐるみ天気予報「FursuitWeather」を公開しました

2026年9月1日

[個人開発](https://blog.223n.tech/tags/%E5%80%8B%E4%BA%BA%E9%96%8B%E7%99%BA/) [Cloudflare](https://blog.223n.tech/tags/Cloudflare/) [TypeScript](https://blog.223n.tech/tags/TypeScript/) [Program](https://blog.223n.tech/tags/Program/) [着ぐるみ](https://blog.223n.tech/tags/%E7%9D%80%E3%81%90%E3%82%8B%E3%81%BF/) [アクセシビリティ](https://blog.223n.tech/tags/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B7%E3%83%93%E3%83%AA%E3%83%86%E3%82%A3/)

着ぐるみ（fursuit）で活動するのに適した天気かどうかがわかるWebサービス「着ぐるみ天気予報（FursuitWeather）」を公開しました。

2026年8月17日にv1.0.0を公開し、執筆時点の最新版はv1.15.1です。

公開URLは<https://fursuit-weather.223n.tech/>で、無料で利用できます。

## 着ぐるみで活動するときの不安

着ぐるみで活動する時間の上限には、自治体の運用マニュアル（1回30分以内、夏季は10〜20分）などが示す目安があります。

ただし、その日の気温や湿度、日射でどこまで短くすべきかを毎回見積もるのは難しいものです。

この見積もりを予報から自動で行うのが、着ぐるみ天気予報の役割です。

## 何がわかるのか

### 着ぐるみ向けの暑さ判定と活動時間の目安

判定の中心は、気温と湿度、日射量、風速から求める暑さ指数（WBGT）です。

WBGTは環境省の熱中症予防情報サイトと同じ推定式で計算します。

着ぐるみの熱負荷は、厚生労働省の着衣補正値で「フード付き蒸気不透過つなぎ服」に相当するとみなし、推定したWBGTに+11℃を加えます。

補正後のWBGTを環境省と同じ5段階に当てはめ、連続活動時間の上限目安を示します。

- **ほぼ安全**（21℃未満）：45分
- **注意**（21〜25℃）：30分
- **警戒**（25〜28℃）：20分
- **厳重警戒**（28〜31℃）：10分
- **危険**（31℃以上）：着用中止

基本は「30分着たら30分休む」で、上限は先ほどの運用マニュアルなどを参考に段階化した目安です。

屋内の判定は空調のない会場を想定した参考値で、「冷房必須」「冷房推奨」「冷房なしでも可」の3段階で表示します。

気温15℃未満では体感温度による低温判定を併用します（推定式が夏季日中の観測データへの回帰式で、低温域では精度が落ちるためです）。

着ぐるみは低温でも発熱し、日射の強い10℃台で暑熱側が警戒帯に入ることがあるため、低温判定だけに切り替えず深刻なほうを採用します。

判定は今日から明後日までの3日間を1時間ごとに表示します。

### 洗濯乾燥指数とそのほかの注意

洗濯物の乾きやすさは、気温と湿度、風速から日ごとに5段階で示します。

着ぐるみの全身洗いには扇風機併用で24〜48時間の乾燥目安を付け、指数30未満の日はカビ警告を出します。

このほか、乾燥期の静電気の起きやすさと、黄砂やPM2.5による空気のよごれも日ごとの指数で示します。

強風と雷、急な暑さ（暑熱順化前）の注意、環境省の熱中症警戒アラートの発表状況も表示します。

## どう使うのか

### 地点やイベントを選んで共有する

地点は主要12都市の一覧と現在地、都市名や郵便番号の検索、お気に入りから選べます。

最後に表示した地点はブラウザ内へ記憶し、次回は自動で表示します（現在地を除く）。

表示中の予報はURLで共有でき、日付や時間帯を含めれば開いた側は最新の予報で同じ日時の計画を再現できます。

サイトの運営者があらかじめ登録したイベントを一覧から選ぶと開催地の予報を表示し、開催日が予報範囲内ならその日のタブへ自動で切り替わります。

`?event=イベント名`の固定リンクを告知ページに載せれば、参加者はリンクを開くだけで開催地の予報にたどり着けます。

### 当日の運用を支える道具

着用タイマーは、連続活動時間の上限までをカウントダウンし、休憩の目安を示します。

熱中症が疑われるときの手順をまとめた「もしものとき」ページへの導線も付けています。

見守りモードは、画面を前面で開いている間だけ10分ごとに予報を更新し、判定が変わると画面のハイライトと短いチャイムで知らせます。

当日ボードは、複数の着用者をニックネームで登録して1台の端末で見守る掲示ボードです。

### 会場のモニターに掲示する

会場表示モードは、イベント会場のモニターへ予報を常時掲示する自動表示ページで、4枚のスライドを自動で切り替えながら定期更新します。

自動で動き続けるページのため、一時停止ボタンで止められます。

### 外部のサイトやアプリから使う

告知ページには当日の判定のSVGバッジを`<img>`タグ1行で貼れます（対象は主要12都市と登録済みイベントの開催地）。

登録済みイベントの一覧はiCalendar形式でも配信し、各予定に開催地の予報リンクを含めます。

予報データはCORS対応のJSON APIとしても公開しています。

## 位置情報の扱い

現在地の座標は取得直後に小数2桁（約1km）へ丸めてから使い、ブラウザ内の記憶とURLのどちらにも残しません。

予報は約5kmメッシュのため約1kmへ丸めても結果は変わらず、APIリクエストや共有URLに自宅を特定できる精度の位置は流れません。

サーバー側に利用者のデータを持たない構成ですが、Cloudflareの運用ログにはURLがクエリ文字列ごと残り、障害時の切り分けログに出る郵便番号や検索語は約1kmの丸めより細かい値になりえます。

## 技術的なこだわり

### 技術スタック

- Cloudflare Workers上で動作し、静的アセット（UI）とWorker（API）の2層構成です
- 言語はTypeScriptで、フロントエンドはフレームワークを使わない素のJavaScriptです
- 気象データはOpen-Meteoから取得します（気象庁MSM/GSMモデル由来、CC BY 4.0、非商用利用）

### データ提供元の無料枠を守る仕組み

Open-Meteoの無料枠は1日1万コールで、上流（データ提供元のOpen-Meteo）への問い合わせがこれに収まるよう、複数の歯止めを設けています。

同じ地点と日数のリクエストが30分以内に同じエッジ拠点（利用者に近いCloudflareのデータセンター）へ届いたときは、上流へ問い合わせず保存済みのコピーから応答します。

サーバー側でも座標を小数2桁へ丸めるのは、上流のURLがキャッシュのキーになり、任意精度の座標を通すと問い合わせが際限なく分かれるためです。

SVGバッジの地点を限定しているのも、埋め込み先の閲覧ごとに自動でリクエストが発生し、第三者が無料枠を圧迫できてしまうためです。

座標の丸めとバッジの地点限定をCloudflareのゾーン設定（WAFやレート制限）ではなくコード側に置いているのは、障害の切り分け用に残しているworkers.devのURLがゾーン側の対策を経由しないためでもあります。

### アクセシビリティ

安全に関わる情報を扱うため、判定の段階は色だけで区別せず、記号（◎○△✕と禁止マーク）と文字を必ず併記します。

低温側は温度計アイコンで形も分け、配色はカラーユニバーサルデザインの推奨色をベースにしたパレットでWCAG AAのコントラストを満たすよう設計しています。

多くの音声合成が「着ぐるみ」を「ちゃくぐるみ」と誤読するため、表記は変えずに読み上げだけ「きぐるみ」へ分離しています。

### 品質を支える仕組み

- サーバー側コードは、ステートメントと行、関数のカバレッジ100%をCIで強制しています
- ブラウザ側のJavaScriptはPlaywrightのE2Eテストで実挙動を検証し、配信する5ページはaxe-coreの監査で違反0件を保ちます
- 文言やしきい値の複製箇所は、単一の情報源とのずれを60件以上のテストで機械検証します

## 免責事項

本予報は目安であり、安全を保証するものではありません。

体調や装備、活動内容により安全な活動時間は変わります。

着ぐるみ活動は必ず2人以上で行い、体調の変化を感じたらただちに中止してください。

## おわりに

着ぐるみ天気予報は、着ぐるみで活動する人の判断材料を気象データから出すサービスです。

興味を持たれた方は、ぜひ次のリンクをご覧ください。

- サイト：<https://fursuit-weather.223n.tech/>
- ソースコード：<https://github.com/223n/FursuitWeather>
- ライセンス：[Apache License 2.0](https://github.com/223n/FursuitWeather/blob/main/LICENSE)
- Tsukutta：<https://tsukutta.app/apps/4b70b5bd-afb2-401a-a0ee-350c19f6c9da>

[記事一覧に戻る](https://blog.223n.tech/posts/)
