UE5オクトラ風ゲーム制作記 24/2/28「ちょっとした修正とダメージ計算のプチ企画書?てきな… 」  

はじめに

前日のはこちら

最初のはこちら


ちょっとゲームっぽくなった!

前回の記事からまた日が空いてしまいました。
今回は「スキル周りの修正」を主に仮実装していました。
この修正内容は、実際のゲーム内において前回の動画から見た目上は全く変わっておりません
あでもちょっとは綺麗にしました。あんま変わってないけど敵2にも処理を実装したりしたよ。
土台の土台の土台…くらいはできたようなきがする…

プチ企画書?てきなものをつくろう

今回「スキル周りに修正」に手を付けた要因の一つとして、
「ダメージ計算どうすんの?」が挙げられます。
前にふわっとだけ考えていましたが、実際にどんな変数が何個あってどんな風に作用するのか…というのはゲームを作っている以上決めなければなりません。
私は妄想大好き机上の空論者()なので、有名なゲームのようにいろんな要素を取り入れようと思っていたのですが、開発は個人でやっているので、
あまりステータスを多くし過ぎると自分でもわかりづらいし、
何より調整が大変なことになってしまいます。
そこで、突貫工事はいったんやめて、ダメージ計算周りだけでも考えることにしました。

よくあるインディーズのローグライトのように、ダメージは直感的にすべき?
・シンプルに攻撃力*技威力
・属性と耐性は無効、半減、等倍、2倍のみ(吸収?)
・防御力はシンプルに1~99 で、99なら50%カット
・バフ、デバフ、状態異常もわかりやすく、少なくする
:攻防速の上げ下げ、次回威力アップ&ダウン、被ダメージカット&アップ、属性エンハンス
:スタン(行動不能)、ポイズン(毒)、スリーブ(行動不能2)、ウェット(スキル封印)
・ゲームスピードをどうするか…
・雑魚敵は柔らかく、ボスは固く強く
・プレイヤーは固い?柔らかい?ここがむずかしい
・属性の種類も少なめに…
:火、水、風、地、光、闇、無/物、魔/強、妨、癒

ダメージはバフによる爽快感が重要。
結局のところ、枠としては(攻撃力乗算、威力乗算、属性エンハンス乗算、次回ダメージ乗算、装備ダメージ乗算、パッシブによるダメージ乗算となる)未定。

同枠は加算式にする。が、上限を付ける。ダメージ乗算スキルA(1.5)とB(1.5)がある場合、2倍となる。
これらが別枠の場合、1.5*1.5=2.25倍となる。未定だけど。

・防御ダメージ:防御時追加で75%カット*防御とそれに対応した倍率*属性倍率*(倍率を格納する配列を作って適用される能力分の倍率を格納)
:防御に関するバフの枠(防御力乗算、スキルダメージ軽減、装備ダメージ軽減、パッシブによるダメージ軽減)

上記は私がてきとーに考えたものの一部抜粋でまだ未定ですが、

シンプルに攻撃力*技威力
・属性と耐性は無効、半減、等倍、2倍のみ(吸収?)
・防御力はシンプルに1~99 で、99なら50%カット
・バフ、デバフ、状態異常もわかりやすく、少なくする
:攻防速の上げ下げ、次回威力アップ&ダウン、被ダメージカット&アップ、属性エンハンス:スタン(行動不能)、ポイズン(毒)、スリーブ(行動不能2)、ウェット(スキル封印)
・属性の種類も少なめに…
:火、水、風、地、光、闇、無/物、魔/強、妨、癒

ダメージに直接関係するここらへんはいったん仮決定として進めていくことにします。とりあえず手を動かすんだ…

スキル周りの修正

今後ダメージ計算を実装する上で、
現在実装していたスキル選択やモーション実行、ダメージ仮計算などはすべてダメージ等の変数を直接指定していたのですが、実際にいちいち指定するのはめんどくさい&属性等の要素を含むことができなかったので、
一旦威力や属性などを内包した「スキルの情報」を取得してから処理することにしました。

スキルの内容を決定する構造体

スキルには上記の情報(説明はしないけど)が内包されており、
これを「スキルの情報」として扱っています。
そして、属性等の内容が下記の画像のようになっています。

属性と技の種類
状態異常とバフデバフ

(これ横並びにできないの…?)
正直説明するほどのことでもありませんが、属性はよくある
「地水火風闇光」に、「無属性」と「虚無」を足したものです。
(実際にどこまで採用するかわかんないけど、「虚無」は某ペルソナのメギドできな…)
技の種類は「物/魔」「回復、バフ、デバフ」です。シンプルでいいと思う。
状態異常とバフデバフは適当。ゲーム性を考えた後でたぶん変わる。

まあスキルの情報についてはこんな感じで…

EventAnyDamageに頼らないという話

あそうだ。上記の話のつながりで。
見出しの通り、「EventAnyDamage」を使わずに、
新しく「ダメージ判定(?)イベント」を自分で用意しました。

あたらしいイベント

わざわざ用意した理由は2つあるます。あるます。
「ダメージの決定過程でスキルの内容を取得したかった」
「ダメージの発生しないバフデバフにも反応させたかった」
(といっても上記のノードはあくまで「受けた時」のものなので自己バフにはまだ対応してないんだけど…まあ…あとでいいよね…)

何が変わったのかというと、inputとしてスキルの情報を指定しただけです。EventAnyDamageはダメージを直接inputに指定してたけど、
スキルの情報を入力したほうがいろいろ便利そうだと思ったんだ…

こんな感じでダメージの処理に通知を飛ばせるから使い勝手はほぼ同じ!
ブループリントインターフェースって便利だなぁ…(しみじみ)

まあ後は…スキルを選択するときに、選択ボタンにもスキルの情報を渡すようにしたかな…

別に見せても何もないんだけど一応…
createでwidgetを作れば、初期値を設定できるから便利かも。

さいごに

日数の割に進捗が無いだって!?そんなまさか~

次はバフデバフの処理や全体攻撃とかも考えていこうかな…
まだよくあるコマンドバトルだけど、オリジナル要素を創る前に基本を完成させなきゃいけないからね!!!

それと、やっぱり企画書的なものを作るのは大事だなぁとまた実感しました。初めてなのに企画書もないのはやっぱまずかった?
でも開発のノウハウとか、考えても実際に作れるかとかわかんないしなぁ
難しい…

あんまり内容なかったけど、まあいいでしょ!!!
ここまで読んでいただいている方がいるのならば、この記事が少しでも時間つぶしになれたのなら幸いです。ありがとうございます。

え?進捗があんまりない理由?





はいごめんなさい遊んでましたこのゲームで(ダイマ)
ポーカー x ローグライトみたいなゲームで面白いのでよかったらどうですか…(決して私が作ってるわけじゃないので安心してください(?))


この記事が気に入ったらサポートをしてみませんか?