アピール値計算式について
当ツールで利用しているミリシタのアピール値の計算方式は以下のとおりです (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}
$$
- キャラ(i)ごとに属性一致ボーナス(\(type\,bonus\))を計算
-
$$\scriptsize
type \ bonus_i = floor(X_i * status_i)
$$
- キャラ(i)ごとにイベントボーナス(\(event\,bonus\))を計算
-
$$\scriptsize
event \ bonus_i = floor(Y_i * status_i)
$$
- 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 $$
- サポートメンバーなのでそれぞれ別個に値を半分(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)\\
$$
- 総合値を計算 (=サポートメンバーの総アピール値 )
- $$\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はセンター効果倍率 $$
- 属性ボーナス(\(type\,bonus\))を計算
-
$$
\scriptsize
type \ bonus = floor(X* status)
$$
※「\(status\) + \(type\,bonus\)」の値がゲスト選択時に表示される数値となります
- センタースキルボーナス(\(centerskill\,bonus\))を計算
-
$$
\scriptsize
centerskill \ bonus = floor((Z_{guest}\ +\ Z_{center}) * status)
$$
- ゲストメンバーはイベントボーナス(\(event\,bonus\))を計算しない
- 総基礎値・総ボーナス値の和を取る (ゲストのアピール値)
- $$\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)
$$
- キャラ(i)ごとに属性ボーナス(\(type\,bonus\))を計算 ※小数点以下を保持
-
$$
\scriptsize
type \ bonus_i = X_i * status_i
$$
- キャラ(i)ごとにセンタースキルボーナス(\(centerskill\,bonus\))を計算 ※小数点以下を保持
-
$$
\scriptsize
centerskill \ bonus_i = (Z_{i, guest}\ +\ Z_{i, center}) * status
$$
- キャラ(i)ごとにイベントボーナス(\(event\,bonus\))を計算 ※小数点以下を保持
-
$$
\scriptsize
event \ bonus_i = Y_i * status_i
$$
- 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 $$
- ボーナス値を属性毎に丸める ※小数点以下を切捨て
-
$$
\scriptsize
Status = floor(Status )
$$
$$
\scriptsize
Type \ Bonus = floor(Type Bonus)
$$
$$
\scriptsize
Centerskill \ Bonus = floor((Centerskill \ Bonus)
$$
$$
\scriptsize
Event \ Bonus = floor(Event \ Bonus)
$$
※基礎値(\(Status\))は整数値であり丸め誤差がでないため、実際には属性毎にまとめる必要はありません
- 総基礎値・総ボーナス値の和を取る (ユニットメンバーのアピール値)
- $$\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}
$$
よく一致しますが正式な計算式とは限りません
浮動小数点由来の誤差が発生する場合があるので計算時にはご注意ください