作品 · 04
My Portal · 個人ポータル
いま目にしているこのウェブサイト —— 銀白のパーティクル惑星、Apple ブルーのオービタルリング、スクロールで駆動される発表会型のナラティブ。Astro + Three.js + GSAP で構築、ビルド時の外部リクエストはゼロ。
なぜ作ったか
作ったものを並べ、考えを書き残す場所が欲しかった。そしてその場所自体が私の審美を体現しているべきでした——抑制、精度、そして少しの、朽ちないテクノロジー感。
参照系はすぐに決まりました。Apple のイベントページ:純黒の背景、極限までライトを当てられた「モノ」、巨大なタイポグラフィ、スクロール駆動のストーリーテリング。
3 度の做大工
このサイトで最も正直な物語は、その迭代史です(v1 から v19 まで)。
- まず足し算:Lusion 式のパーティクルフィールド、ブルームポストプロセス、銀河形態、流星、衝撃波……エフェクトを 17 版まで積み重ね、視覚的インパクトは上がったものの、全体の気配は「ナイトクラブ」へ漂い始めました。
- 次に引き算:「Apple ならどうするか」を物差しに作り直す——パーティクルはカラフルなノイズから銀白のすりガラス惑星へ。ページ全体に色は 1 つだけ(Apple ブルーのオービタルリング)。流星と衝撃波を削ると、ページは一瞬で静かになりました。
- 最後に骨格:作品セクションは「カードめくり」から連続するエディトリアル配置へ。データソースは GitHub API からローカル管理へ——ビルド時の外部リクエストはゼロ、サイトは third-party の生存に依存しなくなりました。
技術のポイント
- Astro 静的サイト:コンテンツはすべて Markdown 化(Content Collections + スキーマ検証)。作品や記事の追加は .md ファイル 1 つのコミット
- Three.js パーティクルフィールド:カスタムシェーダー(パーティクルごとのサイズと位相)、スクロール駆動の 3 形態モーフィング(惑星 ⇄ 銀河 ⇄ 波のグリッド)、ポインターが耕くバネ質点物理
- GSAP + Lenis:慣性のある滑らかなスクロール。すべての入場アニメーションは
prefers-reduced-motionに対応して段階的に緩和 - 外部リクエスト ゼロ:ビルド時に API を叩かない。統計とコピーはローカル管理
1 つの設計ルール
このプロジェクトが蒸留した最も価値あるルール:1 画面に許される主役は 1 つだけ。ヒーロー領域の主役は惑星、作品領域の主役は文字。ある要素が場面を奪おうとしたら、まず「この画面の主役か?」と問う——違うなら、暗く、小さく、後ろへ。