Для чего это нужно? Во-первых, это возможность конвертировать исходники карт HL/CS в Quake 1/2/3. Во-вторых, это возможность получать некоторые вещи из хаммера, вроде арок и спиральных лестниц: в хаммере есть такой brush-примитив, как arch, с помощью которого можно делать вот такие вещи::
Лестницы полукругом и арка между ними.
Как работает конвертер? Разница между форматами заключается в способе задания плоскостей, образующих браши. Вот примерно так задается плоскость в HL .map:
( 128 128 0 ) ( 0 128 0 ) ( 0 0 0 ) TEXTURE0 [ 1 0 0 0 ] [ 0 -1 0 256 ] 90 0.5 0.5
Эта же плоскость в формате Quake .map должна выглядеть вот так:
( 128 128 0 ) ( 0 128 0 ) ( 0 0 0 ) hlq/TEXTURE0 0 256 90 0.5 0.5 0 0 0
Я не буду подробно расписывать сами преобразования, просто поясню те моменты, о которых стоит знать при использовании hlq. Командная строка выглядит следующим образом:
hlq [-w, -texdir <dir>, -texscale #scale] <source.map> [<result.map>]
Как видно, обязательным параметром является только карта-источник. Однако не стоит пренебрегать и остальными. Итак, в нашем распоряжении следующие ключи:
-w - включает ожидание нажатия Enter после выполнения конвертирования. Windows закрывает окошко консольной программы, когда она завершит свое действие. Этот ключик позволяет прочитать информацию, выводимую программой.
-texdir <dir> - задает имя поддиректории в каталоге Textures, где лежат текстуры, экспортированные из wad-файла. По умолчанию параметр имеет значение hlq, если карта конвертируется для Quake 1 (там тоже wad'ы, но другого формата), поставьте слэш /: hlq -texdir / sourcemap.map
-texscale #scale - задает коэффициент масштабирования текстуры. Эта опция нужна в первую очередь для Quake 3 при использовании более детализированных текстур (например, вместо текстур 128х128 будут использоавться текстуры 256х256): hlq -texscale 0.5 sourcemap.map По умолчанию параметр равен 1.0.
Карты-результат указывается после карты-источника, по умолчанию вывод производится в файл qresult.map в каталоге утилиты hlq.
Пример использования со всеми ключами:
hlq -w texdir half-life -texscale 0.5 d:\games\half-life\valve\maps\mymap.map d:\games\quake3\baseq3\maps\myq3map.map
Известные баги. В отличие от серии Quake , где текстура проецирется на поверхность по нормали от ближайшей координатной плоскости, в Half-life текстура может быть ориентирована относительно абсолютно любой нормали. Сам редактор предлагает выбрать между классическим (по умолчанию) world проецированием и проецированием по нормали к самой поверхности - face, однако в некоторых случаях (использование Clipping Tool, Vertex Tool"бесшовное" текстурирование) нормаль может оказаться ориентированной в каком-то другом направлении. На самом деле, это скорее плюс, нежели минус формата, однако учесть его при конвертировании довольно сложно. К чему это приводит можно понять по картинке:
Примеры наложения текстуры.
В конечном счете, большую роль играет человеческий фактор. Если маппер изначально делает карту именно для перевода в Quake, он может принудительно задавать текстурам привязку world после использования Clipping Tool или Vertex Tool, тем более, что в 90% случаев эти поверхности требуют внимания к своей текстуре. Если маппер делал карту для Half-life, но не особенно задумывался о "бесшовном" текстурировании (к сожалению, большинство мапперов даже не знают об этом методе =), то править придется не так уж и много. Ну, и в самом тяжелом случае... DM-Knot проще построить заново, чем сконвертировать.
Версия 0.1b (27 марта 2008)- стартовая.
|