概要
Rev130から実装されたゲージスキルについて解説、
及びゲージスキルの作り方を説明するページです。
スキルゲージの概念
現在、全てのスキル番号あるいはCSTR専用スキルにて使用可能になっているシステム。
「○○をする度に△△%溜まって、100%溜まったら□□させたい!!」などを実現可能にする。
他にも『使用可能回数に制限を付けたい』『1回使うとスキルの挙動が変化する様にしたい』『再使用にターン制限を付けたい』
ゲージの挙動を理解して組み合わせることでスキルによる個性表現の幅が広がる。
ゲージの種類
あらゆる番号型汎用スキルと、CSTR専用スキルは3ゲージを内包する。
- 1:Dゲージ
1ターン経過するごとに0へ近づいていく。
戦闘終了でリセット - 2:Hゲージ
ターンの経過ではゲージが変化しない。
戦闘終了でリセット - 3:Fゲージ
ターンの経過、戦闘終了どちらでもゲージが変化しない
SHOP画面へ戻ったときにリセット。実質探索中、イベント中全体にかかると思えば良い。
可能な表現方法
それぞれの挙動を理解すると単独でもこういったスキルが表現できる様になる。
- D:
・使用後nターン使用不可能
・nターン持続する、時限式の強化状態
・自動ゲージ充填式スキル - H:
・1戦闘中の使用可能回数の制御(1戦闘中n回使ったら別のスキルになる、あるいは使用不可能等)
・戦闘開始時0からスタートする、ゲージ充填式の必殺技スキル。 - F:
・1探索中の使用可能回数の制御(1探索中n回使ったら別のスキルになる、あるいは使用不可能等)
・1探索中持続し続ける充填式の必殺技スキル。
- 組み合わせの一例と実例
- ・使用後、nターン使用不可能。
スキルの使用後にDゲージをセットし、使用可能条件にDゲージが0であることをつける。
- ・1戦闘or1探索にn回まで使えるスキル
⇒『黄金のリンゴ』・イズン。
使う度にHゲージを加算していき、Hゲージが一定以上になったら使用不可能にする。
Fゲージによる探索中の制限をつける場合は『天孫降臨』等が該当する。
- ・戦闘中、ゲージが既定値になったら発動可能になる、nターン強化状態に入り、特定のスキルが使用可能になる
⇒『クライマックスレヴュー』・レヴュースタァライト。
Hゲージでゲージを充填、最大になったらDゲージで持続時間をセット。
Dゲージがある間のみ、スキル挙動が変化しクライマックスアクトになる
- ・1戦闘n回まで使えて、残りは追撃を行うスキルに変化する。
⇒『ガンマ・レイ』・ルナリエ(リリテイルズ)
使用後Fゲージをセットし、Fゲージを参照してスキルの挙動が変化。
変化した攻撃はDゲージにゲージをセットし、Dゲージがある間だけ、追撃・反撃のカウンター攻撃を行う。
- ・探索中持続するゲージが既定値になると使用可能で、他のキャラクターのスキル状態に呼応して威力が上がる。クールタイムnターン。
⇒『元素爆発(原神)』
Fゲージを蓄積ゲージにしておき、最大時のみ使用可能に、かつ使用後Dゲージでリキャストを設定。
威力算出時、『味方に奇妙なバアルがいる』『味方の奇妙なバアルが、元素スキルDゲージ1以上ある』かをサーチし、条件があっている場合威力が上がる。
使用する命令文
※○には『H』、『D』、『F』が入ります。
- SKILLGAGE_〇_ADD(キャラ,スキル,X)
「○○したので何%上げる!(または減らす!)」など、ゲージ内の数値をXの分だけ増減させる
- SKILLGAGE_〇_SET(キャラ,スキル,X)
「ゲージの数値を一気に100%にするぜ!(もしくは0%にするぜ!)」など、ゲージ内の数値をXに固定する
- SKILLGAGE_〇_GET(キャラ,スキル)
「今、ゲージにいくつ溜まってるかな?」など、ゲージ内の数値を確認する
実際の命令文の使い方 (参考:EX魔人学園MODの九角天童のゲージスキル)
ゲージスキルを使ってやりたい人が一番多いと思われる「100%溜まったら必殺技だーー!!」。
それには上記の『Hゲージ』が標準になるかと思います。
それを説明するために、作りが比較的シンプルな上、
上述の『ADD』、『SET』、『GET』をすべて使っている、EXTRA作品『魔人学園』の九角天童のスキル『外法・終ノ印』を参考例にしていきます。
構文以外の説明は青文字で説明していきます。
まずは基本となる、『行動によるスキルゲージ操作』の項目を見て行きます。
;====================================================
;行動によるスキルゲージ操作
;====================================================
@SKILLGAGE_CHARGE_外法・終ノ印,ARG,ARG:1 ←『外法・終ノ印』のところはスキル名をそのまま書いてください
#DIM SKILL_NUM ←ここで『SKILL_NUM』という箱を作っています
SKILL_NUM = PU_SKILLNUM_GET(ARG,“外法・終ノ印”)
↑ここで上で作った箱の中に、『PU_SKILLNUM_GET(ARG,“外法・終ノ印”)』(スキル名)をしまっています
これをすることで、この後『SKILL_NUM』と書くだけでスキル名を呼び出せるようになります
;自分の行動の場合
IF ARG == ARG:1 ←ここで行動者が自分であることを確認しています。
;毎ターン+10
CALL SKILLGAGE_H_ADD,ARG,SKILL_NUM,10 ←実際のゲージ構文。
↑ARGは自分(行動者)のこと、SKILL_NUMは上述でしまったスキル名です。『ADD』なのでゲージを増減させる構文です。
特に条件をつけないことで、防御以外の行動で毎ターン『外法・終ノ印』の『Hゲージ』に『10』が入ります。
;外法・終ノ印でも上がる
SIF CFLAG:ARG:入力行動 == 3904 ←特定行動(スキル)でゲージを増減させることも可能です。ちなみに3904は『専用技1』。ちなみにこの技自体のことです。
CALL SKILLGAGE_H_ADD,ARG,SKILL_NUM,30 ←上のSIF文によって、『外法・終ノ印』を使った場合、さらに『ADD』で『Hゲージ』に『30』が追加されます。
ELSE
ENDIF
;スキルゲージが100以上だと100にする ←実はゲージのデフォルトの上限は100ではないので、放っておくと100を超えてしまいます。
SIF SKILLGAGE_H_GET(ARG,SKILL_NUM) > 100 ←そのために、SIF文で『GET』で確認して『Hゲージが100を超えていたら』、
CALL SKILLGAGE_H_SET,ARG,SKILL_NUM,100 ←『SET』で100に固定します。
RETURN 0
ここまでの解説はいかがだったでしょうか?
ちなみにこれだけだと「天童くんが内部で勝手に%上がって行ってるだけ」なので、
プレイヤーにも今、何%なのかがわかるようにしないといけません。
;====================================================
;戦闘中スキルゲージの可視化
;====================================================
@SKILLGAGE_DISPLAY_外法・終ノ印,ARG ←ここは上のと同じく『外法・終ノ印』の所は実際のスキル名にしてください
#DIM SKILL_NUM ←ここと↓の行で箱を作ってスキル名をしまっているのも上と同じです
SKILL_NUM = PU_SKILLNUM_GET(ARG,“外法・終ノ印”)
SETCOLOR 0xdc143c ←ここでゲージの%を表示させる色を指定しています。白文字のままでかまわない場合は、この行は不要です。
PRINTFORML 外法印 ←ここは好きな名前でかまいません。『○○ゲージ』とか {SKILLGAGE_H_GET(ARG,SKILL_NUM),3} ←ここで『GET』で実際にゲージに溜まっている数値を表示させています。% ←単位は別に『%』でなくてもかまいません。お好みの表記でどうぞ。
RESETCOLOR ←変更した色を戻しています。色を変更しなかった場合はこの行は不要です。
ちなみにこの『外法・終ノ印』はゲージの基本となるスキルですが、実際にゲージを消費する技ではありません。
なので、次は実際に溜まったゲージを使って攻撃する技を見ていきます。
ここで見ていくのは天童くんのいわゆるゲージスキル、攻撃技である『外法印・暴虐』です。
下記の構文のほとんどは威力計算のための物なので無視してかまいません。
重要なのは一番下の行だけです。
;====================================================
;スキル及び行動の実行 ノヴァサ計算式
;====================================================
@ACTION_外法印・暴虐,ARG,ARG:1,SKILL_NUM
#DIM SKILL_NUM
#LOCALSIZE 3
;0除算回避に+1をつける
LOCAL = MIN(MAXBASE:ARG:力, MAXBASE:ARG:魔力)
SIF LOCAL ⇐ 0
LOCAL = 1
LOCAL = LOCAL * 64 / (MAXBASE:ARG:力+MAXBASE:ARG:魔力)
CFLAG:ARG:攻撃強化 += LOCAL
CALL ATTACK_SINGLE, ARG, POS(ARG:1), SKILL_NUM
CFLAG:ARG:攻撃強化 -= LOCAL
CALL SKILLGAGE_H_SET,ARG,3904,0
↑攻撃の処理が終わったこの段階で、スキルNoの3904。つまり『外法・終ノ印』の『Hゲージ』を『SET』で『0』にしています。
ちなみに必ずしも『0』にする必要はなく、『50』にすれば「50%だけゲージを消費する技!」も作れます。
さて、ここまでで
1、ゲージを溜めさせること
2、溜まっているゲージを表示させること
3、攻撃したらゲージを0にすること
を説明しましたが、大事なことが残っています。
それは「ゲージが溜まっていないと必殺技が使えないよ!」の処理です。
同じく『外法印・暴虐』のスキル使用条件の項目をを見て行きましょう
;使用条件
@SKILL_SPECIAL_ACTIONABLE_外法印・暴虐,ARG
SIF SKILLGAGE_H_GET(ARG,PU_SKILLNUM_GET(ARG,“外法・終ノ印”)) == 100
↑このSIF文は少々長いですが、SKILL_NUMという箱を作らなかった時はこういう書き方になります。
ここで『GET』で『外法・終ノ印』の『Hゲージ』が『100』であることを確認しています。
RETURN 1 ←上のIF文で『100』だったら『1』で使用可能。
RETURN 0 ←『100』じゃなかったら『0』で使用不可だよ、ということです。
今回はシンプルな『外法・終ノ印』と『外法印・暴虐』で説明しましたが、
ゲージスキルはもっと複雑で色いろなことが出来ます。
例えば『こちらのダメージHITしたらゲージが増える』『ダメージを受けたら増える(減る)』etcetc。
ここまでで説明したことを飲み込めれば、ゲージスキルの基礎と仕組みは抑えられた……らいいな!
もっと色々知りたいよ!複雑なことをしたいよ!という方は、
『白き鋼鉄のX』や『レヴュースタァライト』や『Fate』などのファイルを覗いてみてください。
かなり参考になると思います。
わからない、訊きたいことがあるなどの場合はDiscordまで。(構文の実例などを投下しあって修正するほうが確実にお互い楽になるため、レスポンスの速い方を薦める)
