- •Принципы работы
- •Общие сведения
- •Описание interactions
- •Структура файлов interactions
- •Физические параметры
- •События
- •Условия
- •Действия
- •Управление анимациями
- •Управление звуками
- •Управление волюмами
- •Управление компонентами
- •Управление зонами
- •Управление спецэффектами
- •Управление экипажем
- •Управление здоровьем
- •Другие действия
- •Дополнительные возможности
- •Отладка
Copyright (c) 2004, Компания "Best Way"
Краткое справочное руководство по системе взаимодействия объектов (interactions)
Содержание
1 Принципы работы 2
1.1 Общие сведения 2
1.2 Описание interactions 2
1.3 Структура файлов interactions 2
2 Физические параметры 3
3 События 3
4 Условия 5
5 Действия 6
5.1 Управление анимациями 6
5.2 Управление звуками 7
5.3 Управление волюмами 7
5.4 Управление компонентами 8
5.5 Управление зонами 9
5.6 Управление спецэффектами 9
5.7 Управление экипажем 10
5.8 Управление здоровьем 11
5.9 Другие действия 12
5.9.1 spawn 12
5.9.2 able 13
5.9.3 blastwave 13
5.9.4 bullet_detonate 14
5.9.5 chassis_work 14
5.9.6 weapon_work 14
5.9.7 clear_inventory 15
5.9.8 delete 15
5.9.9 hide 15
5.9.10 ik_enable 15
5.9.11 say 16
5.9.12 tear 16
5.9.13 impulse 16
6 Дополнительные возможности 17
6.1 Отладка 17
Принципы работы
Общие сведения
Описание взаимодействия между объектами в игровом мире производится с помощью системы interactions. Система оперирует такими понятиями, как физические параметры, события, условия, действия.
Описание interactions
Для задания interactions используется конфигурационный файл set\interaction.set. Он включает в себя все файлы со взаимодействиями. В interaction.set существуют два раздела – patterns, описывающий свойства объектов, заданных через props, и terrains, описывающих взаимодействия с различными типами территорий.
В данный момент в interaction.set включены следующие файлы:
set\interaction\generic.inc – описываются взаимодействия с материалами;
set\interaction\dummy.inc – различные примитивные сущности (куски от трупов, куски домов, бомбы, гранаты, мины, взлетающие бочки…);
set\interaction\flora.inc – природа (растения);
set\interaction\fauna.inc – природа (животные);
set\interaction\human.inc – люди;
set\interaction\vehicle.inc – транспортные средства (общие свойства);
set\interaction\car.inc – машины;
set\interaction\moto.inc – мотоциклы;
set\interaction\tank.inc – танки;
set\interaction\building.inc – дома;
set\interaction\construction.inc – другие строения;
set\interaction\terrain\terrain.inc – взаимодействия объектов с типами территорий;
Для того, чтобы какой-то объект (сущность, юнит, модель) начал взаимодействовать с окружающим миром по определенным правилам, необходимо в файле описания модели (.def) определить его свойства (props).
Например, для людей свойства могут быть определены следующим образом:
{props “flesh” “human”}
для танков:
{props “steel” “vehicle” “tank” “turret”}
При задании свойства дополняют друг друга. Например, если в файле описания модели написано {props “vehicle” “car”}, а затем {props “car” “wheeled”}, то результирующими будут свойства “vehicle” “car” “wheeled”;
Структура файлов interactions
Файлы с описаниями interactions задаются в формате SDL и имеют следующую структуру:
{<свойство>
{<физические параметры>}
{on <событие>
{if <условие>
{<действие>}
}
}
}
При этом внутри события условия и действия могут произвольно комбинироваться.
Важное свойство формата SDL – количество открываемых фигурных скобок должно соответствовать количеству закрываемых. При этом желательно (для удобства читаемости) производить форматирование блоков, как показано выше.
Физические параметры
Для объектов могут быть заданы следующие физические параметры:
коэффициент трения. Характеризует, во сколько раз сила трения больше чем сила, с которой действует тело. Изменяется в диапазоне от нуля до бесконечности. Значение по умолчанию равно 1;
{friction <значение>}
коэффициент упругости. Изменяется в диапазоне от нуля до единицы. Значение по умолчанию равно 0.3;
{restitution <значение>}
коэффициент поглощения взрывной волны. Означает, сколько единиц энергии (кг. тротила) поглощает в себе каждый волюм. Изменяется в диапазоне от нуля до бесконечности. Значение по умолчанию равно нулю.
{blast_absorption <значение>}
Пример записи физических параметров:
{friction 0.5}
{restitution 0.2}
{blast_absorption 2}
