今回は何が起こるかわからないランダム性のあるスキルを作ってみたいと思います。
私自身がツクラーとして未熟という事もあり拙い内容になるかもしれませんが、何かのヒントになれば幸いです。
今回作るスキルは使用すると「ファイア」「ヒール」「2回攻撃」のいずれかを実行するものとなります。
スキルにランダム性を持たせる事自体はプラグインが無くても出来ますので、一緒に作ってみましょう!
ランダム性を持つスキルの中身を作ろう
このスキルを作るのに使う機能は「変数」「条件分岐」「戦闘行動の強制」そして「コモンイベント」です。
RPGツクールのスキルは使用効果からコモンイベントを呼び出す事が出来るので、そのコモンイベント内でどのスキルを使用するか変数で決めるという形になります。
くじ引きで例えるなら、クジを入れる箱がコモンイベント、クジがスキル、クジを引く手の代わりが変数と言ったところでしょうか。
まずはスキルを作ってクジを用意しましょう。
アクターが覚えるスキルと、実行される3つのスキルをそれぞれ作る
今回は「ランダム攻撃」というスキルを使用するとファイア、ヒール、2回攻撃のいずれかが実行されるように作ります。
実際にアクターが習得し戦闘時に表示されるスキルが「ランダム攻撃」です。
ランダム攻撃の設定は現時点では使用可能時をバトル画面に、命中タイプを必中に変えるだけで大丈夫です。
実行される3つのスキルは使用範囲やダメージの計算式なども含めて全て設定してください。
スキルを作るのが苦手という方はサンプルとしてデータベースを公開されている方もおられますので、そちらを活用する方法もあります。
コモンイベントに変数と条件分岐を組み込む
次にコモンイベントの中身を設定していきます。
まず実行内容の所でダブルクリックし、イベントコマンドのタブ1にある変数の操作から任意の番号に名前をつけ、乱数で1~3を代入します。
次に同じくイベントコマンドのタブ1にある条件分岐を呼び出します。
変数にチェックを入れ、先ほど設定した変数番号を選択し右のボックスを=にしておいてください。
定数が1の時、2の時、3の時をそれぞれ用意しましょう。
条件を満たさない時の項目はチェックを入れても入れなくても大丈夫ですが、ここでは外しています。
戦闘行動の強制実行でスキルを使用させる
最後にスキルを実行させます。
条件分岐の変数が1の時の枠内でダブルクリックをし、イベントコマンドのタブ3を選択します。
その中のバトルの項目内に「戦闘行動の強制…」というものがあるので、そちらを選択しましょう。
行動主体、つまり実際にスキルを使うのが誰なのかを設定します。今回はルキウスですね。
戦闘行動で使用するスキルと、対象を設定します。
ラストターゲットは直前に選択した対象となります。
ファイア、ヒール、2回攻撃それぞれのスキルを各条件下で実行させましょう。
スキルの設定でコモンイベントを呼び出そう
最後にランダム攻撃のスキルからコモンイベントを呼び出します。
スキルの右側に使用効果という項目があるので、そちらをダブルクリックし「その他」を選ぶとコモンイベントが選択できます。
ここに先ほどのコモンイベントを設定する事で、スキル使用時に実行してくれます。
これでランダム性のあるスキルの完成です。
<スポンサードリンク>
ランダム性を持つスキルの課題
さて、スキルを作る事はできましたが、人によっては課題となり得る点もいくつかあります。
あくまで私の主観ではありますが、気になった点をいくつか挙げて行こうと思います。
スキルを使う人物が固定される
まず、この作り方だとスキルを使用するアクターやエネミーが固定される可能性があるという事です。
戦闘行動の強制で行動主体を設定できるのが1キャラだけだからです。
もちろん、同じ仕組みで他キャラクターの分も作ればいけなくはないですが、作業量は大幅に増えます。
また、敵味方関係なく使う通常攻撃にランダム性(通常1回攻撃をランダムで複数回攻撃させるなど)を持たせる場合はプラグインを導入する必要があるかもしれません。
スキル発動時にメッセージが入ったり、間ができたりする
実際の戦闘でスキルを使用するとわかるのですが、このまま使うとスキル発動時に「○○には効かなかった」とメッセージが表示された後にコモンイベントが実行されます。
どうやらコモンイベントのみを実行するスキルは使用すると行動失敗と判定されるらしく、その際にこのメッセージが表示されるようです。
一応、データベースの一番下にある用語のところにメッセージの設定があるので、そちらを変更・削除すれば表示されなくはなりますが、今度は変な間が空いてしまいます。
これは恐らく仕様なので、この処理を修正するプラグインがあればそちらを導入する必要がありそうです。
追撃としてコモンイベントを実行する方法も
先程の講座内ではランダム攻撃スキルそのものに効果はありませんでしたが、例えば強斬りというスキルで敵にダメージを与えた後、追撃という形でコモンイベントを実行する事も出来ます。
これは私が実際にソルシエール年代記~騎士と魔道士編~でやっている方法で、ショックスマッシュやインパクトスマッシュなどが当てはまります。
こちらでは追撃用のスキル1つしか設定していませんが、今回作ったコモンイベントを流用すれば斬撃の跡に何が起きるかわからないスキルにする事も可能です。
こうすると行動失敗判定もされずメッセージも表示されないので、違和感なく使用できます。
まとめ
変数やコモンイベントなどを駆使すればスキルにランダム性を持たせる事自体は可能ですが、多少なりとも課題もあるというのも事実かなという印象です。
とはいえ、追撃という形で実装する事もできるので、全く使えないわけではありません。
工夫次第で様々なスキルが作れると思うので何かのヒントになれば幸いです。
それでは、今回はここまで_( _´ω`)ノシ
使用公開して下さりありがとうございます。なるほど追撃と言う点で使えば不自然な余白もカバー出来ると言うことですね。
私は、ツクール歴は3・4をいじってた時しか記憶がなく ツクールmvtは色々と初めてさわる部分が多くて 毎日格闘してます。(💦)
また、わからないことがあったら 質問したいと思います。いつも勉強させてもらってます。
変数で使う x座標とY座標の使い道って、どんな事に使えますか?
私が思いつく使用法としては「特定の場所にオブジェクトを持って行くと起動するイベント」や「今いる場所を記録し、別の場所から記録した場所に戻ってくる」などがあります。
こちらは詳しいやり方を記事として書かせていただきますので、そちらを参考にしていただければと思います。
ツクールmvtで、TP関連のイベントを作ることは出来るでしょうか?
PC版MVの場合はイベントコマンドの中にある「TPの増減」でTPを操作する事が出来ますので、トリニティにも同じ機能があれば可能だと思います。
ただ、TPは戦闘開始時に変動してしまうので、変動させたくない場合はアクターの設定で特徴の所に「特殊フラグ:TP持ち越し」を入れてあげる必要があります。
変数や条件分岐にTPを使いたい場合ですとPC版は「変数の操作」でスクリプトに「$gameActors.actor(アクターID).tp」を記入すれば可能ですが、トリニティだと使えるかどうか・・・という感じです。