【参考にならない】換字暗号を力技で解読しようのコーナー

FEZというとても楽しいゲームがあります。ファンタジーアースゼロというゲームも楽しいFEZですが、インディーゲームの方の正式タイトルがFEZのほうのFEZです。
ja.wikipedia.org
Wikipediaには何やら不穏なことばかり書かれていますが、このゲームは本当にすごい。3Dの世界を2D的に見ることで奥行きを無視して移動したり、またはその奥行きを利用して不可解な移動をしたりする。ゲームにしかできない体験をさせてくれるゲームです。
Wikipediaには記載されていませんが今はiOS版とかもあります。


ゲームの目的はキューブを集めることで、そのためにいくつかの記号の意味を知る必要があるのですが(方向キーの上下左右、視点移動左右、ジャンプそれぞれのボタン指示を示す記号がある)、それは普通にプレイしていればわかる場面があります。
ところが、オープニングに登場する立方体がベラベラベラベラ喋る内容は見たことのない文字で書かれていて一見全くの意味不明ですがクリアには必要がないため解読の必要もない(直接クリアに関係ない、レッドキューブの入手のために一回だけ使います)のです。ですが、こういう異文化匂わせの演出はゼビウスの頃からオタク心をくすぐる性質があり、読めるもんなら読みたくなってしまうわけですね。
(ちなみに、序盤に出てくる主人公が住む地域の人々は普通に英語でしゃべります)

これがオープニングで大キューブがベラベラ喋る内容です。こいつを、公式に用意してくれたちゃんとした方法ではなく、オープニングの時点で力技で読んでしまおうと、そういう話です。
もう7年も前のゲームなので調べれば文字の解読結果も、ゲーム中に出てくるメッセージの翻訳結果もすぐに見つかると思うので、それが必要な人はこんな記事は読まなくてもいいです。

f:id:annnnnnna:20190809000103j:plainf:id:annnnnnna:20190809000059j:plainf:id:annnnnnna:20190809000056j:plainf:id:annnnnnna:20190809000030j:plain
f:id:annnnnnna:20190809000028j:plainf:id:annnnnnna:20190809000025j:plainf:id:annnnnnna:20190809000020j:plainf:id:annnnnnna:20190809000016j:plain


「公式に用意してくれたちゃんとした方法」と書きましたが、「文字を書くための道具(ゲームでは特に役に立たない、フレーバーのための道具)」が手に入る部屋に、以下のような碑とキツネと犬がいます

f:id:annnnnnna:20190810033717j:plainf:id:annnnnnna:20190810033703j:plain
英語圏の人ならすぐわかるんでしょうか、この「茶色い素早いキツネがのろまな犬を飛び越えている」のを見て「The quick brown fox jumps over the lazy dog」って思うんでしょうか。
ja.wikipedia.org
俺は英語圏の人ではないので、初見(360版とVita版をプレイ済み。360版の時に解読したときの方法ですが、iOS版をプレイしたので今この記事を書いています)でこのヒントに全く気付かなかったので力技で解くことになったわけですが。
まあ一旦この部屋のことは無視してさっき出したオープニングのセリフだけでやっていこうと思います。


文字の種類数について

文字が何種類あるかというのは「何語で書かれた文章か」を知るのに重要な手がかりです。身も蓋もないことを言うと、このゲームの普通のセリフが英語である以上は英語である可能性が極めて高いといえますが、仮に文字が50種類くらいあったら「え、もしかして日本語なんじゃない?」って話にもなるわけで、一応その辺は最初に調べたいですね。どうせ後でデータをまとめるのにも使いますし。

で、まあよく見ると6種類の記号で、それぞれ向きが4方向あるということがわかります。計24種類。
f:id:annnnnnna:20190810050729p:plain
アルファベットは26種類あるので足りませんね。でも、QとかXって要る?って考えたら24種類の文字で英語の文章書けなくもなさそうですよね。「女王がX線検査を受けた」とかいう文章は無理ですけど。
まあ、調べていって英語じゃなさそうだと思ったらその時に別の手を考えましょう。少なくとも、ひらがな/カタカナやハングルやタイ語タガログ語などのアジア系の言語の可能性は消えたといっていいでしょう。

これが縦書きの文章だっていうのはまあ見たらなんとなくわかるってことでいいですよね?下が揃ってないから下が各行の行末だなと判断してるんですが。

仮置きの仮置きをする

すぐ後でまた置き換えるのですが、この記号をそのまま扱うと色々とめんどくさすぎるので、一旦ひらがなに置き換えます。6種×4方向なのでこういう感じに仮置きします。

f:id:annnnnnna:20190810050929p:plain f:id:annnnnnna:20190810050945p:plain f:id:annnnnnna:20190810050957p:plain f:id:annnnnnna:20190810051006p:plain
f:id:annnnnnna:20190810051032p:plain f:id:annnnnnna:20190810051042p:plain f:id:annnnnnna:20190810051050p:plain f:id:annnnnnna:20190810051058p:plain
f:id:annnnnnna:20190810051114p:plain f:id:annnnnnna:20190810051130p:plain f:id:annnnnnna:20190810051142p:plain f:id:annnnnnna:20190810051153p:plain
f:id:annnnnnna:20190810051204p:plain f:id:annnnnnna:20190810051213p:plain f:id:annnnnnna:20190810051222p:plain f:id:annnnnnna:20190810051230p:plain
f:id:annnnnnna:20190810051239p:plain f:id:annnnnnna:20190810051253p:plain f:id:annnnnnna:20190810051303p:plain f:id:annnnnnna:20190810051311p:plain
f:id:annnnnnna:20190810051320p:plain f:id:annnnnnna:20190810051332p:plain f:id:annnnnnna:20190810051340p:plain f:id:annnnnnna:20190810051348p:plain


そしてその仮置き状態で画像の文章をテキスト化するとこうなります


あか うあさちさ あきな はちさ つきく
か なかたた えさ つきくち
あさせはあさにちきい うきにはつ


ひき うあかひ かひ ぬくひう は
ちきくうかいさ ねちきけさにくちさ
えくう か にき いささに
ひきふさきいさ あさちさ ぬきひう
かい けはひさ ひきふさうあかいへ
へきさひ なちきいへ


かて ひきふさうあかいへ にきさひ
へき なちきいへ つきく はちさ
へきかいへ うき あはくさ うき
けたさはい くね うあさ ふさひひ

4
あさつ なはかう は ふかいくうさ
けはい つきく さくさい
くいにさちひうはいに
なあはう か はふ ひはつかいへ
はいに なあはう かひ なちきいへ
なかうあ つきくち あさはに

5
きあ なさたた つきく はちさ
あさちさ いきな ふかへあう はひ
なさたた にき うあかひ うあかいへ
ねちさねはちさ うき あはくさ
つきくち ふかいに えたきない

6
はたた ちかへあう
なさたけかふさ うき うあさ
けたくえ さいぬきつ つきくち
てちささ あはう

7
か しかいに きて うあきくへあう
ふはつえさ うあかひ なきくたに
いきう なきちし えさけはくひさ
きて つきくち なさかちに あさはに
えくう さくさちつうあかいへ たききしひ
はきし てちきふ きくさち あさちさ

8
うあはいしひ てきち うあさ あはいに
つきく けはい へき あきふさ
いきな かう なはひ くさちつ いかけさ
うき ふささう つきく

この作業、手作業でやったんだけど、画像解析とかでやれるといいですね。手書き文字なんかと違ってファジーな部分がないので技術的には比較的簡単にできそう(画像処理全然やったことない)

集計をする

それぞれの文字が何回使われているかを集計します。
英語だと仮定しますが、母音のほかに「n」とか「r」とか「s」なんかはたくさん使われている傾向があって、さっきも言ったように「q」とか「x」とかはあまり使われませんね。文字の出現頻度を調べればどれがどのアルファベットに相当するかのあたりを付けることができます。
こんなデータをまとめてくれた人がいるので参考にさせてもらいましょう。
www7.plala.or.jp

そして集計結果はこんな感じ

文字 個数 %
61 12.27
56 11.27
37 7.45
35 7.04
32 6.44
32 6.44
31 6.24
31 6.24
28 5.63
23 4.63
19 3.82
18 3.62
17 3.42
16 3.22
14 2.82
13 2.62
9 1.61
7 1.41
6 1.21
5 1.01
4 0.80
3 0.60
1 0.20
0 0.00
498 100.00

サンプルが少ないので同数の文字とかも普通にありますけど、出現頻度に明確な差があることがわかり、その傾向も大量の英文から得た結果とそんなにかけ離れてなさそうに見えますね。これが全体的に約4%ずつとかだったらお手上げでした。

仮置きをする

集計データと頻度表を参考にしながら、文字を仮置きしていきます。
ですが、単語の形を見てわかりそうな文字はちゃんと考えていきましょう。
「か」と「は」は1文字で単語が成立しているので、これは「A」「I」どちらかの可能性が極めて高いということになります。ただ、ほぼ同数なのでどっちがどっちかまではわかりません。
「か はふ」という部分があって、これは「I AM」なんじゃないかな。「なはかう」という単語があり、「?AI?」
「ふさひひ」は「NESS」とか「LESS」なんじゃないだろうかと考えると「かひ」が「IS」か「AS」ということになり、「ひ」=「S」は合ってそう。
最初の「あか」ってもしかして「Hi.」かな?これはそんなにフランクな存在なんだろうか。

H
I
E
A
S
M

仮置きの結果がこれ

HI うHEちE Hきな AちE つきく
I なIたた えE つきくち
HEせAHEにちきい うきにAつ

Sき うHIS IS ぬくSう A
ちきくうIいE ねちきけEにくちE
えくう I にき いEEに
SきMEきいE HEちE ぬきSう
Iい けASE SきMEうHIいへ
へきES なちきいへ

Iて SきMEうHIいへ にきES
へき なちきいへ つきく AちE
へきIいへ うき HAくE うき
けたEAい くね うHE MESS

HEつ なAIう A MIいくうE
けAい つきく EくEい
くいにEちSうAいに
なHAう I AM SAつIいへ
Aいに なHAう IS なちきいへ
なIうH つきくち HEAに

きH なEたた つきく AちE
HEちE いきな MIへHう AS
なEたた にき うHIS うHIいへ
ねちEねAちE うき HAくE
つきくち MIいに えたきない

Aたた ちIへHう
なEたけIME うき うHE
けたくえ Eいぬきつ つきくち
てちEE HAう

I しIいに きて うHきくへHう
MAつえE うHIS なきくたに
いきう なきちし えEけAくSE
きて つきくち なEIちに HEAに
えくう EくEちつうHIいへ たききしS
Aきし てちきM きくEち HEちE

うHAいしS てきち うHE HAいに
つきく けAい へき HきME
いきな Iう なAS くEちつ いIけE
うき MEEう つきく

「うHIS」はもう「THIS」でしょう。
「う」=「T」いうことは、文頭はの「HI うHEちE」も「HI THERE」ですね。
「いEEに」は「NEED」かな?と考えると「くいにERSTAいに」は「UNDERSTAND」がきれいに収まりますね。

N
T
R
D

HI THERE Hきな ARE つきく
I なIたた えE つきくR
HEせAHEDRきN TきDAつ

Sき THIS IS ぬくST A
RきくTINE ねRきけEDくRE
えくT I Dき NEED
SきMEきNE HERE ぬきST
IN けASE SきMETHINへ
へきES なRきNへ

Iて SきMETHINへ DきES
へき なRきNへ つきく ARE
へきINへ Tき HAくE Tき
けたEAN くね THE MESS

HEつ なAIT A MINくTE
けAN つきく EくEN
くNDERSTAND
なHAT I AM SAつINへ
AND なHAT IS なRきNへ
なITH つきくR HEAD

きH なEたた つきく ARE
HERE Nきな MIへHT AS
なEたた Dき THIS THINへ
ねREねARE Tき HAくE
つきくR MIND えたきなN

Aたた RIへHT
なEたけIME Tき THE
けたくえ ENぬきつ つきくR
てREE HAT

I しIND きて THきくへHT
MAつえE THIS なきくたD
NきT なきRし えEけAくSE
きて つきくR なEIRD HEAD
えくT EくERつTHINへ たききしS
Aきし てRきM きくER HERE

THANしS てきR THE HAND
つきく けAN へき HきME
Nきな IT なAS くERつ NIけE
Tき MEET つきく

「SきMETHINへ」は「SOMETHING」、「Aたた RIへHT」は「ALL RIGHT」ですね

O
L
G

HI THERE HOな ARE つOく
I なILL えE つOくR
HEせAHEDRON TODAつ

SO THIS IS ぬくST A
ROくTINE ねROけEDくRE
えくT I DO NEED
SOMEONE HERE ぬOST
IN けASE SOMETHING
GOES なRONG

Iて SOMETHING DOES
GO なRONG つOく ARE
GOING TO HAくE TO
けLEAN くね THE MESS

HEつ なAIT A MINくTE
けAN つOく EくEN
くNDERSTAND
なHAT I AM SAつING
AND なHAT IS なRONG
なITH つOくR HEAD

OH なELL つOく ARE
HERE NOな MIGHT AS
なELL DO THIS THING
ねREねARE TO HAくE
つOくR MIND えLOなN

ALL RIGHT
なELけIME TO THE
けLくえ ENぬOつ つOくR
てREE HAT

I しIND Oて THOくGHT
MAつえE THIS なOくLD
NOT なORし えEけAくSE
Oて つOくR なEIRD HEAD
えくT EくERつTHING LOOしS
AOし てROM OくER HERE

THANしS てOR THE HAND
つOく けAN GO HOME
NOな IT なAS くERつ NIけE
TO MEET つOく

だいぶ見えてきましたね。
「HI THERE HOな ARE つOく」=「HI THERE HOW ARE YOU」ですね。
残った文字から考えると、「えE」は「BE」、「NIけE」は「NICE」、「THANしS てOR」は「THANKS FOR」、「ENぬOY」は「ENJOY」、「CLEAN Uね」は「CLEAN UP」
あとは一回だけ出てきた「せ」です。「HEせAHEDRON」これはおそらく「HEXAHEDRON」、六面体ですね。いらないと言った「X」が出てきてしまいました。

B
U
C
K
X
Y
F
W
J
P

HI THERE HOW ARE YOU
I WILL BE YOUR
HEXAHEDRON TODAY

SO THIS IS JUST A
ROUTINE PROCEDURE
BUT I DO NEED
SOMEONE HERE JOST
IN CASE SOMETHING
GOES WRONG

IF SOMETHING DOES
GO WRONG YOU ARE
GOING TO HAUE TO
CLEAN UP THE MESS

HEY WAIT A MINUTE
CAN YOU EUEN
UNDERSTAND
WHAT I AM SAYING
AND WHAT IS WRONG
WITH YOUR HEAD

OH WELL YOU ARE
HERE NOW MIGHT AS
WELL DO THIS THING
PREPARE TO HAUE
YOUR MIND BLOWN

ALL RIGHT
WELCIME TO THE
CLUB ENJOY YOUR
FREE HAT

I KIND OF THOUGHT
MAYBE THIS WOULD
NOT WORK BECAUSE
OF YOUR WEIRD HEAD
BUT EUERYTHING LOOKS
AOK FROM OUER HERE

THANKS FOR THE HAND
YOU CAN GO HOME
NOW IT WAS UERY NICE
TO MEET YOU

単語の予測だけで埋めてしまったので、頻度を集計した意味がなかったんじゃないかと思うかもしれませんが「YOU」「YOUR」の部分が「THE」「THEN」や「FOR」「FORM」しか思いつかなくて、ただ、それに当てはめようとすると順位とかけ離れた置き換えになるので違うかなと、そういう局面で使っています。

最終的な変換テーブル

こうなりました。一文字出てこなかったので謎のままになっています。

f:id:annnnnnna:20190810050929p:plain H f:id:annnnnnna:20190810050945p:plain N f:id:annnnnnna:20190810050957p:plain T f:id:annnnnnna:20190810051006p:plain B
f:id:annnnnnna:20190810051032p:plain I f:id:annnnnnna:20190810051042p:plain O f:id:annnnnnna:20190810051050p:plain U f:id:annnnnnna:20190810051058p:plain C
f:id:annnnnnna:20190810051114p:plain E f:id:annnnnnna:20190810051130p:plain K f:id:annnnnnna:20190810051142p:plain ? f:id:annnnnnna:20190810051153p:plain X
f:id:annnnnnna:20190810051204p:plain L f:id:annnnnnna:20190810051213p:plain R f:id:annnnnnna:20190810051222p:plain Y f:id:annnnnnna:20190810051230p:plain F
f:id:annnnnnna:20190810051239p:plain W f:id:annnnnnna:20190810051253p:plain D f:id:annnnnnna:20190810051303p:plain J f:id:annnnnnna:20190810051311p:plain P
f:id:annnnnnna:20190810051320p:plain A f:id:annnnnnna:20190810051332p:plain S f:id:annnnnnna:20190810051340p:plain M f:id:annnnnnna:20190810051348p:plain G

検証する

といっても、さっきの文章が読めるようになった時点で正解だと思うのですが(書き写しにミスっているのか、怪しい箇所がちょっとありますが)、一応「The quick brown fox jumps over the lazy dog」が成立するかどうか試してみましょう。

f:id:annnnnnna:20190810033717j:plainf:id:annnnnnna:20190810033703j:plain
「THE KUICK BROWN FOX JUMPS OUER THE LA?Y DOG」となりました。
「Q」と「K」、「V」と「U」が兼ねられていて、さっき不明だった文字が「Z」だったということがわかりますね。
最終的な変換結果にある「HAUE」とか「EUEN」とかは書き写し時のミスではなく「HAVE」「EVEN」であったこともわかりました。

解読成功!!

英文の換字式の暗号ならサンプルが500文字程度あれば解読できるんじゃないかと思うからみんなもやってみよう!!