hibitの技術系メモ

数学とか3Dとか翻訳とか

風花雪月で最も相性の良い二人をシステマチックに決定する

 ファイアーエムブレム風花雪月では、ユニットの性格や人間関係が細かく設定されています。

 例えば、料理の好みも設定されています。これは、ある料理を食べさせた時にやる気(パワプロにおけるそれと同じようなものです)が上がるかどうかに関わるもので、攻略にも微妙に関わってきます。

f:id:hibit_at:20210419230417p:plain

 また、なんとお茶会という謎の儀式*1も用意されています。

f:id:hibit_at:20210419230344p:plain

アイドルマスターかな?

 せっかくユニットごとに食事の好みや好きな話題が設定されているので、統計解析をしてみましょう。技術的な話は後でQiitaにまとめときますが、端的に言うとスクレイピングした後pandasであれこれデータを整えて主成分分析とかやってます。データはすべてかわき茶亭様からお借りしています。スパム攻略サイトが濫造されるこの乱世の中で、稀有な情報量を保っている神サイトです。崇めましょう。

食事の好み

 データ解析結果。

         サガルトのクリーム添え  ブルゼン  満腹野菜炒め  山鳥の親子焼き  桃のシャーベット  魚と豆のスープ  ガルグ=マク風ミートパイ  獣肉の鉄板焼き  バクス漬けウサギの串焼き  ...  白身魚の甘辛炒め  激辛魚団子  ニシンの土鍋焼き  ニシンと木の実のタルト  魚介と野菜の酢漬け  魚とカブの辛味噌煮込み  豪快漁師飯  2種の魚のバター焼き  雑魚の串焼き
エーデルガルト             1     1       1        1         1        1            -1       -1            -1  ...         0      0         0            0          0            0      0           0       0  
ディミトリ               1     1       0        0        -1        0             0        0             0  ...         0      0         0            0          0            0      0           0       0    
クロード               -1    -1       1        1         0        0             1        1             1  ...         0      0         0            0          0            0      0           0       0     
...
...
レオニー               -1    -1       1        0        -1        1             0        1             0  ...         1      1         1            1          1            1      1           1      -1     
シャミア               -1    -1       1        1         1        0            -1        1             1  ...         0      1        -1           -1          0            0      0          -1      -1     
ツィリル                0     0       1        1         0        1             0        1             1  ...         0      0         0            0         -1            0      0           1      -1     
[39 rows x 32 columns]

 行がユニット、列が料理を示していて、行と列で示される箇所が1なら好き、-1なら嫌い、0ならそのどちらでもない、という感じです。同じような表は攻略サイトにもありますが、pandasデータフレームにすることによって色々な解析が用意になります。

万人受けする料理

 例えばこのような集計。

2種の魚のバター焼き      18
ダフネルシチュー        15
ベリー風味のキジロースト    15
...
...
ゴーティエチーズグラタン    -5
ザリガニのフライ       -15
雑魚の串焼き         -16

 料理ごとに、好き嫌いの合計を計算しソートしたものです。一番万人受けする料理は2種の魚のバター焼き、逆に一番嫌われている料理は雑魚の串焼きであることがわかります。

 ちなみに、雑魚の串焼きが好きなユニットは1名しかいません。イエリッツァです。

f:id:hibit_at:20210419232032p:plain

料理の好き嫌い

 逆にこのような集計もできます。

ハピ          17
レオニー        15
ギルベルト       15
...
...
ヒューベルト      -4
カスパル        -5
リシテア       -13

 ユニットごとに、好き嫌いの合計を計算しソートしたものです。一番好き嫌いが少ないユニットはハピで、逆に一番の偏食家はリシテアです。

f:id:hibit_at:20210419232350p:plain

 甘いもの以外ほぼ全部嫌いという徹底ぶり。そんなんだから早死にするんだぞ……

好きな話題

 データ集計結果。反応が良い話題とそうでない話題がありますが、1と0で表しています。

          新しい計略の提案  いつもありがとう  お気に入りの場所  歌劇を見たことは?  学校生活の思い出  学校の制服の話  危機一髪で助かった話  愚痴をこぼす  これからのフォドラ  最近雰囲気が変わった  ...  星座の話  言葉は要らない  鍋が爆発しない方法  可愛い装飾品の話  士官学校の思い出  海で泳ぐ話  食事は生きる源  ジェラルトの話  戦場で生き延びる術  レアさまの話
エーデルガルト          1         1         1          1         1        1           1       1          1           1  ...     0        0          0         0         0      0        0        0          0       0
ディミトリ            1         1         1          0         1        0           1       1          1           0  ...     0        0          0         0         0      0        0        0          0       0
クロード             1         1         1          0         1        0           1       1          1           1  ...     0        0          0         0         0      0        0        0          0       0
...
...
レオニー             1         1         1          0         1        0           1       1          1           1  ...     0        0          0         0         0      0        0        1          0       0
シャミア             1         1         0          0         0        0           1       0          0           0  ...     0        0          0         0         0      0        0        0          1       0
ツィリル             0         1         1          0         0        0           1       1          0           1  ...     0        0          0         0         0      0        0        0          0       1
[39 rows x 107 columns]

万人受けする話題

いつもありがとう      37
頼りにしている       33
もっと仲良くなりたい    33
...
...
ご飯に誘った相手      11
中庭にいる二人の話     10
学校の制服の話       10

 一番万人受けする話題は「いつもありがとう」です。逆にこれを言われて反応が悪いのはどんなコミュ障だよと思いますが、ヒューベルトとフェリクスがそれにあたるようです。

f:id:hibit_at:20210419233155p:plain

FE史上に稀に見る悪役顔

話しやすい人

アンナ         51
アネット        50
フェルディナント    50
...
...
フェリクス       26
ヒューベルト      24
ハピ          24

 一番話しやすい(好きな話題が多い)ユニットはアンナで、一番話しづらい(好きな話題が少ない)ユニットはヒューベルトとハピです。ヒューベルトはさもありなん。

贈り物

 他にも、贈り物というアイテムがあって、これも好きなものと嫌いなものが設定されています。ついでに解析。

          木彫りの女神像  飾り剣  クマの人形  盤面遊戯  帝王学の書  カーネーション  乗馬用の靴  装飾用の輝石  刃物用の砥石  訓練用の重し  楽譜集  青カビチーズ  異国の香辛料  紋章図解  ...  紅茶の茶葉  勿忘草  おしゃれな髪飾り  燻製肉  算術教本  スミレ  古代の硬貨  百合  鈴蘭  ウツボカズラ  ラベンダー  向日葵  アネモネ  カスミソウ
エーデルガルト        -1   -1      1     1      1        1      0       0       0       0    0       0       0     0  ...      0    0         0    0     0    0      0   0   0       0      0    0     0     0
ディミトリ           0    1      0     0      0        0      1      -1       1       1   -1       0       0     0  ...      0    0         0    0     0    0      0   0   0       0      0    0     0      0
クロード            0    0      0     1      0        0      1       0       0       0   -1      -1       1     1  ...      0    0         0    0     0    0      0   0   0       0      0    0     0      0 
...
...
レオニー            0    0      0     0      0        0      0       0       0       1    0       0       0    -1  ...      0    0        -1    0     0    0      0   0   0       0      0    0     0      0 
シャミア            0    0      0     0     -1        0      0       0       0       0    1      -1       1    -1  ...      0    0         0    0     0    0      0   0   0       0      0    1     0      0 
ツィリル            0    0      0     0     -1        0      0       0       0       0    0       0       0     0  ...      0    0         0    1     0    0      0   0   0       0      0    0     0      1 

[39 rows x 39 columns]

万人受けする贈り物

美味しい焼き菓子    7
素敵なハンカチ     6
木彫りの女神像     4
...
...
紋章図解       -2
騎士道物語      -4
帝王学の書      -6

 一番万人受けする贈り物は「美味しい焼き菓子」です。甘いものは正義。逆に一番人を選ぶ贈り物は「帝王学の書」です。7人が嫌いで、好きな人は1人しかいません。

f:id:hibit_at:20210419234111p:plain

 エガちゃんです。次期皇帝だから仕方ないね。

贈り物をしやすい人

アンナ         4
ベルナデッタ      3
イグナーツ       3
...
...
シルヴァン       0
ヒューベルト      0
アネット        0

 ここら辺はばらつきが少なくてなんとも言えないです。極端に数値が大きい人も、極端に小さい人もいません。

茶葉

 お茶会関係で、好みのお茶というのもあって、データ処理はしてみたのですが、これもばらつきが出なかったので省略します。次章で述べる総合解析にもこのデータは入れてません。

最も相性の良い二人

 さて、ここからが本番です。今まで収集したデータを基に「趣味の近さ」を測ります。39人のユニットに対し、食事の好み(32項目)、話題の好み(107項目)、贈り物の好み(39項目)を1,0,-1で数値化しました。これらを 32+107+39 = 178次元空間上の距離とみなせば、一番相性の良い二人がわかります。この空間を正確に移すためには178次元が必要ですが、そんなことは不可能なので、主成分分析により次元を2まで圧縮します。結果が以下のグラフになります。

f:id:hibit_at:20210419235415p:plain

 このグラフ上で近くにいる*2ユニット達は、食事、話題、贈り物の観点から趣味が近いということになります。ヒューベルトの孤高っぷりが目立ちますね……。

 さて、一番相性が良い二人は誰でしょうか。それは、

f:id:hibit_at:20210419235841p:plain f:id:hibit_at:20210419235850p:plain

 レオニーとセテスになります。2人とも武闘派でストイックだし趣味が合いそうです。公式で支援会話も設定されていますし、データでも納得の組み合わせです。

 2人が共通して好きな料理はこんな感じです。魚料理を多めに出しておけば結婚生活は安泰?

              レオニー  セテス
フィッシュサンド         1    1
煮込みヴェローナを添えて     1    1
ダフネルシチュー         1    1
キジの揚げ焼きデアドラ風     1    1
パイクの贅沢グリル        1    1
白身魚の甘辛炒め         1    1
激辛魚団子            1    1
ニシンの土鍋焼き         1    1
ニシンと木の実のタルト      1    1
魚介と野菜の酢漬け        1    1
魚とカブの辛味噌煮込み      1    1

最も趣味が合わない二人

 ちなみに、最も趣味が合わない二人はフェリクスとメルセデスになります。同じ学級の仲間で、支援会話もAまであるのに……。

結論

  • イエリッツァは食の好みが特殊
  • 一番偏食なのはリシテア
  • ヒューベルトはコミュ障気味
  • 一番趣味が合いそうなのはレオニーとセテス
  • 一番趣味が合わなさそうなのはフェリクスとメルセデス

 みんなも風花雪月を買おう!

*1:実は高難易度になると、計略を避けるために魅力が必要不可欠になり、お茶会も重要な攻略要素となるのですが、普通のプレイヤーにとっては謎儀式だと思います

*2:多次元空間を無理矢理2次元に投影しているので、このグラフ上で最短距離であっても、実際の距離は最短ではない可能性があります。つまり、このグラフだけでは表現しきれない奥行きがあるということです。