(→Other) |
(→その他: 更新) |
||
614行目: | 614行目: | ||
| colspan="8" | {{info needed}} |
| colspan="8" | {{info needed}} |
||
|} |
|} |
||
+ | |||
+ | == レンダリングされる明るさ == |
||
+ | [[File:1.9 lighting curves (gamma=0).png|thumb|right|明るさの曲線。横軸はブロックによる光、縦軸は空からの光を表す。]] |
||
+ | |||
+ | このゲームでは、明るさレベル(内部の明るさレベルの代わり)、時間、天気を使用して、ブロックやエンティティのレンダリングされる明るさを計算する。この時光は完全に単色であり、本当の意味で色を付けることはできない。 |
||
+ | |||
+ | 上述したように、夜間には空からの明るさレベルが減少するのではなく、時間によって明るさの曲線自体が減少する。エンティティには、円形{{only|java}}や三十角形{{only|bedrock}}の影があるが、ブロックのレンダリングとは無関係である。 |
||
+ | |||
+ | 一般的に、空からの光が明るさレベル15であることに対して、光源ブロックは明るいが実質明るさレベル14という事実でバランスがとられている (光源ブロックは明るさレベル15を出すことがあるが、光源ブロック自体で減衰する)。[[オーバーワールド]]の昼の空からの光は白色だが、光源ブロックからの光の色はオレンジ色になる傾向にある。 |
||
+ | |||
+ | [[オーバーワールド]]で明るさを「Moody」にすると、日中の明るさ<ref name="輝度" group="luma">ここでの明るさは[[:en:wikipedia:Rec. 601|ITU-R BT.601]]での明るさ(輝度)を表す</ref>は98%にまでなり夜間の明るさ<ref name="luma" group="luma"/>は17%まで減少し、青みがかる。完全に暗くなると、明るさ<ref name="輝度" group="luma"/>は5%程度にまでなる。 |
||
+ | |||
+ | [[ネザー]]では、空の光源がないので空からの明るさの影響が出ない(もし存在した場合明るさ<ref name="輝度" group="luma"/>の99%を占めると思われる) 明るさを「Moody」にすると、完全に暗い場合約25%の明るさ<ref name="輝度" group="luma"/>になり、これは空からの光がない場合の光源ブロックからの明るさレベル7よりも少し暗めで、光源ブロックからの光のようなオレンジ色の濃淡がある。 |
||
+ | |||
+ | [[ジ・エンド]]では、空の光源があるが空からの明るさの影響が出ない。これは、ジ・エンドに[[雷]]を召喚した際にも見られる(他のディメンションで見られるような閃光が発生しない) 明るさを「Moody」に設定したジ・エンドの明るさ<ref name="輝度" group="luma"/>は、約28%であり、光源ブロックの光のオレンジ色と比べ、青緑色に近い色になっている。 |
||
+ | |||
+ | {{notelist|luma}} |
||
+ | {{-}} |
||
+ | === スムースライティング === |
||
+ | |||
+ | [[File:SmoothAnimSmal.gif|frame|スムースライティング有効と無効の違い]] |
||
+ | |||
+ | '''スムースライティング'''は、[[:en:Wikipedia:Ambient occlusion|アンビエントオクルージョン]]を使用してブロックの面全体の中で明るさレベルを計算して隅を暗くし、光源からの明かりや現実のような影を追加するライディングエンジンである。このエンジンはレンダリングされる明かりにのみ影響を与えるので、Mobのスポーンや、作物の成長には影響を与えない。デフォルトでは有効に設定されている。[[絵画]]や[[水]]には影響を与えない{{only|java}}<ref>{{bug|MC-1531}}</ref>。 |
||
+ | |||
+ | {{IN|bedrock}}、スムースライティングは、設定のビデオから有効かを選択することができる。 {{IN|java}}、3つの設定があり、最大、最小 (an older version of the engine)<ref>{{Tweet|dinner|306474602681491456|Minimum is the old smooth lighting method, maximum is the new one. Max is slower but prettier/fixes some issues with stairs.}}</ref>, or Off, and can be changed by accessing Video Options from the [[Options]] menu. |
||
+ | |||
+ | {{-}} |
||
+ | |||
+ | === Ambient occlusion in minecraft === |
||
+ | |||
+ | {{Cleanup|section=section}} |
||
+ | |||
+ | In recent years, in many games, ambient occlusion is mainly generated dynamically by the GPU. |
||
+ | But in the past, when Minecraft was born, GPUs were non-powerful. Maybe that's why Minecraft calculates ambient occlusion in the code based on voxel placement and brightness levels. This was faster, though the code was more complex than the GPU could handle. |
||
+ | |||
+ | Ambient occlusion is responsible for adding shading to an ordinary texture. It is a layer of translucent textures, on top of the normal textures. |
||
+ | Overlaying these AO textures onto a texture is called AO mapping. |
||
+ | There are about five AO texture patterns used in Minecraft's Smooth lighting, excluding flips and rotations, and only three patterns algorithmically. Strictly speaking, it's probably more than that. That's when the intensity changes with the brightness level. But they are solved by [[Tint]]. |
||
+ | |||
+ | === AO texture pattern === |
||
+ | |||
+ | {{Cleanup|section=section}} |
||
+ | |||
+ | If AO mapping is selected only to the northwest of the voxel, the following pattern is possible. |
||
+ | |||
+ | {| class="wikitable" |
||
+ | !Number |
||
+ | !Image |
||
+ | |- |
||
+ | |0 |
||
+ | |[[File:Aomap example (W).png|120px]] [[File:Aomap example (N).png|120px]] [[File:Aomap example (NW).png|120px]] |
||
+ | |- |
||
+ | |1 |
||
+ | |[[File:Aomap example (nW).png|100px]] [[File:Aomap example (Nw).png|100px]] [[File:Aomap example (n-w).png|120px]] |
||
+ | |- |
||
+ | |2 |
||
+ | |[[File:Aomap example (w).png|120px]] [[File:Aomap example (nw).png|80px]] [[File:Aomap example (n).png|120px]] |
||
+ | |- |
||
+ | |3 |
||
+ | |[[File:Aomap example (none).png|120px]] |
||
+ | |} |
||
+ | |||
+ | These classifications allow we can deduce a pattern from the placement of each voxel. |
||
+ | We then use the following function to compute the opacity of the voxels' vertices, depending on the presence of the side and corner voxels. |
||
+ | |||
+ | function vertexAO(side1, side2, corner) { |
||
+ | return 3 - (side1 + side2 + corner) |
||
+ | } |
||
+ | |||
+ | This generates a 2x2 pixel image using the values of each vertex. The pixels are small, but don't worry. It's zoom in using anti-aliasing, it will gradat. |
||
+ | |||
+ | [[File:Ao texture (x40).png|120px]] [[File:Ao texture (x40 anti-aliasing).png|120px]] |
||
== 明かりの効果 == |
== 明かりの効果 == |
2020年11月26日 (木) 07:12時点における版
明かり(英:Light)はMinecraftにおいて可視性、Mobの出現 (スポーン)、樹木の成長、花やキノコの定着に影響を与える要素である。Minecraftでの明かりには、明るさレベル、内部の明るさレベル、レンダリングされている明るさの3種類ある。
明るさレベル
明るさレベルは、Java Editionではデバッグ画面で確認することができる。空と特定のブロックの2つの要素によって決定され、0(最小)から15(最大)までの16段階で決定されている。
ブロックによる明かり
T | 13 | 12 | 11 | 10 | 9 | 8 | 9 | 10 | 11 | 12 | 13 | T |
13 | 12 | 11 | 10 | 9 | 8 | 9 | 8 | 9 | 10 | 11 | 12 | 13 |
12 | 11 | 10 | 9 | 8 | 9 | 10 | 9 | 8 | 9 | 10 | 11 | 12 |
11 | 10 | 9 | 8 | 9 | 10 | 11 | 10 | 9 | 8 | 9 | 10 | 11 |
10 | 9 | 8 | 9 | 10 | 11 | 12 | 11 | 10 | 9 | 8 | 9 | 10 |
9 | 8 | 9 | 10 | 11 | 12 | 13 | 12 | 11 | 10 | 9 | 8 | 9 |
8 | 9 | 10 | 11 | 12 | 13 | T | 13 | 12 | 11 | 10 | 9 | 8 |
ブロックによる明かりは発光ブロックから発生し、flood fillアルゴリズムを用いて拡散する。
ブロックによる明かりは、マンハッタン距離での1メートル(1ブロック)ごとに1減少する。これは3つの座標軸のそれぞれに当てはまる。つまり、明るさレベルは各軸に沿った距離の和によって斜めに減少する。例えば、
- 明るさレベル14の松明を地面に置いた場合、四方の隣接するブロックの明るさレベルは13であり、南東のブロックの明るさレベルは12(元の明るさレベル14から南1東1を引いた値)になる。
- 明るさレベル14の松明を地面から1ブロック離れた壁に置いた場合、松明の南東で1ブロック下の床ブロックは明るさレベル11(元の明るさレベル14からx軸1y軸1を引いた値)になる。
この計算により、表面上ひし形に見える。Bedrock Editionでは明かりを透すブロックは、ブロックによる明かりを減少させる。
Java Editionでは明るさレベルを計算する際に、ピストン、日照センサー、エンチャントテーブル、耕地、書見台、石切台、草の道、雪、エンドポータルフレーム、ハーフブロック、階段などの形状が検知され、特定の方向に光を広がせることができる。例えば、草の道の下には、明るさが伝わらないが、それ以外の方向には伝わる。例外として、コンポスター、大釜、ホッパー、カーペットがある。[1]
空による明かり
真昼の明るさレベルは15である。空による明かりは、広範囲に広がる。夜は、空からの明かりが減るのではなく、内部の明るさ情報によってスポーン可能かが決められている。
不透明度は、空からの明かりを遮ることができる。対照的に、ガラスや、鉄格子などの妨げないブロックもある。しかし、他の透明のブロックはすべて、空からの明るさを遮る。Tinted Glass[1.17で追加予定]は、見た目が透明であるにも関わらず、空からの明かりを完全に遮る。
透明なブロックを通して、明るさレベル15の光が伝わっても、明るさレベルは変化しない。横に広がったり、上に広がった場合、明るさレベルは1減少する。明かりを透すブロックを通じて拡散させると、上記の法則に従わず明るさレベルが減少する。
明るさレベル15以下の空による明かりは、ブロックによる明かりと同様に振る舞う。隣接するブロック(上下を含む6ブロック)に伝わると、0になるまで減衰する。
Java Editionでは明るさレベルを計算する際に、ピストン、日照センサー、エンチャントテーブル、耕地、書見台、石切台、草の道、雪、エンドポータルフレーム、ハーフブロック、階段などの形状が検知され、特定の方向に光を広がせることができる。これらは、方向性のある不透明度を有している。 例えば、草の道の下には、明るさが伝わらないが、それ以外の方向には伝わる。
明かりを透すブロック
Java Editionでは次の明かりを透すブロックはすべて空からの明るさレベルを1減少させる。
アイコン | ブロック |
---|---|
水 | |
全ての水没したブロック | |
気泡柱 | |
氷 | |
薄氷 | |
クモの巣 | |
葉 | |
スライムブロック | |
ハチミツブロック | |
スポナー | |
溶岩 | |
ビーコン | |
エンドゲートウェイ | |
コーラスプラント | |
コーラスフラワー | |
シュルカーボックス |
Bedrock Editionでは明かりを透すブロックは、ブロックや空からの明かりをより多く減少させる。以下が減少させる量である。
アイコン | ブロック | 減少量 |
---|---|---|
氷 | 3 | |
水 | 2 | |
クモの巣 | 1 | |
葉 |
光源ブロック
以下の値は、ブロック自体の明るさである。
アイコン | ブロック | 明るさレベル |
---|---|---|
ビーコン | 15 | |
点火している焚き火 | 15 | |
溶岩で満たされている大釜[Bedrock Edition限定][JE 1.17で追加予定] | 15 | |
コンジット | 15 | |
エンドゲートウェイ (ブロック) | 15 | |
エンドポータル (ブロック) | 15 | |
炎 | 15 | |
グロウストーン | 15 | |
ジャック・オ・ランタン | 15 | |
ランタン | 15 | |
溶岩 | 15 | |
点灯しているレッドストーンランプ | 15 | |
完全に充填されているリスポーンアンカー | 15 | |
シーランタン | 15 | |
水の中にある4つのシーピクルス | 15 | |
シュルームライト | 15 | |
色付きの松明[Bedrock EditionおよびMinecraft Education限定] | 14 | |
エンドロッド | 14 | |
松明 | 14 | |
水中の松明[Bedrock EditionおよびMinecraft Education限定] | 14 | |
動作時の溶鉱炉 | 13 | |
動作時のカマド | 13 | |
動作時の燻製器 | 13 | |
点灯時の4つのCandle[1.17で追加予定] | 12 | |
エンチャントテーブル[Bedrock Edition限定] | 12 | |
輝く黒曜石[Bedrock Edition限定] | 12 | |
水の中にある3つのシーピクルス | 12 | |
ネザーポータル (ブロック) | 11 | |
3⁄4充填されているリスポーンアンカー | 11 | |
泣く黒曜石 | 10 | |
点火している魂の焚き火 | 10 | |
魂の炎 | 10 | |
魂のランタン | 10 | |
魂の松明 | 10 | |
点灯時の4つのCandle[1.17で追加予定] | 9 | |
光っているレッドストーン鉱石 | 9 | |
水の中にある2つのシーピクルス | 9 | |
エンダーチェスト | 7 | |
点灯しているレッドストーントーチ | 7 | |
1⁄2充填されているリスポーンアンカー | 7 | |
点灯時の2つのCandle[1.17で追加予定] | 6 | |
水の中にある1つのシーピクルス | 6 | |
光っているAmethyst Cluster[1.17で追加予定] | 5 | |
光っているLarge Amethyst Bud[1.17で追加予定] | 4 | |
青氷[Bedrock EditionおよびMinecraft Education限定] | 4 | |
点灯中のCandle[1.17で追加予定] | 3 | |
マグマブロック | 3 | |
モンスタースポナー[Bedrock Edition限定] | 3 | |
1⁄4充填されているリスポーンアンカー | 3 | |
光っているMedium Amethyst Bud[1.17で追加予定] | 2 | |
光っているSmall Amethyst Bud[1.17で追加予定] | 1 | |
醸造台 | 1 | |
茶色のキノコ | 1 | |
ドラゴンの卵 | 1 | |
エンドポータルフレーム | 1 | |
光ブロック[Bedrock EditionおよびMinecraft Education限定] | 0–15
詳細は光ブロックを参照 |
内部の明るさレベル
内部の明るさレベルはゲーム内の計算に使用される。これは、Mobのスポーン、植物の成長、日照センサーの出力を計算するために使用される。
空からの光、時間、天気などの要素から内部の空からの光を計算し(暗くなっていく空の光として知られている)ブロックによる光と内部の空からの光を使用して、内部の明るさレベルを計算する(式: (最大(内部の空からの光、ブロックによる光))
)。この値は、最大が15の整数で、負の数にすることもできる。
以下は、空からの光がレベル15の場合の内部の空からの光である:
内部の空からの光 | 晴れ | 雨や雪 | 雷雨 | |||
---|---|---|---|---|---|---|
時間 ↓ | 時間 ↑ | 時間 ↓ | 時間 ↑ | 時間 ↓ | 時間 ↑ | |
4 | 13670–22330 | 13670–22330 | 13670–22330 | |||
5 | 22331–22491 | 13509–13669 | 22331–22565 | 13436–13669 | 22331–22671 | 13330–13669 |
6 | 22492–22652 | 13348–13508 | 22566–22798 | 13203–13435 | 22672–23010 | 12990–13329 |
7 | 22653–22812[JE限定] 22653–22813[BE限定] |
13188–13347 | 22799–23031 | 12969–13202 | 23011–23352 | 12648–12989 |
8 | 22813[JE限定]–22973 22814[BE限定]–22973 |
13027–13187 | 23032–23266 | 12734–12968 | 23353–23700 | 12300–12647 |
9 | 22974–23134 | 12867–13026 | 23267–23504 | 12497–12733 | 23701–59 | 11941[JE限定]–12299 11942[BE限定]–12299 |
10 | 23135–23296 | 12705–12866 | 23505–23745 | 12256–12496 | 60–11940[JE限定] 60–11941[BE限定] | |
11 | 23297–23459 | 12542–12704 | 23746–23991 | 12010–12255 | N/A | |
12 | 23460–23623[JE限定] 23460–23624[BE限定] |
12377–12541 | 23992–12009 | N/A | ||
13 | 23624[JE限定]–23790 23625[BE限定]–23790 |
12210–12376 | N/A | N/A | ||
14 | 23791–23960 | 12041–12209 | N/A | N/A | ||
15 | 23961–12040 | N/A | N/A |
空からの光sのレベルが15未満の内部の空からの光を計算するためには、lの内部の空からの光をsと15の差で引き算する必要があるl–(15–s)。
アイコン | 時間 | 空からの光が15の場合の内部の空からの光 |
---|---|---|
晴れの正午 | 15 | |
降雨時や降雪時の正午 | 12 | |
雷雨の正午 | 10[storm 1] | |
晴れの深夜 | 4 |
- ↑ 雷雨の間、明るさレベルが5と同様にMobがスポーンする。
内部の光の効果
注釈:内部の光はMobのスポーンと植物の成長に影響を及ぼす要素の一つであることを覚えておくこと
Mob
/fill
を使用した場合、スポーンに必要な明るさレベルが無視される可能性がある[2]。
Mob | レベル0–3 | レベル4–7 | レベル8–11 | レベル12–15 |
---|---|---|---|---|
コウモリ | Y座標0–62にスポーンする | 10月20日から11月3日までy座標0–62にスポーンする[JE限定] | スポーンしない | |
ブレイズ | ネザー要塞にスポーンする | スポーンしない | ||
ウィザースケルトン | ネザー要塞にスポーンする | スポーンしない | ||
ゾンビピグリン | ネザーにスポーンする | スポーンしない | ||
スライム | Y座標50–70の湿地帯にスポーンする | 湿地帯にはスポーンしない | ||
Y座標0–40のスライムチャンクにスポーンする | ||||
ゾンビ スケルトン |
オーバーワールドにスポーンする | スポーンしない | スポーンしない、日光で燃える | |
ドラウンド | 海洋と河川にスポーンする | スポーンしない、敵対的 | 日光で燃える、水の外のプレイヤーを無視する | |
クリーパー ウィッチ |
オーバーワールドにスポーンする | スポーンしない | ||
ファントム | ゲーム内で3日以上ベットで寝ていないとスポーンする | スポーンしない | 日光で燃える | |
クモ 洞窟グモ |
オーバーワールドにスポーンする | スポーンしない、敵対的 | スポーンしない、攻撃されない限り中立的 | |
シルバーフィッシュ[注釈 1] | オーバーワールドにスポーンする | スポーンしない、敵対的 | ||
エンダーマン 中立の状態 | オーバーワールドや、ネザー、ジ・エンドにスポーンする | スポーンしない、攻撃されない限り中立的 | スポーンしない、ランダムにテレポートする |
ブロック
ブロック | レベル0–3 | レベル4–7 | レベル8 | レベル9–10 | レベル11 | レベル12 | レベル13–15 | |
---|---|---|---|---|---|---|---|---|
雪 氷[注釈 1] |
凍る | 凍結と融解を繰り返す | 溶ける | |||||
キノコ | 増殖する | 菌糸かポドゾルに植えられていない場合はアイテムとしてドロップする | ||||||
苗木 カボチャとスイカの茎 竹 [注釈 2] |
成長しない | 成長する | ||||||
小麦 ニンジン ジャガイモ ビートルート[脚注 1] |
抜ける | 成長しない | 成長する | |||||
草ブロック 菌糸[注釈 3] |
上に不透明や半透明のブロックがある場合土になる | 伝播しない | 隣接する土に伝播する。(下記参照) | |||||
土[注釈 3] | 伝播されない | 上に不透明や半透明のブロックがない場合伝播される | ||||||
薄氷 | 詳細は薄氷を参照 | |||||||
日照センサー | 出力 |
その他
Java Editionではプレディケートでの光は内部の明るさレベルである。
レベル≤3 | レベル4-7 | レベル8 | レベル9 | レベル10 | レベル11 | レベル12 | レベル13–15 | |
---|---|---|---|---|---|---|---|---|
空洞音 | [情報提供依頼] |
レンダリングされる明るさ
このゲームでは、明るさレベル(内部の明るさレベルの代わり)、時間、天気を使用して、ブロックやエンティティのレンダリングされる明るさを計算する。この時光は完全に単色であり、本当の意味で色を付けることはできない。
上述したように、夜間には空からの明るさレベルが減少するのではなく、時間によって明るさの曲線自体が減少する。エンティティには、円形[Java Edition限定]や三十角形[Bedrock Edition限定]の影があるが、ブロックのレンダリングとは無関係である。
一般的に、空からの光が明るさレベル15であることに対して、光源ブロックは明るいが実質明るさレベル14という事実でバランスがとられている (光源ブロックは明るさレベル15を出すことがあるが、光源ブロック自体で減衰する)。オーバーワールドの昼の空からの光は白色だが、光源ブロックからの光の色はオレンジ色になる傾向にある。
オーバーワールドで明るさを「Moody」にすると、日中の明るさ[luma 1]は98%にまでなり夜間の明るさ[luma 2]は17%まで減少し、青みがかる。完全に暗くなると、明るさ[luma 1]は5%程度にまでなる。
ネザーでは、空の光源がないので空からの明るさの影響が出ない(もし存在した場合明るさ[luma 1]の99%を占めると思われる) 明るさを「Moody」にすると、完全に暗い場合約25%の明るさ[luma 1]になり、これは空からの光がない場合の光源ブロックからの明るさレベル7よりも少し暗めで、光源ブロックからの光のようなオレンジ色の濃淡がある。
ジ・エンドでは、空の光源があるが空からの明るさの影響が出ない。これは、ジ・エンドに雷を召喚した際にも見られる(他のディメンションで見られるような閃光が発生しない) 明るさを「Moody」に設定したジ・エンドの明るさ[luma 1]は、約28%であり、光源ブロックの光のオレンジ色と比べ、青緑色に近い色になっている。
スムースライティング
スムースライティングは、アンビエントオクルージョンを使用してブロックの面全体の中で明るさレベルを計算して隅を暗くし、光源からの明かりや現実のような影を追加するライディングエンジンである。このエンジンはレンダリングされる明かりにのみ影響を与えるので、Mobのスポーンや、作物の成長には影響を与えない。デフォルトでは有効に設定されている。絵画や水には影響を与えない[Java Edition限定][3]。
Bedrock Editionでは、スムースライティングは、設定のビデオから有効かを選択することができる。 Java Editionでは、3つの設定があり、最大、最小 (an older version of the engine)[4], or Off, and can be changed by accessing Video Options from the Options menu.
Ambient occlusion in minecraft
In recent years, in many games, ambient occlusion is mainly generated dynamically by the GPU. But in the past, when Minecraft was born, GPUs were non-powerful. Maybe that's why Minecraft calculates ambient occlusion in the code based on voxel placement and brightness levels. This was faster, though the code was more complex than the GPU could handle.
Ambient occlusion is responsible for adding shading to an ordinary texture. It is a layer of translucent textures, on top of the normal textures. Overlaying these AO textures onto a texture is called AO mapping. There are about five AO texture patterns used in Minecraft's Smooth lighting, excluding flips and rotations, and only three patterns algorithmically. Strictly speaking, it's probably more than that. That's when the intensity changes with the brightness level. But they are solved by Tint.
AO texture pattern
If AO mapping is selected only to the northwest of the voxel, the following pattern is possible.
Number | Image |
---|---|
0 | |
1 | |
2 | |
3 |
These classifications allow we can deduce a pattern from the placement of each voxel. We then use the following function to compute the opacity of the voxels' vertices, depending on the presence of the side and corner voxels.
function vertexAO(side1, side2, corner) { return 3 - (side1 + side2 + corner) }
This generates a 2x2 pixel image using the values of each vertex. The pixels are small, but don't worry. It's zoom in using anti-aliasing, it will gradat.
明かりの効果
注意してほしいが、明るさレベルはMobの出現や植物の生育の要素のうちの一つに過ぎない。詳細については各Mobのウィキページを参照してほしい。
レベル0∼3 | レベル4∼7 | レベル8 | レベル9 | レベル10 | レベル11 | レベル12 | レベル13∼15 | |
---|---|---|---|---|---|---|---|---|
コウモリ | 出現 (高度:0∼62) | 10/20∼11/3は、出現 (高度:0∼62) | 中立 | |||||
ブレイズ | ネザー要塞に出現 | 敵対 | ||||||
ウィザースケルトン | ネザー要塞に出現 | 敵対 | ||||||
シルバーフィッシュ [備考 1] |
(オーバーワールドでは出現) | シルバーフィッシュ入りのブロックからのみ出現 | ||||||
スライム | 湿原バイオームに出現 (高度:51∼69) | 任意のバイオームの特定チャンクに出現 (高度:0∼40) | ||||||
ゾンビ スケルトン |
出現 (オーバーワールドで) |
敵対 | 日光下で燃える | |||||
クリーパー ウィッチ |
出現 (オーバーワールドで) |
敵対 | ||||||
クモ 洞窟グモ |
出現 (オーバーワールドで) |
敵対 | 挑発されなければ中立 | |||||
エンダーマン | 出現 (オーバーワールド、エンドで) |
挑発されなければ中立 | ||||||
環境音 | 発現 | 発生せず | ||||||
雪 (層状)、氷[備考 2] | 形成 | 形成して解凍 | 解凍 | |||||
キノコ | 繁殖 | 菌糸やポドゾル上以外では アイテム化 | ||||||
花[備考 3] | 空からの明るさレベル8以上の光を受けうる場所以外ではアイテム化[備考 4] | 植わったまま | ||||||
苗木 小麦 カボチャ スイカ ニンジン ジャガイモ ビートルート[備考 5] |
空からの明るさレベル8以上の光を受けうる場所以外ではアイテム化[備考 4] | 育たない | 育つ | |||||
草ブロック、菌糸ブロック源[備考 6] | 不透明・半透明ブロックが上にあると土に戻る | 伝播せず | 近隣の土へと伝播 (後述) | |||||
草ブロック・菌糸の土への伝播[備考 6] | 広がらない | 広がる (不透明・半透明ブロックが上になければ) |
- ↑ この制約はモンスタースポナーからの出現にのみ適用される。シルバーフィッシュ入りのブロック(シルバーフィッシュが偽装した石系ブロック) は明るさレベルの制約を受けない。
- ↑ 日光は雪や氷には影響を与えない。後述の明るさレベルは、空気がそのレベルであればブロックに影響を与えるという意味である。
- ↑ 花ブロックそのものの明るさレベルが適用され、植わってる土台のブロックではない。
- ↑ a b Minecraft 1.7以降のバグで、花、苗木、作物は明るさレベルに関係なく植わったままとなる。このバグは作物については14w21aで修正された (花、苗木、スイカ、カボチャ以外)。ただし14w21aで、作物は夜間月光に直接あたらなければアイテム化する別のバグが発生した。
- ↑ 育つには植物の上のブロックに適切な明るさが必要である。カボチャやスイカの実の形成では、実が出来る場所ではなく、茎の上の明るさがチェックされる。アイテム化の際は植物のブロック自体の明るさレベルが適用される。
- ↑ a b 明るさレベルはそのブロックの上の空気ブロックに適用される。上にある「半透過」ブロック、例えば水や氷は最低でも明るさレベルを3、減衰させる (通常の伝播規則での減衰量より 2 大きい)。
トリビア: Alpha 1.2.0で行われたハロウィーンアップデートで、
- Halloween Update、バージョン Alpha 1.2.0までは、低い場所では明るさのレベルが条件より高くてもスポーンするようになった。16 - (高さ ÷ 8) の公式を使い算出されていた。高さが8以下の場所では日光が差し込んでいようとMobが出現する可能性があった。NotchがAlpha 1.2.1でMobのスポーン方法を元に戻したとき、「どうするか非常に悩んだ。この件を将来どうするかについては案がある」と発言した。
光源ブロック
以下の明るさの値はブロック自体のものである。
アイコン | ブロック | 明るさレベル |
---|---|---|
(日光) | 15 | |
ビーコン | ||
エンドポータル (ブロック) | ||
炎 | ||
グロウストーン | ||
ジャック・オ・ランタン | ||
溶岩 | ||
鍵のかかったチェスト | ||
レッドストーンランプ (作動時) | ||
シーランタン | ||
エンドロッド | 14 | |
松明 | 14 | |
かまど (作動時) | 13 | |
(降雨・降雪中の日光) | 12 | |
輝く黒曜石 [Bedrock Edition限定]。 | ||
ネザーポータルゲート | 11 | |
(雷雨中の日光) | 10[備考 1] | |
レッドストーン鉱石 (接触中) | 9 | |
エンダーチェスト | 7 | |
レッドストーントーチ (作動中) | ||
(月光) | 4 | |
醸造台 | 1 | |
茶キノコ | ||
ドラゴンの卵 | ||
エンドポータルフレーム |
- ↑ 雷雨の間は、実明るさレベルが5なので敵性Mobの出現が可能となる。
トリビア:
- Minecraft のソースコードでは、3番目の列の数値は浮動小数点数を用いて定義されている。奇妙な偶然で、これら浮動小数点数は1/16の倍数になっているが、整数の明るさ値にする際に15倍されている。これが意味するところは、0/16と1/16 (0.0と0.0625) はいずれも整数の明るさ値では0となる。
明るさの広がり
光源ブロックからの光は、光源から1メートル (1ブロック) 離れるごとに1レベルづつ減少する。これは南北、東西、上下の3方向について適用されることに注意したい。この法則は敵性Mobを出現させないためには重要だ。松明 (明るさレベル14) が床から2ブロック上の壁に設置されているとき、壁から1ブロック離れた場所の床は明るさレベル11になる (つまり14から、下へ2つ引き、水平に1つ引く)。壁の松明が床のすぐ上に置かれれば、壁から1ブロック離れた場所の床の明るさレベルは13になる (つまり14から下へ0引き、水平に1引く)。
明かりは斜め方向には「マンハッタン距離」、あるいは各軸の距離の合計の分減少する。これが意味するところは、松明 (明るさレベル14) が床に置かれているとき、東西南北の隣のブロックの床は13になるが、斜めは4方向とも12になる (例えば14から南へ1引き、東へ1引く)。この法則だと、光源からの明るさは床に沿って菱形状になる。明るさは3つの軸全ての方向に対して減少することを忘れずに。つまり壁の松明 (明るさレベル14) が床から1ブロック高いところに設置されていると、床の斜め1ブロック隣の部分は明るさレベル11になる (例えば14から南へ1引き、東へ1引き、下へ1引く)。
オーバーワールドで敵性Mobの出現を抑制するのに必要な光源の最小の数を見出すのはとても難しい。明かりは3軸全ての方向で減少するためである。完全に平らな平原や床では、最も低コストかつ簡単な方法は、松明を床に菱形に、斜めに5ブロックづつ空けて並べることである。
この図で、黄色い背景が床に置かれた松明を、数字が床ブロックの上の明るさレベルを示す。8より小さな数字が無い、つまり敵性Mobが出現できないことを意味するのに注意してほしい。緑は松明間の距離を明らかにする以上の意味は無い。
13 | 12 | 11 | 10 | 9 | 8 | 9 | 10 | 11 | 12 | 13 | ||
13 | 12 | 11 | 10 | 9 | 8 | 9 | 8 | 9 | 10 | 11 | 12 | 13 |
12 | 11 | 10 | 9 | 8 | 9 | 10 | 9 | 8 | 9 | 10 | 11 | 12 |
11 | 10 | 9 | 8 | 9 | 10 | 11 | 10 | 9 | 8 | 9 | 10 | 11 |
10 | 9 | 8 | 9 | 10 | 11 | 12 | 11 | 10 | 9 | 8 | 9 | 10 |
9 | 8 | 9 | 10 | 11 | 12 | 13 | 12 | 11 | 10 | 9 | 8 | 9 |
8 | 9 | 10 | 11 | 12 | 13 | 13 | 12 | 11 | 10 | 9 | 8 |
ただし、屋外では、地表の高さが1ブロックであっても変化すれば、明るさも変わり、異なる配置にする必要がある。加えて屋内では装飾のために光源を壁や天井に配置したいと思うことがあるだろう。Mobの出現時の判定には床面の明るさレベルが用いられるが、この場合床までの距離で明るさレベルは減衰することになる。
明かりを透すブロック
固体ブロックは明かりの拡散を妨げる。それに対しガラスやポータルの内側は明るさレベルに対する効果は無い。
それ以外の不透明なブロックは通過する明かりを減衰させる。下の表の数値は、そのブロックを明かりが通過した際に減少させる明るさレベルの数値になっている。光源からの光は1スクエア毎の距離につき1レベルづつ明るさが減ってゆくが、ブロックによっては通過時にそれ以上を減らす。
アイコン | ブロック | 減少量 |
---|---|---|
ピストン本体 | 6 | |
水 | 3 | |
氷 | ||
ハーフブロック | 2 | |
階段 | ||
チェスト | 1 |
スムースライティング
(ブロックの表面に当たる明かりを補完するアンビエントオクルージョンを含んだ) スムースライティングは、MrMessiahの助力を得てBeta 1.3で追加されたライティングエンジンである[5]。このライティングエンジンはデフォルトで有効になっており、設定のグラフィック設定で無効化できる。
エンジンには、混合光による半現実的な影と光源からの光の広がりが加えられた。この追加により内角が暗くなり、狭い場所では結果としてより暗くなった。Beta 1.3以前は、MrMessiah製作のBetterLightというModでゲームを書き換えることにより、この機能を使用することができた[6]。
バージョン1.5で、スムースライティングの設定に "Maximum" が追加された。これは階段での処理を修正するものである。しかしこれはパフォーマンスを少し犠牲にするために設定で切り替えることが出来るものになっている。以前のスムースライティングは "Minimum" に残されている。
歴史
Minecraft では、ブロックを照らすために多種多様な手法を用いてきた。Classic版では、単純にブロックが空に対して露出しているかどうかのチェックだけを行っていた。Indev版ではより複雑になり、最短距離にある日光や光源となるブロックからの距離が考慮されている。Alpha版ではIndev版を改良し、日光とブロックからの明かりを別々に計算し、異なった明るさのレベルが使用されるものとなっている。初期のBeta版アップデートでは、スムースライティングのオプションを加えることでAlpha版のものを改良している。後期のBeta版アップデートでは、より細かく効率的になるようにライティングエンジン全体を再び書き直し、明るさの違いによる推移が滑らかになっている。
Classic
Classic版では、“日光”はマップの上端から下にあるブロックを照らしていた。また日光は透明なブロックを透過し、その下のブロックを照らしていた。明かりを受けていないブロックは、どれだけ光源から離れても同レベルの薄暗さであった。
Indev/Infdev
IndevとInfdevでは、最大値に日中の明るさのレベル15、最小値にほぼ暗闇に近いレベル0を持つ、16段階の明るさがある。明かりは等分目盛であり、15で割った明るさの値を表現している。例として、明るさのレベル15は100%(15⁄15)の明るさを表現し、レベル13は86.67%(13⁄15)の明るさを表現している。
光源となるブロックはそれぞれに固有の明るさのレベルを持ち、光源から1ブロック離れるごとに明るさのレベルが1ずつ減少する。隣接するブロックがより強い明るさのレベルを持つ場合、レベルの減少は取り消される。このプロセスは、ブロックの明るさのレベルが変化するたびに繰り返される。
日中、日光の明るさのレベルは最大の15である。夕暮れには、夜間の月光による明るさである最小値のレベル4に達するまで、明るさのレベルが徐々に減少する。日光はマップの上端から発せられるが、その“光源”からの距離で明るさは減少しない。日光に照らされているブロックは、どの高さや深さでも明るさは同じである。
Minecraft - Pocket Edition は、現時点ではスムースライティングは実装されていない。
Alpha ~ Beta 1.2_02
Alpha版からBeta 1.3になるまでの明かりの挙動は、目盛の違いや線形でないことを除きIndevやInfdevと同じである。
日光は最大値の明るさであるレベル15をもたらす。レベルが1つ下がるごとに、1つ上のレベルの80%の明るさとなる。例えば、レベル14なら日光の80%の明るさとなり、レベル13は日光の64%の明るさとなる。これは明るさのレベルが0であっても、最大値の3.5%(=0.815×100%)の明るさであることを意味する。
Alpha版での日光は、それ自体の明るさが配列されていて、夜明けや夕暮れがより滑らかになるように裏で最適化される。空からの光量は、ブロックの配置や削除以外に再計算の必要が全くないよう、ブロックの光量と一緒に前もって計算され保存される。夕暮れ、夜、夜明けの間、時間帯の違いによる効果を設定するため、"暗闇"のレベルが空から減らされる。
ネザー(The Nether)において、明かりの各レベルにおける減少の割合は、通常の20%ではなく10%である。これはネザーでは完全な暗闇にならないことを意味する。最小の明るさレベルにおいても20.59%となり、通常世界の明るさのレベル8に相当する薄暗い状態となっている。
Beta 1.3 ~ Beta 1.7.3
Beta 1.3からBeta 1.7.3までの明かりの挙動はAlpha版と同様であったが、スムースライティングを適用することで著しく最適化された。
Beta 1.8 ~ 1.4.7
Beta 1.8において、新しい光源処理エンジンが実装された。この新しいエンジン変更点、追加点は以下の通りであった。
- ある場所での明かりの色は、ブロックを照らす光源のタイプに左右される。月光はほのかに青く、松明と溶岩はやや赤みがかっていて、完全な暗闇と日光は以前と同じである。
- 明るさの変更が即座に行われ、時間帯により段階的に変わる明るさや降雨状態の明るさのレベルをチャンクの明るさを1つずつ個別に更新することなく、滑らかに変更することができる。
- この新しい明るさの変更方法を使うことにより、日光でない明かりがわずかに明滅する。これは見た目だけであり、ゲーム内容に全く影響を及ぼさない。
- 日の入りは従来より強烈で現実的になり、プレイヤーが背を向けると薄暗く見えるようになった。
- 最深部では黒い霧が立ち込める。岩盤層では、松明は11マス離れると視認できなくなる。この効果は太陽が昇っているかどうかにかかわらず、開けた空が近ければ抑制される (言い換えると、プレイヤーの立っている場所が日光に照らされるのであれば抑制される)。地表までの縦穴を掘れば、岩盤層であっても遠くを見ることが出来るだろう。
- 奈落内部では、光源処理はClassic版に似たものになる。光源からの距離にかかわらず、奈落内の物体には一定の明るさが残る。これは光源からの距離によらず、奈落への開口部直下で受けた明るさが残り続ける。スペースの特定の"列"の明るさは、岩盤層の底の明るさレベル0に基づいている。これは全てのエンティティやパーティクルにも適用される。
- 加えて、日中であるかどうかにかかわらず、奈落の縦穴の下で直射日光を受けると奈落の霧が取り除かれる。
1.5
バージョン1.5では、幾つかの光源処理の最適化が行われた。例えばよりリアルな明かりや、ハーフブロックや階段などへの光源処理の修正が含まれている。だが、かまどの火は全ての方向へと光を放ち、ワールド生成時の (がけ下等の) 暗部は修正されなかった。またスムースライティングが「オフ」「Minumum」「Maximun」の3つの段階に切り替え可能となった。
将来
Snapshot 12w39aで、Dinnerboneはワールド生成時に発生する暗部の問題を修正し[7]、光源ブロックへの指向性の付与などを含む、光源システムの改修を開始した[8][9]。
ワールド生成時の問題は仮の修正が行われた[10]が、それ以外の変更についてはパフォーマンスに難があったので撤回されている[11][12]。
トリビア
- 敵性Mobは、明るくなっているべきだがそうなっていない場所に出現可能である。これはゲームプログラムがその場所を明るさレベル0として認識するためである。
- スムースライティングは、水の一番上や絵画では明らかにはならない。
- 不透明な材料からなる21×21ブロックの正方形の場所の下は、Mobが出現するのに充分な明るさになる。
- ゾンビやスケルトンが水中や樹木の下の低い明るさレベルの場所にいると、日中でも生存できる。
ギャラリー
脚注
- ↑ MC-139435
- ↑ MC-156880
- ↑ MC-1531
- ↑ “Minimum is the old smooth lighting method, maximum is the new one. Max is slower but prettier/fixes some issues with stairs.” – @Dinnerbone
- ↑ http://notch.tumblr.com/post/3446675806/minecraft-beta-1-3
- ↑ http://www.minecraftforum.net/viewtopic.php?f=25&t=55700 - Minecraft Forums - MrMMods (BetterLight|Grass, SimpleMap) 1.8.1
- ↑ https://twitter.com/Dinnerbone/status/250952827608915969
- ↑ a b https://twitter.com/Dinnerbone/status/250904989885661184
- ↑ http://www.reddit.com/r/Minecraft/comments/10g4mi/dinnerbone_at_this_point_i_think_its_almost/
- ↑ https://twitter.com/Dinnerbone/status/252679131261710336
- ↑ https://twitter.com/Dinnerbone/status/251719813704069120
- ↑ https://twitter.com/Dinnerbone/status/253772962530996224
- ↑ https://twitter.com/Dinnerbone/status/250907917665042432
引用エラー: 「脚注」という名前のグループの <ref>
タグがありますが、対応する <references group="脚注"/>
タグが見つかりません