推しアイデア
リアルでラッシュバトルしようぜ!
―
リアルでラッシュバトルしようぜ!
2月28日に、アーケードゲーム『ジョジョの奇妙な冒険ラストサバイバー』の全国大会があるから。
web transport, eks, apple watch, core ml
Apple Watch のセンサーデータをトリガーに、iOS アプリ経由で Rust 製の低遅延同期サーバーと通信し、Web UI 上でアバター同士をリアルタイムにラッシュバトルを体感できる、『夢』 です。
スタート画面

対戦画面





AppleWatchで「時間軸、ユーザー加速度、回転速度」の情報を持つCSVから、CoreMLでモデルを作成。ユーザーがパンチしたり、パンチに似た他の動作をしたりした時、動作を識別し、適切な操作を可能にし...ようとしていました。(後述)
・.claude/CLAUDE.md + .claude/rules/ で、基本の規則とコーディング規則を分けた。rules/以下の方はファイルパスや言語に対して自動適用される。
・claude-code-action を使った PR 自動レビューワークフローを入れた。人間が怒られる時代になってしまった。(´・ω・`)

2/16に出ていた記事 を読んで導入してみた。
・PR マージ後に README の更新要否を判断して、よしなに更新 PR を作成してくれるやつ:
立ち止まれてえらい:

・毎日定時にリポジトリの状態を分析し「Repo Report」としてIssueを発行してくれるやつ:
report ラベルをトリガーに Discord へ自動配信する仕組みも組み合わせた:

Nano Banana 2にスプライト画像を作らせた。

topazのmdを、actionsで指定したmdの内容で置き換え自動更新する仕組みを作成しました。
topazの認証フローを理解し、actionsのflowとして公開しています。 詳しくはこちら
Apple Watchでの開発がキビしすぎる 最初はパンチ/防御/Core MLを使った機械学習を予定しており、専用のデータ収集用アプリなども作っていたのですが、途中からどのメンバーもApple watchとの接続が不安定になり、学習データの取り出しができなくなりました。 加速度を取得するシンプルな実装をTest Flightで配信するシンプルな方針に切り替えて、ことなきを得ました。(大事!)
・
・ProtoBufferを初めて開発で使った。面白い。 ・CoreMLを初めて使った。Apple製品だけで速攻で学習モデルが作れるのすごい。 ・iOSでネイティブにHTTP/3 + QUICでWebTransportサーバーに接続可能にした。
・ProtoBuffer, WebTransportが初めてでした。 ・ゲームを作り/Pixi.jsが初めてでした。状態管理が難しかったけど、スプライトが動いて超嬉しかったです。 ・AI活用点を稼ぐために最新の公式ドキュメントを読みました。 ・中間発表時間使いすぎてすみませんでした...