Система Комментирования

From Valve Developer Community
Jump to: navigation, search
English

Система комментариев позволяет вам вставлять в уровень DVD-подобные комментарии. Пример использования можно увидеть в Lost Coast.


Обзор

Пользователи включают режим комментариев внутри Аудио настроек. Когда комментарии включены, игра ищет файл комментариев внутри директории MOD/maps. Комментарии хранятся отдельно от BSP, это позволяет изменить комментарии уже после финального тестирования карты. Файл комментария должен быть в формате .TXT с названием, как и карта, а так же с приставкой "_commentary".

  • Например. Если файл вашей карты называется d2_lostcoast.bsp, тогда файл комментария должен называться d2_lostcoast_commentary.txt.


Если файл комментариев найден, игра переключается в режим комментариев, в котором происходит следующее:

  • Энтити содержащиеся в файле комментариев обрабатываются и создаются.
  • Игрок переключается в режим полу-бога: иммунитет ко всему, кроме повреждения от падения и trigger_waterydeath. Это не позволяет игрокам обойти барьеры карты.

Игроки могут включить & выключить комментарии в любое время. Энтити упомянутые в файле комментариев будут автоматически уничтожены.

Основные энтити в файле комментария, это point_commentary_node - модель для активации воспроизведения комментариев.

Файл Комментария

Файл комментария - KeyValues-форматированный текст, в котором перечисленные энтити, которые должны быть созданы при включенном режиме комментариев. По существу, это те же энтити, что и в VMF файлах (Hammer. Формат файла выглядит следующим образом:

Commentary
{
	entity
 	{
 		<key>	<value>
 		<key>	<value>
 		etc...
 	}
 	entity
 	{
 		<key>	<value>
 		<key>	<value>
 		и т.д...
 	}
  	и т.д...
}

Каждая энтити секция содержит список ключей и значений для DLL игры, чтобы создать эти энтити. Эти ключи и значения такие же, как и в VMF, и как следствие - полностью описаны в Hammer FGD файле. Заметьте, что один из ключей должны быть "classname", так DLL Игры поймет, что это описание типа энтити.

Любой тип энтити может быть создан через файл комментария, но не все энтити будут работать правильно. В частности, вы не можете использовать энтити, использующие браши (func_*, trigger_*, и т.д.). Если вы хотите использовать некоторые функции этих энтити, не так уж и трудно заставить их работать в DLL игры. Для примера, если вы хотите через файл комментариев отслеживать перемещение энтити func_tracktrain, которые вы планируете создать через тот же файл комментария, ваш кодер может добавить возможности для энтити func_tracktrain использовать не-брашевые модели.

Если вы хотите более сложные энтити в режиме комментариев, вам будет легче создать эти энтити внутри ваше карты через Hammer, и открывать файл VMF через текстовый редактор и скопировать данные энтити в ваш файл комментария.

Основные энтити в файле комментария, это point_commentary_node.

Расширенное использование

Вы можете задать Outputs в ваших комментарий-энтитях, вложив подраздел connections в кусок entity. Формат будет таким:

entity
{
	<key>	<value>
	<key>	<value>
	и т.д....

	"connections"
	{
		<output name>	"<targetname>,<input name>,<parameter>,<delay in seconds>,<number of times the output can fire (-1 = infinite)>"
	}
}

Пример

entity
{
	"classname" "point_commentary_node"
	"origin" "1214 4787 2356"
	"angles" "0 90 0"
	"commentaryfile" "#lostcoast\commentary\comm_tone.wav"
	"speakers" "Chris Green"
	"targetname" "comm_node_9"
	"connections"
	{
		"OnCommentaryStarted" "comm_clientcommand,Command,mat_show_histogram 1,42,-1"
		"OnCommentaryStopped" "comm_clientcommand,Kill,,0,-1"
	}
}

OnCommentaryStarted выход point_commentary_node связывается с Command входом с targetname энтити "comm_clientcommand" (в данном случае, point_clientcommand). Указывается параметр "mat_show_histogram 1", с ожиданием 42 секунды, и при этом допускается стрелять бесконечное число раз. Выход OnCommentaryStopped соединятся со входом Kill того же энтити, но без параметров или задержки.

Примечание:"commentaryfile" предполагает, что озвучка комментария находится в поддиректории "sound" вашего мода (C:\Steam\steamapps\SourceMods\(mod name)\sound). Предполагая, что "commentary.wav" находится в этом каталоге, и вы ссылаетесь на него так: "commentaryfile" "commentary.wav"
Примечание:Требуются файлы 44100Hz 16bit, файлы с битом выше не будут играться корректно.