アピール値計算式について

当ツールで利用しているミリシタのアピール値の計算方式は以下のとおりです (2019/07/24改定)。

計算段階の多くで都度丸め操作が入るので注意が必要です。


サポートメンバー
    $$\scriptsize キャラiの基礎値: status_i = \begin{pmatrix} vo\ value\\ da\ value\\ vi\ value \end{pmatrix} $$ $$\scriptsize \begin{eqnarray} X_i = \begin{cases} 0.3 & ( 楽曲属性がALL\ or\ キャラiの属性が楽曲属性と一致 ) \\ 0 & ( それ以外 ) \end{cases} \end{eqnarray} $$ $$\scriptsize \begin{eqnarray} Y_i = \begin{cases} y_{Vo} & ( Voブーストイベント ) \\ y_{Da} & ( Daブーストイベント ) \\ y_{Vi} & ( Viブーストイベント ) \\ y_{None} & ( 通常ライブ ) \\ \end{cases} \end{eqnarray} $$ $$\scriptsize y_{Vo} = \begin{pmatrix} 1.2\\ 0\\ 0 \end{pmatrix} ,\ y_{Da} = \begin{pmatrix} 0\\ 1.2\\ 0 \end{pmatrix} ,\ y_{Vi} = \begin{pmatrix} 0\\ 0\\ 1.2 \end{pmatrix} ,\ y_{None} = \begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} $$

  1. キャラ(i)ごとに属性一致ボーナス(\(type\,bonus\))を計算
    • $$\scriptsize type \ bonus_i = floor(X_i * status_i) $$


  2. キャラ(i)ごとにイベントボーナス(\(event\,bonus\))を計算
    • $$\scriptsize event \ bonus_i = floor(Y_i * status_i) $$


  3. 10キャラ分の基礎値・ボーナス値の総和を別個に集計
    • $$\scriptsize Status = \sum_{ i = 1 }^{ 10 } status_i $$ $$\scriptsize Type \ Bonus = \sum_{ i = 1 }^{ 10 }type \ bonus_i $$ $$\scriptsize Event \ Bonus = \sum_{ i = 1 }^{ 10 }event \ bonus_i $$


  4. サポートメンバーなのでそれぞれ別個に値を半分(1/2)に
    • $$\scriptsize Status_{1/2}= floor(Status\ /\ 2)\\ $$
    • $$\scriptsize Type \ Bonus_{1/2}= floor(Type \ Bonus\ /\ 2)\\ $$
    • $$\scriptsize Event \ Bonus_{1/2}= floor(Event \ Bonus\ /\ 2)\\ $$


  5. 総合値を計算 (=サポートメンバーの総アピール値 )
    • $$\scriptsize Appeal_{support} = (1,1,1)*(Status_{1/2} + Type \ Bonus_{1/2} + Event \ Bonus_{1/2})$$


※floor():小数点以下切捨て

$$\scriptsize floor \begin{pmatrix} a\\ b\\ c \end{pmatrix} = \begin{pmatrix} floor(a)\\ floor(b)\\ floor(c) \end{pmatrix} $$
ゲストメンバー
    $$\scriptsize ゲストキャラの基礎値: status = \begin{pmatrix} vo\ value\\ da\ value\\ vi\ value \end{pmatrix} $$ $$\scriptsize \begin{eqnarray} X = \begin{cases} 1 & ( 楽曲属性がALL\ or\ ゲストキャラの属性が楽曲属性と一致 ) \\ 0 & ( それ以外 ) \end{cases} \end{eqnarray} $$ $$\scriptsize \begin{eqnarray} Z_i = \begin{cases} z_{Vo} & ( キャラiによるセンタースキルボーナス対象がVo ) \\ z_{Da} & ( キャラiによるセンタースキルボーナス対象がDa ) \\ z_{Vi} & ( キャラiによるセンタースキルボーナス対象がVi ) \\ z_{All} & ( キャラiによるセンタースキルボーナス対象が全アピール値 ) \\ z_{None} & ( キャラiによるセンタースキルボーナス対象がなし、もしくはゲストキャラがボーナス対象外) \\ \end{cases} \end{eqnarray} $$ $$\scriptsize z_{Vo} = \begin{pmatrix} z_i\\ 0\\ 0 \end{pmatrix} ,\ z_{Da} = \begin{pmatrix} 0\\ z_i\\ 0 \end{pmatrix} ,\ z_{Vi} = \begin{pmatrix} 0\\ 0\\ z_i \end{pmatrix} ,\ z_{All} = \begin{pmatrix} z_i\\ z_i\\ z_i \end{pmatrix} ,\ z_{None} = \begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} $$ $$\scriptsize z_iはセンター効果倍率 $$

  1. 属性ボーナス(\(type\,bonus\))を計算
    • $$ \scriptsize type \ bonus = floor(X* status) $$

    ※「\(status\) + \(type\,bonus\)」の値がゲスト選択時に表示される数値となります



  2. センタースキルボーナス(\(centerskill\,bonus\))を計算
    • $$ \scriptsize centerskill \ bonus = floor((Z_{guest}\ +\ Z_{center}) * status) $$


  3. ゲストメンバーはイベントボーナス(\(event\,bonus\))を計算しない


  4. 総基礎値・総ボーナス値の和を取る (ゲストのアピール値)
    • $$\scriptsize Appeal_{guest} = (1,1,1)*(status + type \ bonus + centerskill \ bonus) $$


※floor():小数点以下切捨て

$$\scriptsize floor \begin{pmatrix} a\\ b\\ c \end{pmatrix} = \begin{pmatrix} floor(a)\\ floor(b)\\ floor(c) \end{pmatrix} $$
ユニットメンバー
    $$\scriptsize キャラiの基礎値: status_i = \begin{pmatrix} vo\ value\\ da\ value\\ vi\ value \end{pmatrix} $$ $$\scriptsize \begin{eqnarray} X_i = \begin{cases} 0.3 & ( 楽曲属性がALL\ or\ キャラiの属性が楽曲属性と一致 ) \\ 0 & ( それ以外 ) \end{cases} \end{eqnarray} $$ $$\scriptsize \begin{eqnarray} Y_i = \begin{cases} y_{Vo} & ( Voブーストイベント ) \\ y_{Da} & ( Daブーストイベント ) \\ y_{Vi} & ( Viブーストイベント ) \\ y_{None} & ( 通常ライブ ) \\ \end{cases} \end{eqnarray} $$ $$\scriptsize y_{Vo} = \begin{pmatrix} 1.2\\ 0\\ 0 \end{pmatrix} ,\ y_{Da} = \begin{pmatrix} 0\\ 1.2\\ 0 \end{pmatrix} ,\ y_{Vi} = \begin{pmatrix} 0\\ 0\\ 1.2 \end{pmatrix} ,\ y_{None} = \begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} $$ $$\scriptsize \begin{eqnarray} Z_{i, j} = \begin{cases} z_{Vo} & ( キャラjによるセンタースキルボーナス対象がVo ) \\ z_{Da} & ( キャラjによるセンタースキルボーナス対象がDa ) \\ z_{Vi} & ( キャラjによるセンタースキルボーナス対象がVi ) \\ z_{All} & ( キャラjによるセンタースキルボーナス対象が全アピール値 ) \\ z_{None} & ( キャラjによるセンタースキルボーナス対象がなし、もしくはキャラiがボーナス対象外 ) \\ \end{cases} \end{eqnarray} $$ $$\scriptsize z_{Vo} = \begin{pmatrix} z_j\\ 0\\ 0 \end{pmatrix} ,\ z_{Da} = \begin{pmatrix} 0\\ z_j\\ 0 \end{pmatrix} ,\ z_{Vi} = \begin{pmatrix} 0\\ 0\\ z_j \end{pmatrix} ,\ z_{All} = \begin{pmatrix} z_j\\ z_j\\ z_j \end{pmatrix} ,\ z_{None} = \begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} $$ $$\scriptsize z_jはセンター効果倍率 $$ $$\scriptsize \begin{eqnarray} T_i = \begin{cases} Pr & ( キャラiの属性がPrincess ) \\ Fa & ( キャラiの属性がFairy ) \\ An & ( キャラiの属性がAngel ) \\ Ex & ( キャラiの属性がEx ) \\ \end{cases} \end{eqnarray} $$ $$\scriptsize Pr = (1, 0, 0, 0),\ Fa = (0, 1, 0, 0) $$ $$\scriptsize An = (0, 0, 1, 0),\ Ex = (0, 0, 0, 1) $$

  1. キャラ(i)ごとに属性ボーナス(\(type\,bonus\))を計算 ※小数点以下を保持
    • $$ \scriptsize type \ bonus_i = X_i * status_i $$


  2. キャラ(i)ごとにセンタースキルボーナス(\(centerskill\,bonus\))を計算 ※小数点以下を保持
    • $$ \scriptsize centerskill \ bonus_i = (Z_{i, guest}\ +\ Z_{i, center}) * status $$


  3. キャラ(i)ごとにイベントボーナス(\(event\,bonus\))を計算 ※小数点以下を保持
    • $$ \scriptsize event \ bonus_i = Y_i * status_i $$


  4. 5キャラ分の基礎値・ボーナス値の総和を属性毎に別個に集計
    • $$\scriptsize Status = \sum_{ i = 1 }^{ 5 }type \ status_i * T_i $$ $$\scriptsize Type \ Bonus = \sum_{ i = 1 }^{ 5}type \ bonus_i * T_i $$ $$\scriptsize Centerskill \ Bonus = \sum_{ i = 1 }^{ 5 }centerskill \ bonus_i * T_i $$ $$\scriptsize Event \ Bonus = \sum_{ i = 1 }^{ 5 }event \ bonus_i * T_i $$


  5. ボーナス値を属性毎に丸める ※小数点以下を切捨て
    • $$ \scriptsize Status = floor(Status ) $$ $$ \scriptsize Type \ Bonus = floor(Type Bonus) $$ $$ \scriptsize Centerskill \ Bonus = floor((Centerskill \ Bonus) $$ $$ \scriptsize Event \ Bonus = floor(Event \ Bonus) $$

    ※基礎値(\(Status\))は整数値であり丸め誤差がでないため、実際には属性毎にまとめる必要はありません



  6. 総基礎値・総ボーナス値の和を取る (ユニットメンバーのアピール値)
    • $$\scriptsize Appeal_{unit} = (1,1,1)*(Status + Type \ Bonus + Centerskill \ Bonus + Event \ Bonus)* \begin{pmatrix} 1\\ 1\\ 1\\ 1 \end{pmatrix} $$


※floor():小数点以下切捨て

$$\scriptsize floor \begin{eqnarray} \left( \begin{array}{ccc} a & b\\ d & e \end{array} \right) = \left( \begin{array}{ccc} floor(a) & floor(b)\\ floor(d) & floor(e) \end{array} \right) \end{eqnarray} $$
総アピール値

以上3項目全ての和が総アピール値です。

$$\scriptsize Appeal = Appeal_{support} + Appeal_{guest} + Appeal_{unit} $$

よく一致しますが正式な計算式とは限りません


浮動小数点由来の誤差が発生する場合があるので計算時にはご注意ください