2021年12月29日水曜日
【ウディタ】イルシェラート(仮称)の制作記録(3)戦闘・移動AIの詳細
2021年11月29日月曜日
【ケルリート】なるべく低めのレベルでプレイしてみるやつ
ケルリートの洞窟
ケルリートの洞窟ボス:ボス・ルーエン/想定Lv2
— わたえもん (@mikowata3392) November 12, 2021
火あぶりだけ覚えて道中は全スルー、ソロで。ダメージが痛すぎて死に過ぎたのでハメました(根性なし) pic.twitter.com/usCKBFX2hF
イトバの森
イトバの森ボス:レベッカ/想定Lv12
— わたえもん (@mikowata3392) November 12, 2021
Lv6あれば(おそらく)最大火力もギリ耐えます
火あぶりより回転率は落ちるが安全を取って氷柱の守りを主軸に戦う。パッシブで物理耐性を上げて、場効果の回復と合わさり不死身に見える。火力は正直言って無なので、非常にぐだる。https://t.co/dTGhcPDyDc
涸れ井戸
涸れ井戸ボス:生命の石板/想定Lv30くらい
— わたえもん (@mikowata3392) November 27, 2021
涸れ井戸道中はレベッカと一緒に進むことになるわけだけど、ここでめちゃめちゃレベルが上がってしまうので、ボス戦突入時は通常よりちょっと低いくらいだった(Lv24)。「火焔ばしら+効力強化Lv1」を主砲に据え、「魔道の知識」で威力を強化、王道ですね pic.twitter.com/rwUJnZXDda
エハルト地下墓地
エハルト地下墓地ボス:フォルトカイト/想定Lv30前後
— わたえもん (@mikowata3392) November 27, 2021
想定Lv通りで突入、ただの通常プレイじゃないか……。「火焔ばしら」を主力に、「魔道の知識」で威力強化、回復は「吸魂術法」で。マップに凝りすぎてAIがついていけておらず容易にハマる(反省点)。3枚目が最大火力で殴って回復する様子です pic.twitter.com/gETK3LvDYY
対戦会
対戦会:グレーテ、ダンカン、レベッカ/想定Lv33
— わたえもん (@mikowata3392) November 27, 2021
フォルトカイト戦と戦法は同じ。付与呪文でさらに最大HPを高めることで、最大HPは230くらいまで強化できる。ここまで高いと対戦会ではどの攻撃を食らっても一撃でやられることはない。安心して戦える pic.twitter.com/wcTwGUSlo6
ミューダ洗掘洞
ミューダ洗掘洞ボス:湖底の龍/想定Lv40
— わたえもん (@mikowata3392) November 27, 2021
Lv35で突入。洗掘洞の初期場効果は「火属性無効」。吸魂術法の前提スキル稲妻走りで序盤は戦い、場効果が変わったら火焔ばしらに切り替える。被ダメージが超痛いので、最大HPバフを切らすと死が見える。吸魂術法ほんと強いっすね・・・ pic.twitter.com/NK7fatMpmq
フェンミの洞窟
フェンミの洞窟ボス:リーズ/想定Lv60程度
— わたえもん (@mikowata3392) November 28, 2021
くそ強いボス作るぞ! と気合いを入れて組んだボス。移動AIがくそざこなので地形ハメは存在するが、今回は真正面から戦った。火属性が使いづらいマップなので、攻撃技は雷鳴招来。詳細は動画と説明欄で。https://t.co/t8S96H2A53
ティオライ氷穴
ティオライ氷穴ボス:ホフターク/想定Lv70程度
— わたえもん (@mikowata3392) November 28, 2021
Lv53で突入。軽減手段が少ない防御無視技を主力に据えているやばいボス。途中で召喚してくる仲間もくそ強い。味方のレベッカは非常にタフだが囲まれるとHP回復しかしないので、こちらがメインで戦う必要がある。詳細は動画でhttps://t.co/9bpqtdqGEq
2021年11月26日金曜日
【ケルリート】v1.0.33を公開しました
1.できごと「月日の影」が完了しない不具合の修正
2.門番長イベントのひとつが文字化けしている不具合の修正
3.イベントフラグ制御処理の一部機能の不具合を修正
4.イベントを3件追加
5.追加詠唱型付与呪文の動作改善
2021年10月24日日曜日
【ケルリート】ダメージ計算式
用語
基本式
技能ごとに設定されている固定値。
式:攻撃側の力および知能×バフ・デバフ補正
複数ある場合は乗算でかかります。×1.5が2つあったら、×2.25です。
防御側防御力も同様です。
技能ごとに設定されている数値。力、知能それぞれに設定可能。(設定を変えれば生命力、信仰心にもできる)ちなみに付与呪文の「スキル威力を上げる/下げる」効果は、この値に加算します。
式:力or知能依存スキル倍率/(力依存スキル倍率+知能依存スキル倍率)
たいていはどちらか一方しか使わないですが、「剣を使う魔法攻撃」みたいな謎のスキルを実装するために入れているものです。
どちらも100%ステータスを使えてしまうと強すぎるからね。
式:(100-((生命力or信仰心×バフデバフ補正×力・知能依存比率/4)/(攻撃側攻撃力×力・知能依存比率/50)))/100
※計算結果が0.7未満の場合は、計算結果を0.7とする。
※力・知能依存比率が0の場合は、計算結果を1とする。
内部では反応防御と呼んでいます。最大で30%ダメージ軽減できるってことですね。
スゲー強い攻撃は受け止めるのしんどいですよね? じゃあ防御側の防御能力に対して強い攻撃を受けたら防御力がききづらくしよう! ということで作られた補正です。
4とか50といった定数は、調整用です。深い意味は無いです。
式:((1-生命力or信仰心×バフデバフ補正×防御側レベル/40/500)※計算結果が0.5未満の場合は、計算結果を0.5とする。内部では素防御と呼んでいます。最大で50%ダメージ軽減できるってことですね。こちらはキャラクターの成長に応じて軽減能力が強くなっていくという、いわゆる成長感をブーストする補正です。バフデバフ補正後のステータスを使う関係で、バフデバフがわりといい仕事します。40とか500といった定数は、調整用です。深い意味は無いよ。当たり前っちゃ当たり前ですが、到達想定レベルをもとに調整しています。『ケルリート』ではLv70付近で補正が最大になります。
式:((攻撃側レベル-防御側レベル)/-2+100)/100※計算結果が0.7未満の場合、計算結果を0.7とする。※計算結果が1.25超の場合、計算結果を1.25とする。防御軽減を適用した後のダメージにレベル補正をかけて、数値の過激な変動を抑制する補正。攻撃側のレベルが防御側のレベルより高いと、ダメージが軽減されます。これだけだったらよかったんですが、Lv補正Aくんのせいであまり機能していない……。
式:(生命力or信仰心×バフデバフ補正)/2防御軽減AとBだけでは(とくに序盤が)弱いので、減算処理もします。
式:((攻撃側レベル-防御側レベル)+100)/100※計算結果が0.5未満の場合、計算結果を0.5とする。※計算結果が1.5超の場合、計算結果を1.5とする。
最終ダメージに補正をかけるもの。正直いらんかった気がしている補正ですね。
防御側の属性耐性を乗算で反映します。
クリティカル発生時、×1.5。またクリティカル発動した場合はガードが発動しない。ガード発生時、×0.5。前回被弾時と同じ技を食らってガード発動した場合は、×0.33。
ちなみに パッシブスキル(生命の灯火など)のダメージ補正は、この補正の後にかかります。
難易度ふつう:主人公→敵は×1.2、敵→主人公は×0.8難易度やさしい:主人公→敵は×1.5、敵→主人公は×0.6難易度むずかしいは補正ないです。
2021年9月30日木曜日
【ウディタ】テキスト読込みでメッセージを表示する
作った背景
いざ作ってみて使ってみたら便利だったので、もっと便利にしたくなって機能拡張を続けている。
作ってよかった点
イベント編集ウィンドウがすっきりする。(これが一番大きい)イベントの編集・修正が簡単になる。
しんどい点
コマンドを覚えて打ち込む必要がある(超キツイ)。ファイル数がとにかくスゲー増えるので、楽な管理方法を考える必要がある
(うちのシステムではファイルパスを一つ一つDBに登録しなければならないので、この作業がとてつもなくだるい。ちなみに、ファイル数は『MoebirinAdventure』で155、『レイユウサイ』で155、『ケルリート』で214)。
呼び出すテキストを間違えると大変なことになる場合がある(フラグ周りとかね)。
システムの構成
1.テキストドキュメントコマンド行+パラメータ指定(数値、文字列)行という形で記述されている。コマンド行頭には、コマンド行を示す記号を入れてパラメータ指定行と区別している。
以前はWindows標準の「メモ帳」を使って書いていたが、今はVSCodeで書いている。
1.で作成したテキストドキュメントのパスを入れておくDB。
2.で登録したテキストを呼出し、表示するコモンEv。
1コモンではさすがにしんどいので、いくつか補助コモンがある。
テキスト表示前に、このDBへテキストドキュメントのデータを保存する。
正直言って、実装した当初の目的はわすれた。
ただ、バックログ機能で役に立っている(処理の共通化)ので、目的はこれかもしれない。しらんけど。
コマンド記述でできること
1.テキスト表示
中核の機能。次回作向けのバージョンでは、名前表示無しの場合は3行、名前表示有りの場合は2行まで同時表示可能。
あらかじめDBに登録した顔グラフィックを呼び出す機能。高解像度向けの歩行グラフィックをコモンで切り抜いて表示している。
システムDBに登録されている効果音やBGMを再生できる。
微妙な会話の間なんかに使う機能。
白・黒・赤の画面フラッシュ、トランジション、縦・横揺れエフェクト、暗転処理ができる。
指定した名称のコモンを呼び出す。引数も指定可能。
指定した(疑似)マップEvを操作(歩行、向き変更)できる。
文字通りの機能。実装したけど正直なところ使ってない。一枚絵背景にテキスト表示とかするのに使えると思う。
専用DBに登録したピクチャをプリセット座標(左寄り・中央・右寄り)、指定拡大率で表示する機能。文字列ピクチャも出せて、文字列は自由に座標を指定できる。微妙に不便なので改善の余地ありな機能。
変数呼び出し値で指定した変数に、指定数値を加算または代入できる。フラグ操作用ですね。
9.ピクチャ表示と似ているけど、こっちは直接フォルダ内のピクチャを指定する。表示座標は左上X0、Y0で固定。正直9と統合したい。次回作完成後にそういう整理をする作業をやりたい……。
自作選択肢コモンを呼び出す機能。選択肢は10個まで指定できる。選んだ選択肢に応じて、指定されたテキストを呼び出す。
選択肢の選択後に、選択肢を再表示するオプション付き。チュートリアルとか重要な選択肢とかで使う。
変数Aと変数B or 数値が指定条件を満たしているか否かで、次に呼び出すテキストを変化させる機能。条件は、同じ/以上/以下/超/未満の5種類。特定のフラグが立っていたらテキストを変化させるのに使う。
ウディタ標準のマップ移動コマンドと同じ動作をする機能。移動時のトランジションや効果音も一緒に指定できる。
指定した変数の指定条件を満たしていたら次コマンド以降を処理し、満たさない場合は終了する機能。普通のテキスト表示ではあまり使わない。難易度に応じて操作する変数を増やすといった処理をしたいときに使う。13.変数分岐でも同様の処理は可能ではあるけど、これはtxtファイルを増やさず実装可能。
指定したテキストを呼び出す機能。選択肢でテキストを一時的に分岐させるが、差分程度で残りはテキストが共通……というときに使う。身もふたもないけどコピペでええんちゃう?という感じもしなくはない。
コモンEvの機能
コマンドとは別に、コモンEv側の機能として実行可能なものが以下の通り。1.テキスト直打ちで表示する
1つのコマンドしか使えない(テキスト表示でもBGM再生でもなんでもいい)が、コモンEvの引数指定欄に直打ちして実行できる。
文字通りの機能。画面いっぱいに出るのではなく、メッセージを1つ1つ遡っていくタイプ。テキスト読ませるゲームだったら怒られそう。ここも今後改善したい。ちなみに選択肢表示中にも使える。
ADVによくある、オートでテキスト送りしてくれる機能。テキスト送り待ち時間はコンフィグで調整可能。
テキスト表示途中にテキスト送りボタンを押すと、残りを瞬間表示する機能。
現在読み込んでいるテキストドキュメントの残りを全てすっ飛ばして終了することができる。本当はテキストドキュメント単位ではなく、イベント単位で飛ばしたいが、実現できていない。
スキップ実行時、未読だったらスキップするか確認画面を出せる(出さないようにもできる)。ただ、現状は一度読んだ後ロードし直すと未読のままになる仕様。正直言ってこれはアホ仕様だと思うので、次回作公開までに既読フラグはシステムセーブに収めるようにしたい。
あらためて書き出すとすごく多い。ただ、作り直したい箇所はそれなりにあるし、まだまだ機能が足りないので、次回作を出した後、機能がさらに増える気がする。
VSCodeを使ったコマンド記述は、気が向いた時に紹介します。
2021年3月25日木曜日
【ウディタ】可変DBを後から変更する方法
1.バージョン情報を用意しよう
2.ロード後一度だけ呼び出すコモンを用意しよう
3.バージョン情報に応じて可変DBをいじろう
2021年1月9日土曜日
【ウディタ】イルシェラート(仮称)制作記録(2):NPCのAI
②味方/敵の仲間同士で補助ができるような処理をつくること。
③RPGらしく一定HP切ったら本気モードとかできるようにしたい。
④ある程度NPCが手加減できる仕様を入れること。
⑤状況に応じて多少戦い方を変えられるとなおよし。