『ライザのアトリエ3』スキルダメージのPOC:「スキル特化型のボオスのダメージを確認する」

ここを起点にした「コアアイテムを補助的に使うキャラクターがスキル強化にしたらどうなるか?」の確認。

  • スキル強化基本枠: +15%(武器効果) + 25%(スーパースキル) + 50%(ウルトラスキル) = 常時+90%
  • FD特化枠: +50%(ドライブ強化) + 75%(決死の一太刀) = FD時にさらに+125%
  • 追加強化枠: 「身を焦がす怒り(WT比例大幅強化)」+「神域の花びら(スキル強化+HPドレイン)」

を実施した形で、

こちらのクリムゾンアームズ(ネメド北西)に挑みます。

スキル特化型でカイザーエンフォースをぶっ放した場合

効果は目に見えて明らか。361,118ダメージ。

続いて秘密の鍵「スキル強化・神域」とした場合は

684,033ダメージです。

1. クリムゾンアームズ戦:改訂版ダメージ完全比較表

比較検証項目ステータス特化型(A系統)(攻撃力 3207 / ブレイバー 97)スキル・FD特化型(B系統・改訂版)(攻撃力 2577 / ブレイバー 72)格差・実数値の差分
① 素撃ちFDダメージ
(エイビス・ラブリー・T-Lv5)
216,551 Damage
(敵HP 259,495 に対し未撃破)
361,118 Damage
(敵HP 229,035 を一撃粉砕)
+144,567 Damage
(約1.67倍へ上昇)
② 秘密の鍵バフ込みFD
(生命のゆりかごの鍵等)
413,171 Damage
(余剰撃破)
684,033 Damage
(余剰約46万の大爆発)
+270,862 Damage
(約1.66倍へ上昇)
③ 鍵バフ単体による伸び率
(素撃ち → 鍵ブースト)
約 1.91 倍
(216,551 → 413,171)
約 1.89 倍
(361,118 → 684,033)
ほぼ同一の伸び率
(約1.9倍の乗算枠)

2. 実証データから導き出されるバフ・ダメージ計算式

検証結果の通り、ステータス特化型とスキル特化型のどちらにおいても、「秘密の鍵(与ダメージ+50% + 全能神域 + スキル神域)を噛ませた際の上昇率」は完全に一致して【約1.9倍(1.89〜1.91倍)】となっています。

ここから、ライザ3のバフ計算式は「高い数値への上書き」ではなく、以下の多重乗算構造であることが証明されます。

最終ダメージ=基礎威力(攻撃力,敵防御力)×(1+武器特性・効果)加算枠(1)×(1+鍵シンボル・神域バフ)乗算枠(2)×(1+アイテム・デバフ補正)乗算枠(3)\text{最終ダメージ} = \text{基礎威力}(\text{攻撃力}, \text{敵防御力}) \times \underbrace{(1 + \text{武器特性・効果})}_{\text{加算枠(1)}} \times \underbrace{(1 + \text{鍵シンボル・神域バフ})}_{\text{乗算枠(2)}} \times \underbrace{(1 + \text{アイテム・デバフ補正})}_{\text{乗算枠(3)}}
  • なぜスキル特化が圧倒するのか:
    • 基礎加算枠①(スーパースキル+25% + ドライブ強化+50% + 決死の一太刀+75% + ウルトラスキル+50% + 装備付与)で基礎倍率を極限まで引き上げているため、素撃ちの時点でステ盛り型を14.4万ダメージ(1.67倍)突き放す。
  • なぜ鍵で差がさらに開くのか:
    • 鍵バフは独立した「乗算枠②(約1.9倍)」として掛かるため、元の基礎ダメージが大きいスキル特化型は 36.1万 × 1.89倍 = 68.4万 となり、差額が27万ダメージへ拡大する。

ここから得られたこと

最初に疑問を戴いた

  • ●A系統
    • 攻防
    • 攻速
    • 防速
    • 全能
  • ●B系統
    • スキル強化++
    • スキル強化+
    • スーパースキル

の2つの系統

の2つに関しては「B系統の方がダメージが乗る」という結論です。

ただし:上位下位の関係では無いことに注意。

筆者のやり方はあくまでも「先んじて敵を屠る」タイプですから、この先制での圧倒的なダメージが乗る「スキルで戦うキャラクターはスキルを活かす調合をした方がいい」という結論ですが、例えば

  • ギリギリまで耐えたい
  • 低レベルのコアアイテムでボオスがコアアイテムのダメージを叩き出したい

などの条件を加えれば、この結論が真ではないということもあり得ます。

『ライザのアトリエ3』スキルダメージのPOC:「スキル特化型の武器を作る」

この記事の分岐として、ボオスが「スキルダメージ特化型」にした場合、どういうステータスになるかを確認してみます。

ソードマスター三兄弟のグランツオルゲン

  • クーケン島
  • サルドニカ
  • ネメド

の3つでソードマスター入りの武器を納品し、入手できるグランツオルゲン。

  • スーパースキル
    • スキルの威力が25%増加する
  • ドライブ強化
    • フェイタルドライブの威力を50%増加させる
  • 決死の一太刀
    • フェイタルドライブ使用時、自信のHPを消費し威力を75%増加させる

を用います。

スキル特化のリンクコール

今回使うのは賢者の石の必須素材、エーテルコア。これをリンクコールすることで「スキル強化」が見込めます。

超特性はウルトラスキル:威力50%上昇。

ボオス最強武器「ロストアルカード」(スキル・FD特化型)調合工程別データ

1. 各制作ステップのステータス推移表

項目1. リビルド完了時 (Lv.85)2. 装備強化完了時 (Lv.85)3. ボオス装備・最終ステータス
ランク / 品質S / 999S / 999S / 999(装備品質: 200)
属性 / 属性値氷・雷 / 5氷・雷 / 5氷・雷 / 5
HP1311351262 (基礎 1314)
攻撃力2733822577 (基礎 3207)
防御力1221232384 (基礎 2824)
素早さ2062183333 (基礎 3863)
ロールブレイバー(Lv. 72)

2. 各工程の詳細データ

  • ① リビルド完了時 (Lv.85)
    • 効果: 妖魔狩りの剣 / スキル強化+15%(※リンクコールで「アタッカーの証」から変化)
    • 特性: スーパースキル / ドライブ強化 / 決死の一太刀
    • 超特性: ウルトラスキル(スキルの威力が50%上昇)
  • ② 装備強化完了時 (Lv.85)
    • 付与素材:
      • 逆鱗:身を焦がす怒り(スキルの威力が上昇。スキルのWTが長いほど効果上昇)
      • ドンケルハイト:神域の花びら(スキルの威力が上昇。与ダメージに応じてHP回復)
    • 効果: 妖魔狩りの剣 / スキル強化+15% / 身を焦がす怒り / 神域の花びら
    • 特性: スーパースキル / ドライブ強化 / 決死の一太刀
    • 超特性: ウルトラスキル
  • ③ ボオス最終装備時
    • 発現ロール: ブレイバー Lv.72(攻撃72 / 防御0 / 補助0)
    • 最終パラメータ: HP 1262 / 攻撃力 2577 / 防御力 2384 / 素早さ 3333

ステータス特化型 vs スキル特化型のステータス比較・減少幅

項目ステータス特化型(A系統)スキル・FD特化型(B系統)減少幅・差分
武器単体攻撃力649382-267 (-41.1%)
武器単体素早さ369218-151 (-40.9%)
最終HP13141262-52
最終攻撃力32072577-630 (-19.6%)
最終防御力28242384-440 (-15.6%)
最終素早さ38633333-530 (-13.7%)
ロール値ブレイバー Lv.97ブレイバー Lv.72-25(証を外した影響)

【分析まとめ:代償と引き換えに得た超絶倍率】

  • ステータス面の代償:
    • 「アタッカーの証」をリンクコールで外し、「英雄の心得」やステ盛り特性(攻防++、全能力++等)を全てスキル特性に換装したため、最終攻撃力は約630低下、ロール値も97から72へ25レベル低下しました。
  • 手に入れたスキル・FD倍率:
    • スキル強化基本枠: +15%(武器効果) + 25%(スーパースキル) + 50%(ウルトラスキル) = 常時+90%
    • FD特化枠: +50%(ドライブ強化) + 75%(決死の一太刀) = FD時にさらに+125%
    • 追加強化枠: 「身を焦がす怒り(WT比例大幅強化)」+「神域の花びら(スキル強化+HPドレイン)」

後は、この数値が本当かどうかの確認を行います。

『ライザのアトリエ3』スキルダメージのPOC:「ステータス特化型のボオスのダメージを確認する」

ここからの分岐として、ボオスのステータス特化型の武器を作りました。

そこで、スキルダメージを乗せていくことにします。

検証条件撤回

検証と言うからには、「かなり手こずる敵」が必要です。そこで選んだのがラムロースト4号で敵の姿を変えることでしたが

ここで仕様が判明。ラムロースト4号のパラメータは「Normal」をそのまま踏襲しているため、攻撃力もHPも参考になりません。

「通常攻撃で即死する」のは概念実証になりません。なので「実物」と戦うことにしました。

即ち、

この魔物、クリムゾンアームズがいるネメド地方、最奥へ続く跳ね橋。

https://atelier.reisalin.com/issues/223

ここでの戦いを行います。

ダメージの当て方

ここは、バフとデバフを使います。というのも、ライザが1000万ダメージ(注:魔物3匹の総合計)を当てたときの

エイビスコールと

ラブリーブロッサム。

この2つを合わせることは「そこからのコアアイテム」と「フェイタルドライブ」の軸を合わせるためには必須要素です。

ダメージの検証結果

検証環境・前提条件

  • 標的: クリムゾンアームズ(難易度LEGEND級 / HP: 259,495)
  • 共通事前準備(ライザのサポート展開):
    1. エイビスコール: 全体攻撃力・火力バフ付与
    2. ラブリーブロッサム: 敵全体への耐性低下・デバフ付与
    3. 時空の天文時計: タクティクスレベルを即座に「Lv.5」へ最大化
  • 装備構成:
    • 武器:ロストアルカード(妖魔狩りの剣 / アタッカーの証6 / 神域の花びら / 立派な切れ味)
    • ロール:ブレイバー(Lv.97)

普通にフェイタルドライブを放つ

フェイタルドライブ、カイザーエンフォースの結果。

討伐ならず。4.3万ほど残りました。

秘密の鍵のバフを乗せる

今度は、白楼の鍵で得た「スキル強化・神域」を使います。

その場合はしっかりと倒しきることができました。(むしろ余剰ダメージ)

2. フェイタルドライブ(FD)ダメージ比較

ここから以下の表が導き出されます。

検証パターン鍵バフ・付与状況叩き出したダメージ討伐結果考察・実戦評価
パターン1(素撃ち)なし(事前アイテムバフ・デバフのみ)216,551 Damage討伐失敗(HP約4.3万残り)HP25.9万に対しミリ残りで耐えられ、先制一撃で屠りきることができない。
パターン2(鍵ブースト)生命のゆりかごの鍵
・与えるダメージ +50%
・全能のシンボル・神域
・スキル強化・神域
413,171 Damage完全殲滅(一撃粉砕)ダメージ量が約1.9倍。余剰ダメージ15万以上。

PoCの滑り出し:順調

とても有意義な結果となりました。つまり、

「ステータス特化型の武器」はバフが乗らない限り強敵は倒せないという結果。

この、現状(AS-IS)を知ることが「本来のスキルを当てるキャラクターの理想(TO-BE)を知る」ことに繋がるので。

『ライザのアトリエ3』スキルダメージのPOC:「ステータス特化型の武器を作る」

ここから端を発した思考実験をやってみます。

即ち

「コアアイテムを補助的に使うキャラクターはスキルダメージがどこまで乗るのか?」

という、今まで考えてすらいなかったテーマ。その概念実証:POC(Proof of Concept)に臨みます。

現段階の「ステータス特化型」の武器を作ってみる

コメントを戴いた方がボオスを強くするという目的でしたので「ちょうどいい。こちらも余り使っていなかった」ということでロストアルカードを作ることにしました。

調合:ロストアルカード

ライザ3DXをトロコンしておきながら、今回の検証で初めて調合したあたりが「いかに使っていなかったか」がわかります。

まずはグランツオルゲン(攻防強化 / 攻速強化 / 全能力強化)をぶち込みます。

秘密の鍵はDLC「ロスカ島」で得た新瀬在図効果の「全能力上昇・神域」。レシピLvが合っていませんが、それをさしおいても、このパラメータ上昇は段違いです。

この通り。

秘密の鍵によるステータス上昇値の比較検証(ロストアルカード調合時)

項目条件一致を優先した鍵(時を統べる者の鍵)実際に採用した鍵(神翼の支配者の鍵)差分・優位性
モチーフ / レアリティ歯車(条件Lv.2一致) / スーパーレア羽根(条件Lv不一致) / スーパーレア
シンセサイズ効果風属性値増加・強全能力上昇・神域圧倒的な基礎ステータス補正
HP補正9 (+12)9 (+56)+44 の大幅リード
攻撃力補正52 (+56)52 (+63)+7 上回る
防御力補正0 (+12)0 (+56)+44 の大幅リード
素早さ補正0 (+56)0 (+63)+7 上回る
総合ステータス上昇量合計 +136合計 +238実数値で「+102」

調合→リビルド→武器強化

他のマテリアル環には目もくれずグランツオルゲンだけを入れて調合。

リビルドで発現。ここは、本来のアタッカーの証を「アタッカーの証が発現する」古の闘剣を入れます。なぜなら、これをリンクコールすることで「攻撃力」のマテリアル環が発現するからです。

装備強化による能力上昇は

スキル強化+HP回復を持つドンケルハイト

そして、クリティカル時のダメージを上乗せする巨大なツメ(立派な切れ味)です。

最終的な数値の変遷はこんな感じです。

装備と合わせた全ステータス

こちらがそのステータス。アタッカーLv.を重ねたことで、ブレイバーLv.がそのまま乗ります。つまり、「ロールレベルに応じて全能力が上昇」の恩恵に与ることができます。

1. ステータス推移まとめ表

項目1. 調合完了時 (Lv.48)2. リビルド完了時 (Lv.82)3. 装備強化完了時 (Lv.82)4. 秘密の鍵込み全ステータス (ボオス最終)
ランク / 品質B / 999S / 999S / 999S / 999(装備品質: 200)
属性 / 属性値氷・雷 / 3氷・雷 / 5氷・雷 / 5氷・雷 / 5
HP1311811871314
攻撃力2585236493207
防御力1222722732824
素早さ2063563693863
発現ロールブレイバー(Lv. 97)

2. 各工程の詳細データ

  • ① 調合完了時 (Lv.48)
    • 効果: 怪物狩りの剣・中 / アタッカーの証2
    • 特性: 攻防強化++ 99 / 全能力強化++ 99 / 攻速強化++ 99
    • 超特性: (未付与)
  • ② リビルド完了時 (Lv.82)
    • 効果: 妖魔狩りの剣 / アタッカーの証6
    • 特性: 攻防強化++ 99 / 全能力強化++ 99 / 攻速強化++ 99
    • 超特性: 英雄の心得(アタッカーレベルが上昇)
  • ③ 装備強化完了時 (Lv.82)
    • 効果: 妖魔狩りの剣 / アタッカーの証6 / 神域の花びら / 立派な切れ味
    • 特性: 攻防強化++ 99 / 攻速強化++ 99 / 全能力強化++ 99
    • 超特性: 英雄の心得
  • ④ 秘密の鍵・全身装備反映時(ボオス最終ステータス)
    • 発現ロール: ブレイバー Lv.97(攻撃97 / 防御0 / 補助0)
    • ロール効果: ターゲットとなる確率が上昇し、パーティのブレイバーの数だけフェイタルドライブの威力が上昇。ロールレベルに応じて全能力が上昇
    • 最終パラメータ:
      • HP: 1314
      • 攻撃力: 3207
      • 防御力: 2824
      • 素早さ: 3863

という形。

まずはこのベースモデルができたことで、

「このステータス特化型」ボオスと、今後作ることになる「スキル特化型」、どこまでダメージを乗せることができるかの下地が完成です。

『ライザのアトリエ3』調合ケーススタディ:『渡り鳥のお守り』の作り方。

2年ほど前に公開した「ボオス&クラウディア」の調合記事に対し、システムへの深い探求心に満ちたご質問コメントをいただきました。

まずは、お寄せいただいたコメントをご紹介します。

【読者様からのコメント】
3点ほど、助言いただけたら幸いです。
1.武器の特性・超特性に対して
2.ロールに対して
3.属性防御について
1.武器の調合に関してですが、
●A系統(攻防 / 攻速 / 防速 / 全能)
●B系統(スキル強化++ / スキル強化+ / スーパースキル)
の2つの系統に対し(他もある?)、今日の時点でA系統の強化しかしていないです。
よく攻略記事などで「最強武器」などは謳われていますが、それは「自分で操作する前提」「サポートモード」「アグレッシブモード」のどれにおける最強なのかというのがわからないなぁと思っています。
どうやって特性・超特性を決めていくのか、効果の計測方法はどんな感じでやっているのかなど知りたいです。
2.ロールについての理解が全くできてないです。。
たまにロール60みたいな画像が載っている記事を見ますが、私はロールが5とか7とかまでしか上がりません。そもそも役割もわかっていません。
ロールはどうやって60などに高めるのでしょうか?そうすると、何が変わるのでしょうか?
3.属性防御について
ボオスだけはなぜかステータス画面で属性の耐性に色がついていますが、なぜついているのかもわかりません。他の10人は色がついていないので、低耐性だと思います。もっとちゃんとした耐性の付け方があるのだと思います。(※その割にボオスは撃たれ弱すぎます。。)
11人全員に、渡り鳥のお守りをつけています。この渡り鳥は当然すべての効果を開放できています。14賢者、11クリスタルエレメント、その他、竜素材や動物素材にいたるまで可能なカテゴリの影響拡大中間生産物は作ってあるので。

基礎を完全に理解されているからこそ突き当たる、非常に鋭く本質的な疑問です。

そこで今回は、いただいた3つの疑問に対して小手先の回答で終わらせるのではなく、「筆者が実施している調合方針」を解き明かす形で、徹底的に解説してみたいと思います。

本記事では、以下のステップに沿って順を追ってロジックを展開していきます。

  1. 装飾品「渡り鳥のお守り」:私はこう組みました
    (※あえてリンクコールを使わずに組んだ基礎例
  2. ステータス決定論:A系統(ステ盛り)vs B系統(スキル特化)の真実
    (※なぜ私はA系統に寄せるのか? アイテムダメージ200万超を叩き出すための相乗効果)
  3. 効果測定の実践:ラムロースト2号を用いた武器性能の計測手法
    (※自操作・サポート・アグレッシブの各モードにおける実戦値の比較検証)
  4. ロールの極意:「ロール60」への到達手順と劇的なダメージ変化
    (※ボオスを題材に、ロールレベル合算の仕組みと「リンクコールを利用した高レベルロール」の真価を解明)

読者様のヒントになれば幸いです。

それでは、まずは「渡り鳥のお守り」の設計から見ていきましょう。

前提条件

  • 中和剤ループによって各種特性をコントロールできていること。
  • 超純度による無限ジェムと中間素材の複製ができていること。
  • クリアデータ / クリアデータに近いレベルでSSRのシンセサイズキーを所有していること。
  • アドバンススキル「マテリアルプラス」(秘密の鍵を調合で使用したとき、投入回数が1回増える)を解放している。

筆者調合の渡り鳥のお守り

ステータス

項目備考
装飾品名渡り鳥のお守りランクS / Lv.39
装備可能者全員(11人)ボオス装備中
属性 / 属性値風・雷 / 4
品質999
HP145
攻撃力492
防御力237
素早さ499

効果・特性・超特性

  • 効果1:安全本願
    • 状態異常耐性が上昇する。戦闘開始時、防御力が上昇する。
  • 効果2:アイテム強化+20%
    • 使用するコアアイテムの威力が20%増加する
  • 効果3:ダメージ軽減+20%
    • あらゆるダメージを20%軽減する
  • 効果4:旅の休息
    • 行動時にHPとブレイク値を回復する
  • 特性1:攻速強化++ 99
    • 攻撃力と素早さが最大で100増加する
  • 特性2:防速強化++ 99
    • 防御力と素早さが最大で100増加する
  • 特性3:全能力強化++ 99
    • 全ての能力値が最大で50増加する
  • 超特性:英雄の心得
    • アタッカーレベルが上昇する

中間素材の調合

グランツオルゲン

筆者は上記の例で言う「A系統:ステータス振り切り」でやっています。理由は

「コアアイテム主体で戦うため、敵より素早さを上げて先制攻撃で屠る」

ためです。

そのため、グランツオルゲンは

  • 攻速強化++ 99
  • 防速強化++ 99
  • 全能力強化++ 99

を特性に選んでいます。ちょっとしたTIPSとして

  • 武器で使えるステータス上昇の特性は「攻撃」に関する特性が利用できます。
    • 速強化
    • 防強化
  • 防具で使えるステータス上昇の特性は「防御」に関する特性が利用できます。
    • 強化
    • 速強化
  • 装飾品で使えるステータス上昇の特性は「素早さ」に関する特性が利用できます。
    • 強化
    • 強化

そのため、武器や防具でグランツオルゲンを作る際は、筆者は上記を組み替えています。

ここでのポイントはシンセサイズキー「属性追加:雷」を使うこと。

これにより、グランツオルゲンには全属性が付与され、どの属性であっても「金属」のマテリアル環を発現できます。

クリムゾンバース

影響拡大+4を持つ気体。渡り鳥のお守りでの調合/リビルド時にマテリアル環を一気に発現させます。

ここでのポイントはシンセサイズキー「属性追加:風」を使うこと。渡り鳥のお守りのマテリアル環は風属性が多いため、調合レベルをあまり上げずに一気に効果を発現できるからです。

秘密の鍵

各地のランドマークを回り、○○上昇・超 をそろえておきます。(もちろん、DLCで白楼の鍵を手に入れているのであれば、○○上昇・神域が望ましいです)

調合

パールクリスタルを調合します。

秘密シリーズの定跡、下位素材から調合していき、最終的な投入回数を増やします。

  • 大貝の白玉(属性値3以上)を入れます。
  • コライユサーブル(属性値3以上)を入れます。
  • レシピ変化のマテリアル環があるところまで寄り道せずに素材を入れていきます。
  • レシピ変化の前にシンセサイズキーを入れます。「○○上昇・超 以上」のステータス上昇を投入します。

※このシンセサイズキーのパラメータ(ステータス)上昇は、レシピ変化で装飾品に変わったときにそのまま引き継がれます。

献身のロケットからレシピ変化させます。

  • 巨鳥の風切羽(属性値3以上)×2
  • 巨鳥の風切羽(属性値4以上)×1

を入れます。

  • レシピ変化の前にシンセサイズキーを入れます。「○○上昇・超 以上」のステータス上昇を投入します。

金属のマテリアル環で、先に述べた「グランツオルゲン(攻速強化、防速強化、全能力強化)を、「調合回数残り1」になるまで入れます。

というのも、渡り鳥のお守りで入れられるステータス上昇系のインゴットは、ステータス上昇がやや弱いクリミネアしかないからです。

導きの鳥の羽を入れてレシピ変化をします。

渡り鳥のお守りを調合します。

  • シンセサイズキーを入れます。

条件は

  • 属性:風
  • モチーフ:羽根
  • レアリティ:SSR以上
  • 効果:ステータス上昇系
  • クリムゾンバース(追加属性:風)を投入し、中間のマテリアル環を発現させます。
  • 後は投入回数いっぱいまでクリミネアを入れます。

※TIPS※「ソーサリーローズ」は「気体」を持つクロース系なので、投入に余裕があるなら、これを入れてのステータスアップも見込めます。

この段階での渡り鳥のお守りがこちらです。

ステータス

項目備考
装飾品名渡り鳥のお守りランクS / Lv.13
装備可能者全員(11人)初期調合完了時点
属性 / 属性値風・雷 / 4
品質999
HP142
攻撃力441
防御力237
素早さ436

効果・特性・超特性

  • 効果1:安全祈願・極
    • (※リビルド前段階の発現効果)
  • 効果2:アイテム強化+20%
    • 使用するコアアイテムの威力が20%増加する
  • 効果3:ダメージ軽減+10%
    • あらゆるダメージを10%軽減する(※リビルドで+20%へ成長余地あり)
  • 効果4:旅の休息
    • 行動時にHPとブレイク値を回復する
  • 特性1:攻速強化++ 99
    • 攻撃力と素早さが最大で100増加する
  • 特性2:全能力強化++ 99
    • 全ての能力値が最大で50増加する
  • 特性3:防速強化++ 99
    • 防御力と素早さが最大で100増加する
  • 超特性
    • (※この調合段階では未付与 / リビルド時に「英雄の心得」等を投入)

リビルドを行います。

この段階で超特性の気体(英雄の心得)を入れます。残りの効果を発現させていきます。

項目初期調合完了時 (Lv.13)アイテムリビルド完了時 (Lv.39)変化・進化ポイント
HP142142変動なし(初期投入素材で完成済み)
攻撃力441441変動なし
防御力237237変動なし
素早さ436436変動なし
アイテムLvLv.13Lv.39リビルド投入により上昇
効果1安全祈願・極安全本願ランクアップ発現!
効果3ダメージ軽減+10%ダメージ軽減+20%被ダメージ軽減が10%強化!
超特性なし(空き枠)英雄の心得アタッカーレベル上昇が付与

装備強化を行います。

既に効果テーブルは埋まっているので、適当にステータスが上がる中間素材(マスターレザー)を入れました。ドレッドレザーがあれば更に上がると思います。

まとめ

  1. 全属性を付与したグランツオルゲンを作っておく。
  2. その際に必要な特性を発現させておく。
  3. レシピ変化がある装飾品は下位素材から作っていく。
  4. この時、全ての段階でシンセサイズキーを入れてステータス上昇とマテリアルプラスによる投入回数上昇を見込んでおく。
  5. 調合の時点でステータス上昇の特性の素材をたっぷりと入れるため効果発現はリビルドで行う。
  6. リビルド時に超特性の付与をついでに行う。
  7. 最後に装備強化でステータスの追加上昇を行う。

が筆者の武器の調合法です。

次の展望

ステータス決定論:A系統(ステ盛り)vs B系統(スキル特化)の真実
(※なぜ私はA系統に寄せるのか? アイテムダメージ200万超を叩き出すための相乗効果)

を書いていこうと思います。

ワイヤレスイヤホン・新調。(Anker Liberty Pro4選定)

2024年以来のワイヤレスイヤホン、導入です。

Bluetoothイヤホンを買い換えました。筆者が最終的に選択したのはAnkerのSoundcore Liberty 4 Proです。

それまで使用していたモデルは、同社のSport X20。イヤーフックがあるため落としにくいという利点がありましたが、アクティブノイズキャンセリングの効き具合に関してはやや物足りなくなっていったというのも事実です。特に移動時や周囲の雑音が気になる環境では、より強力な遮音性能がほしいというのも購入のきっかけである。

選択肢Pro 4 かPro 5か

SportはX20が未だ現役ということから、イヤーフックなしでも使える機種を選定していきます。選択肢として検討したのは、

  • 昨年登場したLiberty Pro 4
  • 今年新たに発表された後継機のLibetty Pro 5です。

最新モデルであるPro 5は性能面を見れば非常に魅力的ではありましたが、ここに一つの問題が立ちはだかります。

落としても授業料で済むか?

筆者は過去に、当時のSONYのハイエンドモデルを側溝に落として紛失してしまった経験があります。いくら2年使っていたとはいえ、高価格なイヤホンを失った際の精神的・金銭的ダメージは小さくなく、だからこそこれまである程度割り切って使える価格帯(そして落ちにくい形状)の製品を選んできました。

なので、Pro 5の約2.5万円強という価格設定は、万が一の紛失を想像した際にやや心理的ハードルが高いというものがあります。

一方でPro 4は、実売1万円台半ばから後半という価格帯でありながら、十分強力なノイズキャンセリング性能を確認。万が一の紛失時のリスクを許容範囲に抑えつつ、日常の静寂を手に入れるという点も協力でした。

確定、Pro 4

また、Pro 4のスマート充電ケースにディスプレイが搭載されている点もポイントでした。ケース側でノイズキャンセリングの切り替えやモード設定を直接行えるため、歩行中などに耳元のイヤホン本体を直接触る機会が減る。これは耳元での操作ミスによるポロリと落とす事故をある程度防げます。

それ以上に、実機を装着して「自分を選んだ」感が強いのものPro 4でした。

使用感、気になったことなどは改めてご報告します。

プライズ:ライザのアトリエ3版フィギュア撮影。

今回は撮影に相当苦労しました。

BiCute Bunnies ライザのアトリエ3版。

  • 色飛びしやすい白
  • 強烈なバニースーツの質感
  • しっかり本物が使われているフィッシュネットパンスト。

これらが重なり、撮影は過去最大レベルでの難易度でしたが

S字カーブやパンストの質感

脇からうなじにかけての質感も非常に良くできていて、スケールフィギュア以上だと思った次第です。

Apache RewriteRuleを書き直して気付いたこと。「正規表現」は短く書くためではなく、保守しやすくするために使う

先日、Redmine の Googlebot 対策として Apache の mod_rewrite を使った RewriteRule を追加しました。

まずは CPU 使用率を下げることが最優先だったため、とにかく確実に動くことを重視して場当たり的に正規表現を追加しました。

なので、今回は、RewriteRule を書き直しながら改めて感じた、「正規表現は短く書くためではなく、保守しやすくするための道具」という話です。

動けばいい。だが、そんな状態では後でメンテしづらい

最初に書いた設定はこんな感じでした。

RewriteRule ^/projects/.*/knowledgebase - [G,L]
RewriteRule ^.*/knowledgebase - [G,L]

RewriteCond %{HTTP_USER_AGENT} (Googlebot|GoogleOther|bingbot|Baiduspider) [NC]
RewriteRule ^/(projects/[^/]+/)?issues\.pdf$ - [G,L]

RewriteCond %{HTTP_USER_AGENT} (Googlebot|GoogleOther|bingbot|Baiduspider) [NC]
RewriteRule ^/(projects/[^/]+/)?issues\.csv$ - [G,L]

RewriteCond %{HTTP_USER_AGENT} (Googlebot|GoogleOther|bingbot|Baiduspider) [NC]
RewriteRule ^/(projects/[^/]+/)?issues\.atom$ - [G,L]

もちろん、これでも動きます。むしろトラブル対応中であれば、このくらい分かりやすく書いた方が安全です。

ただ、冷静になって眺めてみると、

「同じことを何回も書いている」

ことに気付きました。

正規表現とは何か

そこで、さらに正規表現で直していきます。「正規表現」という言葉を聞くと、難しそうな印象を持たれる方も多いかもしれませんが、思ったよりも単純なルールでできます。

例えば、

issues.pdf
issues.csv
issues.atom

この3つは末尾だけが違います。

これを

issues\.(pdf|csv|atom)

と書けば、

.pdf でも .csv でも .atom でも一致する」

という意味になります。MtGで言うなれば、

  • 日没を遅らせる者
  • 時を解す者
  • ドミナリアの英雄

につく「テフェリー」は

(日没を遅らせる者|時を解す者|ドミナリアの英雄)、テフェリー

と書けます。このように、共通点があるものを一つのルールで表現する。それが正規表現です。

書き直した結果

最終的には次のような形に整理しました。

RewriteCond %{HTTP_USER_AGENT} (Googlebot|GoogleOther|bingbot|Baiduspider) [NC]
RewriteCond %{REQUEST_URI} ^/(projects/[^/]+/)?issues\.(pdf|csv|atom)$ [NC,OR]
RewriteCond %{QUERY_STRING} (^|&)(sort|set_filter|per_page)= [NC]
RewriteRule ^/(projects/[^/]+/)?issues - [G,L]

PDF、CSV、Atom を一つの正規表現へまとめ、さらに「動的クエリ」と「エクスポート要求」を一つの RewriteRule で処理できるようにしています。

行数だけを見ると少し減った程度です。

ですが、保守性はかなり向上しました。

保守性を求めた正規表現

今回の目的は「短く書くこと」ではありません。

例えば将来、

issues.json

も遮断対象にしたくなったとします。以前の書き方なら RewriteRule を一本追加します。この書き方であれば

(pdf|csv|atom|json)

と一か所を書き換えるだけで済みます。変更箇所が一つだけになる。これは保守する上でかなり大きな違いです。

Knowledgebaseも同じ考え方で整理。

Knowledgebase の RewriteRule も整理しました。

以前は

RewriteRule ^/projects/.*/knowledgebase - [G,L]
RewriteRule ^.*/knowledgebase - [G,L]

のように複数行で書いていました。これを

RewriteRule ^/(home/www-data/|(.*/)?knowledgebase) - [G,L]

という一つのルールへまとめています。さらに、このルールでは以前問題になった

/home/www-data/...

のような物理パスへの誤アクセスも同時に処理しています。

「Knowledgebaseだけ」ではなく、「Rails に渡したくないもの」という視点で整理し直した結果です。

「同じ意味のもの」をまとめる

今回 RewriteRule を整理していて感じたのは、正規表現を書くことが目的ではないということです。目的は、「同じ意味を持つものを一つのルールで表現する」ことでした。

  • Knowledgebase は「存在しない旧機能」です。
  • PDF、CSV、Atom は「重いエクスポート」です。
  • sort や set_filter は「重い動的クエリ」です。

そう考えると、設定ファイルも「何を止めたいのか」が分かる構成になっていきます。

未来の自分が読める設定にする

サーバー設定は、一度書いたら終わりではありません。半年後、一年後あるいは障害対応中の深夜に、また自分が読むことになります。

その時に

「この RewriteRule は何を止めているんだっけ?」

と悩むようでは、あまり良い設定とは言えません。もちろん、正規表現は凝ろうと思えばいくらでも複雑にできます。ですが、複雑さは必ずしも保守性につながりません。

今回の書き直しで目指したのは、「短い設定」ではなく、 「意図がまとまっていて、後から見ても理解しやすい設定」 でした。
正規表現は、そのための道具なのだと改めて感じた次第です。

Redmine 6.x移行記(後編)犯人はGooglebotだった。Apacheの410 GoneでPassengerを守るまで

前回の記事では、Redmine 6.1への移行後に Passenger の CPU 使用率が異常に高止まりし、production.log と netstat を追い始めたところまでを書きました。

調べていく中で、

  • 削除した Knowledgebase へのアクセス
  • sort=set_filter= を含むチケット一覧
  • PDF や CSV、Atom のエクスポート要求

といった、一見すると関連性のないリクエストが大量に飛んできていることが分かってきます。そして最後に、

「もしかしてクローラーなのでは?」

という疑問が残りました。今回は、その続きを書いていこうと思います。

アクセス元を確認してみる

まずは production.log とアクセスログを突き合わせながら、アクセス元を確認してみました。

すると、見えてきたのは見慣れた IP アドレスです。

66.249.xx.xx

Googlebot でした。しかも一度や二度ではありません。HTTPS のセッションを何十本も張りながら、次々とリクエストを投げています。

しかもアクセスされていたのは、削除した Knowledgebase だけではありません。チケット一覧についても、

sort=
page=
set_filter=

といったパラメータ違いを延々と巡回しています。さらに、

issues.pdf
issues.csv
issues.atom

まで取得しようとしていました。普段ブラウザで Redmine を使っていると、これらは「便利な機能」という認識です。

ですが、サーバー側から見ると話は変わります。例えば PDF の生成であれば、データベースからチケットを取得し、テンプレートを組み立て、PDF をレンダリングし、レスポンスを返す。

HTML を返すだけとは比較にならないくらい重い処理になります。

つまり Googlebot は、リンクがあるから辿っているだけなのですが、Passenger からすると重い仕事ばかり持ち込まれている状態でした。

404でもPassengerは起きてしまう

Knowledgebase のアクセスについても同じです。

「存在しないページなんだから404で終わりでは?」

最初はそう考えていました。しかし実際には、Rails が起動し、ルーティングを行い、存在しないことを確認し、404 を返します。404 を返すこと自体は正しい動作です。ですが、その404を返すためにも Passenger は仕事をしています。

これでは、存在しないページへのアクセスであっても CPU を使い続けることになります。

ならばRailsまで届かせなければいい

ここで考え方を変えました。Rails が重いのではありません。Rails に仕事を渡してしまっていることが問題です。

であれば、Rails が起きる前にApacheで止めればいい。Apache を使っている以上、一番軽いのは Apache の段階で処理してしまうことです。

そこで mod_rewrite を使うことにしました。バーチャルホストの.confを以下のように変えていきます。

RewriteRule ^/projects/.*/knowledgebase - [G,L]
RewriteRule ^.*/knowledgebase - [G,L]

まずは削除済みの Knowledgebase。続いて、

RewriteCond %{HTTP_USER_AGENT} (Googlebot|GoogleOther|bingbot|Baiduspider) [NC]
RewriteRule ^/(projects/[^/]+/)?issues\.(pdf|csv|atom)$ - [G,L]

PDF、CSV、Atom のエクスポート。さらに、

RewriteCond %{QUERY_STRING} (sort=|set_filter=|per_page=) [NC]
RewriteRule ^/(projects/[^/]+/)?issues - [G,L]

検索エンジンが総当たりしている動的クエリも Apache 側で受け止めることにしました。

404ではなく410を選んだ理由

404でも目的は達成できます。ですが、今回は410 Goneを選びました。

404エラーは、「今は見つからない」という意味です。検索エンジンから見ると、

「また後で来れば復活しているかもしれない」

という扱いになります。一方、410 Gone は、

「もう永久にありません。」

という宣言です。今回削除した Knowledgebase は、将来復活させる予定はありません。だったら、その意思を HTTP ステータスとして返した方が正確です。

robots.txtも追加した

もちろん、Apache の設定だけではありません。今後の巡回そのものを減らすため、robots.txt にも、

Disallow: /projects/*/knowledgebase*
Disallow: /*?*sort=
Disallow: /*?*set_filter=

などを追加しました。ただし、ここは誤解しやすいところです。robots.txt は即効性のある仕組みではありません。

既に巡回予定へ入っているリクエストは、そのまま飛んできます。まず Apache で止める。その上で robots.txt により今後の巡回を減らす。この二段構えにしました。

効果はすぐに現れた

設定を反映し、Passenger(mod_passengerなのでapacheそのもの)を再起動します。

その後、再び CPU 使用率を確認すると、先ほどまで70〜90%を推移していた Passenger が数%程度で落ち着いていました。

production.log からも

  • Knowledgebase の404、
  • IssuesController の大量アクセス、
  • 500.html

の RoutingError は姿を消しています。試しに curl から Googlebot の User-Agent を付けてアクセスしてもApache が Rails を起動することなく、即座に

HTTP/1.1 410 Gone

を返しました。狙い通りです。Passengerに到達すること無くは何も仕事をしていません。

今回学んだこと

今回改めて感じたのは、「プラグインを削除すること」と、「削除したことを検索エンジンへ伝えること」は全く別の話だということでした。

Redmine 側では綺麗にプラグインをアンインストールできていても、Google は昔の URL を覚えています。そして真面目に巡回を続けます。そのリクエストを Rails まで届けてしまえば、存在しないページであっても Passenger は起き、CPU を使います。

だからこそ、410エラーにより「もうありません。」という判断を Apache が先に行う。

今回のケースでは、この水際防衛が一番効果的でした。

Redmine に限らず、長く運用してきた Web アプリケーションでは、大きな整理やプラグインの削除を行った後、一度アクセスログを眺めてみることをおすすめします。

自分ではとっくに忘れていた URL を、検索エンジンは驚くほど律儀に覚えているものです。そして、それが思わぬサーバー負荷につながっていることも、決して珍しくありません。

余談「Apacheは実は柔軟」

これは私の持論なのですが、超大手プラットフォームや大手配信サイトではapacheは重い。nginxこそ主流だ的な記事を見かけますが筆者のように

多数のサーバを立てられない
それでもWebアプリを多数動かしたい
セキュリティも譲れない
場合はApacheの方が驚くほど柔軟なパターンがあります。その辺の話はまた改めて。

Redmine 6.x移行後の運用記(前編) Passengerが静かにならない。Redmine 6.1移行後に始まった高負荷の正体を追う

Redmine 6.1への移行は無事に終わりました。

Redmine 5.1からのメジャーアップグレードということもあり、今回は不要になったプラグインをかなり整理しています。長年使い続けてきた環境だっただけに、「使っていないものは思い切って切る」という判断をしました。

しかし、Webで公開していると思わぬトラブルが発生しました。

CPUが一向に下がらない

切り替えた Redmine 6.1 を監視していると、Passenger の CPU 使用率が妙な動きをしています。

%CPU   %MEM   PID      USER     COMMAND
--------------------------------------------------------------------------------------
78.1   4.7    560493   www-data Passenger RubyApp: /home/www-data/redmine_v6 (prod)
38.4   3.8    560422   www-data Passenger AppPreloader: /home/www-data/redmine_v6

何も触っていないのに 70~90% を行ったり来たりしています。移行直後なので、

  • 「まだ何か設定を忘れているのか?」
  • 「プラグインを外した影響が残っているのか?」

と考えながら調査を始めました。

まず Passenger を見ようとした

最初に確認したのは Passenger 自身です。普段であれば passenger-status を実行すれば状況はある程度分かります。

ところが今回は、それすら使えませんでした。UNIX ドメインソケットのパス長制限(108バイト)に引っ掛かり、ArgumentError が発生してしまいます。

管理コマンドが使えない以上、地道にログを追うしかありません。そこで production.log と netstat を確認してみることにしました。

最初に見えたもの

production.log を眺めていると、最初に目に入ったのは見覚えのある URL でした。

Knowledgebase。

v5.1→v6.1へ移行で完全に削除したプラグインです。ところが、その URL へ今でもアクセスが来ています。

「検索エンジンが昔の URL を覚えているのか。」

最初はそう考えました。しかし、ログを読み進めていくと、それだけでは説明が付きません。

他にも出てくる動き

アクセスされているのは Knowledgebase だけではありません。

チケット一覧。

しかも普通に開いているわけではなく、

  • sort=
  • page=
  • set_filter=

こういったパラメータ付きの URL が大量に飛んできます。

さらに、

  • PDF
  • CSV
  • Atom

といったエクスポートまで巡回しています。

ここまで来ると、「404 が増えている」という話ではなくなってきました。クローラーがかなり重い処理を次々と要求しています。その頃、netstat を見ると HTTPS セッションが大量に張り付いたままになっていました。

ここでようやく、一つの可能性が頭に浮かびます。

「もしかして、これ全部クローラーなのでは……?」
「というか、悪質クローラーは止めている(includeでシャットダウンしている)はずでは……?」

そして、もしそうだとしたら、Rails 側で受け止め続けていいのか。

次回はログをさらに追い掛けながら、最終的に Googlebot による旧 URL の巡回と、動的クエリの総当たりが Passenger を疲弊させていた こと、そして Apache の mod_rewrite410 Gone を使って水際で止めるまでの経緯を書いていこうと思います。

Page 1 of 304

Powered by WordPress & Theme by Anders Norén