Кадр задержки излучателей

Эта проблема тоже не связана с обратной совместимостью. Она уже присутствовала в версии для раннего доступа. Нам показалось, что про неё стоит рассказать. У излучателей есть кадр задержки, потому что когда вы копируете объект, ему нужен кадр с комплектом логики. Она отвечает за то, чтобы всё находилось в правильном состоянии.

Пример

Представьте, что у вас есть выключатель и вращающееся лезвие. Выключатель приводит в действие вращающееся лезвие. Если выбрать это устройство в качестве целевого объекта излучателя, вращающееся лезвие по-прежнему останется в сцене в качестве исходного объекта, но теперь оно будет выключено.

Когда вы излучаете объект, игра в буквальном смысле создаёт копию целевого объекта. Итак, теперь у вас появляется копия выключателя и вращающегося лезвия, но лезвие выключено (выключатель не активен).

Излучение объектов происходит в кадре до того, как код отправляет сигналы по проводам. Поэтому если бы мы показали излучённые объекты в кадре, в котором они были излучены, вы бы увидели неподвижное лезвие в одном кадре, а в следующем кадре, после того как по проводу пришёл сигнал от выключателя, лезвие начало бы вращаться. Чтобы избежать подобных проблем (а также более сложных, в которых участвуют несколько гаджетов, временных шкал и т.д.), мы не показываем объекты в том же кадре, в котором они были излучены. Для них не генерируется физика в этом кадре, они сами не выполняют логику (зона срабатывания/лучи и т.д.)

Во втором кадре, когда объект появляется, мы применяем один хитрый трюк. Если излучатель ещё и движется, мы заметим кадр задержки, потому что объект появится позади излучателя. Чтобы компенсировать этот эффект, мы в самый последний момент перемещаем излучённые объекты туда, где они появились бы, если бы излучатель излучил их в этом кадре! В этот момент также пересчитываются все скорости.

В Wildfire персонаж после гибели теряет две жизни. Это происходит потому, что персонаж возрождается с помощью излучателя. Логика излучённого персонажа не срабатывает в первом кадре, и поэтому система снова убивает его.

Излучённые временные шкалы: Мы пока не можем показать это на примере творений, созданных пользователями, но мы придумали пример сами. Это проблема, вызванная кадром задержки. К тому же это самый удачный пример, который поможет вам представить поведение излучателя.

Излучённый гаджет (например «Портал НЕ»), находящийся в первом кадре временной шкалы, не сможет ничего активировать.

Если вы знаете, что столкнётесь с этим, то самое простое решение — снять «Портал НЕ» с временной шкалы, и тогда он будет активировать любое событие логики, как только эта логика станет активной. Если вам нужно, чтобы этот триггер был сигналом, можно добавить оператор сигнала.

Информация в круге

Руководство пользователя «Грёз» постоянно дополняется. Следите за обновлениями: мы будем периодически добавлять новые уроки и статьи.