チャンクチケット
ChunkTicket
別名: チケット / ticket
目次
チャンクチケットとはワールドのチャンク読み込みのレベルを決める要素
チャンクの読み込みレベルは大きく以下の4つに分かれている
チャンクの読み込みレベル#
| チケットのレベル | 名称 | 挙動 |
|---|---|---|
| <=31 | EntityTicking | 通常通りのワールド処理が行われる |
| 32 | BlockTicking(LazyChunk) | エンティティの処理が停止するがブロックの処理は継続して行われる。 |
| 33 | BorderChunk | ブロックの処理も停止するが、ワールドに読み込まれている。(例:mobcapに加算される) |
| 34~44 | Inaccessible(読み込み範囲外) | ワールドに読み込まれていないがワールドの生成のみ行われる。 |
| 45~ | 未読み込み |
チケットの種類#
| チケット名 | 継続時間(0で無期限、単位はtick) | フラグ | 意味 |
|---|---|---|---|
| player_spawn | 20 | 2 | プレイヤーのログイン時にスポーンするチャンクを確保するためのチケット |
| spawn_seach | 1 | 2 | スポーン地点の探索 |
| dragon | 0 | 6 | ドラゴン生存時のエンド本島のチャンクロード |
| player_loading | 0 | 2 | プレイヤーの描画距離内のロード |
| player_simulation | 0 | 12 | プレイヤーの演算距離内のロード |
| forced | 0 | 15 | /forceloadで追加した強制読み込み領域 |
| portal | 300 | 15 | ポータル通過時に発行される |
| ender_peal | 40 | 14 | エンダーパールによるチャンクロード |
| unknown | 1 | 19 | ゲームが読み込みレベル34以上のチャンクのデータを取得しようとした際に発行 |
読み込みフラグ#
チケットの種類ごとにフラグビットが設定されており、そのビットに応じた読み込みの種類がある
| フラグ | ビット | 意味 |
|---|---|---|
| FLAG_PERSIST | 1 | セーブされる |
| FLAG_LOADING | 2 | 読み込みレベルに数えられる |
| FLAG_SIMULATION | 4 | シミュレーションレベルに数えられる(EntityTicking) |
| FLAG_KEEP_DIMENSION_ACTIVE | 8 | そのディメンションを稼働中扱いにする |
| FLAG_CAN_EXPIRE_IF_UNLOADED | 16 | チャンクが未読み込みでもアンロードまでのカウントダウンを進める |
描画距離と演算距離#
描画距離にしたがって player_loading チケットが発行されるが、これはすべて31レベルで発行される
反対に演算距離によって発行される player_simulation チケットはプレイヤーを中心に伝播するように発行される
player_simulation チケットの中心のレベルは max(0, 31 - simulationDistance) で求めることができる
この時 player_loading チケットはフラグが読み込みレベルのみなのですべてBorderChunkになる
そして player_simulation チケットはフラグにシミュレーションレベルが含まれるので、player_simulation チケットがレベル31以下のチャンクはEntityTickingになる
チケット仕様の変遷
チケットが導入された当初はプレイヤーによるチャンクチケットは1種類しかなかった
その後1.18でシミュレーション距離を分離した際に、ティック判定のみシミュレーション側に移され
1.21.5で型に LOADING/SIMULATION の用途ができ
26.xでフラグ化された