|
|
PRO Mods |
|
Ваш ID: Guest
Редактирование OSD
| |
RAXAT | Дата: Четверг, 2007-07-26, 08:47:11 | Номер сообщения: 1 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| В связи с участившимися индивидуальными просьбами о выдаче кода OSD я решил создать этот туториал, он научит вас редактировать старый надоевший OSD.
Начнём с того, что же всё-таки такое OSD? OSD расшифровывается как "On Screen Display", говоря по-русски, это информация, которая отображается на экране самым верхним слоем, в любой игре OSD элементами традиционно являются меню, окна, курсоры, интерфейсы и тд, иными словами, всё, что находится над рабочей областью. В нашем случае OSD элементы это, главным образом, спидометр, тахометр, индикатор пройденного пути, индикаторы ABS и ASR, индикаторы турбо и нос, индикатор повреждения.
В SLRR весь код для OSD написан в исполняемом файле, поэтому основная панель OSD (LongOSDgauge) будет отображаться по умолчанию, в случае если игра не обнаружит данных OSD, введённых пользователем.
Как менять OSD? Игра устроена таким образом, что запрос OSD данных идёт через кузов машины, т.е. чтобы поменять OSD на всех машинах в игре, нужно лезть в CFG файл кузова каждой машины и там прописывать полностью все строки создания OSD. В этом туториале я объясню принцип замены OSD на основе Baiern CoupeSport GTIII.
Действовать будем пошагово.
Шаг 1. Подготовка к работе Открываем файл cars\racers\Baiern_data\scripts\_main_CoupeSport_GT_III.cfg и помещаем курсор между строк:
Code steering -0.378 0.055 -0.343 0.000 -0.419 0.000 0.01 sphere 0.1 nocollision render 0x0003001C
<ПОМЕСТИТЕ КУРСОР МЫШИ СЮДА>
seat -0.391 -0.340 0.080 0.000 0.410 0.000 pedals -0.391 -0.350 -0.700 cockpit_speed -0.448 0.120 -0.510 0.000 0.000 0.000 0x00020037 2.2 -0.009 -2.2 2.2 cockpit_rpm -0.328 0.120 -0.510 0.000 0.000 0.000 0x00020037 2.2 -0.0004 -2.2 2.2
Шаг 2. Добавление строк OSD В том месте, где мы поставили курсор мыши, мы вставляем следующее: Code
osd_gauge 0x0002F017 1.200 -0.790 0.000 0xFFFFFFFF %03.0f osd_spdpin 0x0002F009 1.447 -0.700 0.0001 2.489 -0.0157134 -2.3 2.3 osd_rpmpin 0x0002F010 0.883 -1.126 0.0001 2.2 -0.0005 -2.3 2.3 osd_gear 0x00020058 0.460 0.807 0.0001 0xFFFF0000 N123456R osd_speed 0x00020058 0.741 0.531 0.0001 0xFFFF0000 %03.0f
osd_damage 0x00020057 0.926 0.855 -0.0001 osd_mileage 0x00020058 0.705 0.760 -0.0001 osd_nos 0x0002005C 0.705 0.856 -0.0001 osd_turbo 0x0002005C 0.705 0.905 -0.0001
osd_abs 0xFFFFFFFF 0.000 0.000 0.000 osd_asr 0xFFFFFFFF 0.000 0.000 0.000 osd_hbrake 0xFFFFFFFF 0.000 0.000 0.000 osd_emergency 0xFFFFFFFF 0.000 0.000 0.000
После добавления этих строк нужно понять какая строка и за что отвечает. Рассмотрим сначала описания строк:
-> osd_gauge - приборная панель -> osd_spdpin - стрелка спидометра -> osd_rpmpin - стрелка тахометра -> osd_nospin - стрелка N2O -> osd_gear - индикатор текущей передачи трансмиссии -> osd_speed - индикатор скорости -> osd_rpm - индикатор оборотов двигателя -> osd_damage - индикатор повреждений машины -> osd_mileage - индикатор пройденного пути -> osd_nos - индикатор количества N2О -> osd_turbo - индикатор давления турбо -> osd_abs - датчик ABS -> osd_asr - датчик ASR -> osd_hbrake - датчик применения ручного тормоза -> osd_emergency - датчик перегрева двигателя
Шаг 3. Настройка OSD элементов. Теперь, когда мы знаем какая строка что значит, мы должны разобраться в непонятных параметрах строк.
ОЧЕНЬ ВАЖНО: если указать параметры неправильно или в неправильном порядке, элемент не отобразится на экране либо будет неподвижен!
Приступим к расшифровке:
- Элементы со специальными параметрами (т.е. параметры для них неприменимы для других элементов)
Code //элемент osd_spdpin 0x0002F009 1.447 -0.700 0.0001 2.489 -0.0157134 -2.3 2.3 osd_rpmpin 0x0002F010 0.883 -1.126 0.0001 2.2 -0.0005 -2.3 2.3
//параметры: (одни и те же для двух этих элементов) ID рендера || координаты XYZ || параметр цены деления 1 || параметр цены деления 2 || max поворот стрелки слева || max поворот стрелки справа ||
Code //элемент osd_gear 0x00020058 0.460 0.807 0.0001 0xFFFF0000 N123456R
//параметры: ID рендера || координаты XYZ || цвет в HTML формате || параметры коробки передач
Code //элемент osd_speed 0x00020058 0.741 0.531 0.0001 0xFFFF0000 %03.0f osd_rpm 0x00020058 0.400 0.850 0.0001 0xFFFF0000 %03.0f
//параметры: (одни и те же для двух этих элементов) ID рендера || координаты XYZ || цвет в HTML формате || начальное значение, если стоит цифровой спидометр/тахометр
- Для всех остальных элементов применялись следующие параметры: (на примере osd_gauge)
Code //элемент osd_gauge 0x0002F017 1.200 -0.790 0.000 0xFFFFFFFF %03.0f
//параметры: ID рендера || координаты XYZ || цвет в HTML формате || значение, если присутствуют числовые параметры
У вас сразу же возник вопрос, а откуда брать ID рендеров? В игре есть уже встроенные ID, они прописаны в файле cars.rpk. Ниже описаны все ID, которые я использовал в своём примере:
Code Стандартные ID, их можно найти в cars.rpk: 0x00020058 //цифровой шрифт 0x00020057 //шрифт индикатора повреждений 0x0002005C //шрифт слайдера (N2О/турбо) 0xFFFFFFFF //пустой рендер, используйте его для того, чтобы скрыть OSD элемент, он не будет отображаться на экране
Собственные ID, их нужно настраивать самому: 0x0002F017 //круглая текстура приборной панели 0x0002F009 //текстура стрелки спидометра 0x0002F010 //текстура стрелки тахометра
Напомню, что в данном случае в 4 регистре стоит цифра 2, эта цифра обозначает порядковый номер пути к файлу cars.rpk, который содержит метки с информацией о ресурсах. Во многих машинах путь имеет номер 2, однако некоторые моддеры меняют его порядковый номер, поэтому если вы видите нестанадртную машину, то рекомендуется проверить порядковый номер пути cars\ в RPK файле машины, считать его нужно сверху вниз, первая строка имеет порядковый номер 1.
В моём примере есть скрытые элементы, если вы их не увидите, то вам надо заменить ID рендера с 0xFFFFFFFF на любой другой рабочий ID.
Шаг 4. Добавление собственных ID рендеров. Добавлять свой OSD рендер в игру так же просто, как добавлять рендер ID для детали, однако у OSD рендеров есть свои особенности, рассмотрим каждую из них.
- Статический OSD объект. -> Это обыкновенный рендер, без особых параметров, он не имеет динамики, таковым может являться рендер приборной панели (osd_gauge), он просто стоит на нижнем слое и никак не меняется. Внутри SCX файла для такого рендера может находиться любое количество объектов с любыми именами. Рендер будет иметь флаг flags 4.000.
- OSD объект типа Slider. -> Это динамический рендер, работающий при помощи спрайтов, т.е. игра читает SCX файл, ищет в нём подобъекты (они и будут спрайтами) и "перелистывает" эти спрайты один за другим, создавая эффект анимации. К примеру, объект типа Slider это индикатор давления турбо, он состоит из 8 спрайтов-прямоугольников, каждый из которых описывает подобие анимации прогресс бара (прогресс бар это что-то типа полоски загрузки). Внутри SCX файла такого рендера должно быть более одного объекта с именами "a,b,c,d,e,f...", игра пролистывает каждый поимённо начиная с "a", назначая каждый последующий объект на новый спрайт, например объект с именем "d" будет показывать состояние среднего давления турбо. Такой рендер также будет иметь флаг flags 4.000.
- OSD объект типа Switch. -> Это динамический рендер, также работающий при помощи спрайтов, однако, в отличие от объекта типа Slider, в этом рендере всего лишь 2 спрайта: один показывает активное состояние индикатора, другой - пассивное. Примером объекта типа Switch является индикатор ABS. Внутри SCX файла для этого рендера должно быть 2 спрайта с именами "a,b". В связи с особенностями этого типа OSD объектов, рендер вообще не будет иметь никаких флагов, если они у вас будут, их надо будет удалить.
Таким образом, типичным примером OSD рендера в RPK будет вот такая метка:
Code <FILE 00000026.res > typeof 14 superid 0x00000031 typeid 0x00000058 alias lcdfont isparentcompatible 1.00 </FILE> <FILE 00000026.rsd > mesh 0x0000005A flags 4.000 texture 0x00000052 </FILE>
Небольшие хитрости. В игре можно создавать как аналаговые, так и цифровые спидометры и тахометры. Например, для аналогового спидометра нужны элементы osd_speed (фон спидометра)
и osd_spdpin(стрелка), тут можно сделать хитрость: создаём новую текстуру для osd_gauge, в которую будет включен фон для спидометра, скрываем стрелку через задание значения 0xFFFFFFFF вместо ID рендера, а в значение ID рендера для строки osd_speed пишем 0x00020058, это ID цифрового шрифта, таким образом у нас будет цифровой спидометр, который мы можем перемещать в любую точку экрана. Тоже самое можно сделать с osd_rpm, тогда мы сможем увидеть точные значения оборотов двигателя в любой момент времени.
Ещё одна небольшая хитрость: масштабы рендеров можно менять через отдаление/приближение их по оси Z (третье число в XYZ координатах).
В игре есть стрелка N2O (osd_nospin), я пробовал применять к ней различные параметры, но она почему-то по-прежнему стоит неподвижно, я думаю, есть способ заставить её двигаться.
Наконец, длина и ширина OSD объектов в SCX объектов в максе задаётся в пикселях, один пиксель равен одному пикселю на экране в игре.
Вот вроде бы и всё, теперь вы можете создавать свои OSD для любой машины!
Напомню, что весь вышеописанный материал добыт лично мной путём многочисленных экспериментов, поэтому нигде на других сайтах вы эту информацию получить на данный момент не сможете, а если всё-таки сможете, то передайте лично от меня привет шустрым воришкам, которые умудрились быстрее остальных без моего согласия стащить этот драгоценный туториал с нашего сайта
RAXAT
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
NIX | Дата: Четверг, 2007-07-26, 12:27:29 | Номер сообщения: 2 |
Флудер
Группа: Trusted Member
Сообщений: 700
Награды: 1
Положение: Offline
| Отлично! Будет время, обязательно поковыряю пс. а что за датчик разр. двигателя? Вроде не было такого..
|
|
|
|
7AGLAR7 | Дата: Четверг, 2007-07-26, 12:45:14 | Номер сообщения: 3 |
Special Ed
Группа: Trusted Member
Сообщений: 730
Награды: 0
Положение: Offline
| А разве в .ехе файл ненадо лезть?)
|
|
|
|
STANOK83 | Дата: Четверг, 2007-07-26, 15:53:13 | Номер сообщения: 4 |
ЧЕЛОВЕК-СТАНОК
Группа: Trusted Member
Сообщений: 590
Награды: 3
Положение: Offline
| 7AGLAR7, нет не надо по этому тутору мона сделатьт для каждой тачки свои приборки как в TDUДобавлено (2007-07-26, 15:52:39) --------------------------------------------- Добавлено (2007-07-26, 15:53:13) --------------------------------------------- извините за размер
|
|
|
|
fled | Дата: Четверг, 2007-07-26, 18:38:10 | Номер сообщения: 5 |
Группа: Удаленные
| RAXAT, в ОСД рендере superid 0x00000031 это важно или нет???
|
|
|
|
RAXAT | Дата: Четверг, 2007-07-26, 18:51:05 | Номер сообщения: 6 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| fled, нет, они все относятся к одному родителю системы 0x00010003 типа 14
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
fled | Дата: Пятница, 2007-07-27, 10:57:08 | Номер сообщения: 7 |
Группа: Удаленные
| RAXAT, у меня не отображается рендер приборной панели((( после того как изменил КФГ все элементы ОСД поменяли свое положение(с этим проблем небыло) а вот рендер никак не хочет отображаться((
|
|
|
|
mihon | Дата: Пятница, 2007-07-27, 13:39:16 | Номер сообщения: 8 |
+MECHANIC+
Группа: Site Member
Сообщений: 1520
Награды: 18
Положение: Offline
| На систему закиси азота и давления турбо лучше тож зделать приборки))
|
|
|
|
RAXAT | Дата: Пятница, 2007-07-27, 13:43:30 | Номер сообщения: 9 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| fled, положение в ноль поставь и проверь параметры mihon, без стрелок только разве что. со стрелками страшновато получается в 8 спрайтов
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
Fuzzy | Дата: Суббота, 2007-07-28, 02:46:43 | Номер сообщения: 10 |
СварЩег
Группа: Trusted Member
Сообщений: 804
Награды: 3
Положение: Offline
| RAXAT, может я чтото опустил, но можно ли именно цифровые значения двичать (зилйонку ету)?
|
|
|
|
RAXAT | Дата: Суббота, 2007-07-28, 03:13:46 | Номер сообщения: 11 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| Fuzzy, конечно можно. ставим цифровой шрифт и меняем координаты
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
OSA | Дата: Воскресенье, 2007-07-29, 11:07:05 | Номер сообщения: 12 |
Experienced SLRR modder
Группа: Trusted Member
Сообщений: 562
Награды: 0
Положение: Offline
| Quote (RAXAT) -> osd_nospin - стрелка N2O Значит можно сделать аналоговый датчик закиси азота? Сори, прочитал дальше и все понял))
Сперва подумай...
Post edited by OSA - Воскресенье, 2007-07-29, 11:14:34 |
|
|
|
PunkGuy | Дата: Воскресенье, 2007-07-29, 11:49:53 | Номер сообщения: 13 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| OSA тебе же сказали нет! стрелка не работает!
|
|
|
|
Antony666 | Дата: Понедельник, 2007-07-30, 09:39:41 | Номер сообщения: 14 |
Team member
Группа: Trusted Member
Сообщений: 650
Награды: 1
Положение: Offline
| Quote (PunkGuy) OSA тебе же сказали нет! стрелка не работает! если стрелка не работает то почему для нее есть команда? Значит можно заставить ее работать
|
|
|
|
PunkGuy | Дата: Понедельник, 2007-07-30, 10:37:09 | Номер сообщения: 15 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| Antony666 значит она также не доделана как и многое в этой игре! как видишь инвиктус вообще это не стали в игру сувать..
|
|
|
|
Antony666 | Дата: Понедельник, 2007-07-30, 11:57:37 | Номер сообщения: 16 |
Team member
Группа: Trusted Member
Сообщений: 650
Награды: 1
Положение: Offline
| Quote (PunkGuy) Antony666 значит она также не доделана как и многое в этой игре! Но это не значит что ее нельзя доделать
|
|
|
|
RAXAT | Дата: Понедельник, 2007-07-30, 12:01:53 | Номер сообщения: 17 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| Antony666, она просто стоит на месте. причин для того, чтобы стрелка OSD стояла на месте немного, как правило, это просто неправильные параметры. Возможно, в дино неправильно реализовано использование NOS, т.к. стрелка берёт данные из дино. Добавлено (2007-07-30, 12:01:53) --------------------------------------------- кстате даже дино в игре недоделан
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
PunkGuy | Дата: Понедельник, 2007-07-30, 20:29:25 | Номер сообщения: 18 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| Antony666 к сожелению ты не прав.. все это сделано в ехе юю а исходников нету.. еслиб были то это было возможно.. в нашем случае только сделать с нуля..
|
|
|
|
OSA | Дата: Вторник, 2007-07-31, 03:19:40 | Номер сообщения: 19 |
Experienced SLRR modder
Группа: Trusted Member
Сообщений: 562
Награды: 0
Положение: Offline
| Quote (PunkGuy) OSA тебе же сказали нет! стрелка не работает! А я сказал, что уже это прочитал!!!
Сперва подумай...
|
|
|
|
Antony666 | Дата: Среда, 2007-08-29, 01:14:09 | Номер сообщения: 20 |
Team member
Группа: Trusted Member
Сообщений: 650
Награды: 1
Положение: Offline
| Quote (RAXAT) Элементы со специальными параметрами (т.е. параметры для них неприменимы для других элементов) Code //элементosd_spdpin0x0002F009 1.447 -0.700 0.0001 2.489 -0.0157134-2.3 2.3osd_rpmpin0x0002F010 0.883 -1.126 0.0001 2.2 -0.0005-2.3 2.3 //параметры: (одни и те же для двух этих элементов)ID рендера || координаты XYZ || параметр цены деления 1 || параметр цены деления 2 || max поворот стрелки слева || max поворот стрелки справа || А как точно вычислить "параметр цены деления 1 || параметр цены деления 2"?? очень нужно. но не могу разобраться
|
|
|
|
PunkGuy | Дата: Среда, 2007-08-29, 01:27:44 | Номер сообщения: 21 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| как правило есл текстура снята с настоящего тахометра то все подходит идиально со стоковыми значениями..
|
|
|
|
Victor-Turbo | Дата: Среда, 2007-09-05, 16:50:28 | Номер сообщения: 22 |
Regular
Группа: Trusted Member
Сообщений: 140
Награды: 0
Положение: Offline
| STANOK83, кини свои припор на вагене плиз!!!!!! Сорри за офф Добавлено (2007-09-05, 16:50:28) --------------------------------------------- чет не подучается!!!
|
|
|
|
PunkGuy | Дата: Среда, 2007-09-05, 17:12:49 | Номер сообщения: 23 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| а ты сделал мешь наложил на него текстуру прописал все это в rpk и не напутал коды в cfg ?? если все делать правильно все получается!
|
|
|
|
Victor-Turbo | Дата: Среда, 2007-09-05, 17:22:14 | Номер сообщения: 24 |
Regular
Группа: Trusted Member
Сообщений: 140
Награды: 0
Положение: Offline
| PunkGuy, чет я перепутал я с рпк саввем не работал!!! кините мне для вагена ето плиззз сорри за офф
|
|
|
|
PunkGuy | Дата: Среда, 2007-09-05, 17:33:04 | Номер сообщения: 25 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| много просишь... кому и почему надо тебе кидать..ю вся инфа есть.. делай сам...
|
|
|
|
Victor-Turbo | Дата: Среда, 2007-09-05, 17:38:27 | Номер сообщения: 26 |
Regular
Группа: Trusted Member
Сообщений: 140
Награды: 0
Положение: Offline
| PunkGuy, я делаю но штото не так!!!!!у меня ваше даски приборов нет!!!
|
|
|
|
PunkGuy | Дата: Среда, 2007-09-05, 17:58:48 | Номер сообщения: 27 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| поверь ничего сверх есттественного в этом нету. .просто ты вызываеь тахометр которого не существует)0 сначало его надо сделать..
|
|
|
|
Victor-Turbo | Дата: Среда, 2007-09-05, 18:43:34 | Номер сообщения: 28 |
Regular
Группа: Trusted Member
Сообщений: 140
Награды: 0
Положение: Offline
| PunkGuy, вод я дурень!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
fled | Дата: Понедельник, 2007-10-29, 13:04:08 | Номер сообщения: 29 |
Группа: Удаленные
| Начал делать свой ОСД...но вот с ссылками в РПК есть траблы....когда ставлю flags 4.000 игра вылетает.. если оставить flags 8.000 то не отображаются текстуры((
|
|
|
|
PunkGuy | Дата: Понедельник, 2007-10-29, 15:06:57 | Номер сообщения: 30 |
Фан клуб Toretto
Группа: Trusted Member
Сообщений: 671
Награды: 3
Положение: Offline
| fled, с флагами никаких секретов. все как и раньше.. для текстуры один для меша другой.. роджительские супир ид по томуже принципу.. никаких приколов тут нету.. так что пробуй должно выйти.
|
|
|
|
|
| |
Copyright PRO Mods 2005© All rights reserved | |