[サブウェポン] 手裏剣
Steam(Win)、Nintendo Switch、PS4/X-box one、Xbox Series X/S にて配信中の2D忍者アクションシューティングゲーム「Shinobi non grata」の仕様書(と言っていいか微妙ですが)となります。この資料は飽くまでも初稿であり、最終的に実装された内容と異なる部分も多々あります。製品版を遊んで頂いて、どこがそのままの形で実現し、どこが変更されたかをご確認頂いても良いかもしれません。https://store.steampowered.com/app/1796870/SHINOBI_NON_GRATA/また、このタイトルはフルリモート環境で、1年2ヶ月で完成した実績(準備段階含めるともう少し掛かっていますが)があるため、遠隔でゲーム開発するための参考になるかもしれません。
とても弱いが、高い連射性能と、広範囲攻撃によって、大量発生する雑魚敵を殲滅できる武器。押しっぱなしで連射できるが、最初の1発は単発である。このため、強雑魚「坊主」のような、誤ってダミーを撃ってしまうと、強烈な報復攻撃を食らうような敵に対して、正確に的を「狙う」ことができるため、有効な局面はそれなりに多い。
刀同様に、方向キー操作によって、前方180度、5方向に撃ち分けることが出来、走りながら、ジャンプしながらでも行動が阻害されることはありません。
なお、デフォルトでセレクトされているサブウェポンがこの「手裏剣」である。
現状で、ゲームバランスなどを考えた場合、手裏剣が3wayなのは流石に強すぎて、他の武器が使われる機会が無くなってしまうと考え、一旦、1wayにしたいと思います。
手裏剣は無限射程かつ重力無視で、発射角度に対して真っ直ぐ飛んでいきます。
手裏剣はエフェクトで制作しており、Vfx_Shuriken.prefabを呼び出します。ヒエラルキー設定していますので、rootを45度単位で回転させることで、後述する角度に発射することが可能となります。
プログラム的にエフェクトで行わない方が良い、ということであれば変更いたします。
手裏剣は、基本的(システム的に発射できない瞬間=前転や2段ジャンプ中など)にどのような状態にあっても発射することができます。ボタンを押すたびに発射、押しっぱなしで連射します。
立ち状態では、エイム機能を使わない限り、斜下、真下には撃てません。走り中は、操作的に立ち止まってしまうため、真上、真下には撃てません。しゃがみは前方向のみ、ジャンプ中はあらゆる方向に撃つことが可能。
逆方向に撃ちたい場合は、レバーを逆方向に向けて方向を変える必要がありますが、その際一瞬だけ振り向きアニメーションを挟みます(連射中ならすぐ振り向きの途中はキャンセルされます)。
キャラクターの向いている方向とは逆にレバーを入力した場合、その場で”振り向き”動作を行なったのちに、逆方向に反転します(内部的には入力が成立した時点で反転しています)が、攻撃行動の途中で、振り向いたとき、または振り向きの途中で攻撃行動が行われた場合は、振り向きアニメーションの途中のフレームがキャンセルされ、すぐにキャラクター反転が反映します。
この挙動は、立ち、しゃがみ、ジャンプ中、全てに於いて同一の処理となります。
手裏剣は連射力が高く、いかなる状態でも使いやすいサブウェポンですが、床や壁などの背景、または一部の硬い敵(ガードする敵)には全く効果がありません。
それら硬いものに手裏剣がヒットしたときは専用のヒットエフェクト(Vfx_Crash_01.prefab)を表示させ、手裏剣をその場所で消失させます。
なお、硬い敵にヒットした場合は、この手裏剣消失エフェクトとは別に、敵側の処理として専用のガードエフェクトを表示させますが、詳細については敵側の説明時に致します。
この手の、移動しながら射撃できるゲームでやりがちな事として、「走りながら撃つとキャラクターが弾を追いかけるため相対的に弾の速度が遅くなってしまう問題」があります。
ちゃんとしているゲームはこうはならず、実際「魂斗羅」シリーズや「メタルスラッグ」シリーズ、たぶん「メトロイド」シリーズもこうなっていない筈です。弾をワールドで置いても、自機のローカルに置いても、移動している以上は同様の結果になってしまうので、おそらく、弾を超高速で飛ばすことで誤魔化しているのではないかと思われます。まずは試しにその手法で作ってみて、自機の速度と合わせて調整したいと思います。
以下の要素を、外部(Unityのinspector?)から調整できるようにして頂ければと思います。
・弾の速度
・弾の連射性能
・弾の威力
・弾の”魂”消費量
この記事が気に入ったらサポートをしてみませんか?