Архив
Новости
Текущие
Архив
Общение
Форум
Мы в Telegram
Мы в VK
Библиотека
Статьи
Стихотворения
Fan-Works
Рисунки
Зарубежные рисунки
Аудио
Видео
Флэш
Игры
Fan-Миссии
Установка FM
Thief 1 FMs
Thief 2 FMs
Thief 3 FMs
TDM FMs
Переводы
Прохождения
Обзоры
Demo
В Разработке
Отмененные
Редакторы
DromEd
T3Ed
DarkRadiant
Сайт
Ссылки
Авторы
О сайте
Просмотр каталога:
Простой | Подробный

На главную » Файловый Архив » Редакторы » DromEd » Tutorials » dromed_notes_part2.pl

DromEd-овские заметки. Продолжение. Начало здесь.

автор Dront


Данный документ - если можно так выразиться, продолжение к файлам DromEd Tutorial, Mods и ConVict, что поставляются в комплекте с DromEd. Всё это нажито собственным опытом и проверено на деле не раз.
Внимание! Документ написан под DromEd 1.37. Теоретически все нижеописанные приёмы могут работать и в DromEd 2, но это уже не проверялось. Где есть исключение - там оговорено.
При наличии ошибок или неточностей прошу уведомить меня об этом личным сообщением на форуме или по e-mail.

Часть 8. Прочие мелкие, но полезные советы.


8.0. Добавление посторонних материалов (custom content).
8.1. СОздание цели goal_reverse: маленький нюанс.
8.2. Чем плохо создание Гарретта как объекта.
8.3. Огонь в иерархии объектов - где он?
8.4. Compute Pathfinding Database! И сохраняемся!
8.5. Что такое WindowShade.
8.6. Архив mesh.crf. Список некоторых оригинальных моделей, не использованных в игре.
8.7. Архив obj.crf. Список некоторых оригинальных объектов, не использованных в игре.
8.8. Полный список AI для Thief 1.
8.9. Некоторые пределы DromEd'а.
8.10. Замкнутый и незамкнутый патрульный маршрут: маленький нюанс.
8.11. Что делает каждый скрипт в Thief 1, Thief Gold и Thief 2. Информация к размышлению.
8.12. Советы на английском для дромадёров.



Часть 8. Прочие мелкие, но полезные советы.




8.0. Добавление посторонних материалов (custom content).

8.0.0. Да, наверняка ясно, что оригинальных материалов игры рано или поздно начнёт не хватать - надоест однообразие, захочется чего-то нового. В этом пункте я поясню, что необходимо сделать при добавлении кастомного контента. Собственно, кастомный контент может быть только в соответствии с названиями архивов в папке Thief - то есть книги (books), семейства текстур (fam), изменения в GUI игры (intrface), существа (mesh), движения AI (motions), объекты (obj), схемы (schema), звуки (snd). Это - наиболее часто изменяемые штуки. Плюс к тому можно добавить посторонние скрипты (scripts, с расширением .osm) и геймсайс (gamesys). Первые обычно изготавливаются программистами или другими людьми, разбирающимися в языках программирования (C++, кажется), вторую придётся изготавливать самостоятельно при добавлении текстур, существ, объектов или схем. Но - обо всём по порядку.

8.0.1. Добавление книг. Ну, здесь всё достаточно просто. Создаём папку books\english (хотя english может быть необязателен) и создаём файл по образу и подобию оригинальных книг с расширением .str. Имя можно в принципе любое, но лучше, чтобы оно было не длиннее 8 символов (DromEd - товарищ капризный, писавшийся ещё под DOS, так что у него это врождённое.) И пишем текст книги. Потом помещаем на уровень книгу, указываем в свойствах у неё Book -> Text и пишем имя файла (без пути и расширения). Заходим в игру, читаем книжку. Если нужно, подправляем текст так, чтоб он не заезжал за пределы страницы. Плюс - можно ещё самостоятельно нарисовать страницы книги, в этом случае я ничем не могу помочь, могу лишь только сказать, что нужно создать папку в books (ещё одну) и поместить туда графический файл. После чего нужно выбрать Book -> Art и ввести там название папки. Да, именно папки. По крайней мере, у оригинальных книг так.
Примечание: в пак с миссией следует добавить папку books со всем содержимым.

8.0.2. Добавление текстур. Здесь посложнее. DromEd обрабатывает текстуры со своим подходом к цвету, так что текстура фотографического качества будет отображаться в игре как каша на стенке (полу, потолке - нужное подчеркнуть). Или вообще дырявой быть. Чтоб DromEd не капризничал и отображал текстуру такой, какая она нарисована, следует:
а) Обработать её саму. Размер должен быть не больше 256*256, при этом его составляющие строго обязаны являться степенями двойки (256; 128; 64; 32; 16...). Насчёт цветности не ручаюсь, но текстур фотографического качества я пока нигде не видел.
б) Создать палитру с именем full.pcx (хотя необязательно pcx - DromEd может работать и с gif, и вроде даже с bmp-файлами), куда запихнуть все используемые цвета во всех текстурах. Именно по этому файлу DromEd будет распознавать и рисовать текстуры на поверхностях. Причём стоит учесть, что первый цвет в палитре всегда считается прозрачным, и текстура, содержащая этот цвет, будет выглядеть дырявой. Если текстура одна, в качестве full.pcx можно взять её саму.
в) Желательно назвать все текстуры именами не длиннее 8 символов, засунуть все текстуры вместе с full.pcx в папку, последнюю также обозвать не короче чем в 8 символов. Это будет название семейства. Папку засовываем в папку fam, последнюю - в папку с игрой.
г) Запускаем DromEd, убеждаемся, что есть достаточное количество текстур для добавления нашего семейства. Если нет, удаляем ненужные. После пишем add_family (название папки с текстурами). И наше семейство загрузится.
д) Убеждаемся, что всё выглядит так, как мы хотели. Если нет - смотрим, что недоделали.
е) Полезная ссылка для обработки текстур.
http://www.thief-thecircle.com/dromed/displaysubject.asp?titleID=67&title=Custom%20Textures&sub=Textures
Примечание: если в режиме редактора текстуры отображаются как каша, в то время как в игре выглядят нормально, добавляем следующую строчку в user.cfg: edit_screen_depth 16. Замечу, что игре пофигу, какая в редакторе цветность - то есть в пак с миссией user.cfg включать не надо.
Но это ещё не всё. От новых текстур не будет звука, как от Jorge. Странно, если при выстреле в металлическую поверхность не будет никакого звука, да? Посему придётся менять gamesys (игровую систему). Открываем иерархию объектов и в раскрывающемся списке наверху выбираем Textures. Внизу этого списка находим все загруженные нами текстуры, у них будут подтипы "Texture NNN", где NNN - номер текстуры в палетте DromEd. Нам же нужно прописать материал самой текстуры, а не её номера, так что выбираем саму нашу текстуру (выделяем название с путём). И жмём Edit. После чего выбираем Add -> MetaPropety -> Materials и выбираем материал соответственно тому, что нарисовано. После чего закрываем это окошко свойств, проделываем то же с остальными текстурами. А затем закрываем иерархию объектов и выбираем в меню File -> Save Gamesys. Сохраняем наш файл под любым именем, кроме dark - а то перепишется оригинальный файл, можно столько проблем потом огрести... По идее, сохранённая gamesys уже должна автоматически установиться в редакторе, но если этого не происходит, вводим set_gamesys (имя сохранённого файла) в командную строку. Теперь-то уж всё точно должно заработать.
Примечание: в пак с миссией следует добавить папку fam со всем содержимым, а также файл .gam.

8.0.3. Добавление изменений в интерфейс. Ну, базовые вещи вроде текста своих целей уже описаны в файле Mods.doc, что поставляется в комплекте с DromEd, в подробности вдаваться не буду. Можно ещё изменить дизайн заднего фона GUI, но здесь я себя не пробовал, ибо не художник :) DromEd здесь, в принципе, уже не нужен, это уже скорее одна из финальных стадий работы над миссией, когда всё можно проверять уже в игре. Делается всё в точности по аналогии с оригинальными файлами, только при изменении заднего фона новые имена файлов лучше не создавать (с последующим удалением оригинальных файлов из архивов - это может быть чревато), а просто создавать папки с файлами с такими же именами в папке intrface.
Примечание: в пак с миссией следует добавить папку intrface со всем содержимым.

8.0.4. Добавление существ. В принципе, добавление существ мало чем отличается от добавления обычных объектов (см. 8.0.6), но AI следует прописать имя модели - файла с текстурами AI (Shape -> Model Name) и Motions -> ActorTagList в иерархии объектов, иначе он никак не будет выглядеть и не будет двигаться. Здесь, в принципе, добавление архетипа AI в объектную иерархию (т.е. изменение gamesys) необязательно, но если их очень много - лучше прописать в Object Hierarchy. Изображения AI следует поместить в папку mesh\txt или txt16 (если в первом случае ничего не будет работать). Если текстуры AI уже прописаны как txt16, то для их нормального показа в игре добавляем строчку ObjTextures16 в файл dark.cfg, иначе AI будет покрыт текстурой Jorge (такой, кажется, есть в миссии "Outtakes", не так ли?)
Примечание: в пак с миссией следует добавить папку mesh со всем содержимым, при изменении gamesys - .gam-файл, при изменении dark.cfg следует включить и dark.cfg.

8.0.5. Добавление движений. Здесь я, честно говоря, ничего точно сказать не могу. Движения, естественно, должны быть названы по образу и подобию таковых в motions.crf, содержать их нужно в папке motions. Просматривать их можно, судя по всему, в Motion Editor'е, встроенном в DromEd, а редактировать - сторонними программами. Одну из таких программ в своё время разработал Shadowspawn.
Примечание: в пак с миссией следует добавить папку motions со всем содержимым.

8.0.6. Добавление объектов. Всё аналогично AI, только ещё проще. Новые объекты также необязательно добавлять в иерархию, при помещении их в последнюю нужно прописать только одно свойство: Shape -> Model Name. Естественно, имя файла должно быть то, которое указано в bin-файле, который и отвечает за модель объекта. В случае, если текстура, покрывающая наш объект, имеет 16-битную цветность (содержится в папке txt16), также добавляем строчку ObjTextures16 в dark.cfg.
Примечание: в пак с миссией следует добавить папку obj со всем содержимым, при изменении gamesys - .gam-файл, при изменении dark.cfg следует включить и dark.cfg.

8.0.7. Добавление звуков и схем. Эти две вещи неразрывно связаны друг с другом, поэтому и пишу про них вместе.
В принципе, при небольшом количестве звуков можно просто заменить оригинальные файлы (обычно это оказываются неиспользованные фразы Гарретта) и прописывать им оригинальные схемы. Но если звуков слишком много, лучше изменить gamesys и добавить новые схемы. Делается это следущим образом.
Сначала создаём папку snd, в ней - папку под названием желательно не более 8 символов, смотря что именно нужно добавить (новый голос существа или амбиент, в первом случае лучше, конечно, взять название существа, во втором - sfx). В последнюю папку пихаем наши файлы, желательно тоже послав их не далее чем на 8 букв.
Затем создаём папку schema. Внутри создаём файл с расширением .sch по образу и подобию таковых в архиве schema.crf. Если новый звук - амбиент, лучше назвать amb_m??, если новый голос - назвать именем существа.
Затем редактируем .sch-файлы как .str-файлы, любым текстовым редактором. Две косые черты защищают текст от обработки его программой, после них можно писать любой комментарий. Далее идут 4 (иногда больше) строчки.
Первая - со словом schema - название схемы, которую можно будет вписывать в свойство A -> AmbientHacked. То есть если, например, у нас "амбиент" в виде музыки, можно написать m??music (вместо вопросов, естественно, номер миссии). Если это голос существа - лучше сделать по образу и подобию, к примеру, ApeBeast'а. Сокращаем название существа до двух-трёх букв и пишем состояние по аналогии. Если, к примеру, существо - демон, схема - его спокойное состояние, то можно написать dm1at0 или dm1a0hu - смотря что именно будет в файлах, просто звуки спокойного состояние или что-то определённое, например кашель, или чихание, или сморкание, или ещё не знаю что... В одну кучу всё это лепить не стоит.
Вторая - со словом archetype - это название, которое будет в иерархии объектов. У амбиента это обычно AMB_M??, у существ - см. оригинальные схемы. По всей видимости, можно написать эти же оригинальные архетипы, хотя я не пробовал.
Третья строчка - громкость (volume). Она всегда отрицательная (т.е. игра не может сделать громкость файла больше, чем у него есть). Минимум можно написать -1, тогда громкость будет в точности такая же. Больше -1500 ставить можно, но слышно уже будет не очень - скорее как задний фон.
Четвёртая строчка - имена файлов, участвующих в схеме. Пишем только имена файлов без пути и расширения. Можно указывать, с какой частотой будет звучать тот или иной файл - например, перед Собором чаще звучит грозный завывающий ветер, нежели более спокойный - это можно увидеть в схеме amb_m11.sch. (Если не указать частотность, файлы будут выбираться абсолютно случайно.)
Также ещё может быть строка mono_loop с двумя числами. Первое число - задержка в миллисекундах от события до начала воспроизведения файла (например, если поставить задержку на предсмертный крик 5000, то AI сначала умрёт, и только через 5 секунд из него раздастся предсмертный вопль). Второе число - задержка в миллисекундах до повторения воспроизведения файла (файлов). Если звук амбиентный и mono_loop не указывать, он будет крутиться до бесконечности, пока его не перекроет другой звук.
Ну что же, теперь мучения вне DromEd на этом окончены. Запускаем нашу любимую программу и первым делом открываем объектную иерархию. Открываем плюсик у архетипа Schema и находим там все уже знакомые архетипы, написанные в .sch-файлах. Добавляем туда наши написанные архетипы и схемы (если таковые имеются), после чего набираем команду reload_schemas в командной строке. Если её не ввести, ни одна из новых схем не будет проигрываться.
При вводе команды reload_schemas может выскочить ошибка об отсутствии какого-либо голоса, в стиле "request for non-existent voice: hammer1 (или другое название голоса)" - это означает, что данный голос не прописан в файле speech.spc, что в архиве schema.crf. Прописывается он просто: строчкой в стиле "voice hammer1". Но, возможно, не хватать будет не только этот голос, так что придётся прописывать едва ли не все существующие. Если файла speech.spc вообще нет в архиве schema.crf, его можно найти на сайтах с Thief-ресурсами.
После этого сохраняем gamesys. По идее, теперь всё должно работать! Если вместо звуков будет слышны помехи, возможно, дело в неправильных параметрах самих звуковых файлов. Это уже работа для программы для обработки звука.
Примечание: в пак с миссией следует добавить папки snd и schema со всем содержимым, а также .gam-файл.

8.0.8. Добавление новых скриптов. Ну ладно, с gamesys'ом более-менее разобрались. А скрипты зачем нужны? Ответ прост: оригинальные скрипты содержат в себе скриптики, которые можно ставить на предметы в свойствах (S -> Scripts). Иногда этих скриптов может не хватать, и тогда человек, сведующий в программировании на C++, может написать недостающие скрипты и заключить их в .osm-файл, дабы они служили верой и правдой в DromEd'е и Thief на радость игрокам. Обычно к каждому скрипту прилагается readme-файл, в котором описано, какие новые скрипты с установленным ним можно ставить на вещи и что они будут давать. .osm-файл, естественно, нужно включать в пак с миссией при его наличии, а также, чтобы всё работало в игре, следует загрузить его так же, как грузили ConVict ещё в DromEd Tutorial - командой script_load (название скрипта).

8.1. Чтобы создать цель "Не убивайте ...", надо целью выбирать не отдельно взятый объект, а тот нумер, с которым он в иерархии (он отрицателен). Например, у человека (human) он равен -14, а у слуги (servant) - -52. Затем при помощи команды goal_reverse эта цель превратится в "Не убивайте ...". (Если реверс не ставить, то цель будет звучать как "убить всех ...")

8.2. Видишь ли ты Гарретта в иерархии объектов (physical/Avatar/Garrett)? Да, ты можешь его создать. Но не советую тебе этого делать, ох как не советую... (Если же вы не последовали моему совету: создали, да ещё и сохранились... ну тогда остаётся один выход: поместить его в точку (0;0;0). При этом вроде бы никаких багов уже происходить не будет. Если не верится, посмотрите мою миссию The Jewelled Sword. ;))

8.3. Огонь в камине находится в иерархии в SFX/FireFX/Flame. Можно создать и само Flame, и DynFlame. Если огонь вскоре после входа в игровой режим будет исчезать - нужно убрать у него свойство Tweq -> DeleteState.

8.4. Всякий раз, когда создаём какие-нибудь новые комнаты, колонны и пр. - короче, новые brush'и, выбираем Tools -> Compute Pathfinding Database. Иначе будет ошибка, если поместить туда врага и попытаться войти в игру. (Мораль: сохраняться, сохраняться и ещё раз сохраняться.) (Мораль вторая: не забывать выбирать Tools -> Build AI Room Database, иначе товарищи будут плохо или неадекватно слышать.)

8.5. Ещё один источник света - горящее окно (WindowShade). Я не помню точно, где оно, так что вводим find_obj windowshade (большие буквы вводим или маленькие, не имеет значения). (Этот источник света по умолчанию считается стеклом, которое можно разбить - то есть при выстреле или ударе по WindowShade'у раздастся звук бьющегося стекла (который также могут слышать враги), и свет погаснет.)

8.6. В архиве mesh.crf можно найти список всех моделей существ. Главное - знать, какая из них кому соответствует. Там есть и кое-что не использованное в игре, например: oldexpbafeg, expbafeg, expbafdr (охранники), expcog2, expconm (безоружные Аре-ы), expgar (безоружный вор), exphamk4, exphams4 (Хаммер с мечом, причём оба вроде идентичны), expservt (слуга с подносом в руке), expwra2 (чёрный чудик с красными глазами), pdguard (охранник, разукрашенный Jorge'м, из Outtakes), transerv ("дырявый" слуга из Outtakes), hambow (Хаммер-лучник). Также есть модель expapp2, но вроде как её нельзя применять к существу (выдаётся ошибка).

8.7. Аналогично и с архивом obj.crf. Там можно найти и разные драгоценные побрякушки, например: luckcoin - монетки, что мы брали с собой на удачу к могиле сторожа в The Haunted Cathedral; trtrophy - что-то, похожее на вазу на подставке.

8.8. Сообщение Winter Cat'а на форуме DarkFate от 24.03.07, частично подправленное (здесь AI только для первого Вора, в сообщении же были и для второго).
Полный список AI из Thief 1 (то, что можно вписать в поле AI:)
Mission, Haunt, Zombie, Apparition, Ape, Bug, Constantine, Viktoria, Clockwork, Burrick, Crayman, Spider, Ranged spider, Sweel, DarkTurret, Human unarmed, Human with sword, Human with hammer, Human with bow, Human spellcaster, Elemental, Frog, Murus, DarkCamera.

8.9. Некоторые пределы DromEd'а: http://www.ttlg.com/forums/showthread.php?t=77910 (за ссылку спасибо clearing'у).
Особо хочу отметить:
а) Гарретт ростом в 6 единиц ровно;
б) максимальный размер brush'и - 1000*1000*1000, несмотря на то, что размер самого уровня - 2000*2000*2000. При этом можно сделать так, чтобы вас не "глючило" в ней - достаточно поменять масштаб всех текстур в ней на 24. В этом случае число полигонов будет укладываться в пресловутое 1024. (Кстати, это число можно изменить, но это ничего особенного не даст - подробнее см. пункт 2.4.) То есть в принципе можно создать уровень, не вырезая air brush'и из твёрдого вещества, а наоборот - ставить solid brush'и в воздушное пространство! Но при этом нельзя забывать о количестве полигонов - команда show_stats, введённая в консоль в игре (вызывается комбинацией Ctrl+P), очень поможет.

8.10. В файле DromEd Tutorial было указание: патрульный маршрут должен быть замкнутым, чтобы AI ходил непрерывно. В противном случае при завершении патруля существо может вернуться к первому TrolPt'у и на нём остановится. Это происходит оттого, что у AI в свойствах стоит галочка для свойства AI -> Ability Settings -> Idle: Returns to origin. Однако, если существо телепортируется откуда-либо из недосягаемого места, то при патруле по незамкнутому маршруту AI останется у последнего TrolPt'а, а не вернётся к первому, даже при включённом Idle: Returns to origin. Это происходит оттого, что оригинальной точкой будет считаться та, в которой он появился при старте игры - то есть та, которая после телепортации для него недосягаема. Поскольку вернуться туда он не может, то так и останется стоять на месте.

8.11. Справка по тому, что делают все базовые скрипты Thief 1, Thief Gold и Thief 2:
http://thiefmissions.com/telliamed/scripts.html
Можно открыть для себя много интересного... Например то, что использование (frob) объекта и сигнал на его включение (turn on) - это совершенно разные вещи. И соединить одну с другой при помощи базовых скриптов нельзя, это может сделать, например, скрипт от Nameless Voice.

8.12. Советы на английском для дромадёров. Скорее для начинающих, но и для продолжающих тоже кое-какие полезные советы, считаю, есть.
http://www.ttlg.com/forums/showthread.php?t=90884
Скриншоты
Зарисовки
Обои
Видео
Аудио
Описание
Прохождение
FAQ - игровой
FAQ - технический
Скриншоты
Зарисовки
Обои
Патчи
Переводы
Описание
Прохождение
FAQ - игровой
FAQ - технический
Скриншоты
Зарисовки
Обои
Патчи
Переводы
Описание
Прохождение
FAQ - игровой
FAQ - технический
Скриншоты
Зарисовки
Обои
Патчи
Переводы
New Dark
The Dark Mod
Thief 2 Gold
Прочие

Night Blade
Thievery
Страница сгенерирована за 0.203 секунд.
© 2001-2024 - Thief: the Dark Fate
Использование материалов сайта разрешается только при согласии их авторов и администрации Dark Fate,
при этом ссылка на Dark Fate обязательна.