投稿記事

RPGBakinの記事 (86)

んだば重工 2023/05/03 17:01

魔法(スキル)回避率の設定の仕方【RPGBakin】

この記事ではRPGDeveroperBakinのスキル回避率の実装について解説いたします。

・2023年5月3日執筆の記事です。今後アップデートされ追加されるかもしれません。
・プラグインを使わない(使えない)のでデフォルト機能だけで作成しております。
・変数を使うので中級者~向け
・敵1体、味方1人のバトルを想定してます。(筆者制作中のゲームがそうなので)応用次第で複数人のバトルでも対応できると思います。

スキル回避設定


こんにちは、んだば重工です!

助手のラビットちゃんです。

今日はゲーム制作ツールであるRPGDeveroperBakinのスキル(魔法)回避率の実装と、「回避」コマンドの作成例を解説します!

わざわざ解説するってことは「設定しなきゃ存在しない」ということですか?

はい、その通りです。「回避率」というのはパラメーターとして存在しますが、スキルに関する設定はスキル自体の成功判定のみで、対象の能力を参照する項目は現時点で存在いたしません。。。

そこで「変数」を使って、スキル回避率のパラメータを作ってしまおうと思います。


変数すげえ!


大まかな流れですが、

敵のスキルを「ヒット時」「回避成功時」の2種類を作る。
バトルイベント「毎ターン」で敵の行動を変数で決定させる。

という流れになります。

敵スキルの作成

まずは同名の敵スキルを作成します。スライムタッチとしておきます
ひとつは成功率を100に、もうひとつは0にしておきます。

変数の作成と設定

次に以下の変数を新規作成します。名前は管理しやすければ何でもいいです。

・命中率
・回避率
・ランダム100

イベントの制作

バトルイベント「敵AI」というものを作ります。名前は任意で大丈夫です。
開始条件は「毎ターン」です。

今回は例で敵Aの命中が100、味方Aの回避が80で、引き算で計算して最終回避率が20%になるように調整します。

イベントの中身ですが、

1・変数「命中率」に敵Aの命中100を代入します。
2・次に変数「回避率」に味方Aの回避80を代入します。

3・変数「命中率」から変数「回避率」を減算します。
これで「命中率」の中には20という数値が格納されます。

4・そして変数「ランダム100」に一度0を代入し、その後「ランダム100」に乱数0~100を加算します。(一度0を代入する理由ですが、Bakinには現状乱数が加算しかできないので、変数をリセットしておかないと正常に動きません)

敵の行動をランダム100の変数で変わるようにします。

仮に70%の確率で「スライムタッチ」、30%の確率で「何もしない」とういう行動をさせます。

5・条件判断「変数ボックスの確認」、ランダム100が70より上で分岐させます。
6・条件に当てはまる時に「バトルキャストの行動を指定する」で該当の敵に「何もしない」を設定します

これで30%の確率で敵は「何もしない」という行動をとります。

7・条件に当てはまらない時に、再びランダム100に0を代入、その後乱数100を追加します。
8・再び条件判断「変数ボックスの確認」で変数「ランダム100」が「変数命中率」より大きいを指定します。(命中率の中には20という数値が格納されています)

9・条件が当てはまった場合に「バトルキャストの行動を指定する」で上記で作ったスキル、成功率100%の「スライムタッチ」を、条件が当てはまらなかった場合に、成功率0%の「スライムタッチ」を指定します。

これで条件が達成され「敵の攻撃を20%で回避する」という設定が出来ました。
命中率と回避率内の変数を変えることで自由に回避率を設定することができます。


※味方が複数人いる場合はそれぞれ命中率と回避率を算出し、ターゲット指定の変数分岐を作れば同様に動くと思います。

応用編

こちらを応用すれば敵の回避率と、「回避コマンド」で「使用ターンの回避率を上げる」というものを作ることもできます。ただし、味方のコマンドを決定した後に開始するというイベント開始条件がBakinにはないため、かなりトリッキーな作りになります。
やり方としては

・コマンド選択時に「敵を行動不能にさせる」
・行動指定にプレイヤーの行動を「何もしない」に指定
・毎ターン開始の上記命中判定のランダム部分をスイッチなどで機能させない

というやり方で、疑似的にそのターンで回避率を30あげることができます。(内部的には2ターン経過している)

ただし、このやり方はあくまで味方1人のバトルでしか使えませんので、2人以上のパーティだと別の方法を考えなきゃいけません。

編集後記


以上がBakinでスキル回避判定を作ろう、でした!

ZZZZ...

ね、寝てる。。。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

んだば重工 2023/04/30 17:00

戦闘システム「メモライズ」

さて、いよいよ5月も終わりですね!4月でしたすみません。。。
基本的な戦闘システムが完成に近づいております。
今月はトラブルが多く思ったように制作が進みませんでした。やれなかったたくさんのタスクは来月に持ち込みです、、

システム周りの構築や細かい素材づくりや挙動の確認、バグフィックス、アニメーション修正などやってる作業は多いのですが、見栄えのいい進捗はありません。。うーむ困った。。

あ、そういえば戦闘時に新しい機能を追加しました。

敵へのメモライズ


敵へのメモライズ機能というものを追加しました。バトルコマンド選択時にShiftを押すと、対峙している敵の記録が確認できます。メモライズを使うことにデメリットはありません。(画面左側ウインドウ)

メモライズは初めて遭遇した敵に対しては意味がなく、敵の行動を受けることによって情報が増えていきます。また、一度倒したことのある敵への行動分析が成功していると敵の現在HPが判明します。

行動分析で敵の行動を判別するのが今作の基本なのですが、分析は必ずしも成功するわけではありません。メモライズで敵の行動の傾向を知ることができ、行動を予測しやすくなります。

編集後記

昨日解決したバグともうひとつ頭を悩ませている「アニメーション読み込み重すぎ問題」ですが、こちらもうまくいきそうな方法を見つけました!もう少し検証してみてから記事で紹介したいなと思います。

体験版に関してのアンケート実施中です

アンケートはこちらから

締切は本日の24時です。ご協力いただければ幸いです!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

んだば重工 2023/04/29 17:00

【朗報】バグの原因、見つかる!!!【謎のCTD】


なんと!!ここ最近ずっと頭を悩ませていたバグの原因がようやく見つかりました...!!!

正直この原因が判明しなければBakinでのゲーム制作を諦めてたかもしれません。。
今までの作業が全て無駄になるかもしれないと思い、ここ数日気が気じゃなかったです。。

同ような問題で困っているBakinユーザーと自身の備忘録のために記事に残しておくことにします。

起きていたバグの内容

戦闘終了時フィールドマップに戻ると一定確率でCTDする、というものでした。これがグラフィックのせいなのか、スクリプトのせいなのか、その他のせいなのかがわかりませんでした。(アプリ的にエラー扱いではなく、ログを見てもいまいち原因を見つけられませんでした)

そのような状態だったので、探索マップはいったん諦めて戦闘だけの体験版を、というわけだったんです。

これが現時点でグラフィックに負荷をかけすぎたせいだったら、まだまだグラフィックを盛り込む予定だった今作のやりたいことの殆どが出来なくなるので、そうではないことを願っておりました。

CTDの原因は…!

一部のコマンドスクリプトにCTDの原因がありました。
こちらのシート1が原因のコマンドスクリプトで、これが呼び出されたら戦闘後に確定CTDが起きてました。(戦闘時のカメラとグラフィック演出のスクリプトです)


そして、こちらのシート2がCTD修正後のコマンドスクリプトです。


はい、まったく同じです。
つまり見た目はまったく同じなのに、シート1だとCTD確定で、シート2だと問題なく動きます
おそらくシート1に見えないスクリプトのゴミ(キャッシュ)か何かがあって、それが原因でCTDを起こしておりました。(シート1をコピーしたスクリプトでもCTDします)

こんなんわかるかバカヤロオオオオオオオおおおおおおおおお!!!!

探索マップでのCTDだったので、戦闘中のスクリプトが原因だとは思いませんでした。。
戦闘シーンの作りこみをしている時に「あれひょっとしてこの辺りか?」という場所が見つかったので、1行ずつスクリプトを消しながら試してみて判明しました。。

気になる解決法は…!

なんでこんな状態になったのかわからないので、解決法らしい解決法はありません。おそらくどこかにバグスクリプトが生まれているので、その場所を見つけて1行ずつコピーして新しいシートに移す、で解決できると信じたいです...!
ただ「原因不明のCTD」ではなくなったので、心持ちは明るいです。よかった。。。

しかし原因じゃなかった探索マップのスクリプト1から作り直しとかしなくてホント助かった。。。

今後の体験版リリース予定について

一番頭を悩ませていた原因が分かったので、これ以上の大幅な遅延はなさそうです。ただ時間をだいぶとってしまったので、当初予定していた5月1日に間に合わすのは難しく、また新たなバグが生まれてしまう可能性もあり得るので、今とっているアンケートの結果でスケジュールを決めたいと思います。

→→体験場に関してのアンケートは4月30日まで行っております←←

ここ数日の記事の余裕のなさがやばいので、一度しっかり反省し今後はちゃんとバグフィックスも含めた余裕のあるスケジュール立てをしていこうと思います。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

んだば重工 2023/04/25 17:01

歩行グラフィック完成!

ゲーム内にインポート中・・・

動画の書き出しに手間りました。。後ほど記事追記します!
↓以下追記↓

主人公チェッタのモデリング終了!

ようっっっっやくチェッタの3D&2Dモデリングが終わりました...!
アニメを新グラフィックに更新するのも1アニメ1差分ずつ書き出ししなければならないので、出来る限り修正がないように満足いくまで作りこみました。
後々修正はしたくなると思うのですが、それは製品版くらいになるのでしょうか。

これからどんどんアニメをインポートしていきます!
実際のプレイ動画もそろそろアップしていかなきゃですね!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

んだば重工 2023/04/24 17:00

アーマーブレイク時グラ&アニメ差分紹介

体験版用テクスチャ完成!

さて、衣装のテクスチャを塗りましたので、これから今まで作ったアニメを全部更新していきます。
体験版で採用するのは以下の4差分です。

ノーマル

破れ①

破れ②

全裸

ゲーム的には破れ②は裸扱いです。
通常のアーマーブレイクでは全裸にならず、自発的に服を脱ぐか入浴イベント、敗北イベントなどの状況で全裸になります。

破れ具合によるモーションの変化

破れ②と全裸時には大事なところを隠すモーションになります。(隠せてない)

編集後記

Bakinはマップグラフィック8方向対応なので1アニメ4差分×8で32パターンずつ作らなければならないという恐ろしさ。まだ水濡れ差分とか作りたいのに(
とはいえ増えすぎるとロードがどうなるかも読めないので、いったんこの差分数で試してみます。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索