2021年10月24日日曜日

【ケルリート】ダメージ計算式

RPG作っていたらいつかはしたいなと思っていた、ダメージ計算式の紹介をします。

基本形は2作目『レイユウサイ』で完成していて、『ケルリート』の計算式にはそれを少し調整したものを使っています。

用語

『ケルリート』を遊んだことない人は、以下の単語をこのように読み替えてください。
力:物理攻撃力
知能:魔法攻撃力
生命力:物理防御力
信仰心:魔法防御力

基本式

(固定値+(攻撃側攻撃力×スキル倍率×力・知能依存比率×防御軽減A×防御軽減B×Lv補正B-防御減算))×Lv補正A×耐性補正×クリティカル・ガード補正×難易度補正
※計算結果が0未満の場合、1~5のダメージを与えます。

場効果や付与呪文、パッシブスキルによる補正まで書くと大変なので、ここでは省略しますが、それを除いて計算式全体を網羅したものが上の通りです。
各項については以下に詳細を書いていきます。

1.固定値
技能ごとに設定されている固定値。

2.攻撃側攻撃力
式:攻撃側の力および知能×バフ・デバフ補正

複数ある場合は乗算でかかります。×1.5が2つあったら、×2.25です。
防御側防御力も同様です。

3.スキル倍率
技能ごとに設定されている数値。
力、知能それぞれに設定可能。(設定を変えれば生命力、信仰心にもできる)
ちなみに付与呪文の「スキル威力を上げる/下げる」効果は、この値に加算します。

4.力・知能依存比率
式:力or知能依存スキル倍率/(力依存スキル倍率+知能依存スキル倍率)

たいていはどちらか一方しか使わないですが、「剣を使う魔法攻撃」みたいな謎のスキルを実装するために入れているものです。
どちらも100%ステータスを使えてしまうと強すぎるからね。

5.防御軽減A
式:(100-((生命力or信仰心×バフデバフ補正×力・知能依存比率/4)/(攻撃側攻撃力×力・知能依存比率/50)))/100
※計算結果が0.7未満の場合は、計算結果を0.7とする。
※力・知能依存比率が0の場合は、計算結果を1とする。

内部では反応防御と呼んでいます。最大で30%ダメージ軽減できるってことですね。
スゲー強い攻撃は受け止めるのしんどいですよね? じゃあ防御側の防御能力に対して強い攻撃を受けたら防御力がききづらくしよう! ということで作られた補正です。
4とか50といった定数は、調整用です。深い意味は無いです。

6.防御軽減B
式:((1-生命力or信仰心×バフデバフ補正×防御側レベル/40/500)
※計算結果が0.5未満の場合は、計算結果を0.5とする。

内部では素防御と呼んでいます。最大で50%ダメージ軽減できるってことですね。
こちらはキャラクターの成長に応じて軽減能力が強くなっていくという、いわゆる成長感をブーストする補正です。
バフデバフ補正後のステータスを使う関係で、バフデバフがわりといい仕事します。
40とか500といった定数は、調整用です。深い意味は無いよ。
当たり前っちゃ当たり前ですが、到達想定レベルをもとに調整しています。『ケルリート』ではLv70付近で補正が最大になります。

7.Lv補正B
式:((攻撃側レベル-防御側レベル)/-2+100)/100
※計算結果が0.7未満の場合、計算結果を0.7とする。
※計算結果が1.25超の場合、計算結果を1.25とする。

防御軽減を適用した後のダメージにレベル補正をかけて、数値の過激な変動を抑制する補正。
攻撃側のレベルが防御側のレベルより高いと、ダメージが軽減されます。
これだけだったらよかったんですが、Lv補正Aくんのせいであまり機能していない……。

8.防御減算
式:(生命力or信仰心×バフデバフ補正)/2

防御軽減AとBだけでは(とくに序盤が)弱いので、減算処理もします。

9.Lv補正A
式:((攻撃側レベル-防御側レベル)+100)/100
※計算結果が0.5未満の場合、計算結果を0.5とする。
※計算結果が1.5超の場合、計算結果を1.5とする。 
 
最終ダメージに補正をかけるもの。正直いらんかった気がしている補正ですね。

10.耐性補正
防御側の属性耐性を乗算で反映します。

11.クリティカル・ガード補正
クリティカル発生時、×1.5。またクリティカル発動した場合はガードが発動しない。
ガード発生時、×0.5。前回被弾時と同じ技を食らってガード発動した場合は、×0.33。
ちなみに パッシブスキル(生命の灯火など)のダメージ補正は、この補正の後にかかります。
 
12.難易度補正
難易度ふつう:主人公→敵は×1.2、敵→主人公は×0.8
難易度やさしい:主人公→敵は×1.5、敵→主人公は×0.6

難易度むずかしいは補正ないです。
 
補正爆盛りすぎて扱いづらさがあるのを感じていたので、次回作のダメージ計算式は少し単純になってます。

2021年9月30日木曜日

【ウディタ】テキスト読込みでメッセージを表示する

何番煎じかわからないが、このシステムを作ってから3作完成、1作作成中なので、その経験もふまえて記録を残せたらなということで、書いてみる。

作った背景

作った人のブログを見て、自分もやってみたくなった。
いざ作ってみて使ってみたら便利だったので、もっと便利にしたくなって機能拡張を続けている。
継ぎ足して作られた秘伝のソースなので、コモンの中身は魔境

作ってよかった点

イベント編集ウィンドウがすっきりする。(これが一番大きい)
イベントの編集・修正が簡単になる。
同じテキストを複数箇所で簡単に呼び出せる(あとから読み返せるチュートリアルとか)。
    

しんどい点

コマンドを覚えて打ち込む必要がある(超キツイ)。
ファイル数がとにかくスゲー増えるので、楽な管理方法を考える必要がある
(うちのシステムではファイルパスを一つ一つDBに登録しなければならないので、この作業がとてつもなくだるい。ちなみに、ファイル数は『MoebirinAdventure』で155、『レイユウサイ』で155、『ケルリート』で214)。
呼び出すテキストを間違えると大変なことになる場合がある(フラグ周りとかね)。

システムの構成

1.テキストドキュメント
コマンド行+パラメータ指定(数値、文字列)行という形で記述されている。
コマンド行頭には、コマンド行を示す記号を入れてパラメータ指定行と区別している。
以前はWindows標準の「メモ帳」を使って書いていたが、今はVSCodeで書いている。
2.UDB「テキスト登録」
1.で作成したテキストドキュメントのパスを入れておくDB。
3.コモンEv「テキスト表示」他、補助コモン
2.で登録したテキストを呼出し、表示するコモンEv。
1コモンではさすがにしんどいので、いくつか補助コモンがある。
4.CDB「コマンド一時保存」
テキスト表示前に、このDBへテキストドキュメントのデータを保存する。
正直言って、実装した当初の目的はわすれた。
ただ、バックログ機能で役に立っている(処理の共通化)ので、目的はこれかもしれない。しらんけど。 
 

コマンド記述でできること

コマンド記述で以下の機能が使用できる。大半は補助コモンと他システムとの連携で実現している。
1.テキスト表示
中核の機能。
次回作向けのバージョンでは、名前表示無しの場合は3行、名前表示有りの場合は2行まで同時表示可能。
2.顔グラフィック表示
あらかじめDBに登録した顔グラフィックを呼び出す機能。
高解像度向けの歩行グラフィックをコモンで切り抜いて表示している。
3.音響関係の操作
システムDBに登録されている効果音やBGMを再生できる。
4.ウェイトをかける
微妙な会話の間なんかに使う機能。
5.画面エフェクトをかける
白・黒・赤の画面フラッシュ、トランジション、縦・横揺れエフェクト、暗転処理ができる。
6.コモン呼び出し
指定した名称のコモンを呼び出す。引数も指定可能。
7.イベント操作
指定した(疑似)マップEvを操作(歩行、向き変更)できる。
8.ウィンドウ透過
文字通りの機能。実装したけど正直なところ使ってない。一枚絵背景にテキスト表示とかするのに使えると思う。
9.ピクチャ表示
専用DBに登録したピクチャをプリセット座標(左寄り・中央・右寄り)、指定拡大率で表示する機能。
文字列ピクチャも出せて、文字列は自由に座標を指定できる。
微妙に不便なので改善の余地ありな機能。
10.変数操作
変数呼び出し値で指定した変数に、指定数値を加算または代入できる。
フラグ操作用ですね。
11.背景画像表示
9.ピクチャ表示と似ているけど、こっちは直接フォルダ内のピクチャを指定する。
表示座標は左上X0、Y0で固定。
正直9と統合したい。次回作完成後にそういう整理をする作業をやりたい……。
12.選択肢表示
自作選択肢コモンを呼び出す機能。選択肢は10個まで指定できる。選んだ選択肢に応じて、指定されたテキストを呼び出す。
選択肢の選択後に、選択肢を再表示するオプション付き。チュートリアルとか重要な選択肢とかで使う。
13.変数分岐
変数Aと変数B or 数値が指定条件を満たしているか否かで、次に呼び出すテキストを変化させる機能。
条件は、同じ/以上/以下/超/未満の5種類。
特定のフラグが立っていたらテキストを変化させるのに使う。
14.場所移動
ウディタ標準のマップ移動コマンドと同じ動作をする機能。
移動時のトランジションや効果音も一緒に指定できる。
15.条件起動
指定した変数の指定条件を満たしていたら次コマンド以降を処理し、満たさない場合は終了する機能。
普通のテキスト表示ではあまり使わない。難易度に応じて操作する変数を増やすといった処理をしたいときに使う。13.変数分岐でも同様の処理は可能ではあるけど、これはtxtファイルを増やさず実装可能。
16.別テキスト呼出
指定したテキストを呼び出す機能。
選択肢でテキストを一時的に分岐させるが、差分程度で残りはテキストが共通……というときに使う。
身もふたもないけどコピペでええんちゃう?という感じもしなくはない。
        

コモンEvの機能

コマンドとは別に、コモンEv側の機能として実行可能なものが以下の通り。
1.テキスト直打ちで表示する
1つのコマンドしか使えない(テキスト表示でもBGM再生でもなんでもいい)が、コモンEvの引数指定欄に直打ちして実行できる。
2.バックログ機能
文字通りの機能。画面いっぱいに出るのではなく、メッセージを1つ1つ遡っていくタイプ。
テキスト読ませるゲームだったら怒られそう。ここも今後改善したい。
ちなみに選択肢表示中にも使える。
3.オートモード機能
ADVによくある、オートでテキスト送りしてくれる機能。
テキスト送り待ち時間はコンフィグで調整可能。
4.テキスト送りボタン連打で瞬間表示
テキスト表示途中にテキスト送りボタンを押すと、残りを瞬間表示する機能。
5.スキップ機能
現在読み込んでいるテキストドキュメントの残りを全てすっ飛ばして終了することができる。
本当はテキストドキュメント単位ではなく、イベント単位で飛ばしたいが、実現できていない。
6.未読/既読判定
スキップ実行時、未読だったらスキップするか確認画面を出せる(出さないようにもできる)。
ただ、現状は一度読んだ後ロードし直すと未読のままになる仕様。正直言ってこれはアホ仕様だと思うので、次回作公開までに既読フラグはシステムセーブに収めるようにしたい。
    
あらためて書き出すとすごく多い。ただ、作り直したい箇所はそれなりにあるし、まだまだ機能が足りないので、次回作を出した後、機能がさらに増える気がする。
VSCodeを使ったコマンド記述は、気が向いた時に紹介します。

2021年3月25日木曜日

【ウディタ】可変DBを後から変更する方法

ゲーム完成させて公開したは良いけど、
・後からパーティに加わるキャラを増やしたい
・装備IDを変えたい
といった願望が出てくることはしばしばあるとおもいます。
でもウディタは可変DBを後から変更しても、既存セーブデータには反映されない仕様があるので、制作者がくふうをしないと賽の河原仕様になってしまいます。
これでは寛容なフリゲプレイヤーもかなしみを背負ってしまいますので、先人たちが残してきた方法をここで改めてまとめておきたいと思います。

1.バージョン情報を用意しよう

読み込んでいるセーブデータがどのバージョンのものなのかわからないと、大変困ったことになってしまうので、バージョン情報を管理するようにします。

1)空いている文字列変数をひとつ、バージョン情報用として確保します
2)タイトル画面で最新バージョン(ver110、みたいな感じで)をバージョン情報用文字列変数に書き込んでおきます

これで、ニューゲームで始めれば最新バージョンの情報が文字列変数に書き込まれた状態でデータを作ることができます。

2.ロード後一度だけ呼び出すコモンを用意しよう

これを用意すると乱数固定防止処理とか、いろいろできるので便利。バージョン情報の更新にも使うので、用意します。

1)使っていない通常変数または予備変数をひとつ確保します
2)セーブコマンドの直前で、確保した変数に任意の値を代入します(1でいいです)
3)セーブコマンドの直後で、確保した変数に任意の値を代入します(2)で代入した値以外だったらなんでもいいですが、0でいいです)
4)「ロード後処理」とかなんかわかりやすい適当な名前のコモンを用意します。
  起動条件「自動実行」、条件に1)で確保した変数を指定、値は2)で代入する値を指定、最後の条件は「~と同じ」。


5)作成したコモンの最終行で、1)で確保した変数に3)で代入する値を代入します。

これで、
・セーブ後もゲームを続行したら起動しない
・セーブ後ゲームを終了したら、次回ロード時に自動起動する
という動作をするコモンができます。

3.バージョン情報に応じて可変DBをいじろう

1)バージョン情報に応じて、バージョン情報を書き換えたり可変DBをいじるコモンを用意します。2.で用意したコモンに直接書いてもいいけど、独立させた方が管理が楽です。
2)バージョン情報で条件分岐させて、そのバージョンで変更した差分を可変DBなどに書き込んでいきます。代入方法を間違えると悲惨なことになるので注意!
 初期値のまま変わらない項目:=で代入。
  (変わらない項目は可変DBではめったにないけど、例えばキャラ名とか)
 ゲーム進行で数値変わる項目:+=で代入。
  (例えばステータスはゲーム進行で変わるので、初期値増減分だけ反映)
 条件分岐の括りの中の最後は忘れずにバージョン情報を書き換えてください。
 また、条件分岐は複数指定(文字列変数なら4+1あります)せず1つだけ指定にしたほうが、バージョンアップを繰り返していった際、楽になります。
 例えば、セーブデータがv1.0.0、最新版がv1.0.2だった場合。
 枝番号が特にない限りはたいていv1.0.0、v1.0.1、v1.0.2の3つのパターンが存在し得ますが、複数指定してしまうと、v1.0.0ならv1.0.1とv1.0.2の更新差分、v1.0.1ならv1.0.2の更新差分……といったように、それぞれの条件分岐内で同じ記述をする必要が出てきます。これが10回20回とアップデートしていくと、もう地獄です。
 しかし、1つだけ指定なら、バージョンを1つずつ上げる形になるので、記述のダブりが無くなります。おすすめ。

3)2.で作ったコモンで、ここで作ったコモンを呼び出すようコマンドを入れます

2021年1月9日土曜日

【ウディタ】イルシェラート(仮称)制作記録(2):NPCのAI

久しぶりの次回作制作記録です。

ただでさえ遅い制作スピードが麻雀にはまってしまった影響でさらに遅くなっていますが、一応すすんでます。心もまだヒビひとつない状態でやっています。

今は、山場の戦闘処理改修作業をしています。ここさえ乗り越えれば、あとは基幹処理の共通化が済んでて淡々と作業すればおわるメニュー処理とか、中身の実装作業とかなので、気楽になれます。

で、今回の記事はNPCのAI処理について書いておきます。
ケルリートのAI処理については、制作中に消しカスほども触れていないせいで、ブログに取り上げることすらできないのですが、レイユウサイ制作中の自分が詳しい記事を残してくれていましたので、参考にリンクを置いておきます。

基本の設計は当時とほとんど変わらず。「確率行動+条件付き固定行動」です。
青:レイユウサイ、緑:ケルリートでの追加、橙:イルシェラート(仮称)での追加です。
①味方属性のNPCの存在を考慮すること。
②味方/敵の仲間同士で補助ができるような処理をつくること。
③RPGらしく一定HP切ったら本気モードとかできるようにしたい。
④ある程度NPCが手加減できる仕様を入れること。
⑤状況に応じて多少戦い方を変えられるとなおよし。

⑥動作が軽いこと(NPC10体くらいを1画面内に出しても処理落ちしない)。
⑦NPCの移動に特徴を出せるようにすること(近づいたら逃げるとか)。
⑧動作設定が簡単であること。
⑨状況に応じた技能選択ができるようにすること。
⑩NPC移動方法の遷移が短時間で頻発しない工夫をすること(チャタリング防止)。
⑪SP消費の概念を持ち込むこと。
⑫壁や障害物に引っかかって止まるケースを可能な限り減らすこと。

細かい仕様や挙動は書くと長くなるので省略しますが、大筋はレイユウサイ時代とだいたい同じです。
ただ、レイユウサイ時代のままではどうにもならない部分を、ケルリートで手をいれて改良し、それでもまだ足りない部分をイルシェラート(仮称)で手を入れるというイメージでやっています。

移動処理ひとつとっても、
レイユウサイでは対象に接近するしかなかったのが、ケルリートでは接近/距離を保つ/離れると改良しています。⑩は、この3つの移動方法の使い分けの設定点が1つしかなく、その設定点付近を保つような動作をプレイヤー/NPCが取ると挙動が変になる事象を改善することを意識した項目です。2点制御化するか、一定時間遷移しないとするかで迷っているところです。
壁や障害物に関してもケルリートでだいぶ対応処理を増やしたのですが、どうも穴があるようで、デバッグログを見るとたまにエラーを吐くし、投稿されているプレイ実況を見てもちょくちょく変な場所で引っかかっているので、修正しておきたいところ。

技能使用処理に関しては、味方NPCの存在が大きくなるので、イルシェラート(仮称)ではかなり手を入れる予定です。
また、味方NPCの存在を考慮する(=複数種類の技の使い分けが可能になる)ように改良することで、これまでボスでも通常行動ではひとつかふたつの技をランダムで使ってくるくらいの表現しかできなかったのを、4種類の技をフルに使ってくるような設定が可能となるようになります。4種類の技を状況に応じて使い分けできるようになることで、今までよりも手ごたえがでるという算段。使いこなすのも難しくなりそうだけど。
これを実現するための方策としては、これまでのようなランダム行動に頼らず、戦闘中に変化するもの(相手との間合い、強化弱体化の付与、残りHPなど)を参照させて、適当な技を使うような処理を入れる予定です。

逆に改良作業の関係で妥協せざるを得ないものもあって、
確実に増える設定項目数の関係で⑧は苦しいし、いろいろな判定を増やす関係でおそらく⑥の動作の軽さも落ちるはず。軽量化はがんばってみますが、無理ならマップ設計で補うしかないですね。

といった感じの方針をもとに今週末はDBから手を入れてます。
先は長いです……。

2020年12月31日木曜日

【ケルリート】v1.0.32を公開しました

公開しました。

ダウンロードはこちらの2か所でできます。

更新内容はかなり少ないのですが、次の更新がいつになるか未定なのでとりあえず更新しました。
内容は下記2点です。
①当たり判定処理の軽量化
②スキルの効果音再生方法の修正

パソコンのスペックが強ければあまり影響はないです。

①当たり判定処理の軽量化
同時に大量(40個くらい)の当たり判定を発生させると、fpsが40~50くらいまで低下するという問題への対応を行いました。影響範囲はさほど広くなくて、一部のボス戦が重くなる程度です。
v1.0.31で当たり判定消失バグを修正したことで起きるようになったのですが、これは正常な動作でしたので、(スキル使用処理や当たり判定処理が複雑なのもあって)次回作向けに処理を直す過程で軽量化できたら反映させようということでとりあえず見送っていました。
その後次回作向けに戦闘処理を洗っていたら重たくなる原因が判明したので、これを解消する処理を実装することになりました。
原因は単純で「マップ上にいる戦闘NPCの数に関係なく、コモンイベント内ではシステム上限(50体、操作キャラ含む)まで存在する前提の処理になっていた」というだけでした。
数えてみると当たり判定1つに対して最大でコマンド196行の無駄が発生していました。これで同時に40個の当たり判定を発生させると最大8000行/f近い無駄になるわけです。これが当たり判定発生フレームごとに出る(たいてい1~5f間隔)ので、重たさを感じやすい状態になっていました。ちなみに、画面内に操作キャラのみ・スキル未使用の時の処理コマンド行数がだいたい1300行/fで、4体のNPCと戦ってだいたい3000~5000行/f。
同時に大量の判定を発生させるのは基本的にボス(すなわちキャラ数はごく少数)なので、解消させるメリットは大きいと判断してすぐアップデートをかけるまで作業しました。
対処した結果、同条件で今まで40~50fpsまで下がる場面が50~57fpsまで改良できました。60fps張り付きとまではなりませんでしたが、だいぶマシな状態となりました。

②スキルの効果音再生方法の修正
よく見ていなかったらわからないレベルの修正です。
スキル「氷柱の守り」や「火焔ばしら」に代表される、スキルエフェクトが起点のエフェクト発生から少し遅れて横や縦方向に連なって発生するスキルの効果音再生方法が変わりました。
今までは起点エフェクトの再生と同時に連なって発生するエフェクトの効果音も同時に流していたのですが、これを見た目に合わせるようにしました。変更前がおかしいと言われれば否定できないですが……今まで意識が向いていなかったのが大きいですね……。
この更新で効果音の同時再生はなくなりました。一部の効果音の音量が旧バージョンより小さく感じるかもしれませんが、聞き比べない限りはわからないレベルなのでとくに元の音量はいじりませんでした。

以上がv1.0.32の更新内容です。
これが年内最後の更新となりました。次回更新は次回作のシステム改修で得たものを反映するか、イベントの追加をするかといったところで、おそらく当分先になると思います。
次回作の進捗ですが、すごく遅いので来年のウディコンには出さない方向でやることにしました。来年中にはほぼ終わりにしたいですが……。

他の作品もアップデートは機会があればやっていく予定です。

来年もどうぞよろしくお願いします。

2020年12月6日日曜日

【ケルリート】v1.0.31に更新しました

ゲーム内容の追加や修正はほとんどない小規模更新ですが、ヤバいバグがあったので、バグ直してちょっと調整したいスキルをいじってテストしてアプデしました。
ほんとうは小イベントも追加したかったのですが、書き始めると時間が蒸発するし何よりライザのアトリエ2も待ってたので、バグ修正・スキル調整後の動作確認だけで終わりにしました。

ダウンロードは↓から。

詳しい内容ですが、以下の通りです。
1)当たり判定消失バグの修正
次回作向けの戦闘処理に取り掛かったついでにケルリートの当たり判定処理を見直していたら、特定の設定の組み合わせで当たり判定が消失するバグを発見したのでこれを修正しました。
特定の設定とは、「当たり判定を任意の数(2つ以上)だけ連結させる設定」と「複数方向への同時発動」を両方有効にしているもので、前者はスキル「氷柱の守り」「火焔ばしら」のような複数のエフェクトが発生するもの、後者は文字通り前方だけでなく左右や斜め左右、全方位に同時発動するものです。
詳しい処理を話し始めるとこれだけで1日がなくなるので割愛しますが、原因は当たり判定の発生回数の計算処理に抜けがあって、特定の設定の組み合わせを使うと計算結果が狂い、負の値になることでした。判定回数が負の値になると、当たり判定を管理するコモン側で「この当たり判定は無効である」と判定されて当たり判定が削除されてしまいます。
数行のコマンド追加で直りましたが、本来の個数分当たり判定が処理されるようになったことで、動作が少し重たくなりました。
次回作では軽くしたいですね……。

2)スキル「見えぬ剣圧」「斬る(通常攻撃)」の性能調整
パッシブスキル「見えぬ剣圧」は、先のスキルへ対するコメント記事で触れましたが、効果が寂しすぎるので、最大SLvを盛って限界性能を上げました。
見えぬ剣圧は、斬るに限り当てた敵の怯み(移動不可になる)時間を延長するスキルでしたが、斬るが30fであったのに対し見えぬ剣圧は最大SLv1でかつLv1あたり20fの追加でしたので、延長しても1秒に満たないという、残念過ぎる子でした。
今回の更新で、SLvを5まで上げられるようにしましたので、10ポイント割いてあげればだいぶ使える子にはなったと思います。
また、通常攻撃の「斬る」ですが、今までも付与呪文によってスキルレベルを高めると威力が上がる設定でしたが、この威力上昇量を増やしました。SLv3まで上げると元の威力の倍以上になります。

3)あるボスのスキル性能調整
1のバグ修正後バランス調整もかねて、影響を受けるボス全員と戦いましたが、鬼のように強くなった(処理の重さも含めて)ボスが1体いましたので、そこをマイルドにしました。マイルドと言っても強いのには変わりないですが……。

4)クリア結果表示画面に難易度表示を追加
せっかくのクリア結果表示画面だし、難易度表示ほしいなと思ったので追加しました。

以上の4点です。
次回作のシステム進捗次第ではまだアプデがあると思いますが、ヤバいバグがなければまた当分は更新しない予定です。

2020年11月11日水曜日

【ケルリート】スキルの個人的なコメント②

次回作向けにスキルを整理していたときの感想などを文字に起こしたら面白いんじゃないかということで、書いてみた記事その②です。
前回は共通パッシブスキルと魔法ツリーでした。今回は物理ツリーと法陣ツリーです。

強い一撃
物理属性の基本的なスキル攻撃。物理攻撃取るならまずはこれ。
あまりの直球ネーミングに面食らった人も少なくないのかもしれない。
名前に違わぬ威力があり、これ主軸で終盤まで戦っていける優秀なスキル。
作者もテストプレイではかなり使った。

風早斬り
物理だけど中距離スキルも欲しいよね、ということで用意されているスキル。
終盤になると敵の攻撃が苛烈になるので、安全を取って強い一撃から風早斬りへ移行する例もあったかもしれない。
なお最終的な威力は強い一撃より強い。ネックは再詠唱時間。
ちなみにダンカン直伝の技という設定がある。

火焔斬り
剣術ツリーでも属性攻撃したい! ということで作ったスキル。
なお途中のバージョンまでは設定ミスで消費SPが0だった。そりゃ強い。
高威力・短再詠唱時間かつMAXLv時の性能も高く、隠れた高威力スキルだったりする。
しかも何気に2hitする。
火属性なのは作者の趣味。

力の萌芽
HP・SP継続回復を付与する強化スキル。
前作ではHP継続回復のみだったが、さすがに弱いと考えてSP継続回復を追加。
使用率はどうだったんだろう……。誰か教えてください。

生命の槌
武器を複数種類用意する構想があったもののボツになった……が、スキル案だけは生き残り、正式なスキルとして用意することになったという経緯をもつ。
不死種族に対して効果アップとか書いてあるのも、ボツ要素の名残。直せよって話ですね……。

剛腕術法
一定時間力を強化するスキル。
自己強化なので、強化付与や追加詠唱の付与呪文と相性が良好。
物理技使うならぜひ併用したいスキルですね。

戦意高揚
撃破時SP回復するパッシブスキル。
性質上道中専用ですが、敵数の多い設計もあいまって発動機会は多かったと思います。
SP継続回復パッシブスキルが育っている場合も多く、効果を実感しやすいかは微妙……。

見えぬ剣圧
通常攻撃(斬る)の怯み時間が延長されるパッシブスキル。
怯み時間中は移動ができないので、足止めに使える……と思いきやMAXLvが1なので大したことないというオチ……。
次のアップデートで調整するかもしれない。
そんな状態もありほぼ採用されなかったでしょう。

生存本能
HPが満タンの時にガード率アップするパッシブスキル。最大で+15ポイント。
終盤になってガードを意識した立ち回りをしてようやく使えるくらいのものなので、使用率はやはり低かったかもしれない。
ガードまわりの調整は今後の課題です。

生命の煌き
いわゆる起死回生というやつ。
ダメージバランス上極めて扱いづらいものの、決まれば計算上全ボスワンパン可能なヤバいスキル(作者も決めたことない)。
素打ちだと強い一撃の半分の威力。
主軸に据える技じゃないので採用もされなかったでしょう。
でもロマン技は好きなので、この手の技は今後も搭載したい。

剣の黄昏
当たった相手の力と知能を下げる物理攻撃。
威力は地味ながらも追加効果が優秀なので、人によっては採用したかもしれない。わからないけど。
途中のバージョンまでは状態付与すると敵が固まる不具合があって、これを使うとハメができた。なんで気付かなかったんですかね……。

怯まぬ心
攻撃を食らっても飛び跳ねなくなるスキル。
逃げたいときに飛び跳ねちゃうと再被弾リスクが上がるので役に立つ……という考えで実装したものの分かりづらいので、防御面の強化もおまけで付与している。
スキルLvを付与呪文でブーストして使えば結構硬くなれる。

反転攻勢
言霊反芻の力バージョン。
これ使うのと使わないのとではダメージ効率がだいぶ違う。

風壁展開
ダメージ反射付与のついでに最大HP強化も付与するスキル。
ダンカン直伝という設定はあるけど、そんなんどこにも書いてないんだよね。
本人も使ってこないし……。シナリオに組み込むのも大変だけど。

生者の領域
昼間の与ダメがアップするパッシブスキル。
夜間の与ダメがアップするパッシブスキルもあり、両方取ると打ち消し合ってデメリットが無くなって常時与ダメちょっとアップになる。
使う場面が思いつかなかったけど夜間版はあるボスで使えるし……ということで昼間版も作った経緯がある。

疾風の剣術
ジャンプ後一定時間物理攻撃力アップするパッシブスキル。
ジャンプがコマンド昇格されたことで生まれた。地味に効果が強いので、使えればかなり役に立つ。キーボード操作で使いこなすのは難易度が高いが……。
これもダンカン直伝という設定があり、途中で戦えるダンカンはこのパッシブスキルを持っている。
シナリオには描写がないけど。スキルに焦点をあてたシナリオも面白いとは思うけど、必然的に長くなっちゃいそうなのがこわい……。

治癒技術
治癒属性の威力を高めるパッシブスキル。
治癒属性なら攻撃も回復もアップする。剣術より法陣向けですね。

精確な早業
確率で再詠唱時間が半減するパッシブスキル。最大10%。
もうちょっと盛ってもよかったか……?という感もある。
ガシガシスキルを使うバランスなので、意外と発動はする。

法陣:新緑
今いる場所にHP回復エリアを発生させるスキル。
1振りはかなり弱いが、MAX振りするとしっかり回復できる。回復目当てならポイントをつぎ込む必要がある。

多段ヒット型なので、しばらくその場でじっとしている必要があるのが難点。
多段ヒットの特性を活かす方法を思いつける人なら、この技はメインスキルにもなりうる。

法陣:災厄
自身を中心とした中範囲に治癒属性ダメージを発生させる技。
前作で法陣ツリーに目立った火力がなかったので用意されたもの。
法陣ツリー一本でやるならぜひ欲しい技。
治癒属性攻撃はすべて防御無視なので、耐性持ち以外にはまんべんなく刺さる。
他に法陣発動させていないと地味なダメージしか出ないのが弱点。

法陣:疫病
毒状態付与の法陣を発生させるスキル。
毒威力はスキルLvに依存するので、使うならMAX振り推奨。
毒耐性のある敵は限られているので、わりと刺さる。

法陣:衰弱
軟弱状態付与の法陣を発生させるスキル。
軟弱は、HP継続ダメージ、力低下、ガード率低下の効果を持つ。
物理主体の相手に入れば楽になる。

法陣:深淵
恐怖状態付与の法陣を発生させるスキル。
恐怖は、SP継続ダメージ、知能大幅低下の効果を持つ。
敵にはSPの概念がないので、かなり強い知能デバフとして使う。
使いづらさは否めないところ……。

緑神の恩寵
法陣同時発生数上限を上げるパッシブスキル。MAX振りで同時に3つまで発動可能になる。
法陣使うなら必須。
制限が無いとアホほど強いので存在する。

死生逆転法
夜間の与ダメがアップするパッシブスキル。
あるボスが夜間縛りなので、そこだけのスポット採用もあると思う。
それ以外になると微妙かも……。

熟練法陣師
法陣スキルの再詠唱時間が短縮される。最大25%短縮。
有用スキルなので、法陣使うならぜひ取りたいやつ。
小回りの良さは重要です。
法陣スキル使用率は前作よりは高くなったと思うけど、これ取った人はいたのだろうか……。

法陣:呪縛
元々ボツ予定だったけど枠余りで復活させたスキル。
詠唱速度低下付与して、長めの怯み時間を与える妨害系スキル。
問題は詠唱速度の高い敵と低い敵が混在していて、区別がつきにくいこと。

終盤のボスほど詠唱速度が低く、スキル側で使用頻度を調整されているので、効果が出づらいのが失敗だった。


これで全部。
ボツにしようと思いつつ置いておいたヤツが復活することがあったり、「これがあるなら別パターンもいるでしょ」と思って作ってみたヤツがあったりしましたが、ほとんどは使用場面を考えて作ったものです。
これだけあると、付与呪文とのかけ合わせで組み合わせ数もなかなかで、作者が思い至らなかった組み合わせが出てくるかもしれません(レイユウサイのときは新緑+追加詠唱すら考えられていなかった)。
次回作はスキル習得システムがすこし変わるので、今作までと全く同じようにはいきませんが、戦闘システムのベースは変わらないので、今作までで得た情報をいかしていきたいですね。

2020年10月26日月曜日

【ケルリート】スキルの個人的なコメント①

次回作向けにスキルを整理していたときの感想などを文字に起こしたら面白いんじゃないかということで、書いてみた記事です。
ひと言ふた言のコメントでも56スキルあると結構な量になるので、とりあえず半分の28スキル+通常攻撃1スキル分を今回は掲載します。

前作レイユウサイでも登場したスキルもケルリートでは多数登場するのですが、基本的なスキルは変えようがないというところでそのままになっています。
とはいえ、アクティブスキルにもスキルレベルの概念が導入されたり、それに合わせて付与呪文の仕様も変わったりしていて、プレイ感はだいぶ違うはず。
ちなみに、共通パッシブスキル(一番左のタブ)は大部分を入れ替えました。入れ替え対象になったパッシブスキルは「ステータス比例強化+成長率アップ」という効果のあるものでした。「成長率アップするなら真っ先に取っちゃおう」という心理が働くし実際自分もそうしていたし、なによりバランス調整が難しいということで、ボツになりました。
スキルツリー制のシステムにおいて「どんな育成方針でもこのスキルはみんな取る」だとか「こんなスキル誰も取らねーよ」という状態は面白くないので……。
ケルリートではそんな状態が完全に解消されたかというと、そんなことはなかったのですが……。ここが次回作への課題で、相当悩みました。

斬る
いわゆる通常攻撃。消費SP0で再詠唱時間は全スキルで最短。
単発威力は低いが回転が速くDPSは悪くないので、パッシブスキル中心に取って攻撃はこれ一本で終盤まで戦うプレイもある。
ちなみに付与呪文でスキルレベルを上げるとしっかり威力が上がる。やってる人がいたかは不明。
前作レイユウサイではダメージ計算式の関係で最強スキルの一角だった。

生命の灯火
残りHPが少ないときに与ダメ・被ダメに補正がかかるパッシブスキル。
HPが減りやすいバランスの関係上活躍できるかと思い実装。
数値設定の問題でv1.0.30になるまでは使いづらいスキルでしたが……。

剣術の鍛錬
物理攻撃の与ダメージ全てに乗算で補正がかかるパッシブスキル。
物理ツリーを取るなら必須なので採用率は高い。

最後の防備
物理攻撃の被ダメージを割合軽減するパッシブスキル。
物理耐性を上げているので、技能+付与呪文の組み合わせ次第では物理攻撃を無効化できる。

魔道の心得
四属性攻撃の与ダメージ全てに乗算で補正がかかるパッシブスキル。
魔法ツリーを取るなら必須なので採用率はやはり高い。物理ツリーにある火属性攻撃「火焔斬り」にも効果は乗る。

緑神の息吹
いわゆる確率食いしばり。
MAX振りして発動率21%。強いか弱いかは人によるかもしれない……。
お守り代わりに振る人はいたかもしれない。

緑神の守護
毎秒HPが回復するようになるパッシブスキル。
ポイントも安いのでとりあえず取っておけくらいの感覚で1振りか5振りする印象。

自然の加護
SPの自然回復量を上げるパッシブスキル。
通常攻撃オンリーで攻めるビルドにしない限りはほぼ採用される

物質の知識
四属性攻撃の被ダメージを割合軽減するパッシブスキル。
属性耐性を上げているので、付与呪文などを活用すればかなり耐えるようになれる。
通常プレイなら採用率はわりと高い印象。

狩猟の技術
素材ドロップ率を加算で高めるパッシブスキル。
もとからドロップ率は高いので、採用率はあまり高くないかもしれない。

火あぶり
魔法ツリーの基本的な攻撃スキル。火属性。
前方を攻撃できて挙動も素直なので扱いやすいやつ。
魔法ツリーを取るならとりあえず取っちゃうやつ。

氷柱の守り
今作で実装された(同じ技を複数繋げて発動させる)新機能を使うべく実装されたスキル。水属性。
壁のように置き、敵をひっかけて攻撃するのが理想の使い方。
多段ヒットするので、全段当てれば結構強い。

稲妻走り
敵を狙わなくても範囲内なら当たるステキな攻撃スキル。雷属性。
間合いを意識する必要が薄れるので、人によってはこれ中心に据えると思う。

傷ふさぎ
いわゆる回復スキル。
HPに対して大きめのダメージをやり取りするバランスなので、威力は結構強めに設定している。
プレイによっては取らないこともあるが、即時回復で使いやすいこともあり採用率は結構高い。
回復しかしないなら1振りでもいい。MAX振りは付与呪文向け。

魔道の知識
自身の知能(魔法攻撃力)を高めるスキル。
作者は魔法ツリーで育てる時はほぼ確実に取るスキル。
Aキー切替をあまり使わない人は取らないかもしれない。
このスキルが高位の魔法攻撃スキルの前提になっているのは、火あぶり→火焔ばしらのように同属性攻撃スキルを前提にするよりは腐りにくいから。高位スキルは消費も再詠唱時間も重たいので、威力面で一撃をより重くして使ってほしいという思いもある。
こういう前提スキルの決め方は、スキルセット型のアクションRPG特有の感覚かも。

略式術法
詠唱速度を大きく高めるスキル。
デメリットは魔法攻撃力の低下。スキルレベルを上げるとデメリットが軽減されるので、使うならMAX振り推奨。
高位魔法の回転を良くしたい場合は欲しい。
前提が腐るものの物理型で使えばデメリットは踏み倒せる。

大地の怒り
唯一の土属性攻撃スキル。
土属性さんは地味オブ地味で、もともとは実装予定もなかったが、制作途中で1つスキルを追加する必要に迫られて実装した背景がある。

魔法の鎧
再詠唱時間中でもガードが発動するようになるパッシブスキル。
前作レイユウサイでは再詠唱時間中でもガード発動する仕様でしたが、再詠唱時間中はガードできない仕様へ変更したので追加したスキル。
使っている人はあまりいない気がする。ガード、意識すると結構強いのだけど……。

吸魂術法
与ダメの一定割合ぶんHP回復するスキル。
ついでに最大HPも結構強化される。生存特化型にするなら欲しいやつ。
付与呪文にも攻撃ヒット時HP回復するものがあるせいか、採用率は……低い気がしますね……。結構強いんだけども。

火焔ばしら
火属性の高位魔法。消費は重いが威力も重い。特化すれば4桁ダメージがポンポン出るようになる。
単発威力重視ならこれ。最終エリアに刺さるので採用率は高いかもしれない。
魔道の知識で知能を高めてから使いたい。

氷期来訪
水属性の高位魔法。氷柱の守り同様防御を意識したデザインの技。
自身の周囲にダメージ判定が出るので扱いやすいものの最終エリアに刺さらないので難しいところ。

雷鳴招来
稲妻走りの上位版といったところ。確率で連続発動する。
それ以上のコメントがしづらい技ですが、稲妻走りでやってきた人が置き換えることはあったと思う。

言霊反芻
魔法攻撃力アップと次に使う技の消費SP半減という優秀なスキル。
高位魔法を使うなら併用したい。
物理攻撃力バージョンもある。前作レイユウサイでは消費SP半減ではなくSP回復効果がついていて、これを乱発すればSPには困らないという、良くも悪くも便利なスキルだった。

効力分析
弱点突いたときダメージがアップするパッシブスキル。
結構上がるので、魔法ツリーなら欲しい。
物理ツリーでも前提は腐るが効果はしっかり発動するので、相手によっては有効。

効力還元
弱点突いたときSPが回復するパッシブスキル。
効果は優秀なものの、これを取れる頃にはSP自然回復を強化しているはずなので、採用を見送る場合もあると思う。

魔道の衣
HPダメージの一定割合ぶんSP回復するパッシブスキル。
被弾する必要があるので、最大HPを高めていないとしんどい面も……。
取った人、いるだろうか?

元素の盾
確率で四属性攻撃を無効化するパッシブスキル。最大20%。
確率ものなので、取る人は取るし取らない人は取らないでしょう……。
意外と発動するので効果は実感しやすいはず。

四次障壁
四属性攻撃耐性を大きく高めるスキル。
前提スキルと合わせればめちゃつよではあるものの、防御系スキルに枠を割いてもらえるかどうかというと……というところ。
付与呪文にするには強すぎるので難しいところ。


次回は物理ツリーと法陣ツリーです。

2020年9月7日月曜日

【ケルリート】v1.0.30を公開します

9月11日公開予定です。夢現では更新が若干遅れるかも。

次回作のシナリオが決まったことで、以前よりやりたかったエンディング追加に動くことができました。

ケルリートのシナリオを書き上げた段階でレベッカ+シャルロッテ主人公の次回作構想が湧き上がってきたので、ちょっと書き直して個人的な嗜好である「作品間で話が繋がってる(単体で見ても困らない程度)」要素を入れています。
元々はAエンドが次回作へ繋がるエンディングだったのですが、そこで示唆されている(しているつもり)システムの検討を重ねていくうちに「これはだるすぎるシステム」という結論に至り、ボツとなりました。

あと、既存エンディングが全て後味の悪いと評されている(反転)エンディングなので、1つはさっぱり味のエンディングが欲しいということもあって、次回作に繋がるなにかいい感じのエンディングを考えて実装することとなりました。

条件探しを今からしたくない方向けに条件を反転で置いておきます。
できごと「地底で待つ者」を完了
ラスボスに勝利
どの難易度でも到達可能です。
戦闘が苦手な人にとっては到達難易度がかなり高いのですが、数か月のプレイブランクがある作者でも難易度むずかしいで想定Lv-10程度で到達できています(結構苦しかった……)。たぶん、うまい人なら涼しい顔していける気がします。
また、地味に重要ですが、Cエンド条件を満たしていても追加エンディング条件を満たしていたら追加エンディングが優先します

エンディングリスト4つ目もしっかり追加してあります。
実はというまでもないですが、制作終盤は時間が無さすぎて一から起こすことはできなかったため、エンディングリストのUIは前作「レイユウサイ」のコモンを引っこ抜いてそのまま移植しています。
そして、レイユウサイは制作途中まで4エンディング構成だったので、ウィンドウでも4つ目を入れられるスペースがあったわけですが、今回はこのスペースが活きました。
スペースに余裕があるっていいですね。

そういえば、追加エンディングの他にもプレイヤーを置き去りにする説明不足過ぎイベントのテキストを加筆修正するなど、テキストにはちょっとだけ手を入れました。

テキスト以外の修正箇所としては、スキル「生命の灯火」の強化をしました。
現行版では「HP25%以下のとき、主人公の与ダメがSLv*10%アップ、被ダメをSLv*10%軽減」という効果を持ちます。SLv最大は3です。
すなわち、最大で与ダメが130%、被ダメが70%になるという、字面だけで見ればそこそこ優秀なスキルです。
しかし、ケルリートのダメージバランス基準は難易度むずかしいであり、この難易度では序盤以外確2~確3で主人公が沈む世界。HP25%以下で被ダメが70%になったところで、確定数にはほとんど影響しなかったわけです。
攻撃が激しい後半になるにつれ、どの難易度でも「HPは満タンが正義」になってしまうので、実質死にスキルとなっていました。
アップデート後は、HP50%以下から発動し、段階的に効果がアップするようになっています。ちなみにSLv最大は4になりました。SLv4のとき、HP50%~26%では、与ダメ20%アップ、被ダメ20%軽減。確定数が変わる場面もあるはず。
HP25%以下では従来の1.5倍の効果量となり、与ダメ60%アップ、被ダメ60%軽減と大化けします。うまく調整できれば、かなり強いはず。回復量の調整が利く新緑と相性がいいと思います。

最後に、クリア結果画面を追加しました。
タイトルに戻る直前に、クリア時のステータス画面が出るようになりました。あまり凝ったものではないのですが、前作にあった時系列できごとなどが無いので、表示できるのはステータス画面とエンディングくらいでした。
次回作以降でも実装するかはまだ検討していないですが、この時代スクショしやすい・共有したい画面というものがあるといい気がするので、無理のない範囲でやれればいいなと思っています。
ちなみに次回作の進捗は微妙です。

2020年8月12日水曜日

【ウディタ】イルシェラート(仮称)の制作記録(1)

いつの間にかお盆の時期になっていて、半焦りくらいの状況です。

最近なんだかやたらと忙しいので、ただでさえ遅い制作ペースがさらに遅くなってます。
万が一来年の夏に間に合わなかったら1年延ばすことも視野に入れつつ……。

忙しかろうが疲れていようが、執念でコモン1行書いたりシナリオやったりしてます。

記事タイトルにあるカタカナ語は、次回作に登場するとあるアイテムの名前です。
他になにもいいアイデアが出てこなかったら、これを採用しようかと思ってます。
難点はジェラートの検索結果が出てきてしまうこと。別にカタカナのみでつけるこだわりもないので、なんか追加して、エゴサビリティを上げておこうと思います……。

そんな次回作ですが、
ケルリートで搭載する予定はあったけどなんやかんやあって結局没になった、合成システムが搭載されます。

いくつかのアイコンはまだ仮ですが、こんなん出ます。
この国には偉大な某シリーズがありますが、初期作品のシステムは単純だったり実装難易度高そうだったりするし、
他の作品もやはり実装難易度かデータ作成がハードそうだし、
なによりプレイ時間目安目標が3時間程度のゲームには「システムそのまま再現」(いわゆるクローン)は相性が悪いので、
いくらか単純化したりアレンジしたり独自要素いれたりして、程よい感じにまとめました。

単純なレシピ合成だけでなく、指定されたアイテムカテゴリを含むアイテムを好きに選んで素材とすることができる要素があります。
たとえば、「水カテゴリ」を要求していたら、「きれいな水」とか「井戸水」とか「くさい水」から選べる、みたいなやつです。
某シリーズをやっていたらおなじみの要素ですが、単純にそこにあったからというわけでなく、後述する要素のことを考えたら欲しくなると思って入れました。
入れると設定項目等が激増するので、作業量考えたらいれないほうがいいのですが、個人的なこだわりもあり採用となりました。



アイテムには「属性値」の概念があって、火・水・風・土のうち1~4種類の属性を持ち、その強さを属性値で表しています。属性値は持っている属性すべてに同じ値が入っています。
たとえば、火・土で属性値50なら、火属性値50かつ土属性値50。

4つのゲージのうち、2つはアイテムのメイン効果を決める「主効果」ゲージ。完成時の属性値に応じて、効果が変化します。
残り2つのうち1つは、失敗属性。設定値を超えると、必ずアイテム作成に失敗する効果を持ちます。爆弾作りたいのに水属性上げたら湿気って失敗、みたいな表現を想定してます。
最後の1つは、合成補助効果ゲージ。設定値を超えると、なにかが起きます。結構重要。

アイテムには、アイテムの基礎性能などに影響する「従属効果」がついてます。
名前はとりあえずでつけてますが、関係性はスキルと付与呪文と同じなので、名前もそれらしくしたほうがいいかもしれない。

という感じで、ボチボチ進んでます。遅れてるけど。
これが完成してもまだ作成待ちのシステムがめっちゃあるんですよね……。