TRam_
30.06.2010, 13:00
Пора открывать новое поколение вагонных скриптов. В данном случае, TRam_ таки дорвался до библиотек (неких
объектов, позволяющих локализовать обработку информации в одном месте, т.е. выполняющих функции супертриггеров
и главных контроллеров, но невидимых). Начну с первой части, то есть для самой крупной фитчи данного скрипта -
системы самоперекрасок. Создана она была ещё varz'ом, в 2007 году на локомотивах ТГМ23 и ТЭП10, но была преспокойно
забыта. В данном случае из неё было убрано всё, что только можно - в памяти список перекрасок не хранится,
количество методов класса ZSkinControler (точнее, теперь ZSkinControler2) урезано до двух, и т.п.
Часть первая. Создание самоперекраски.
Итак, вы поработали с текстурами вагона, и у вас получилось несколько файлов. Из них нам необходимы
(в вагоне 11-7038, скрипт rzdcargovehicle4.gs)
1) соответствующая эффекту skin1 из mesh-table вагона (в оригинале - меши default, текстура textureosnova.texture, графический файл текстуры textureosnova.tga)
2) соответствующая эффекту skin1_d из mesh-table вагона (в оригинале -меши door, текстура doors.texture, графический файл текстуры doors.tga)
3) соответствующая эффектам wheel1 и bogey1 из mesh-table тележки (оригинальная тележка модели 18-100, меши default и extra соответственно, текстура 18-100_1.texture,
графический файл 18-100_1.jpg)
То есть именно для вагона 11-7038_№1 нам потребуются не изменённые или перекрашенные файлы textureosnova.tga
doors.tga и 18-100_1.jpg .
Начнём с того, что определим маску перекраски. Маска - это некое слово, по которому перекраски будут фильтроваться
(чтобы перекраска одного типа вагонов не оказалась на другом типе вагонов).
Заходим в раздел string-table конфига вагона, и видим
{
priority "Приоритет "
no_products "Пустой "
doors_open "Открыть двери"
doors_closed "Закрыть двери"
doors_all "Для всего состава"
skin "Текстура"
rand_skin "Случайная текстура"
texture_mask "11-7038_texture_t1"
}
В данном случае нам необходим последний тег - texture_mask. Именно он задаёт маску самоперекрасок.
То есть 11-7038_texture_t1 и есть маска перекрасок к данному вагону.
Так, с заготовками разобрались. Теперь перейдём собственно к созданию самоперекраски.
Она состоит из двух куидов - html-asset'а с настройками самоперекраски и texture-group'а собственно с текстурами.
Вы спросите "зачем так сложно?" Ответ прост - аурановцы не придусмотрели возможности получения отфильтрованоого
списка куидов категории texture-group, только список куидов категории html-asset. Поэтому куид категории html-asset
выполняет роль ссылки на основной куид с текстурами самоперекраски.
Как проще всего создать куиды самоперекрасок? Открыть для редактирования 2 куида (категорий html-asset и texture-group),
а затем скопировать их из папки editing директории trainz, например, на рабочий стол. Затем прописываете им свои куиды
(в первую очередь). Это может быть как <kuid2:Ваш ID разработчика:ID дополнения:версия>, так и <kuid:Ваш ID разработчика:ID дополнения>,
без разницы. Советую (хотя это и не обязательно) нумеровать эти 2 дополения подряд идущими идиентификаторами дополнений.
Приступим к настройке html-asset'а. В первую очередь (после прописывания в него куида), напротив тега 0 раздела
kuid-table прописываем куид texture-group'а. В одной из моих самоперекрасок это выглядит так
kuid-table
{
0 <kuid2:400260:9010001:1>
}
Следующим шагом становится указание имени. Имя здесь играет очень важную роль, поскольку именно по именам
фильтруются перекраски к данному дополнению.
Причём для успешной работы перекраски имя должно начинаться со слова маски.
То есть username (имя) для перекраски вагона 11-7038 с маской 11-7038_texture_t1 может быть:
11-7038_texture_t1 green 78389383
11-7038_texture_t1by_Vladik_fioletovyi
11-7038_texture_t1_extra repaint 644434333
И не может быть
11-7038_texture_t2
violet_11-7038_texture_t1
87373232 11-7038_texture_t1
11-7038_t1
Если вы пропишите неверное имя, то ваша самоперекраска просто не найдётся. Замечу, что наличие 2х самоперекрасок
с одним и тем же именем никак не скажется на работе системы ZSkinControler - она воспринимает куиды, не имена.
Данное имя будет показываться только котент-мененжером, так что единственный критерий, который там настоятельно
рекомендую включать - ЦВЕТ вагона, остальное (кроме маски, естественно) придумывайте по своему усмотрению.
Далее... Указываем в разделе string-table напротив тега description то имя, которое будет показыватсья в браузере
при выборе самоперекраски.
Тут у вас полная свобода в выборе - называйте как и чем угодно :) (совпадающие имена также влиять не будут).
Ну, настройка куида html-asset на этом завершена (если вы не забыли о kuid-table), можете его сразу установить,
а можете подождать пока настроим texture-group, и устанавливать их одновременно.
Настройка его очень проста - заменяем содержащиеся там текстуры на наши, прописываем своё username (хорошо, если оно
будет отличаться от html-asset'а только дополнительной буквой в конце - легче в котент-мененжере будет искать).
И, если вы не забыли вписать свой куид, настройки нашей самоперекраски на этом завершена. Можете устанавливать в игру
и искать свою новую перекраску по тому имени, которое вы прописали у тега description html-asset'а.
объектов, позволяющих локализовать обработку информации в одном месте, т.е. выполняющих функции супертриггеров
и главных контроллеров, но невидимых). Начну с первой части, то есть для самой крупной фитчи данного скрипта -
системы самоперекрасок. Создана она была ещё varz'ом, в 2007 году на локомотивах ТГМ23 и ТЭП10, но была преспокойно
забыта. В данном случае из неё было убрано всё, что только можно - в памяти список перекрасок не хранится,
количество методов класса ZSkinControler (точнее, теперь ZSkinControler2) урезано до двух, и т.п.
Часть первая. Создание самоперекраски.
Итак, вы поработали с текстурами вагона, и у вас получилось несколько файлов. Из них нам необходимы
(в вагоне 11-7038, скрипт rzdcargovehicle4.gs)
1) соответствующая эффекту skin1 из mesh-table вагона (в оригинале - меши default, текстура textureosnova.texture, графический файл текстуры textureosnova.tga)
2) соответствующая эффекту skin1_d из mesh-table вагона (в оригинале -меши door, текстура doors.texture, графический файл текстуры doors.tga)
3) соответствующая эффектам wheel1 и bogey1 из mesh-table тележки (оригинальная тележка модели 18-100, меши default и extra соответственно, текстура 18-100_1.texture,
графический файл 18-100_1.jpg)
То есть именно для вагона 11-7038_№1 нам потребуются не изменённые или перекрашенные файлы textureosnova.tga
doors.tga и 18-100_1.jpg .
Начнём с того, что определим маску перекраски. Маска - это некое слово, по которому перекраски будут фильтроваться
(чтобы перекраска одного типа вагонов не оказалась на другом типе вагонов).
Заходим в раздел string-table конфига вагона, и видим
{
priority "Приоритет "
no_products "Пустой "
doors_open "Открыть двери"
doors_closed "Закрыть двери"
doors_all "Для всего состава"
skin "Текстура"
rand_skin "Случайная текстура"
texture_mask "11-7038_texture_t1"
}
В данном случае нам необходим последний тег - texture_mask. Именно он задаёт маску самоперекрасок.
То есть 11-7038_texture_t1 и есть маска перекрасок к данному вагону.
Так, с заготовками разобрались. Теперь перейдём собственно к созданию самоперекраски.
Она состоит из двух куидов - html-asset'а с настройками самоперекраски и texture-group'а собственно с текстурами.
Вы спросите "зачем так сложно?" Ответ прост - аурановцы не придусмотрели возможности получения отфильтрованоого
списка куидов категории texture-group, только список куидов категории html-asset. Поэтому куид категории html-asset
выполняет роль ссылки на основной куид с текстурами самоперекраски.
Как проще всего создать куиды самоперекрасок? Открыть для редактирования 2 куида (категорий html-asset и texture-group),
а затем скопировать их из папки editing директории trainz, например, на рабочий стол. Затем прописываете им свои куиды
(в первую очередь). Это может быть как <kuid2:Ваш ID разработчика:ID дополнения:версия>, так и <kuid:Ваш ID разработчика:ID дополнения>,
без разницы. Советую (хотя это и не обязательно) нумеровать эти 2 дополения подряд идущими идиентификаторами дополнений.
Приступим к настройке html-asset'а. В первую очередь (после прописывания в него куида), напротив тега 0 раздела
kuid-table прописываем куид texture-group'а. В одной из моих самоперекрасок это выглядит так
kuid-table
{
0 <kuid2:400260:9010001:1>
}
Следующим шагом становится указание имени. Имя здесь играет очень важную роль, поскольку именно по именам
фильтруются перекраски к данному дополнению.
Причём для успешной работы перекраски имя должно начинаться со слова маски.
То есть username (имя) для перекраски вагона 11-7038 с маской 11-7038_texture_t1 может быть:
11-7038_texture_t1 green 78389383
11-7038_texture_t1by_Vladik_fioletovyi
11-7038_texture_t1_extra repaint 644434333
И не может быть
11-7038_texture_t2
violet_11-7038_texture_t1
87373232 11-7038_texture_t1
11-7038_t1
Если вы пропишите неверное имя, то ваша самоперекраска просто не найдётся. Замечу, что наличие 2х самоперекрасок
с одним и тем же именем никак не скажется на работе системы ZSkinControler - она воспринимает куиды, не имена.
Данное имя будет показываться только котент-мененжером, так что единственный критерий, который там настоятельно
рекомендую включать - ЦВЕТ вагона, остальное (кроме маски, естественно) придумывайте по своему усмотрению.
Далее... Указываем в разделе string-table напротив тега description то имя, которое будет показыватсья в браузере
при выборе самоперекраски.
Тут у вас полная свобода в выборе - называйте как и чем угодно :) (совпадающие имена также влиять не будут).
Ну, настройка куида html-asset на этом завершена (если вы не забыли о kuid-table), можете его сразу установить,
а можете подождать пока настроим texture-group, и устанавливать их одновременно.
Настройка его очень проста - заменяем содержащиеся там текстуры на наши, прописываем своё username (хорошо, если оно
будет отличаться от html-asset'а только дополнительной буквой в конце - легче в котент-мененжере будет искать).
И, если вы не забыли вписать свой куид, настройки нашей самоперекраски на этом завершена. Можете устанавливать в игру
и искать свою новую перекраску по тому имени, которое вы прописали у тега description html-asset'а.