最近 Celeste の RTA(Speedrun) の練習をしています。
Celeste は練習や知識が活きやすいゲームで楽しいのですが、ある程度行くとどうしてもタイムを縮めるための壁に当たることがあります。
今回、その障壁を解消するためにシステムを開発しました。また、オープンにしてどなたでも利用してもらえるようにしたので今回はその紹介をします。
機能
早速ですが、システムについて説明します。
このシステムでは RTA の動画をアップロードすることで部屋移動、または Flag を通過したタイミングを自動で検出しそれぞれの区間で要した時間を解析します。
要するに部屋ごとのタイムを一覧できるということですね。
以下に出力の一部をサンプルとして貼ります。
マデリンが部屋の境界を通った時のスクリーンショットおよびその時点のタイマー(スクショの切り取りおよび OCR で読み取られたもの)がそれぞれ表示されます。
タイマーの差分を取ることで部屋ごとの所要時間が計算できる、という寸法です。


上記の画面はこの動画を入力した結果の一部です、 youtu.be
サンプルの全体像は以下から参照できます。
(実際にシステムを使う場合は HTML ファイルをダウンロードして各自のブラウザで閲覧してもらう形になります。)
https://greenteasocha.github.io/celeste-analyzer-result-sample/sample.html
画面は部屋とタイムの対応を確認してもらうほか、検出された区間端点やタイマーを読み取った数値に誤りがあった場合に修正してもらう UI も兼ねています。
どうしても精度に一定の限界があったためこのような対応になりました。
上記サンプルは自由に触ってみてもらって構いません。(他の人の閲覧に影響を与えません。)
利用には以下の Discord サーバーへの参加をお願いしています。
詳しい利用方法なども案内していますので、興味がある方はぜひお願いします。
練習への組み込みかた
出力された計測値の活用方法として、主にラン同士の比較を想定しています。
自分の記録動画と他のプレイヤーの記録動画を比較して短縮余地がどの部屋にあるか知る、
もしくは自分の複数の記録を比較して sum of best を割り出したりよくロスしがちな区間を明確にする、といった用途です。
full run ではなくチャプター/サブチャプター単位の動画を解析し、短い区間に着目した繰り返し練習や strat (ルート)分析および改善のサイクルに組み込むことを想定しています。
(システム的に長すぎる動画は扱えないのもあり )
実際に自分が練習していた時のサイクルを活用例として示します。
- 自分のタイムと目標タイムの動画をシステムに入力します。(参考動画は実際の目標タイムよりいくらか早いものを選ぶとよいでしょう。)
- 出力を csv として保存できるので、適当なスプレッドシートなどで比較表を作ります。
- プラスがついている部屋のうち理由が分からないもの(ミスしてないのに遅い)については複数の動画を見るなどして strat の情報収集をします。
- 目標タイムとの差分を回収できるように見直す部屋を選び、区間練習や本走をします。
- 早くなります(楽しい!)

上記は 5B 2:30 を目標に練習していた時の実践例です。
ちょっとだけ妥協... と思っていた部屋が実は取り返せないレベルの大ロスだったので strat 見直しを行い、デスや操作ミスを自覚していたロスも練度を上げて回収することで目標タイムが出ました。
また「速いサイクル見逃し」の部屋については、速いサイクルを目指すとかなり難易度が上がるかつ他の部屋の改善で目標タイムに届くということが分かっていたので無理をしない strat を採用することができました。
できるだけ面倒を減らしたい!という方針で開発していたので、もしよければ実際に試してみてもらえると嬉しいです。
ちなみにですが、そもそも目標タイムをどう設定しよう?という点に関しては以下のスプレッドシートがとても参考になります。
Celeste Any% Practice Sheet Template - Google スプレッドシート
開発の経緯
ここからはおまけになるのですが、なぜ自分がこういうシステムが欲しいと思ったか、そして実際に作ってみたかを書きます。
Celeste の RTA なのですが、中級者くらいのタイム帯になると練習の進め方がわからなくなってくるな、と感じていました。
というのも最終的にタイムを縮めるという一つの目標に対して取れるアプローチがどこにあるのかわからなくなってくるためです。
まだ主要なアクションとかを身に着けていなかったり明らかにミスしたなと感じたり難しいテクニックはまだ取り入れていないので仕方ないと自覚していたり... という場合はいいのですが、ひとまず満足のいくランができた後にどう改善するかが急に難しくなると感じます。
ルートも覚えてミスなどもなかったと思うけどなぜかそんなに早くない、さてどうする?といった状況ですね。
おそらくそこからは speedrun.com に投稿されている記録から自分の目標タイム程度のものを探し、自分と違う点を探していくという方法が主流です。ですが、これが結構面倒です。
まずそもそも差がついている区間と原因を特定することですね。
どのサブチャプターが負けているのか?→そのうち前半が遅いのか後半か?→実際どの画面が遅いのか?→遅い画面で違う操作は何か?
といったステップを踏む必要がありけっこう根気がいります。
またここに潜む罠として「基礎動作(movement)」とか「Celeste 自体の上手さ」とか呼ばれる要素があり、strat は同じなんだけど各部屋 0.x 秒の微差が積み重なって区間として3とか5秒の差として現れているパターンもあります。
こういう場合は「頑張って原因を探そうと思ったが、結局今はできることがない」という結論になってしまうんですよね。
そして strat の違いを見つけることとともに、その strat を練習してみる/実際のランでも使うのがどれくらい意味があるか?の判断も難しい所です。
- 導入してどの程度縮むかの見積もり(効果が保証されていなくても取り入れてみるというマインド)
- できそうなのか難しすぎるかの嗅覚
が必要かなと。
ということでいろいろと必要な作業や経験値が求められており Any% 30分前後まで来ている人はこの当たりを持っている雰囲気を感じるのですが、RTA を始めてみて 40-50 分付近のプレイヤーだとここが停滞やモチベーション低下のきっかけになってしまう可能性を感じます。というより、自分がまさにそんな感じですね。
ここを乗り越えるには
- 情熱や時間をある程度注ぎ込むことができる
- それを乗り越えた人に教えてもらう機会が多い
- なんかゲームがめっちゃ得意
などの要因が必要っぽそうなのでこの当たりの障壁を下げて持続可能な RTA ライフの助けになればな~と思った次第でした。
簡単に拾えるタイムを拾う、むやみな練習が非効率な部分には見切りをつけて進むことで楽しいまま Celeste が上手くなれる範囲を広げることができたらよいなと考えています。
ちなみに、Celeste コミュニティはゲーム自体の仕様に加えて、情報共有、ツールの開発、イベントの開催などが献身的な人々によってかなり活発に行われおり、ここまでの記事内容と矛盾するようですがすでにかなり持続可能かつ大規模なものになっていると感じます。
その様子をしばらく見てきたので自分もその一部として貢献してみたい、という欲求もあります。
環境をより良くするために、もしよければ使ってみてフィードバックなどをいただけると嬉しいです。
おわりに
色々書いたのですが、実際そんな色々な人に使ってもらうのも難しいなとは思っているので7割日記や振り返り目的で書いてます。
自分が欲しいものを自分で作ることの楽しさですでにかなりの充実感は得ていて、開発に費やした時間は自分が使って回収することでナンボですね。
Celeste に限らずなのですが、面倒だな~と思うことに対して改善ツールなどを作成することで満足することで本来やるはずだったことに戻らないみたいな前科があるのでこれを使ってちゃんと早くなりたいと思います。
結果が出ればシステムの有効性も証明できて一石二鳥!
今年は山の日並走イベントにも出ます!リラーニングの過程でやっぱり sub30 って遠いんだなと実感したりしている最中ですが、できるところまで仕上げたいですね。
それでは以上になります。ありがとうございました~
















































