(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

神巫女のSPに関する工夫の話【ゲーム演出】【Unity】【NintendoSwitch】


このエントリーをはてなブックマークに追加

はじめに

先日、Nintendo Switchでリリースし、

2017年上半期ダウンロードランキングで4位にもなった神巫女


f:id:kan_kikuchi:20170706091020p:plain
Nintendo Switch 2017年上半期 ダウンロードランキング|Nintendo


に関するインタビューをUnityさんにしてもらったのですが、その際にSPの話題がでました。

例えばSPがバラバラって散らばって吸い込まれるところは、Kikuchiさんがプログラムしたものの方が僕がやろうと思ってたことよりも良かったので、「じゃあもう、それで行きましょう」みたいな感じで。


神巫女をプレイしてない方のために説明すると、SPとは敵を倒した時に出現するオブジェクトで、

自動的にプレイヤーに吸収され、技を使う時や宝箱を開ける時等に消費するモノです。


f:id:kan_kikuchi:20170704131831g:plain
f:id:kan_kikuchi:20170702064318g:plain


そういえば、このSPだけでも色々な工夫したな〜と思い、今回記事にしてみました。

神巫女やSwitch、Unityやゲームジャンルに関わらず、わりと汎用的な内容だと思います。


なお、実際のプログラムは記載していないのであしからず。


発生数の調整

一度に取得できるSPは、コンボ数(連続で敵を倒した数)に応じて増えます。

例えば、コンボ数が10の時は取得できるSPも10といった具合です。


また、通貨が複数あるように、SPにも3つのサイズ(1, 5, 10)があります。


f:id:kan_kikuchi:20170702064953j:plain


取得できるSPに応じて、発生するSPの種類を変えているわけなんですが、

取得できるSPが5(コンボ数が5)、だから5のSPが一つ出現

というわけではないんです。


実際に5のサイズのSPが出現するようになるのは、コンボ数が15になってからだったりします。


f:id:kan_kikuchi:20170702070250p:plain
f:id:kan_kikuchi:20170702070310p:plain
f:id:kan_kikuchi:20170702070323p:plain


なんでこんな事をしてるのかと言えば、見栄えの問題です。

素直に出現させると、コンボ数4の時は4つ出現していたのに、コンボ数5の時は1つになってしまい、

サイズが変わっているとは言え、出現数が極端に減り、見た目が弱く(ショボく)なってしまいます。

なので、気持ち良さが減ってしまわないように、こういう工夫をしています。


拡散と収束

神巫女ではSPは拡散するように発生し、プレイヤーに向かって収束していきます。

擬音で表すと「ふわっ」→「しゅっ」みたいな感じです。


f:id:kan_kikuchi:20170702064224g:plain


これも演出の一種で、拡散→収束という変化で気持ち良さを演出しているわけです。

また、一度広がる事でどれだけのSPが発生したのかを、ある程度分かり易くもなります。


さらに、等速だと拡散から収束に移る時に、カクカクして気持ち悪くなってしまうため、

広がる時は速く→ゆっくり、収束する時はゆっくり→速く

のような感じで速度が徐々に変化しています。


試しに等速でやると以下のような感じになります。


f:id:kan_kikuchi:20170703111049g:plain


ちなみに収束速度は徐々に上がるため、基本的にSPから逃れる事は出来ません。


f:id:kan_kikuchi:20170703114533g:plain


SEずらしと爆発

1体の敵から発生するSPは同時に出現しますが、

実はプレイヤーが止まっていても取得するタイミングはズラしています。

これは以下のように取得SEを連続して鳴るようにしているからです。(音が出るので注意)



見た目だけでなく、音でも楽しむための工夫という感じです。

神巫女ではやっていませんが、

似たようなものに取得数に応じてSEを変える(音階を上げる等)、というのもあります。


また、同タイミングで同じSEを複数鳴らそうとすると、合成された音声が爆発し音割れを起こします。

これはUnityでも起こる現象なので以下のサイトのように何らかの対策をする必要があります。


その5 SEの同時発生数問題を考えてみる


参考に何の対策もしない場合は以下のような感じになります。(音が出るので注意)





技中は一時停止

通常、SPは発生してから収束するまで、連続して動いていますが、

技発動中は発散した時点で一時停止します。


f:id:kan_kikuchi:20170704132255g:plain


こうする事で技に特別感に出ますし、

何より一気に大量のSPを獲得出来るという気持ちいい演出になります。


また、ヤマトの技は移動しながら攻撃ができるので、

技→敵倒す→SP獲得→技延長という無限ループになる事を避けたり

(技が延長しないようにした場合でも)所持SPが技の途中に増えてしまう事で

終了タイミングが分かり難くならないようにという意図もあります。

(というより確かそっちが主な意図だった気がします。)


オブジェクトプール

演出というより負荷の話になりますが、SPは頻繁かつ大量に発生や消失をするものなので、

その都度に生成&破棄を繰り返していると処理がかなり重くなってしまいます。


なので、オブジェクトプールを使い、あらかじめSPを生成して(足りない場合は追加で生成)非表示に、

必要な分だけ表示し、必要なくなったら破棄せず再度非表示にする、という実装にしています。


UnityのHierarchyを見ると以下のような感じでActiveが切り替わってる感じです。


f:id:kan_kikuchi:20170704133414g:plain


なお、敵なども同様の実装方法です。


おわりに

今回はSP関連の話だけでしたが、

こういう細かい工夫(というか意図?)が積み重なってゲームになるわけです。

特に発生頻度の多い所はゲーム全体の評価に直結するので重要ですね。


また、人のゲームを見て、

この作りはどういう意図があるんだろうと考察(決めつけではなく)するのも楽しいもんです。

逆にこういう風にした方がいい気がするけど、

そうしなかった理由(「実装してない = 検討していない」ではない)はなんだろう、

それをする事で何かマイナスがあるのかな?みたいな事を考えるのも面白いです。


さてさて、一応最後に宣伝をば。

今回題材にした神巫女がNintendo Switch(DL専用)にて、お値段なんと500円で好評発売中!

よろしくどうぞ!