まるちゃん 2019/10/05 14:11

一応すべての職業のスキルが完成。装備によるスキルはまだ…

ずっとボーッとしてゲーム作ってない感じでした
スキルが決まらなくてうだうだしてました
1つのことに集中しちゃうと他のことができなくなっちゃう感じです
スキルが決まらならないからダンジョンに登場する敵を決めよう
そうすればいいのにスキルを作りたい気持ちに引っ張られちゃいます
完成と言ってもデータベースに名前を書き込んだという感じで
しっかり動作するようには決めていません

自動戦闘を効果的にするルールのもとのスキル制作 - まるちゃん - Ci-en
以前作ったスキルからいくつか変更をしました
それは戦闘の調整というより他の職業とみて大きな差が出ないようにという感じです
ある職業だけ強すぎたり弱すぎたりしないようにいくつか変更しました

大きな変更はアルケミストという3次職の削除です
理由は数多くの戦闘をこなしながらゲームをすすめていくので
1つ1つの戦闘の密度がとても薄いのです
バトルログも最悪読み流しが基本だし最悪設定で表示しなくなります
それなのにアイテムをランダムに5つも作成するというスキルは
どんなアイテムが作成されてアイテムとして入ったのかプレイヤーは確認できない
加えて、自動戦闘を多用しているのにアイテムをプレイヤーに選択させる
こういう動作は戦闘のテンポを悪くする要素だと思いました
ただスキルの内容自体はとても気に入ってるので他のゲームで使いたいです

アイテムをランダムに作成するというスキルの利点を説明させてください
魔法を使用する際、通常コストを消費します
しかしアイテムを一旦作成するという動作を戦闘中にすることで
コストは消費しないけれどアイテムを作成するという動作が必要になる
時間はかかるけれどコストがいらないという感じで気に入ってました
またアイテムなので他の人も使用できる利点もあります
回復魔法と違い回復を予約するということができる
とても気に入ってました。しかし今回はテンポを優先したいので諦めました

アルケミストと入れ替えでエクソシストという職業を作成しました
ネクロマンサーの対になる職業という感じです
4属性の魔法に加えて光属性の魔法が使える魔法使いです
固有技能(TPを消費するスキルのこと)はディスペルとリインフォース
ディスペルは味方全体のHPを50%回復してデバフと状態異常を解除します
祓魔の能力を考えてこれがぴったりだと思いました
もう一つのスキルはうまく決められませんでした
ジャッジメントにすればかっこいいし似合ってますが内容が決まりませんでした
魔法力と魔法防御のデバフがなかったのでこいつにしました
それに加えてHP自動再生を付け加えることにしました
レンジャーの妖精たちのポルカと対をなす感じにしました

アルケミストのスキルのアイテム作成と似ている
魔法使いのスクロール作成を削除しました
戦闘中にアイテムとして使用できる攻撃魔法をスクロールとしました
スクロールを使用するスキルを作っても良かったのですが
アイテムは消費するともとに戻らないから止めました
アイテムを消費せずスクロールの効果を使用するスキルを作ろうかと思いました
それだとMPを消費せず(ある程度使ってもいいけれど)使えるので
強すぎるのでやめました。回復アイテムはさらに強力なのでもちろん駄目です

盗賊はサポートスキルを豊富にしようと思いました
施しというスキルを作りました
これはTPを消費して味方のMPを回復する効果があります
このスキルだけで他の職業とは違う有効性があると思います
後半はアイテムによる回復がほとんどだと思いますが…
MP回復スキルで言えば魔法使いが習得する予定でしたが
2次職に変更してもう片方は吸収することでMPを回復するようにしました
吸収なので戦闘中にしか使えないので面倒かもしれません
しかし吸えるだけ吸えてしまう強力な効果にすることにしました

ネクロマンサーのアンデット作成スキルについてはまだ作っていません
これはアクターを追加するということになりますが
戦闘中に何度も使用する可能性があります
なのでスクリプトで作る必要があると思います
もちろん1体しか召喚できないと制限を作ればいいのですが
それでは面白くないので頑張ってみようと思います
できたらスクリプトを公開しようと思います

このスキルを再現するスクリプトを公開しょうと思います
行動主体者の取得.txt (行動主体者の取得.txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp
関数呼び出し.txt (関数呼び出し.txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp
スキルの使用条件.txt (スキルの使用条件.txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp
消費MPを0にする.txt (消費MPを0にする.txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp


スキルで使用するスクリプト.txt (2.29kB)

ダウンロード

これはちょっと適当

この4つで全て再現しました
スクリプトに理解のある人は使い勝手がいいと思います
関数呼び出しとありますが厳密には Game_Battler の関数の
item_apply(user, item) で関数を呼び出すことです
これを使用したのは味方全体の状態異常をランダムに1つ治療するです
(「スクリプトで使用するスキル」に関数を作りました。他にもいくつかあります)
コモンイベントで再現できるのですが @result.success = true にしていないので
「ただし効果がなかった」とバトルログに表示されてしまいます
それを解決するために item_apply で指定した関数を呼び出そうということです

このスキルを使用したとき Game_Battler とは対象がそれに当たります
例えばその対象に攻撃スキルを使用したあと使用者にステートを付与する
こういうスキルは多くありますがわざわざそのスクリプトを作ったり
それだけのためにスクリプトを入れるのは面倒です
その場合こうすればいいのです
<Call user.add_state(state_id)> これで解決(多分)
(2019/10/07:うまくいきました。user.remove_state(stata_id) だけど)
厳密には Call 関数じゃなくて Eval を使用しています
感覚的には Call だし、わかりやすいと思って…
Call のとき関数の引数をどうしようと考えて Eval でいいじゃんってなりました

行動主体者取得のスクリプトは他の人も作っています
対象が欲しい場合は subject.current_action.target_index で取得できます
しかし、対象とは全体だったりランダムだったり複雑なときが多いのです
なので行動主体者のみ取得しました
対象がほしいなら関数呼び出しのほうが使い勝手がいいと思います

行動主体者が欲しかったのは使用者の習得しているスキルを複数回使うスキルです
例としてはペンタマジックです
これは習得している攻撃魔法を連続して3回使用します
そのときコモンイベントで戦闘行動を強○させています
通常の行動の強○はアクターを指定します
「スキルで使用するスクリプト」に Game_Battler を引数にして
行動を強○させるスクリプトがあります
force_action(subject skill_id) で作れます(対象はランダムになります)
(行動主体者を強○させる関数でもよかったけど汎用性を残したかった)
またこの固有技能はMPを消費しないので
スイッチで消費MPを0にできるスクリプトを使って管理しています
もちろんステートのMP消費率を0にするのをつくり付与するのもありです
でもその場合 subject.add_state(state_id) とするのが嫌だっただけです
ステートを新たに作る必要もあってそれも嫌でした

ランダムに使用するスキルを取得するのにスクリプトを使用しています
item_test をして効果がないのは省こうとする予定です
subject.random_skills(subjet.skills) とすると習得しているスキルから
ランダムに使用するスキルを決定できます
このときTPを消費するスキルも含まれてしまうので嫌な人は少し大変です
skills.collect {|id| $data_skills[id].stype == 1 } とかする必要あり
自分はTPを消費しないスキルのスキルタイプが1なのでこうしました
厳密にMPのみを消費するスキルを集めたいのは2行以上必要だから書かない



今後の予定はとりあえずネクロマンサーのアクターを追加するスキルを作成
その後ダンジョンで登場する敵を作ってステータスを決定しようと思います
そうしたらマップやストーリー(なし)に手が触れられます
関数呼び出しのスクリプトはよくできていると思います
使い勝手のいいスクリプトじゃないかなぁと
自分はすごく気に入ってます

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

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

月別アーカイブ

限定特典から探す

記事を検索