[初心者向け]チャンクってなに?村人や動物の消失バグ対策から効率的な農産・畜産まで知ろう!

こんにちは、bokuです!

先日、「村人や動物が突然消えることがあって困っていたんですが、チャンクを意識した対応をしたら消えなくなりました」という投稿をしたところ、予想外に多くの反応がありました。

https://twitter.com/boku__mc/status/1401881861631053825

みんな困っていたんだな・・・と思ったと同時に、初心者からすると突然飼っていた動物などが突然消えるとかホラーでしかないよな、と思い、初心者が最低限知っておいたほうが良い「チャンクとは?」についてや、基本的な対策を述べていきたいと思います。

このページで分かること

  • チャンクがどういうものか分かる
  • チャンクがゲームプレイにどう影響を及ぼすか分かる
  • なぜチャンクを意識しないと動物が突然消えるのかが分かる

そもそもチャンクってなに?

チャンクという言葉はあまりなじみがないと思いますが、チャンクはchunk(大きなかたまり)という意味を持つ言葉です。
マインクラフトはみなさんご存じの通り、ブロックが無数に集まって作られたワールドでゲームをしますが、マインクラフトでは「ある一定のかたまりの単位ごとに処理を行う」というつくりになっており、そのかたまりのことをチャンクと呼んでいます。

エリアで見ると、チャンクは16ブロック×16ブロックの大きさを1つのかたまりとしてみています。

チャンクの説明画像
平面で見るとちっちゃいチャンク

普段プレイしている分にはチャンクを意識することはありませんが、マインクラフトでは常に16ブロック×16ブロックのエリアごとに処理が行われているのです。

また、マインクラフトは3Dゲームということもありますが、チャンクは平面で捉えるのではなく、立体で捉えて処理をします。
バージョン1.17の時点では、バニラ(オーバーワールドとも言います)での高さは256ブロック分と決まっていますが、1つのチャンクではこの256ブロック分の高さを捉えます。

立体で見るチャンクの範囲
立体でみるとチャンクは名前の通り大きなかたまり

ですので、バニラの草ブロックや土ブロック、その下の各種石ブロックや鉱石ブロック、最下層の岩盤ブロックに加え、そのチャンク内に存在する水や空気も処理の対象となります。

まとめると、「1チャンク=縦16ブロック×横16ブロック×高さ256ブロックの計65,536ブロック」となります。
確かに6万ブロックなら「大きなかたまり(ブロック)」と言ってもおかしくはないですよね。

チャンクはゲームプレイにどう影響するの?

チャンクの基本的な考え方が分かったので、次はゲームプレイへの影響について述べます。
マインクラフトはみなさんご存じの通り、ブロックが無数に集まって作られたワールドでゲームをしますが、実際にはゲームプレイに十分な分だけ都度都度ブロックの情報を読み込んで処理を行っているのです(軽快な動作をさせるための工夫ですね)。

で、マインクラフトではまさに「チャンク単位」でブロック情報を読み込んで処理をしているのです。
このチャンク、読み込みが行われるのは、通常では「ユーザの設定」と「ゲーム中でのプレイヤーの移動」の2つがきっかけとなります。

統合版の場合、ワールドに入る前に設定画面を開き、少し下にスクロールすると変更(シミュレーション距離です)することができます。

統合版の設定画面

ややこしいのがJava版で、Java版は最大120ブロック先までが対象で、描画距離の設定によってはそれよりも小さい範囲になります(1.18からはJava版にも統合版のようなシミュレーション距離という設定が導入される見込みです)。

例えば4チャンクの設定をしたとすると、以下の図のように、プレイヤーがいるチャンクからみて東西南北4チャンク分のエリアが読み込まれます。
(プレイヤーの位置などによっては図の通りにならないこともありますが、概ね自分がいるチャンクを中心に東西南北、指定したチャンクの読み込み数に応じた範囲が読み込まれます)

オレンジがプレイヤーがいるチャンクで、緑が読み込まれるチャンクを表しています。

4チャンク読み込み時の読み込み範囲
4チャンク読み込み時の読み込み範囲

このチャンクの読み込み数を大きくすればするほどたくさんのチャンク内のブロック情報を読み込まれるので、読み込まれたチャンク内での処理も行われるようになります。

もう一つのチャンクが読み込まれる契機は「ゲーム中でのプレイヤーの移動」ですが、こちらは上記の設定を前提に、プレイヤーが別のチャンクに移動したとき、新たに読み込まれるチャンクが発生(逆に読み込み済のチャンク情報の破棄も行われる)することを意味しています。以下がそのイメージで、オレンジから青のチャンクに移動した際に、明るい緑のチャンクが新たに読み込まれ、濃い緑のチャンク情報が破棄されます。

設定された読み込み範囲を基づき、移動するごとにチャンクの読み込み&破棄が行われる

で、この「チャンク内での処理も行われる」ですが、具体的に言うと苗木や農作物の成長や動物の動きに影響を与えます(実際にはJava版と統合版それぞれで具体的な処理は異なりますが、初心者向けのため説明は割愛しています)。

具体的には、読み込まれていないチャンクやプレイヤーの移動によって情報が破棄されたチャンクにある苗木や農作物は成長せず、動物は動きを止めてしまいます。これは前述のとおり、ワールドすべての情報をPCやスマホに読み込まず、プレイヤーの近辺の情報だけ読み込んで処理をするというマインクラフトの仕様になるので、それを理解してうまく活用する工夫が必要になってきます。

統合版はチャンク関連で村人や動物が消失するバグが存在

前述の植物や動物の動きが止まるだけなら大した問題ではないのですが、統合版においては、プレイヤー動きによって破棄されたチャンクの近くにいる動物や村人が消えてしまうことがある(1.17.40時点で確認)のです。完全にホラーです。実際にこれの原因になっていると思われるバグがBug Trackerという、マインクラフトのバグを報告するサイトに報告されています。微力ながら簡単に説明した内容をTwitterで書かせていただいていますので、参考になればと思います。

https://twitter.com/boku__mc/status/1447578627181187077

まとめると、自分がいる近くで畜産・農産・かまど精錬をすること

長々と説明をしてきましたが、簡単に要点だけ伝えるとすると「 自分がいる近くで畜産・農産をする こと」という1点に尽きます。とりわけ、統合版をプレイしている人は、村人や動物の消失バグ対策として、(かわいそうだけど)できるだけ動かないように位置を固定しておきましょう😁👍

https://twitter.com/tasogar74257053