【ウディタ】マダンテをブッぱなしてみる
こんにちは、いのすけです。
今回の改造は、「マダンテをドカンやりたい!」という単純なものです!
早速改造していきましょう!
①通常変数を一つ用意。
技能使用者の現在のSPを取得し保存しておく用の変数をひとつ用意します。
②技能を用意
③コモン170の改造
コモン170は技能を使った場合にSP(またはHPやアイテム)を消費させる処理を行っています。ここに全消費させる処理を足してやりましょう。
④コモン165の改造
コモン165はダメージ計算をするコモンです。フバーハなどを実装した際の記事でも改造しました。
このコモンセルフ41に技能の効果量が格納されるので、ここに①で用意した通常変数の3倍(倍率はお好みで。ドラクエでもナンバリングによって倍率違いますよね。)のダメージを与える処理を加えます。
改造はここまでです!今回は非常に手軽でしたね!では早速挙動を見てみましょう!
これを選択し、敵に撃ってみましょう!!ドキドキ…
では、ちょっとSPが減っている場合はどうなるでしょうか?やってみましょう!
という感じで、マダンテを実装できました。私はこの技能は敵のロボットがエネルギーをためて撃つという設定にしたかったので、こんな名前になっているのですが、いずれにしても、ちゃんといいダメージで気持ちがいいです!
なによりぴぽやさんの素材がよすぎです!めちゃくちゃ強そうなエフェクトで感動です。ちなみにSP0でも撃てるので、そうするとこんなゴージャスなエフェクトで0ダメージという、めっちゃシュールな感じになりますよ。
では今回はこの辺で。
【ウディタ】固定ダメージの防御コマンドによるダメージ軽減とフバーハを作ってみる
こんにちは、いのすけです。
今回は、「基本システムのままだと、固定ダメージの技能のダメージは防御コマンドでもダメージが減らないという点」が気になったので、それを改造するのと、そのついでに固定ダメージ特技にも種類を付けて、ブレス攻撃という種類を作ってそのダメージを減らすような技能(ドラクエでいうフバーハですね。)を作っていきたいと思います!
①もろもろのDBいじり
いろいろとDBをいじって技能の種類やその被ダメ割合などの情報を格納する場所を作ってやらなくてはいけません。
まずはわかりやすいユーザーDBからいきましょう!!
技能の種類を入れる欄を作りましょう。
タイプの内容設定というところから、欄は増やせます!
それから状態設定(状態異常の性質を決めるところ)にも同じように欄を増やします。
こちらには受けるダメージ量を設定します。
ユーザーDBをいじるのはこんなもんで、続いては可変DBの方をいじりましょう。
前の記事でも軽く触れたのですが、戦闘時は可変データベースというところに敵味方の情報を読み込んで計算の処理のための数値としているので、こちらにも、ユーザーDBで設定した情報を入れる欄を作る必要があります。
具体的には、可変DBの戦闘一時ステータスというところです。
ここでも先ほど同様にタイプの内容設定で、受ける体技ダメージ率と受ける息ダメージ率の欄を作ります。ここはただ数字を読み込んで代入するだけの場所なので、ユーザーDBのように選択肢を作る必要はありません。初期値100にしておくだけで大丈夫です。
DBいじりは以上です。
②コモン146、148(一時ステ計算)の改造
続いては、コモン146と148を改造します。このコモンはざっくりいうと、146はバトル開始時に敵味方の情報を可変DBに代入するコモンで、148は、状態変化を受けた場合に敵味方の情報を改めて代入するコモンです。要するにここをどういじるのかというと、ここにさきほど作った、ユーザーDBの【受ける体技ダメージ率】・【受ける息ダメージ率】を可変DBの方の【受ける体技ダメージ率】・【受ける息ダメージ率】の方に代入させるようにする、というわけです!
基本的に【受ける攻撃ダメージ率】・【受ける精神攻撃ダメージ率】と並べるように内容を追加していくだけです。これは画像見てもらった方が早いかと思います。
こうすることで、デフォルトではユーザーDB既定のダメージ量をそのまま受けるようになります。146は以上です。148も同じようにやっていきます。
これで、コモン146、148の改造は終了です。
③コモン165(単体処理)の改造
このコモンはダメージ量の計算を行う、一番重要なコモンです。これも画像で示していきます。
コモンの改造は以上です。
④状態異常の「防御」の仕様を変えて、さらにフバーハを実装
あとは、ユーザーDBをいじって、防御の仕様を変更して、さらにフバーハを作りましょう。
<防御の仕様変更>
状態設定の防御のページを開きましょう。
これで、防御の仕様変更は完了です。続いて、フバーハも作りましょう。
<フバーハの実装>
まずは状態設定で「息軽減状態」を作りましょう。
そして技能です。
設定は以上です。
さて、うまく動くか見てみましょう。
以下の技能で実践したいと思います。
まずは普通にダメージを受けてみます。
次に、防御をしてみます。
続いて、先ほど作った息被ダメを軽減する技能を使用してダメージを受けてみましょう。
最後に、息軽減状態で防御するとどうなるでしょうか?
というように固定ダメージ技能のダメージを軽減することに成功しました。
これを応用して、息をすいこむ(敵に与えるダメージを2倍にする、要するにちからためのブレスバージョン)なども実装できます。私はもうすでに実装していて、画像にもところどころ映ってたと思います。ぜひやってみてください!
では今回はこの辺で。
【ウディタ】敵専用のザオリクを作ってみる
こんにちは、いのすけです。
ウディタでゲームを作っていて気になった点の一つが、「味方の蘇生技(ザオリク)は戦闘不能を解除&回復で簡単に作れるけど、これを敵に使わせても味方を蘇生できない」という点でした!
今回は敵がちゃんと味方一体を蘇生するような技能を作りたいと思います!
①ユーザーDBの技能で敵用のザオリクを味方用とは別に用意
私の作っているゲームでは、蘇生(resuscitation)から、リーサスという名前にしています。
で、この技能を作るときに大事なのが、効果対象を「イベント呼出[バトルのみ]」にしておくということと、呼び出すコモン名ですね。下の「イベント番号指定」というところですが、コモンイベント上で蘇生処理を行うので、そのコモンの番号を設定してあげる必要があります。今回はコモンイベント232で蘇生処理をしているので、500000+(コモンイベント番号)で500232と入力しています。これは指定のコモンイベントを呼び出すための特殊な番号です。いくつかこういう数字がありますが、今はとりあえずこれだけ覚えておきましょう。
②バトル開始時の敵のIDを通常変数に格納
ここまで書いてきてあれなんですが、実は敵を蘇生させる処理というのはちょっと無理でした💦
じゃあもうこの記事も終わりかよ、というわけではないんです!私が考えたのは、バトル中に敵を追加するコモンが存在する(コモン29ですね。)ということは、「バトル開始時に、どの位置にどんな敵がいたかを覚えさせておいて、そこに欠員がいる場合に、その位置に覚えておいたキャラを追加させれば、あたかも蘇生したのと同じ結果を出せるのではないか!」というわけです!
というわけで、システムDBの通常変数に格納しましょう。通常変数はどのコモンでも共通の値で使えるので便利ですね。まずは敵の最大匹数分(7匹)の通常変数に名前を付けておきましょう。
また、コモンイベント203はバトル開始時に行う処理を好きに入れられる場所なので、ここに先ほどの通常変数に敵キャラIDを格納する処理を作ってやりましょう。
このスロットとはなんぞやという話ですが、これは、バトルでの処理での敵味方の位置を決めている番号です。
戦闘での敵味方の情報はこの可変データベースというところに格納されていて、上の画像にもありますが、戦闘スロットの数字で味方と敵を分けています。そのためCSelf10の値を10から始めて、CSelf11にそのスロットのキャラIDを取得させています。3行目で10000引いているのは、コモン141で取得される敵キャラは、10000+敵キャラIDで出てくるからです。その敵キャラIDを①で作った通常変数に格納したいわけですが、スロット10のキャラは通常変数50に、スロット11のキャラは通常変数51に、というように格納されてほしいので、スロット番号に2000040を足して、この番号の通常変数を呼び出すことで(2000000+YでY番の通常変数を呼べます。)これを、スロット10~16までの7回繰り返せば、7つの変数すべてに敵キャラIDが格納されます。
ちなみに、バトル開始時に敵がいないスロットは、キャラIDとして-1が出力されるので、そのスロットの通常変数には-10001が格納されています。
③敵用のザオリクで呼び出すイベントを作成
①で作った技能でコモンイベント232を呼び出すことにしていたので、コモン232をいじっていきましょう!大きく分けて2つの処理に分かれるので、2つに分けて処理します。
(ア)バトル開始時にはいたのに、ザオリクを使用しようとするタイミングで生きていないキャラがいれば、その場所に同じモンスターを呼び出す処理
CSelf0にザオリクを使用したスロットを取得させ、CSelf1に発動者IDを、CSelf5に使用スロットのキャラ名を入れています。CSelf5~CSelf9は文字を入れる変数となっています。それ以外のセルフ変数には数字しか入れられない設定になっています。
敵スロットの番号10~16でそれぞれ通常変数50~56が0未満(要は-10001で該当スロットにはバトル開始時誰もいなかったということ)である場合と、CSelf21に該当スロットのキャラが戦闘不能であるかを取得させ、これが0である(戦闘不能なら1、戦闘不能でないなら0が代入されているので、要は生きているということ)場合は、ループ開始に戻し、次のスロットを判定させています。この両方に該当しない場合というのは、「戦闘開始時にはいたが、技能使用時には死亡している場合」であり、この場合にその戦闘スロットに通常変数のキャラを追加する処理をしています。戦闘スロット番号と敵キャラ追加のコモンイベント29の追加位置の数字がずれているので10引いて合わせています。
追加するだけだと演出もメッセージもなく寂しいので、メッセージ「¥cself[5]はザオリクを唱えた!」(私のゲームだとリーサス)と、蘇生の演出を蘇生するスロットに表示させています。演出の位置はCSelf30とCSelf31でスロットごとに決めています。この数値は、コモンイベント175からコピペしただけなので、真似するときはこの値を完全コピーで問題ありません。あと、回復ポップアップも入れています。蘇生させたキャラの最大HPを取得してそれを表示させているだけです。ゲージも更新させて、ちゃんと蘇生した感が出るようにしています。
(イ)蘇生対象がいなかった場合の挙動
(ア)の処理の中で、一時変数Bって何の説明もしないけど何これ!?っていう風に思われたかもしれませんが、実はスロットごとに蘇生対象でなかった場合に1ずつ加算していって、ループを抜けてこれが7だった場合に蘇生対象がいなかったという、判定になるようにしています。要するに蘇生可能でないスロット数を数え上げていただけですね笑
敵AIの行動選択条件をいじってもよかったのですが、今回は、こっちのコモンで蘇生対象がいない場合の処理もしちゃいました。
攻撃技は自分で組むと耐性や狙われ度などさすがに面倒くさすぎるので、「ようすをうかがう(無駄行動。不敵に笑っている!とかでもいいです。)」と「反撃の構え(カウンター技です。防御とかでもいいと思います。)」と「漆黒の守り(無属性ダメージを受けないような状態にする効果です。)」にしています。さいころと名付けた変数は0~2の値のいずれかをランダムで出力していてこの値に応じて行動を一つ決めています。ここは好みで変えてください。反撃の状態設定などは今回の本題ではないので割愛します。
ここまで書いてて敵行動AIで死亡者がいないか判断させる方がいいような気がしてきました…orz
動作はこんな感じです。
うまく使えば、左手が頻繁にザオリクして顔を蘇生してきた某魔王様の動きも再現できそうですね!ボス戦でこの技を使わせてプレイヤーを絶望のどん底へ落としてやりましょう!
では今回はこの辺で。
【ウディタ】はじめに
こんにちは!いのすけです!
このブログではRPGゲームを手軽に作ってみたいという願望をかなえてくれる、Wolf RPG Editor(通称:ウディタ)を使ってゲーム作りをしている私いのすけが、ウディタを色々改造していったことを記していきたいと思います。
ウディタのインストールはこちら↓(無料です)
このウディタ、改造せずとも基本システムという偉大なシステムが入っていて、一通り戦闘などは行えます。とはいえ始めたばかりの方は、右も左もさっぱりだと思うので、まずは、上のリンクの中にある、パーフェクトガイドなどを参照するといいと思います。ぴぽやさんの「はじめてのウディタ」などのサイトもおすすめです。私もお世話になりました。
ウディタですが、少し慣れてゲーム作りをしていると基本システムの仕様にも少しずつ変えたいと思うところが出てきます。
そこで、いのすけが改造したいと感じて実際どのように改造したのかをまとめていこう、基本自分の記録用だけど、真似してうまくいく人が一人でもいたら大変すばらしいことじゃないか!ということでブログにまとめていこうというわけです。
次の記事から具体的な改造について書いていきます。
では今回はこの辺で。