高評価アクションゲーム『Celeste』開発者が、“手触り“に関する極意を明かす。プレイヤーにストレスを与えないように取り組んだこと
現在PC/Nintendo Switch/PS4/Xbox One向けに販売中の『Celeste』。山登りと自己発見をテーマにした2Dアクションゲームである本作は、何度も死にながら少しずつ歩みを進める歯ごたえあるゲームプレイが特徴だ。一方で、キャラクターの操作性の良さにより、また絶妙なレベルデザインも手伝って、何度も挑戦しているうちに突破できそうだと感じさせてくれる。
キャラクターの操作性は、コントローラーを通じてプレイヤーが直接感じ取ることになる重要な部分。その“『Celeste』らしい手触り”はどのようにして実現させたのか、本作のディレクターMatt Thorson氏がいくつかのテクニックを紹介している。
コヨーテタイム
A short thread on a few Celeste game-feel things 🙂 I don't think we invented any of these.
1- Coyote time. You can still jump for a short time after leaving a ledge. pic.twitter.com/nMK9ZLYbhM
— Madeline Stephanie Thorson (@MaddyThorson) March 13, 2020
まずひとつ目は、キャラクターが移動中に足場から飛び出してしまっても、直後であればジャンプできる、いわゆる「コヨーテタイム」の導入。コメディアニメなどで崖から飛び出した動物キャラクターが、落下せず一瞬静止する表現にちなんで、海外ではこのように名付けられているそうだ。『Celeste』のようなアクションゲームでは、足場の端ギリギリからジャンプする必要のある場面が多い。プレイヤーの操作には微妙な誤差がつきもので、ここが厳密に判定されると落下ミスが増えるだろうが、コヨーテタイムがあるとその誤差を吸収することができる。
ジャンプ・バッファリング
2- Jump buffering. If you press and hold the jump button a short time before landing, you will jump on the exact frame that you land. pic.twitter.com/iPWS8fXbly
— Matt / Maddy Thorson ? (@MattThorson) March 13, 2020
次はジャンプのバッファリング。いわゆる先行入力のことを指しており、ジャンプして着地するわずか直前に、ジャンプボタンを押してホールドしておくと、着地すると同時(同フレーム)にふたたびジャンプすることができる。これはあえて先行入力するというよりも、前述した操作の誤差を考慮したものだと思われる。着地を待ってからしか入力を受け付けないとすると、ポンポンと軽快にジャンプして進めずストレスに繋がってしまうだろう。
ジャンプ中の重力操作
3- Halved gravity jump peak. This one is hard to see. If you hold the jump button, the top of your jump has half gravity applied. It’s subtle, but this gives you more time to adjust for landing, and also just looks/feels pleasant. pic.twitter.com/8VquDI9E3v
— Matt / Maddy Thorson ? (@MattThorson) March 13, 2020
3つ目は、ジャンプの最高点では重力を半分にすること。これはジャンプボタンをホールドして高く飛んだ際に発動するが、目視するのは難しいほど微妙なものだとか。重力が半分になると落下速度が落ちる。ジャンプが最高点に達した一瞬だけではあるものの、これによってプレイヤーが着地地点を調整する余裕が生まれるそうだ。また、見た目や操作感に楽しさをもたらす効果もあるとのこと。この重力操作を実現するにあたって、Matt Thorson氏が実際に使ったコードについては、こちらのツイートを確認してほしい。
キャラクターのスライド
5- Dash corner correction. Also tough to see, but if you dash sideways and clip a corner, it'll pop you up onto the ledge. pic.twitter.com/lOJm3jVY1Y
— Madeline Stephanie Thorson (@MaddyThorson) March 13, 2020
オブジェクトの角にキャラクターが衝突した際に、キャラクターを横にスライドさせることもおこなっているという。具体例としては、ジャンプしてオブジェクトの角に頭をぶつけた場合や、エアダッシュして地形の角にぶつかった場合。プレイヤーとしては、真上の壁に掴まろうとジャンプしたり、足場に飛び乗ろうとエアダッシュしているわけで、その意図を汲み取る形でポジションのわずかな誤差を修正してあげているのだろう。板のような薄い足場でも、エアダッシュして真横から衝突すればキャラクターは足場の上にスライドする。
リフトの勢いを貯める
7- Lift momentum storage. Jumping off a fast-moving platform adds the platform’s momentum to your jump’s speed. Madeline “stores” this momentum and will still get the boosted jump for a few frames after the platform has stopped. pic.twitter.com/l52GMeo3lV
— Matt / Maddy Thorson ? (@MattThorson) March 13, 2020
『Celeste』には、ギミックのひとつとして上に進んだり横に進むリフトが存在する。その上に乗ったり掴まると勢いよく動き出し、この勢いを使ってより高く飛んだり、より遠くに飛んでステージ攻略に活かすことができる。そして、キャラクターはこの勢いを“貯める”ことができるそうだ。つまり、リフトが終点で止まっても、まだその勢いを使ってジャンプできるということ。貯めることができるのは数フレームだけとわずかな時間だが、あるのと無いのとではプレイヤーの操作感に大きな違い生むだろう。
壁を蹴らずとも三角跳び
9- If you're doing a "super wall jump" (ie: a wall jump while dashing upward), this is a more precise and demanding maneuver so we let you do it from even further away (I think it's 5 pixels, which is more than half a tile!) pic.twitter.com/WMvJhrGOb1
— Madeline Stephanie Thorson (@MaddyThorson) March 13, 2020
また、本作では壁を蹴ってジャンプする三角跳びを多用する。一旦壁に掴まってからジャンプすることもできるが、そうでない場合、キャラクターが壁から最大2ピクセル離れていても三角跳びできるという。さらに、上方へのエアダッシュ中に壁を蹴ってより高く飛ぶスーパーウォールジャンプにおいては、壁から最大5ピクセル離れていても可能。これらもプレイヤーのジャンプ入力の誤差を意識した工夫だと思われ、後者については繊細な操作が求められるテクニックのため、より大きな余裕を持たせたそうだ。
ジャンプのバリエーション
…So if you perform the straight upward jump, then press away from the wall shortly after, the game refunds the stamina spent by the upward jump, and applies the horizontal wall jump force. It converts from one jump type to the other after the fact. pic.twitter.com/ECbrajhkVb
— Madeline Stephanie Thorson (@MaddyThorson) March 13, 2020
本作のキャラクターにはスタミナが存在し、壁に掴まって一定時間経つと疲れてずり落ちていく。また、壁に掴まった状態で上方にジャンプするとスタミナを多く消費するため、そのままふたたび壁に掴まるとすぐに疲れてしまう。しかし、上方にジャンプした直後に壁と反対側に方向キーを入力すると、ジャンプに消費したスタミナが返還されるとのこと。
ちなみに、壁に掴まった状態から壁を離れるように通常のジャンプした場合は、もともとスタミナは消費しない。また、横方向により遠く飛べる。これに対して上述の操作をした場合は、横方向への推進力は少なくなるが、より高く飛べると共にスタミナも消費しないジャンプになる。やや複雑なテクニックではあるが、これによりジャンプのバリエーションを増やすことに繋がり、本作にとってはとても重要な要素だという。
このほか、床や壁にあるトゲは触れるとミスになるが、その当たり判定は緩めにしているそうだ。さらに、トゲの先が向いている方向に、ジャンプやエアダッシュなどで移動中のキャラクターの推進力がある場合は、トゲに触れても死なないようにしていることが、開発者への返信の中で明かされている。
Matt Thorson氏が挙げたこれらの工夫の多くは、タイミングやポジションにちょっとした“ごまかし”を入れることで、プレイヤーの操作感を向上させることに繋がっている。同氏は、本作は非常に難易度が高いものの、これらの要素がプレイヤーに攻略できそうだと感じさせる大きな原動力になっているのではないだろうかと述べる。
こうしたテクニックは本作が初めて採用したものばかりというわけではなく、たとえば『Rivals of Aether』にも多く導入されていると、開発者のDan Fornace氏が返信の中で明かす。Thorson氏は、同作のような対戦ゲームの場合は、こうした“フェア”な要素により比重を置くことが大切だとコメントしている。
また、Moon StudiosでUIアーティストを務めたAlexander Brazie氏によると、先日発売された『Ori and the Will of the Wisps』の開発中には、『Celeste』を参考にしてこの多くの要素を取り入れたという。『Celeste』はアクションゲームを手がけるデベロッパーにとってリファレンス的な作品にもなっているようで、今回Thorson氏が共有した工夫は、ほかの開発者にとっても参考になるだろう。
Here is a screenshot of EXOK3! 🎮
Hope Twitter compression doesn't ruin it… pic.twitter.com/3kIoLN8gHZ
— Extremely OK Games (@exok_games) February 25, 2020
なお『Celeste』は、2020年3月時点で売り上げ100万本を突破したそうだ。また、Thorson氏はMatt Makes Gamesとして本作をリリースしたが、昨年同じメンバーでExtremely OK Gamesを設立。現在新作を手がけており、それは『Celeste』とはまた異なるタイプのゲームになるという(IGN)。『Celeste』はゲームメカニクス先行で開発を始めた一方、新作ではストーリー先行で取り組んでいるとのこと。現時点では詳細は不明だが、『Celeste』や『TowerFall』などで成功を収めた同スタジオの新作には注目が集まる。