この記事を一行でまとめると・・・
ヒットストップは爽快感を効果的に上げられる演出だけど、度が過ぎると悪影響だから気をつけてね!という話。
背景
気持ちよく物がぶっ壊れるゲーム作りたーい!
と思ったことある方も多いのではないでしょうか。・・・いますよね?
「発射した弾が物にあたって大爆発する」とか「敵に思いっきり斬撃してダメージを与える」とか、人間はそういった破壊的な衝動を快感とする傾向があるようです。
この時、破壊する時に爽快感を増すために大切な要素が「破壊演出」です。
私のゲームでは、破壊するとたいていの場合爆発エフェクトと爆発SEが流れることが多いのです。
例えばこんな感じ。
これは、2021/07/30に公開した「アゲアゲ君と世界を裏切った私が最後に見た幻想」というゲームの製作中のツイートです。
GIF動画なので音が出ないのですが、SEも実装しております。
当初はこのままでも良いかなと思っていたのですが、「なんかもっと破壊時の爽快感を高める余地がありそうだぞ」と漠然に感じておりました。
そこでふと破壊時に一瞬だけ画面を停止させるヒットストップ処理を入れてみようと思い立ったのです。
そういえば、身の回りにあるゲームも敵にヒットした瞬間に画面が停止する処理が入ったりしています。これは真似するしかない!
ヒットストップ実装
・・・ということで実装してみたツイートがこちら。
ここからは動画を上げていたので、SE込でお楽しみください。
このゲームは1秒間に30フレーム描画しておりまして(つまり、30fpsということです。)
唐揚げがバットにあたった時に4フレーム(0.13[s])、的にあたった時に9フレーム(0.3[s])画面停止処理を入れています。
結構気持ち良い破壊が表現できたのではないでしょうか。
爆発エフェクトは停止していないのですが、エフェクトは止めない方が気持ちよさそうですね。
ヒットストップにより視線が爆発に向かうので、その上に表示される得点の視認性が向上するという副産物もありました。
ヒットストップ、これは良い技法を身に着けたぞ・・・!
ヒットディレイという方法もある
先程のツイートの返信に「実は、停止するよりもスローモーションで動かした方が気持ちが良いよ!」というコメントを頂きました。ヒットストップならぬ、ヒットディレイですね。
なるほど、早速実装してみましょう。
停止処理をしている処理を「3フレームで1フレーム分動作する処理」に変えてみよう!と思って実装したのがこちらです。
確かに、ヒットストップよりも気持ちがよいかもしれない。でも30fpsにしちゃったので、いかんせん動作が粗くてガクガクな動きになってしまっています。現状の30fps仕様だとここまでが限界か・・・!
60fpsくらいで試すともっと気持ちよく見えるのかもしれません。コンシューマーのゲームって60fps動作が多いみたいなので。
私が使用している描画ライブラリPIXI.JSは60fpsでもぬるぬる動くことがウリの一つなのですが、iPhoneの標準ブラウザSafariを使用して低電力モードにすると処理落ちが発生することを過去に確認していたので、苦肉の策で30fpsで設計することにしていたのです。無念!
ヒットストップが操作性に悪影響を及ぼす
とまあ、こんな感じで実装を進めていきましたが、このゲームのテストプレイ中の指摘でこんなコメントがありました。
「普通に処理落ちかと思った!やりずらい!」
「ヒットストップで動作も止まるのがわずらわしい!」
なるほど。確かに動作中にヒットストップが頻繁にかかると、これは操作がやりづらくなります。
特にひどい例がこのアゲアゲ君の別ステージで発生しました。
このステージでは、大量のからあげをアゲアゲ君がレシーブしていくのですが、頻繁に発生するヒットストップで唐揚げ全体が停止して、アゲアゲ君がレシーブしずらくなっています。
一応この段階でも操作性を考慮して「アゲアゲ君はヒットストップ中も動作する」という仕様にしていたのですが、ここまで画面全体が一時停止されると、操作中に悪影響がでるようです。
ヒットストップが多すぎると、ガクガクしすぎて遊びづらくなる
この問題の解決策として、最終的には以下のようになりました。
衝突したものだけヒットストップすればいい
衝突物だけ停止すればいいじゃん!
たしかにそうです。一瞬止まるだけでも、十分に視覚的な効果はありそうです。
ということで実装してみました。
ターゲットに衝突時に唐揚げだけが一瞬停止します。
操作する周辺はカクツキ感がなくなり、操作性が大幅に向上しました。
ちなみに、最初の野球面はこんな感じになりました。
ヒットストップをからあげに限定したことで、スイスイと遊べるようになりました。
停止フレーム数も減らして3フレーム(0.1[s])にして、しつこくならないようにもしました。
演出は基本的におおげさに演出すると良い事が多いのですが、ヒットストップは目立たない程度にすることがどうやら大切なようです。
まとめ
・ヒットストップは破壊時の爽快感を高める効果がある
・ストップの代わりにスローにしてもOK!
・ほんの一瞬だけ止めればOK!止めすぎ注意!
・カクついて操作性悪くなることもあるので、その時は破壊物周辺のものだけ停止させる
今回はヒットストップについて上記のような知見を得ることができました。
今回制作したゲームは「破壊時に操作することがあるゲーム」が対象だったので、操作性の問題が浮上しましたが、もし破壊時に操作不要であれば「画面全体を停止して、破壊物のみに視線を集中させる」というテクニックもあるかもしれませんね。
ちなみにこの後、ゲーム制作仲間から「ヒットストップめっちゃ長くしがち」というゲーム制作者あるあるを聞きました。自分も長くしがちだったので、まさにそのとおりです。
製作者は何度も演出を確認するので、感覚がマヒしてしまうのかもしれませんね。これは気をつけないと!
今回のゲーム紹介
・「アゲアゲ君」と呼ばれるキャラクタを操作する単発ミニゲーム集。
・ミニゲームはシンプルなルールながら、ついつい夢中で遊ぶことができます。
・所要時間5分程度。