Files

55 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Time Engine — игровые часы, день и ночь, освещение
Time Engine ведёт игровые часы и заставляет сцены следовать за ними: одно и то же место утром, в полдень, вечером и ночью выглядит по-разному. Он ещё и подсвечивает сцены лампами и окнами, а после заката даёт вам переносной фонарь. Это мод-движок: его включают игры вроде Cthangover и тайловых RPG, и его работу вы видите в каждой сцене, а не на отдельном экране.
## Часы
Время показывается в левом верхнем углу экрана. Одна реальная секунда — одна игровая минута, поэтому игровой час проходит за реальную минуту. Некоторые действия тратят игровое время сразу: например, готовка или крафт двигают часы вперёд на время рецепта.
Календарь упрощён: месяцы по 30 дней, в году 12 месяцев.
## День и ночь
Фон каждой сцены рисуется в четырёх состояниях — **утро**, **день**, **вечер** и **ночь**, — и картинка плавно перетекает между ними:
```text
00 ─ ночь ─ 04 ⇢ 06 ─ утро ─ 09 ⇢ 11 ─── день ─── 17 ⇢ 19 ─ вечер ─ 21 ⇢ 22 ── ночь ── 24
(⇢ — двухчасовое плавное перетекание из одного состояния в другое)
```
![Та же сцена — мельница у виллы в Cthangover — в 07:00, 13:00, 18:00 и 23:30: тёплое утро, яркий полдень, вечернее затухание и ночь с горящими окнами.](assets/day-cycle.jpg)
## Освещение
Ночью сцена темна, кроме своих огней. Окна, свечи и лампы светятся там, где их расставил автор сцены, и у каждого огня свой цвет, радиус и сила.
![Ночь у виллы в 23:33: светятся только окна; иконка фонаря наверху экрана — переносной фонарь.](assets/night.jpg)
**Переносной фонарь.** С 22:00 до 06:00 наверху экрана появляется фонарь. Перетащите его на сцену, чтобы осветить место, которое хотите рассмотреть.
![Кухня в Cthangover, освещённая свечой и лампой.](assets/kitchen-lights.jpg)
## Авторам
**Расставить огни в сцене** можно из её сценария действием `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` — цвет в hex.
Пустой `light_set` убирает огни сцены. Редактор света в Editor Tools расставляет их мышью и сам записывает эту строку. Действие сценария `lighting.clear_map` отключает глубинное освещение сцены, когда вы переходите в сцену, которая его не использует.
**Фоны, готовые к ночи.** Фон корректно освещается, когда рядом с ним лежит карта глубины — файл с именем картинки и суффиксом `_depth` (например, `bar.png` и `bar_depth.png`). У фона может быть и спутник `_albedo`. Без этих карт огням сцены не на что ложиться.
**Другие моды** читают те же часы: тайловая карта RPG живёт по тем же суткам, что и фоны, а смена времени объявляется всем модам каждую игровую минуту.
## Если что-то пошло не так
1. **Сцена остаётся светлой ночью.** У её фона нет карты глубины, либо сцена не использует суточную подсветку.
2. **Ночью нет фонаря.** Он появляется только с 22:00 до 06:00 и только в играх, чей интерфейс его включает.