マインクラフトの、NULLと呼ばれる存在をご存知でしょうか。
今回から、小学生から大人まで幅広い世代に人気の高いゲームマインクラフトの都市伝説を紹介・考察していきたいと思います。
記念すべき第1回は、『NULL』
一体、NULLとは何者なのか。ぜひ最後までお楽しみください。
NULLの概要
『NULL』が初めて確認されたのは、2014年のことです。
ある動画が8月24日にYouTubeで公開されました。まずは、こちらの動画をご覧ください。
動画に映っているように、NULLとは全身が真っ黒の謎の存在です。形はプレイヤーにそっくりの人型をしています。
動画の中で、NULLの正体について、このように字幕が付けられています。
『Others are saying that Herobrine has gotten into such a corrupt state, he is now in this form.』
それぞれで機械翻訳にかけてもらっても良いのですが、要は『ヘロブラインがバグってこのような姿になったと言う人もいる』と書いてあります。
正体については諸説あるようですが、はっきりとしているのは、彼がNULLと呼ばれていると言うことだけですね。
NULLの動画が見つかった経緯
実は、この動画は投稿者が撮影したわけではなさそうなんです。
動画の中で、PvPのリソースパックを入れようとフォルダーを弄ってる時に、たまたま『null.mp4』というファイルを見つけたと述べられています。
すぐに動画のプロパティを開き、作成日時を確認しました。すると、2014年8月14日午前2時36分であることが分かりました。
自分の住んでいる地域は、EST(東部標準時間)だと述べていますが、別にそこは大して重要ではないでしょう。投稿者はアメリカの東側に住んでいると思っていればOKです。
問題は、その動画が作られた時刻、投稿者は寝ていて録画した覚えも、ゲームを開いた覚えもないと述べていることです。
つまり、『null.mp4』は、投稿者が寝ているうちに、勝手に生成された動画であるということになるのです。
NULLの意味
さて、一旦休憩を挟んで、NULLの意味について説明しましょう。
マインクラフトは、Javaというプログラミング言語によって作成されています。
マイクラにはJava版と統合版がありますが、そのうちのJava版は、Java言語によって作られているからこういう名前になっているんですね。
そして、NULLはJava言語において特別な意味を持ちます。
その意味とは、『何もない』です。
Java言語のプログラミングの基本は、オブジェクトと呼ばれる物を作成し、オブジェクトに命令を下すことによって構築する、オブジェクト指向プログラミング(OOP)です。
そのオブジェクトが存在しないことを表すのが、NULLになります。
このNULL、非常に厄介な存在で、めちゃくちゃバグを生みます。私自身、何度もNULLによる不具合に遭遇してきました。
(NULLが原因になってると、元々の原因を特定するのが難しい場合が多いんですよ……)
何が厄介かと言うと、プログラムを作っている側はオブジェクトがある前提で組んでるのに、ないと言われちゃうことなんですよね。
最初の設定し忘れなら良いんですが、よく分からんところで消されたr……
先輩STOP! そろそろ本筋に戻ってきてください!
すみません、ちょっと暴走しすぎましたね。要するに、NULLについては次の2点を理解していればOKです。
- NULLは『何もない』ことを表す
- NULLはバグの温床
NULLの名前について考える
先ほどのセクションで、NULLとは『何もない』ことを意味し、バグの温床となることを説明しましたね。
その上で、都市伝説NULLを見てみると……
- そこに何もないかのような真っ黒の見た目をしている
- ヘロブラインがバグった姿ではないかと言われている
まさに、NULLの名を冠するのにピッタリの特徴を持っていると言えます。
NULLの動画について考える
実は、NULLの動画は全部で3パートあります。
パート2は、NULLがワールドに出没するようになったと言う動画なので、特に追加情報はなさそうです。
と言うことで、いきなりパート3に飛びます。
どうやら、NULLからのメッセージが送られてきたと言う趣旨の動画のようです。
動画の中でのNULLのセリフを全て抜き出し、オレオレ翻訳にかけてみました。私の翻訳が間違っている可能性も考慮して、原文も載せておきます。
原文
0x219: Do you know how corrupt I am?
0x21F: I am filled with errors, several of them.
0x216: Just by my presence, I am slowly killing your game.
0x228: Do you know I am?
0x1F4: I am NULL.
0x22B: I will always be in the game, something that is null cannot be removed.
0x235: I am so detailed, such a computer can only process a very small amount of my information.
0x241: I don’t have any skin. I am extremely limited to certain things.
0x246: Nothing can recognize me.
0x247: I don’t even have a name, all my characters are undefined.
0x253:
0x27A: I am getting more corrupt the further I stay with you, I must go very soon.
0x2A5: But, do you see what these error codes are? 0x2A5 means too much information.
0x2AF: I am incompatible to almost any computer.
0x33EC: I cannot be processed by almost any computer.
ERROR: ERROR null
オレオレ翻訳
0x219: 私がどのように壊れているか分かるか?
0x21F: 私はエラーまみれだ。
0x216: ただ存在しているだけで、私は君のゲームをゆっくりと壊している。
0x228: 私が何者か分かるか?
0x1F4: 私はNULLだ。
0x22B: 私はいつもゲームの中にいるが、取り除くことはできない。
0x235: 私は非常に詳しいので、そのようなコンピューターは私の情報のうちごく少量しか処理できません。(意味が分からなかったので機械翻訳)
0x241: 他にスキンがないんだ。私の出来ることは非常に制限されている。
0x246: 誰も私を理解できない。
0x247: 私には名前すらなく、人格も未定義だ。
0x253:
0x27A: 私はこうしている間にもますますバグってきている。すぐに行かねばならない。
0x2A5: しかし、このエラーコードが何か分かるか? 0x2A5は、情報が多すぎることを意味している。
0x2AF: 私は、ほとんどのコンピュータと互換性がない
0x33EC: ほとんどのコンピューターは私を実行することができない
ERROR: エラー null
このメッセージから、「NULLを自称している」ことと、「NULLはエラーまみれで壊れている」ことが分かります。
少なくとも、NULLは自身のことを壊れていると認識しているようですね。
パート3の動画には隠れたメッセージがあるのでは?
さて、ここではパート3の動画でもNULLが触れていたエラーコードの暗号に挑んでいきたいと思います。
そもそも、それが暗号だってのは間違いないんですか?
実を言うと、あんまり自信ない!
強いて根拠を言うなら勘です。もちろん、意味もなくエラーコードを羅列しているだけかもしれないですが、そうじゃない時が面白いので暗号だという前提で挑みます。
▼ エラーコード(登場順)
0x219, 0x21F, 0x216, 0x228, 0x1F4, 0x22B, 0x235, 0x241, 0x246, 0x247, 0x253, 0x27A, 0x2A5, 0x2AF, 0x35EC
【仮説1】定数の頭文字を繋いだらメッセージになる説
これらのエラーコードは、おそらくWin32エラーコードです。
それぞれのエラーコードには、使いやすいように名前が与えられており、その頭文字を繋いだらメッセージになるんじゃないかと考えました。
と言うわけで、早速マイクロソフトの公式サイトからエラーコードを調べてきました。
参考https://learn.microsoft.com/ja-jp/windows/win32/debug/system-error-codes–500-999-
エラーコード | #define |
---|---|
0x219 | ERROR_VERIFIER_STOP |
0x21F | ERROR_BAD_STACK |
0x216 | ERROR_ARITHMETIC_OVERFLOW |
0x228 | ERROR_COULD_NOT_INTERPRET |
0x1F4 | ERROR_USER_PROFILE_LOAD |
0x22B | ERROR_CANT_TERMINATE_SELF |
0x235 | ERROR_TOO_MANY_THREADS |
0x241 | ERROR_INVALID_IMAGE_HASH |
0x246 | ERROR_ILLEGAL_CHARACTER |
0x247 | ERROR_UNDEFINED_CHARACTER |
0x253 | ERROR_REPLY_MESSAGE_MISMATCH |
0x27A | ERROR_CORRUPT_SYSTEM_FILE |
0x2A5 | ERROR_EXTRANEOUS_INFORMATION |
0x2AF | ERROR_DLL_MIGHT_BE_INCOMPATIBLE |
0x35EC | ERROR_ISPEC_IKE_TIMED_OUT |
ERRORの次の単語の頭文字をつなぐと……VBACUCTIIURCEDI??
ははっ。訳わからないね。
次!
【仮説2】Unicodeになってる説
コンピューターの中では、文字は数値で扱われているんです。「1」なら「あ」、「2」なら「い」という具合ですね。
そんな感じで、このエラーコードもUnicodeで変換してやれば、文章が出てくるんです!(多分)
さっそくやってみましょう。
エラーコード | Unicode |
---|---|
0x219 | ș |
0x21F | ȟ |
0x216 | Ȗ |
0x228 | Ȩ |
0x1F4 | Ǵ |
0x22B | ȫ |
0x235 | ȵ |
0x241 | Ɂ |
0x246 | Ɇ |
0x247 | ɇ |
0x253 | ɓ |
0x27A | ɺ |
0x2A5 | ʥ |
0x2AF | ʯ |
0x35EC | 㗬 |
……
こりゃ失敗っすね!あはは。
終わりに
『Real NULL Sighting』のパート3に出てくるエラーコード、何かしらのメッセージが隠れてると思ったんですけどね……失敗しました。
もし! 何か! 思いついたことがあれば! コメント欄に書き込んでください!!!
このパターンはダメでしたって報告でも、このパターンを試してみたら良いんじゃないって提案でも良いです。よろしくお願いします🙇
コメント