2016年12月25日日曜日

【ウディタ】ARPGの戦闘システムをつくる(3)技の仕様

ようやく全部の仕様が思い通りに動くようになって舞い上がってます。
作った仕様と、こんなのできるよということを書き連ねているだけですが……。

技の挙動
・エフェクトの動作
(1)発動者に隣接する場所にエフェクトが発生する
文字通り。いわゆる近接攻撃です

(2)エフェクトが前進していき、到達する地点に当たり判定が発生する
いわゆる遠隔攻撃です。内部の処理は(1)と同じで、(1)では前進する移動量に0を入れているだけです

(3)範囲内にいる、距離的な意味で発動者に最も近い対象者のいる地点でエフェクトが発生する
回復スキルとか、雷落とすようなやつです。見た目的に前進させたくないやつに使います。
必中だと強すぎなので、発生地点が若干ぶれるようにしています

・当たり判定
エフェクトそのものに当たり判定をつけているわけではなく、別に当たり判定を発生させています。
その関係上、前進するタイプの技能が移動しているところにぶつかってもダメージを受けません。これはもう、どうしようもないね。
当たり判定には、「当たり判定が発生するまでのフレーム数」と「当たり判定が再度発生するまでのフレーム数」を設定することができ、これによって「判定の出が遅いけど高火力」「回復エリアを発生させ、じっとしていれば何回も効果を受けられる」といった性質を持った技能を作成可能になりました(これを今日ようやく実装できた)。

・技能を食らったとき
食らったら、技能ごとに設定された無敵時間が発生します。
自身を対象とした回復スキルでも設定すれば無敵時間が発生するので、やろうと思えば「使えば一定時間無敵になれるバリアを発生させる」みたいなこともできるわけですが、無敵時間を削る技能はあいにく作れないので、そんなひっでえ技能作らないと思います
あと、一部スキルを除き、食らったときのリアクションが発生します。NPCはノックバック、主人公はその場で飛び跳ねます。

・コスト
発動には技能ごとに設定されたぶん以上のSP(MPとかTPとかで表記するゲームもある)を必要とします。
技能を使用した後は、技能ごとに設定された再詠唱時間が発生し、すべての技能が使用不可になります。

技の発動
(1)キーの入力(2種×2セット)
技能は通常攻撃も含め、装備することでキー入力による発動ができるようになります。
2つの技能を登録できるスキルセットが2つあるので、キー入力で使用できる技能は実質4種類になります。
セット切り替えは戦闘中にAキー入力で実行できるようにしました(攻撃は左Shift/Zキー)。

(2)メニューから使用(習得済みの全種類の技能/再詠唱時間にペナルティあり)
難易度選択機能をもし実装したら、イージーモード限定にすると思うような、やさしい機能。
習得済みならすべての技能が使えます。効果が及ぶ目安範囲まで表示するようにしたよ。
ただ、全技能使えるという超性能なので、次に技能が使えるまでの時間(再詠唱時間)にはペナルティをつけるようにしてあります。


基礎は講座を参考にしたとはいえ、初めての自作戦闘で、ここまで実装するのはすごく大変でした……。
ただ、おかげでテストプレイ中に戦闘するのはすごく楽しくなりました。
前回の記事から今回の記事を投稿するまで、戦闘の画面表示とかメニュー画面とか作っていたので、それについての記事も空いた時間に書いていこうと思います。

システム関連で未作成なのは、コンフィグと一部の補助的なもののみとなったので、あとは中身を詰めていく作業になります。
まあ、ウディタはこの作業がスッゲーしんどいわけですが……。