ライティングとスカイボックス
Assets/
Scenes/
Arena.unity
Scripts/
プロジェクトの設定
すでにあるものこのレッスンで追加
あなたの地形は、タブ 01 で回転させたあの Directional Light に照らされています。その上に立つ Knight には見栄えのある影が一つもありません。両方ともこのレッスンで直します。
ライティングはモデル以上に、ゲームの手触りを決めます。その大半を一つの Directional Light が担っています。
太陽を回転させると、雰囲気も影の向きも空の色も一緒に変わります。
これから使う 3 種類のライト
Directional——太陽です。位置は無関係で、意味があるのは回転だけ。シーンに 1 つあれば十分。
Point——電球のように全方向へ放射します。松明、ランプ、魔法のオーブ。
Spot——円錐形です。懐中電灯、街灯、ステージ照明。
まず入れる太陽の設定
- 1
Rotation 50, -30, 0——顔が明るく照らせる十分な高さ、影が読める十分な傾き。
- 2
Intensity は 1.0〜1.3 ほど、色はごくわずかに暖かい白(#FFF4E0)。
- 3
Shadow Type = Soft Shadows、Strength は 0.8 ほど。真っ黒な影はバグに見えます。
リアルタイムとベイク
✖ Realtime
✓ Baked lightmaps
- 1
動かないオブジェクトをすべて選び、Inspector の右上で Static にチェックを入れます。Knight は静的オブジェクトではありません——触らないでください。
- 2
Directional Light の Mode は Mixed にします。静的オブジェクトにはベイクされ、動くプレイヤーも引き続き照らします。
- 3
を開き、Generate Lighting を押します。
- 4
試行錯誤中は Lightmap Resolution を 10 に。上げるのは最終ベイクのときだけ、30〜40 です。
Skybox、環境光、フォグ
Skybox は単なる背景ではありません——あらゆる面に当たる環境光の主光源です。
Lighting > Environment で Ambient Source = Skybox、Intensity を 0.8〜1.0 にすると、影に自然な差し光が入ります。
フォグは遠方のクリップ面を隠し、カメラの Far distance を縮められます——タダで手に入るパフォーマンスです。
フォグの色は Skybox の水平線の色に合わせましょう。ずれると継ぎ目がばれてしまいます。
12 行で昼夜のサイクル
using UnityEngine;
public class DayNight : MonoBehaviour
{
[SerializeField] private float dayLengthMinutes = 4f;
[SerializeField] private Gradient sunColor; // paint dawn → noon → dusk
[SerializeField] private AnimationCurve intensity;
private Light sun;
private float t; // 0 .. 1 across a full day
void Awake() => sun = GetComponent<Light>();
void Update()
{
t += Time.deltaTime / (dayLengthMinutes * 60f);
t %= 1f;
transform.rotation = Quaternion.Euler((t * 360f) - 90f, 30f, 0f);
sun.color = sunColor.Evaluate(t);
sun.intensity = intensity.Evaluate(t);
RenderSettings.ambientIntensity = Mathf.Lerp(0.2f, 1f, sun.intensity);
}
}