- •Принципы работы
- •Общие сведения
- •Описание interactions
- •Структура файлов interactions
- •Физические параметры
- •События
- •Условия
- •Действия
- •Управление анимациями
- •Управление звуками
- •Управление волюмами
- •Управление компонентами
- •Управление зонами
- •Управление спецэффектами
- •Управление экипажем
- •Управление здоровьем
- •Другие действия
- •Дополнительные возможности
- •Отладка
Управление звуками
При написании interaction для какой-либо сущности необходимо разделить звуки на 2 категории: те, которые могут постоянно запускаться и останавливаться (например, звук работающего двигателя, пение птиц, …) и однократно проигрываемые звуки (например, звук взрыва танка, звук падающего дерева).
Звуки первой категории лучше всего сначала привязать к сущности в событии spawn. Для того, чтобы это сделать, существует действие link_sound.
Формат записи действия:
{link_sound “<имя звука interaction>” “<группа звука>.<имя>”}
Имя звука interaction – имя, с которым в дальнейшем будут работать действия запуска и остановки звука.
Группа звука и имя задаются через точку и определяют конкретный звук из файла настроек звуков set\sound.set.
Например:
{on spawn
{link_sound “engine” “engine.tank”}
}
После привязки звука для того, чтобы его запустить, необходимо выполнить действие play_sound. Формат записи:
{play_sound “<имя звука interaction>” <флаг зацикливания>}
По умолчанию флаг зацикливания звука равен 0.
Например:
{on “move_on”
{play_sound “engine” 1}
}
Для остановки таким образом проигрываемого звука существует действие stop_sound. Формат записи действия:
{stop_sound “<имя звука interaction>”}
Например:
{on “move_off”
{stop_sound “engine”}
}
Для звуков второй категории (однократно проигрываемых для сущности) определено действие start_sound. Формат записи:
{start_sound “<группа звука>.<имя>”}
Например:
{on “explosion”
{start_sound “death.tank”}
}
Управление волюмами
Волюмы представляют собой физическую структуру модели. В игровом процессе свойства волюмов могут изменяться, отражая изменения в структуре.
Волюмы могут обладать следующими свойствами:
visible – видим другими объектами игрового мира и может закрывать собой какие-либо объекты;
bullet – является препятствием при трассировке пуль; может быть пробит либо пуля застряет внутри;
overlap – информирует о пересечении с волюмами других сущностей;
obstacle – используется для автоматической генерации зон - препятствий для других сущностей;
contact – может сталкиваться с волюмами других объектов;
contact_ground - может сталкиваться с землей;
blast – на волюм может действовать взрывная волна;
В системе interactions можно по определенным событиям изменять свойства волюмов. Например, если на волюм действует взрывная волна, то при определенном пороге он может сломаться. При этом он теряет в дальнейшем свойство действия на него взрывной волны, или, например, при полном физическом уничтожении, все свойства.
Для работы с волюмами используются действия volume и volumes. При этом можно как запрещать какие-то свойства, так и разрешать.
Действие volume распространяется на текущий волюм в контексте.
Формат записи:
{volume <enable/disable> <свойства>}
Volumes же действует на все волюмы, имеющие заданный тэг.
Формат записи:
{volumes “<тэги>” <enable/disable> <свойства>}
Пример использования:
{on blast
{if volume “body”
{if min_energy 1.0
{volumes “body” disable blast bullet visible}
}
}
}
или:
{on pierce
{if volume “head”
{if bullet “shell”
{volume disable bullet}
}
}
}
