🚀

💫 デスクトップで動く『へたれ時計』

に公開

🕐 はじめに

Pythonとライブコーディングの学習を兼ねて、
ちょっと変わったデスクトップ時計を作ってみました。

その名も――

💚 『へたれ時計』

💡 コンセプト

この時計は、ただの時計ではありません。

針が“重力”に負けて下を向いてしまう

クリックすると数秒だけ復活して立ち上がる

そしてまた、ゆっくりへたれて垂れ下がる

まるで人間のように、頑張ったり、へたれたり。
そんな“感情を持った時計”です。

「へたれてもいい。大切なのは、また立ち上がること。」

⚙️ 開発環境
項目 内容
OS Windows 10 / 11
言語 Python 3.11
GUI Tkinter
画像処理 Pillow(PIL)
効果音 winsound(クリック音)
配布形式 PyInstaller(exe化対応)
🎨 見た目と特徴

背景は丸いガラス風PNG(へたれ様.png)

針はしなりながら重力に従ってへたれる

クリックで一時的に“復活”

上部に緑色ポップ体のデジタル時計

背景透過&右クリックでドラッグ移動可能

💻 コード解説(抜粋)

ここでは、「へたれる動き」を再現する部分を紹介します。
フルコードは後半にまとめています。

🧭 重力で針が垂れ下がる処理

針の角度と速度を更新して、
「重力」「バネのような復元力」「空気抵抗」を再現しています。

for attr in ['hour', 'min', 'sec']:
angle = getattr(self, f"{attr}_angle")
vel = getattr(self, f"{attr}_velocity")
diff = 90 - angle
acc = diff * 0.04 # バネ係数(引き戻す力)
vel += acc
vel *= 0.975 # 減衰(空気抵抗)
angle += vel
setattr(self, f"{attr}_angle", angle)
setattr(self, f"{attr}_velocity", vel)

放っておくと針は自然に“真下”を向きます。
物理式で「へたり」を再現しています。

⚡ クリックで一時的に復活

クリックすると針が正しい時刻に戻り、
5秒ほど元気に動いてからまたへたれます。

def on_click(self, event):
self.clicked = True
self.recover_timer = 300 # 約5秒
winsound.PlaySound("click.wav", winsound.SND_ASYNC)

クリック音「click.wav」があると“カチッ”と鳴って気持ちいいです。

🌈 針の“しなり”を再現

針の中央点を少しズラして描画し、柔らかく曲がって見せています。

def flex_coords(self, angle, length, bend_factor=0.1):
rad = math.radians(angle)
x_end = self.center + length * math.cos(rad)
y_end = self.center + length * math.sin(rad)
nx = math.sin(rad)
ny = -math.cos(rad)
curve = bend_factor * (abs(90 - angle) / 90) * 28
x_mid = (self.center + x_end)/2 + nx * curve
y_mid = (self.center + y_end)/2 + ny * curve
return [self.center, self.center, x_mid, y_mid, x_end, y_end]

針が下がるとき、ほんの少したわむように見えるのがポイント。

💚 デジタル時計(ポップ体+緑)

Windows標準フォント「HG創英角ポップ体」を使って、
発光感のある緑色で時間を表示しています。

self.digital_label = self.canvas.create_text(
self.center, self.center - 60,
text="--:--:--",
fill="#00cc44",
font=("HG創英角ポップ体", 18, "bold")
)

💾 exe化する方法(Windows)

Pythonを入れていないPCでも動かすには以下👇

pyinstaller --noconsole --onefile --add-data "へたれ様.png;." --add-data "click.wav;." GravityClock.py

dist フォルダに
GravityClock.exe が生成されます。
これを実行すると、デスクトップに“へたれ時計”が浮かび上がります。

☕ まとめ

この時計は、Pythonとライブコーディングの練習として作りました。
ですが、作るうちに「ただの時計」以上の存在になりました。

正確さよりも、人間らしさ。
へたれても、また立ち上がる。

🧠 学んだことまとめ

Tkinterでも柔らかいアニメーションは作れる

数学(バネ運動・角度制御)で表情が出る

GUI × 物理 × 演出 で作品感が生まれる

PyInstallerで誰でも配れる形にできる

💬 へたれのひとこと

「下を向いてもいい。大切なのは、また立ち上がること。」


https://drive.google.com/file/d/1l_EyKskbtS5YAwAxXSwjElPqbMkiWL2N/view?usp=drive_link

Discussion