『山が笑えば』制作録 戦闘システム編

11月 30, 2022

 

 はぁはぁうぉお滑り込み11月。

 

 進捗ですが進んでねぇなちくしょう。アニメーション作るときに基礎ボーンの置き方がそもそも正しくなかった(アニメーション元のスプライトがずれたままになっていた)ところを直したせいで一からやり直しになったり、戦闘周りのセッティングが決まってなかったりしたせいです。

 とはいえ相応に接していた時間は長かったので動かしている間にぼんやりとしか決まっていなかった戦闘システムもおおよそ形になりました。今回はその戦闘を紹介します。


 ちなみに今回は基礎システムをずっと作っていたので、いつも以上に見た目が雑です。ビジュアルなんも調整しとらん。ええんや頭の中にあれば見た目は最後で。


『山が笑えば』の戦闘はシンプルなターン制のバトルで、

  1. 蜘蛛側の前振りモーション
  2. 運転手側のコマンド決定
  3. 判定
  4. 結果表示
  5. 勝利・敗北条件を満たしていれば終了、いなければ1に戻る

という順で行われます。


相手のアクション→自分のリアクションで行動するシンプルなターン制。そんなに戦闘の多いシステムではないですが、たぶん1戦4-8ターンくらい?


個々の要素をチュートリアルに沿って解説していくと、


1) 蜘蛛側の前振りモーション

 戦闘は常に「蜘蛛の予期行動に対してリアクションすること」で行われます。

 チュートリアル戦闘では最初に雪上車が蜘蛛に潰されるシーンから開始しますが、戦闘が開始しても蜘蛛は執拗に破損した雪上車を狙い続けます。

 1ターン目、蜘蛛は雪上車に接近し、右前足を振り上げます。これが前振りモーションです。


蜘蛛のもっともシンプルな行動のひとつ「車両に接近して殴る」。車両に歩み寄ってきて車両側=奥側の腕を振り上げるためわかりやすい。ちなみにチュートリアルだと既に一発殴られているので車両は半壊済み。


2) 運転手側のコマンド決定

 運転手は最大8つのコマンドを持ちますが、最初から使えるのは、

A - 攻撃:大振りな攻撃に対して雲が無防備なところで攻撃を差し込む

B - 防御:自分ではなく車両を狙った攻撃を横から叩き落とす

C - 回避:自分を狙った攻撃を避ける

の3つです。


プレイヤー側のリングコマンド。スワイプで選択。コマンドの詳細はこのSIDE VIEW画面の下方に存在するUIで確認できる予定。


 現在、蜘蛛は雪上車に攻撃を仕掛けようとしています。そのため運転手の回避(C)は無意味であり、攻撃をして通るほど無防備ではないためAも意味をなしません。そのためチュートリアルの1ターン目では防御(B)のみが可能(有効)です。


3) 判定

 蜘蛛のコマンドと運転手のコマンドで判定が行われます。横からの防御(というかパリィ)は蜘蛛の攻撃を弾き、雪上車へのダメージを無効化するとともに、相手にパリられ状態を押し付けます


4) 結果表示

 判定結果のカットインが入ります。

判定カットイン。このへんはミニキャラを使う予定。


 3の項でも書きましたが、判定が成功(運転手側の行動が蜘蛛の行動に対して適している)した場合、蜘蛛側の行動を無効化し、運転手側の行動結果を押し付けることができます

 逆に、失敗した場合は蜘蛛側の行動結果が一方的に押しつけられます。


5) 勝利・敗北条件を満たすか、満たさないなら1へ

 勝利条件としては「蜘蛛の足の本数が行動不能になる(2本以下?)まで落とされること」

 敗北条件としては「雪上車が走行不能になるまで破壊される」もしくは「運転手の体力が尽きる」のどちらかです。


 チュートリアルの1ターン目では相手の攻撃を逸らしてパリられ状態を入れただけなので蜘蛛の足の本数は変動せず、決着は次ターン以後に送られます。




 というのが一連の流れになり、続く2ターン目は蜘蛛が「パリられ」状態になっている無防備な状態なので、蜘蛛のコマンドは復帰動作のみとなり、これが無防備動作に該当するため、運転手側は「攻撃」コマンドを実行、成功して足を一本もぎ取ります。

 その後、3ターン目では残り3本足となった蜘蛛が運転手に攻撃実行→回避。4ターン目では回避されて無防備なところを攻撃して勝利、となります。


 ようは「相手のモーションを見てからそれに対応した行動を繰り出せばいい」というだけです。

 このシステムを支えるために必要なのが先に行動する蜘蛛のモーションの数。上の「車両を攻撃する」という前振り行動が一種類しかない場合、毎回同じモーションを見て同じ行動を選べば良いだけなので面白くない。

 いろいろなモーションを見せつつ、理想的には初見のモーションでも「このモーションは初見だけどだいたいこういう行動は車両を攻撃する行動っぽいからパリィできるはず!」というような推測をさせたいわけで。


 なのでまず必要なのは攻撃パターンのアイディアで、とりあえずパッと思いつくのだと、

  • 前足振り上げパンチ
  • ストレートパンチ
  • 後ろ足キック
  • 両腕パンチ
  • スピンキック
  • 頭突き
  • のしかかり
  • フライングボディプレス
  • 突進
  • 雪球投擲

とか……?

 反応パターンとしては、

A - 攻撃:大振りな攻撃に対して雲が無防備なところで攻撃を差し込む

B - 防御:自分ではなく車両を狙った攻撃を横から叩き落とす

C - 回避:自分を狙った攻撃を避ける

なわけだけど、たとえばパンチ系は隙が少ないから向きを判断してBかC、両腕パンチとかのしかかりみたいに隙が多いのだとAで先に置いておくことで対応、フライングボディプレスみたいな攻撃特化攻撃はCで避けるしかないけど、衝撃がでかいから蜘蛛側にもダメージ、とか考えるべきか。

 ここからさらに移動したり、助走つけたりとかしてパターンを増やす……? うむむ。


 いちおう蜘蛛との戦いは(チュートリアル以外では)行わずともクリアはできるようにはしたいけれど、設定上からして氷床上で生き残っている蜘蛛は比較的生きやすい場所=車両が通りやすい場所に存在していることが多いわけで、場合によっては倒したほうが楽かもという取捨選択の連続です。人生。

 また、倒したあとにパーツを回収できれば新たに観測装置を作れる場合があり、蜘蛛の観測装置は若干特殊効果があるのでそれ目当てでも危険を冒す価値はあるでしょう。


 一方で戦闘が完璧にできれば蜘蛛は障害にならないのかというとそれはまた別の話で、時間と極寒によって老朽化しているとはいえ馬鹿でかいバケモンと戦う以上は殴ったり避けたりするだけで体力を使います。具体的には完全な成功動作していても10%くらいの体力は使うかもしれない。このあたりはまだまだバランス調整していく必要がありますが。


 作り始めるまでは年度内に全体構造完成できればいいな、くらいに思ってたけどまだまだ遠いぜですわね。




0 件のコメント:

Powered by Blogger.