Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save den3606/24ddb1e1dbc7e37b0db7a9f44e0d3267 to your computer and use it in GitHub Desktop.
Save den3606/24ddb1e1dbc7e37b0db7a9f44e0d3267 to your computer and use it in GitHub Desktop.

呪文からエネルギーへまとめ

本検証は、

  • 内部ソースコードの確認
  • SpellLab, Wand dbg, 私が埋め込んだ処理確認用MOD

を利用しています。 また、以下の順番で説明していきます。 不必要なところは各自読み飛ばしてください。

  1. 「呪文からエネルギーへ」の動作検証
  2. 「呪文からエネルギーへ」が何故か発動しない問題に対する動作検証
  3. 「呪文からエネルギーへ」と爆破設定のない呪文について
  4. 「呪文からエネルギーへ」が呪文を吸収しないパターンについて
  5. 「呪文からエネルギーへ」で火力を安定させるには

結論

  • 「呪文からエネルギーへ」の適応を安定させるには
    • 爆破範囲のある呪文で「呪文からエネルギーへ」を呼び出す
    • 同時詠唱数を稼いで、「呪文からエネルギーへ」が適応される呪文を増やす
    • タイマールミナス等で、「呪文からエネルギーへ」の発動タイミングをずらす
  • 「呪文からエネルギーへ」の火力を出すには
    • 爆破ダメージが設定されてない呪文を読み込む
    • 高火力の呪文を読み込む
    • オービット(火の玉の軌道以外)を読み込ませる

呪文からエネルギーへの処理

発動してから1F後に、周囲120にある呪文を取り込みます。 取り込んだ後は、取り込まれた呪文ごとの、

  • ダメージ
  • 爆破ダメージ

をそれぞれ、「呪文からエネルギーへ」に紐づいているスペルに対してダメージ追加します。 また、爆破範囲も付与されます。 爆破範囲は、

「エネルギーから呪文へ」が付与された呪文の爆破範囲 =
  吸収する側の呪文爆破範囲 + ln( (吸収した呪文のダメージ + 吸収した呪文の爆破ダメージ) * 10 * 10.5)

(「エネルギーから呪文へ」が付与された呪文の爆破範囲 <= 120)

となっています。 lnは自然対数ですが、自然対数については割愛します(俺もわからんし忘れた) ダメージ量が大きくなればなるほど、上昇値が伸びなくなるとだけ考えてください。 また爆破範囲には上限値が設定されており、120が「エネルギーから呪文へ」を利用した際の最大爆破範囲となります。

以下のサイトで計算ができたりします。

https://keisan.casio.jp/exec/system/1260332465

呪文の取り込み処理が完了すると、呪文の取り込み処理は破棄されて 「呪文からエネルギーへ」の処理が終わります。

検証1「爆破のない放射物をエネルギーとして吸収した場合」

「呪文からエネルギーへ」が乗ったスピッターボルト(7.5ダメージ)に対して、 スピッターボルトを取り込むと、

7.5(吸収する方) + 7.5(吸収された方) = 15dmg

になると想定できます。

<画像1>

実際に試すと、問題なくエネルギーとして取り込めています。 スピッターボルトで検証しているのは、スパークボルトだとクリティカルが乗るときがあるためです。

検証2「爆破のある放射物をエネルギーとして吸収した場合」

「呪文からエネルギーへ」が乗ったスピッターボルト(7.5ダメージ)に対して、 ダイナマイトを取り込むと

7.5(スピッターボルト) + 62.5(TNTの爆破ダメージ) = 70dmg

になります。

<画像2>

しかし実際に試すと、70ダメージのときと7.5ダメージの時があります。 7.5ダメージであることから、爆破ダメージ分の火力が適応されていないことになります。 この現象については、「呪文からエネルギーへが何故か発動しない問題」の項目で解説します。

検証3「調整版が乗った放射物をエネルギーとして吸収した場合」

「呪文からエネルギーへ」が乗ったスピッターボルト(7.5ダメージ)に対して、 スピッターボルト + ダメージプラスを取り込むと、

7.5(吸収する方) + 7.5(吸収された方)+ 10(ダメージプラス) = 25dmg

になります。

<画像3>

想定通り、問題なく25ダメージになっていることがわかります。

検証4「呪文からエネルギーへ」が何故か発動しない問題への調査

「検証2」で再現できた、「呪文からエネルギーへ」が発動しない問題は、 呪文の爆破範囲が小さすぎることで、爆破ダメージが適応されていないことが原因で発生しています。

「検証2」では爆破範囲がないスピッターボルトを使っていましたが、 爆破範囲が12あるファイアー爆弾に切り替えてみると、確定で爆発していることがわかります。

<画像4>

爆破解除を入れてファイアー爆弾の爆破範囲をなくしてみると、 ファイアー爆弾自体の10炎ダメージのみ適応されていることがわかります。

<画像5>

爆破解除には爆破ダメージマイナスもあるので、ホーリーボムを読み込んで試しても見ましたが、 やはり先程と同じく、ファイアー爆弾の10炎ダメージのみになっています。

<画像6>

「呪文からエネルギーへ」の爆破ダメージがうまく適応される爆破範囲は?

細かくは調べてないですが、トリプリケイトボルトの爆破範囲(11-12)がギリギリだったので、 それ以上の爆破範囲がある呪文が良いです。

  • ダブルトリガースパークボルト
  • ファイアー爆弾

等なら問題なかったです。

「呪文からエネルギーへ」と爆破設定のない呪文について

爆破ダメージが設定されていない呪文は、デフォルト値の125爆破ダメージが適応されます。 なので、「呪文からエネルギーへ」の方で爆破範囲を設定してあげれば、安定して火力を出すことができます。

「呪文からエネルギーへ」が呪文を吸収しないパターンについて

同時詠唱で呪文を呼んだ場合、読み込まれない呪文が発生するときがあります。 これは、呪文詠唱時のフレームよりも先に「呪文からエネルギーへ」が詠唱されていることが原因です。

<画像7> 立方バリア + スピッターボルト

<画像8> 鋸刃の軌道 + スピッターボルト

XXの軌道(オービット)を「呪文からエネルギーへ」が吸収するときの処理

「XXの軌道」呪文も、1フレーム単位で呼び出されています。 正確に書くと、発生後1Fで

  1. 軌道用の呪文(鋸刃の軌道ならディスク)を呼び出し、呪文に「軌道」のタグ付を行う
  2. 「軌道」タグがついている呪文を取得し、角度を変えて再描画する
  3. [2]を1フレーム単位で呪文がなくなるまで行う

という動作が発生します。 この処理が、「呪文からエネルギーへ」の処理よりも後に読み込まれていることがあるため、 軌道が残り続けてエネルギー化されなくなります。 原理は同時詠唱のときに読み込まれないパターンがあるのと同じです。

プラズマビーム、鋸刃の軌道の火力が高い原因

火の玉の軌道はファイアーが回る都合上、爆破ダメージが設定されているため弱いですが、 鋸刃、プラズマには爆破ダメージが未設定になっているので、鋸刃を例にすると

125(ディスクダメージ) * 4 = 500 爆破ダメージ

が発生します。

「呪文からエネルギーへ」で火力を安定させるには

「呪文からエネルギーへ」にディレイをかける

タイマー付きの光線ドリル等を利用して、「呪文からエネルギーへ」が適応された呪文にディレイを掛けて詠唱してください。 ただし、立方バリア等の範囲が広い魔法については、位置ずれでうまく読み込めないケースが発生するようです。

<画像9>

「呪文からエネルギーへ」の同時詠唱数を増やす

1フレーム内の処理順はわからないので、 「呪文からエネルギーへ」が発動する数を増やして、吸収を安定させる方法です。 多少読み込まれないリスクはありますが、火力は安定します。 また1F内で処理されるため、タイミングによっては「呪文からエネルギーへ」が複数の鋸刃を読む可能性があります。 これに関しては、細かい挙動は調べきれてないです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment