55 lines
4.0 KiB
Markdown
55 lines
4.0 KiB
Markdown
# Time Engine — ゲーム内時計と昼夜、ライティング
|
|
|
|
Time Engine はゲーム内の時計を動かし、シーンをそれに追従させます。同じ場所でも朝、正午、夕方、夜で見え方が変わります。さらにランプや窓でシーンを照らし、日が暮れると携帯ランプを差し出します。エンジン MOD なので、Cthangover やタイルマップの RPG などのゲームに含まれ、その働きは専用の画面ではなく、あらゆるシーンの中に現れます。
|
|
|
|
## 時計
|
|
|
|
時刻は画面の左上に表示されます。現実の 1 秒がゲーム内の 1 分なので、ゲーム内の 1 時間は現実の 1 分で過ぎます。一部のアクションはすぐにゲーム内時間を消費します。たとえば料理や制作は、レシピの時間ぶん時計を進めます。
|
|
|
|
暦は簡略化されています。1 か月 30 日、1 年 12 か月です。
|
|
|
|
## 昼と夜
|
|
|
|
シーンの背景は **朝**、**昼**、**夕方**、**夜** の四つの状態で描かれ、絵はその間を滑らかにつなぎます:
|
|
|
|
```text
|
|
00 ─ 夜 ─ 04 ⇢ 06 ─ 朝 ─ 09 ⇢ 11 ─── 昼 ─── 17 ⇢ 19 ─ 夕方 ─ 21 ⇢ 22 ── 夜 ── 24
|
|
(⇢ = ある状態から次の状態への 2 時間のクロスフェード)
|
|
```
|
|
|
|

|
|
|
|
## ライティング
|
|
|
|
夜のシーンは、その明かりを除いて暗くなります。窓、ろうそく、ランプはシーン作者が置いた場所で光り、一つ一つの光に色・半径・強さがあります。
|
|
|
|

|
|
|
|
**携帯ランプ。** 22:00 から 06:00 の間、画面の上にランタンが現れます。シーンへドラッグすると、見たい場所を照らせます。
|
|
|
|

|
|
|
|
## 作者向け
|
|
|
|
**シーンに光を置く**には、シナリオから `light_set` で光のリストを渡します。位置は画面の割合(0 から 1)なので、どんなウィンドウサイズにも収まります。シーンごとに光は最大 10 個と、携帯ランプ:
|
|
|
|
```scenario
|
|
light_set [{"x":0.673,"y":0.461,"radius":500,"influence":1,"color":"#ffff00"},{"x":0.135,"y":0.315,"radius":500,"influence":1,"color":"#ffff00"}]
|
|
```
|
|
|
|
- `x`, `y` — 幅と高さに対する位置の割合;
|
|
- `radius` — 光が届く距離(ピクセル);
|
|
- `influence` — 0 から 1 の強さ;
|
|
- `color` — 16 進の色。
|
|
|
|
空の `light_set` はシーンの光を取り除きます。Editor Tools のライトエディターはマウスで配置し、この行を代わりに書いてくれます。`lighting.clear_map` シナリオアクションは、深度ライティングを使わないシーンへ切り替えるとき、そのライティングを消します。
|
|
|
|
**夜に対応した背景。** 背景が正しく照らされるのは、画像と同じ名前に `_depth` を付けた深度マップが隣にあるときです(たとえば `bar.png` と `bar_depth.png`)。背景には `_albedo` の相棒が付くこともあります。これらのマップがないと、シーンの光は照らすべき形を持ちません。
|
|
|
|
**他の MOD** も同じ時計を読みます。RPG のタイルマップは背景と同じ一日を共有し、時刻の変化はゲーム内 1 分ごとに全 MOD へ伝わります。
|
|
|
|
## うまく動かないとき
|
|
|
|
1. **夜なのにシーンが明るいまま。** 背景に深度マップがないか、シーンが時刻の色調を使っていません。
|
|
2. **夜にランタンがない。** 22:00 から 06:00 のだけで、しかもインターフェースがそれを含むゲームでしか現れません。
|