真・三國無双3の護衛兵の全成長パターンを検証して最強黄龍を得る

概要

何故、今更こんな無駄な時間を。。

真・三國無双3で設定できる護衛兵は、戦場に連れていく5種の兵科によってレベルアップ時の能力上昇量に差があり、護衛レベル20での最終能力や称号が変わってきます。特に最強の称号である黄龍に到達するためには限られた組み合わせを見つける必要があり、さらにその中でも最強を目指すのはデータを眺めるだけでは難しいものがあります。

そこで本記事では、護衛兵の全成長パターン(8855通り)を検証して最強の黄龍護衛兵を得るための兵科の選択方法を検討しました。すぐに結果を見たいという方は以下のcsvに全育成パターンとその時の能力・称号を記載しておりますのでこちらをご覧ください。

musou3_goei_all_pattern.csv (30 ダウンロード)

添付ファイルの内容抜粋(文字コードはshift-jis)

なお、護衛兵に関する各種設定に関しては、以下サイト様の情報を使わせていただいております。
http://kodwfpf.br.tripod.com/musou3/musou008.html

いろいろトップテン

いくつかの視点からのトップ10を記載します。なお、称号は黄龍>玄武>白虎>青龍>朱雀>修羅の優先としています。

総合能力

全称号トップ10

最大能力は668。意外にも玄武だけで黄龍はいません。攻撃力は全体的に低めです。これは攻撃力の上昇の大きい戟兵の能力上昇量が他と比べて低いこと、次に大きい弩兵は防御上昇がカンストして無駄になってしまうことが原因と考えられます。

体力 無双 攻撃 防御 合計 称号
13 3 0 3 0 240 230 98 100 668 玄武
9 7 0 3 0 236 234 98 100 668 玄武
12 4 0 3 0 239 231 98 100 668 玄武
6 10 0 3 0 233 237 98 100 668 玄武
3 13 0 3 0 230 240 98 100 668 玄武
11 5 0 3 0 238 232 98 100 668 玄武
7 9 0 3 0 234 236 98 100 668 玄武
4 12 0 3 0 231 239 98 100 668 玄武
5 11 0 3 0 232 238 98 100 668 玄武
10 6 0 3 0 237 233 98 100 668 玄武
8 8 0 3 0 235 235 98 100 668 玄武

黄龍トップ10

最大能力は665。トップ条件ではいずれも黄龍の条件である攻撃力110以上を満たすために戟兵が6回、守備力がカンストしない範囲で能力上昇の大きい弓兵が6回、残りを剣兵か槍兵で選ばれています。深く考えなければこの構成でも良さそうです。

体力 無双 攻撃 防御 合計 称号
3 4 6 6 0 230 225 110 100 665 黄龍
5 2 6 6 0 232 223 110 100 665 黄龍
2 5 6 6 0 229 226 110 100 665 黄龍
7 0 6 6 0 234 221 110 100 665 黄龍
6 1 6 6 0 233 222 110 100 665 黄龍
1 6 6 6 0 228 227 110 100 665 黄龍
0 7 6 6 0 227 228 110 100 665 黄龍
4 3 6 6 0 231 224 110 100 665 黄龍
5 1 6 7 0 232 222 110 100 664 黄龍
3 2 7 7 0 230 222 112 100 664 黄龍

朱雀トップ10

最大値は667。剣兵を13回以上使っている点が共通しています。攻撃力が少し低めです。

体力 無双 攻撃 防御 合計 称号
13 2 1 3 0 240 228 100 99 667 朱雀
4 0 2 0 240 231 98 98 667 朱雀
14 3 0 2 0 240 230 98 98 666 朱雀
13 1 2 3 0 240 226 102 98 666 朱雀
14 2 0 2 1 240 228 99 99 666 朱雀
13 5 0 1 0 240 232 98 96 666 朱雀
3 1 2 0 240 229 100 97 666 朱雀
14 1 1 3 0 240 227 100 99 666 朱雀
2 1 240 226 101 98 665 朱雀
0 2 3 0 240 225 102 98 665 朱雀

青龍トップ10

最大値は667。槍兵を多く採用し、朱雀と体力と無双を入れ替えたような能力です。

体力 無双 攻撃 防御 合計 称号
1 14 1 3 0 228 240 100 99 667 青龍
4 13 0 2 0 231 240 98 98 667 青龍
5 13 0 1 0 232 240 98 96 666 青龍
3 14 0 2 0 230 240 98 98 666 青龍
2 14 1 2 0 229 240 100 97 666 青龍
0 2 1 228 240 99 99 666 青龍
0 15 1 3 0 227 240 100 99 666 青龍
2 1 226 240 101 98 665 青龍
4 14 0 1 0 231 240 98 96 665 青龍
3 14 1 1 0 230 240 100 95 665 青龍

白虎トップ10

最大値は662。能力上昇の低い戟兵を8回~採用する必要があるため、総合能力は他と比べてやや低めです。

体力 無双 攻撃 防御 合計 称号
3 0 9 7 0 230 218 115 99 662 白虎
1 8 6 1 229 219 115 99 662 白虎
1 3 8 6 1 227 221 115 99 662 白虎
4 0 8 6 1 230 218 115 99 662 白虎
0 3 9 7 0 227 221 115 99 662 白虎
2 2 8 6 1 228 220 115 99 662 白虎
0 4 8 6 1 226 222 115 99 662 白虎
1 2 9 7 0 228 220 115 99 662 白虎
2 1 9 7 0 229 219 115 99 662 白虎
0 4 9 6 0 227 222 115 97 661 白虎

玄武トップ10

総合トップ10がすべて玄武だったので省略。

修羅トップ10

最大値は667と黄龍よりも高い。不幸にしてこのようなステータスにならないよう育成には気を付けたいですね。

体力 無双 攻撃 防御 合計 称号
2 13 1 3 0 229 239 100 99 667 修羅
4 11 1 3 0 231 237 100 99 667 修羅
9 6 1 3 0 236 232 100 99 667 修羅
6 9 1 3 0 233 235 100 99 667 修羅
9 8 0 2 0 236 235 98 98 667 修羅
5 12 0 2 0 232 239 98 98 667 修羅
10 1 3 0 232 236 100 99 667 修羅
11 4 1 3 0 238 230 100 99 667 修羅
6 11 0 2 0 233 238 98 98 667 修羅
12 3 1 3 0 239 229 100 99 667 修羅

体力+攻撃+防御

三國無双3では無双は成長させない戦略があり、無双以外で評価した場合。無双を除いた最大値は445。黄龍にしたい場合は剣5戟7弓7での育成となる。

体力 無双 攻撃 防御 合計 称号
4 0 8 7 0 231 219 114 100 445 玄武
3 0 8 8 0 230 219 114 100 444 玄武
6 0 7 6 0 233 220 112 99 444 修羅
5 0 8 6 0 232 219 114 98 444 修羅
7 7 0 232 220 112 100 444 黄龍
6 1 231 219 113 100 444 玄武
4 0 8 6 1 230 218 115 99 444 白虎
3 0 8 7 1 229 218 115 100 444 玄武
9 7 0 230 218 115 99 444 白虎
7 0 6 6 0 234 221 110 100 444 黄龍

攻撃最大縛り+総合評価

攻撃は最大値でなければ、という人のためのランキング。最大値は662。黄龍にするにはいくつかの組み合わせがある。

体力 無双 攻撃 防御 合計 称号
0 3 8 7 1 226 221 115 100 662 黄龍
3 1 8 6 1 229 219 115 99 662 白虎
0 2 9 8 0 227 220 115 100 662 黄龍
1 1 9 8 0 228 219 115 100 662 玄武
2 8 7 1 227 220 115 100 662 黄龍
3 8 6 1 227 221 115 99 662 白虎
4 0 8 6 1 230 218 115 99 662 白虎
0 3 9 7 0 227 221 115 99 662 白虎
2 0 9 8 0 229 218 115 100 662 玄武
3 0 8 7 1 229 218 115 100 662 玄武

攻撃最大縛り+除無双

上2つを組み合わせたランキング。無双を除いた最大値は444。黄龍の最大は442で育成は槍2戟9弓8。

体力 無双 攻撃 防御 合計 称号
2 0 9 8 0 229 218 115 100 444 玄武
4 0 8 6 1 230 218 115 99 444 白虎
3 0 9 7 0 230 218 115 99 444 白虎
8 7 1 229 218 115 100 444 玄武
2 1 9 7 0 229 219 115 99 443 白虎
4 0 7 5 3 228 217 115 100 443 玄武
3 1 8 6 1 229 219 115 99 443 白虎
1 1 9 8 0 228 219 115 100 443 玄武
3 0 8 6 2 228 217 115 100 443 玄武
1 0 9 9 0 228 218 115 100 443 玄武
4 0 9 6 0 231 218 115 97 443 白虎
5 0 8 5 1 231 218 115 97 443 白虎
2 0 8 8 1 228 218 115 100 443 玄武
9 7 1 228 217 115 100 443 玄武
1 8 7 1 228 219 115 100 443 玄武
1 0 10 8 0 228 217 115 100 443 玄武
2 0 10 7 0 229 217 115 98 442 白虎
4 0 8 5 2 229 217 115 98 442 白虎
0 2 9 8 0 227 220 115 100 442 黄龍
0 9 10 0 227 218 115 100 442 玄武

体力・防御最大縛りで攻撃最大

生存を高めるために体力と防御を最大にして攻撃力を最大まで高めるケース。体力最大にする条件が厳しく、攻撃力は102までしか上がらない。

体力 無双 攻撃 防御 合計 称号
13 0 2 4 0 240 225 102 100 667 玄武
14 0 1 3 1 240 225 101 100 666 玄武
13 1 1 4 0 240 227 100 100 667 玄武
15 0 0 2 2 240 225 100 100 665 玄武
13 0 1 5 0 240 226 100 100 666 玄武
14 0 1 4 0 240 226 100 100 666 玄武
15 0 0 3 1 240 226 99 100 665 玄武
14 0 0 4 1 240 226 99 100 665 玄武
1 0 3 1 240 227 99 100 666 玄武
2 0 3 0 240 229 98 100 667 玄武

まとめ

もし、これから真・三國無双3をやる方がおられれば、、、最強の護衛兵を得る参考にしてみてください!

Pythonコード

参考として、上記解析をするためのPythonコードを記載します。

import pandas as pd
idx = pd.IndexSlice
import numpy as np
import itertools

#各兵種の能力上昇
df_growth = pd.DataFrame(index=["体力", "無双", "攻撃", "防御"], columns=["剣", "槍", "戟", "弓", "弩"],
                         data=[[4, 3, 3, 3, 2],
                               [3, 4, 2, 3, 2],
                               [2, 2, 4, 2, 3],
                               [1, 1, 0, 3, 2]])

#全組み合わせを抽出
#組み合わせの考え方参考:https://mathtrain.jp/tyohukuc
a = np.arange(23)
comb = np.array(list(itertools.combinations(a, 4)))
#各兵種を何レベル上げるかのテーブル
levelup = np.concatenate([comb[:, [0]], comb[:, 1:] - comb[:, :-1] - 1, a.max() - comb[:, [-1]]], axis=1)
#データフレームに
df_levelup20 = pd.DataFrame(columns=df_growth.columns, data=levelup)
#能力上昇量を設定
df_parameter20 = pd.DataFrame(columns=df_growth.index, data=np.dot(df_levelup20, df_growth.T), 
                            index=pd.MultiIndex.from_frame(df_levelup20))

#黄龍にするためにはレベル19時点で修羅意外になっている必要がある。
a = np.arange(22)
comb = np.array(list(itertools.combinations(a, 4)))
levelup = np.concatenate([comb[:, [0]], comb[:, 1:] - comb[:, :-1] - 1, a.max() - comb[:, [-1]]], axis=1)
df_levelup19 = pd.DataFrame(columns=df_growth.columns, data=levelup)
df_parameter19 = pd.DataFrame(columns=df_growth.index, data=np.dot(df_levelup19, df_growth.T), 
                            index=pd.MultiIndex.from_frame(df_levelup19)).add([170, 170, 60, 75])
df_parameter19["称号"] = "修羅"
df_parameter19.loc[df_parameter19["体力"] >= 240, "称号"] = "朱雀"
df_parameter19.loc[df_parameter19["無双"] >= 240, "称号"] = "青龍"
df_parameter19.loc[df_parameter19["攻撃"] >= 115, "称号"] = "白虎"
df_parameter19.loc[df_parameter19["防御"] >= 100, "称号"] = "玄武"
#修羅意外になれる条件
c_index = df_parameter19.loc[df_parameter19["称号"]!="修羅"].index
#level20のindexに紐づける
c_flag = pd.Series(index=df_levelup20.index, data=0)
for i in range(c_index.shape[0]):
    print(i)
    c_flag = c_flag.add(df_levelup20.sub(c_index[i]).min(axis=1) >= 0)
c_flag.index = df_parameter20.index

#初期値や能力上限を考慮してパラメータ算出
df_parameter_limit = np.minimum(df_parameter20, [70, 70, 55, 25]).add([170, 170, 60, 75])
#合計値を定義
df_parameter_limit["合計"] = df_parameter_limit[["体力", "無双", "攻撃", "防御"]].sum(axis=1)
#df_parameter_limit["合計"] = df_parameter_limit[["体力", "攻撃", "防御"]].sum(axis=1)

#称号を設定
df_parameter_limit["称号"] = "修羅"
df_parameter_limit.loc[df_parameter_limit["体力"] == 240, "称号"] = "朱雀"
df_parameter_limit.loc[df_parameter_limit["無双"] == 240, "称号"] = "青龍"
df_parameter_limit.loc[df_parameter_limit["攻撃"] == 115, "称号"] = "白虎"
df_parameter_limit.loc[df_parameter_limit["防御"] == 100, "称号"] = "玄武"
df_parameter_limit.loc[((df_parameter_limit["体力"] >= 220) & (df_parameter_limit["無双"] >= 220) &
                        (df_parameter_limit["攻撃"] >= 110) & (df_parameter_limit["防御"] >= 100) &
                        (c_flag >= 0)
                        ), "称号"] = "黄龍"
0

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA