xCLOUDx
|
Дата: Четверг, 01.09.2011, 13:50 | Сообщение # 1
|
Ответственный за файлы !
Группа: Проверенный
Сообщений: 230
Награды: 29
Репутация: 245
Статус: Гдето лазит
|
Street Legal Redline является довольно сложной (если не самой сложной) игрой в плане моддинга. Сегодня я расскажу вам, как вставить свою собственную машину в игру. У каждого есть свои хитрости и свои способы, здесь я расскажу как мне удобнее.
Нам понадобятся следующие файлы:
1. resdecode.exe и resconvert.exe чтобы править rpk. 2. 3d max 5 для работы с 3D. а так же плагин к нему для экспорта в формат scx. 3. zmodeler 1.07 а так же плагин к нему для импорта моделей из формата scx. 4. блокнот он есть у всех. 5. slrr 2.2.1 java pack - исходники стандартных машин. 6. adobe photoshop или иной графический редактор, но лучше фотошоп, а так же плагин к нему для работы с текстурами в формате dds. 7. SLRR 230LE. т.к. мы будем делать машину для этой версии.
Начнем.
Игру лучше установить в корень диска, так будет проще до нее добираться. У меня она установлена в "G:\Street Legal Racing 230LE"
Заходим в папку с игрой, жмем наверху кнопку "Сервис" -> "Свойства папки"
Далее выбираем вкладку "Вид" и снимаем галочку напротив "Скрывать расширения для зарегистрированных типов файлов". Жмем Ок. Теперь мы видим что в имени каждого файла отображается и его расширение. Если в корне игры есть файл "error.log", удалите его.
Далее берем скачанные resdecode.exe и resconvert.exe и копируем их в папку с игрой.
Ок, жмем "Пуск" -> "Выполнить" -> в окошке пишем "cmd" и жмем ОК.
В черном окошке пишем (после каждой строки не забываем жать enter) G: cd street legal racing 230LE resdecode cars/racers/einvagen Напоминаю, что у меня игра установлена на диске G: в папке street legal racing 230LE, соответственно заменяйте на свои пути. Если у вас игра например установлена на диске C: вместе с windows, то ваш порядок действий будет таков:
cd / cd street legal racing 230LE resdecode cars/racers/einvagen
Закрываем черное окно и идем в папку с игрой в cars/racers/ . Там мы обнаружим новый файлик "einvagen.rdb".
Находим наши скачанные исходники для 2.2.1, распаковываем их и копируем от туда папку "einvagen_data" (она в cars/racers/ как и в игре")
Вставляем эту папочку в нашу игру в папку cars/racers/ , windows спросит о замене, нажмите "да для всех". Идем в папку cars/racers/ , копируем папку "einvagen_data" И сюда же вставляем
Теперь самое время, чтобы придумать нашей машинке название. Назовем ее krevetko
Переименовываем нашу вставленную папку из "копия einvagen_data" в "krevetko_data", так же переименовываем "einvagen.rdb" в "krevetko.rdb"
открываем блокнотом "krevetko.rdb" Небольшой ликбез по рпк файлам. Рпк это нечто вроде архива, в основном со ссылками на игровые файлы.. Для каждой детали используются в основном 5 блоков. т.е. script render mesh phys texture Однако, если деталь имеет ту же текстуру, или физ. модель.. или меш (3д модель), то можно использовать меньше блоков, но скрипт у каждой детали обязательно свой. Если сейчас это непонятно, то современем станет ясно.. это довольно просто.
В стандартном рпк все это разбросано по всему файлу. И если мы захотим добавить собственную деталь, то придется собрать нужные блоки, но об этом позже.
И так, как мы можем заметить в рпк содержаться ссылки на различные файлы, и путь к ним указан в папку "einvagen_data" .. нам же нужно все их переместить в папку "krevetka_data".
Жмем "Правка" -> "Заменить"
В поле "Что" пишем "einvagen_data" В поле "Чем" пишем "krevetko_data" .. точнее название своей машины. Жмем "Заменить все"
После окончания процесса, закрываем маленькое окошко и сохраняемся. Сворачиваем наш блокнот "krevetko.rdb", он нам еще пригодится.
Далее мы идем править исходники. Они лежат в папке cars/racers/krevetko_data/scripts/src/ Имеют расширение .java и опять же открываются блокнотом. Кстати рекомендую сделать "Вид" -> "Таблица" [img]http://slrr.at.ua/_pu/0/40220670.jpg[img] Открываем файл "Einvagen_110_GT.java"
Выделенные строки и являются названием нашего автомобиля, кузова, описания.. текст внутри кавычек можно править, например так: [img]http://slrr.at.ua/_pu/0/51124831.jpg[img] Чуть ниже мы увидим вот это, комментарии на скрине. Нам снова надо заменить "einvagen" на "krevetko" но только в тех строках, в которых ставятся кузовные панели. Жмем "правка" -> "заменить" , остальное видно на скрине. Сохраняемся и закрываем. Для начала у нас будет 1 модель машины, поэтому другие 110 GTK, 140 GTA мы трогать не будем.
Поэтому открываем "Einvagen_models.java" и удаляем синие строки.
package java.game.cars;
import java.util.*; import java.util.resource.*; import java.game.parts.bodypart.*;
public class Einvagen_models extends Chassis { static int MODEL_110_GT = 1; static int MODEL_110_GTK = 2; static int MODEL_140_GTA = 3; static int MODEL_110_GTD = 4;
public Einvagen_models( int id ) { super( id ); carCategory = PACKAGE;
make = MAKE_EINVAGEN; }
public void updatevariables() { super.updatevariables();
ResourceRef ref = new ResourceRef(sound:0x00000015r); setHornSFX(ref, 1.0, 1); setHornSFX(ref, 1.0, 3); ref.set(0); setHornSFX(ref, 1.0, 2); } }
Далее открываем "Einvagen_VT.java" Жмем "правка" -> "заменить" , остальное видно на скрине. точно так же заменяем "racers.einvagen" на "racers.krevetko" в файлах "einvagen_FL_door.java" , "einvagen_FR_door.java", "einvagen_RL_door.java", "einvagen_RR_door.java", "einvagen_R_door.java" и "kit_gta_body.java"
Теперь самое скучное - во всех исходниках надо заменить название деталей на свои, например для бампера:
package java.game.cars;
import java.util.*; import java.util.resource.*; import java.game.parts.bodypart.*;
public class Einvagen_F_bumper extends Bumper { public Einvagen_F_bumper( int id ) { super( id ); carCategory = PACKAGE; name = "Einvagen GT/GTK front bumper"; // собственно название детали в игре. description = "The stock front bumper for the 110 GT and 110 GTK models."; // описание детали, его можно не менять.
value = tHUF2USD(55.633); // цена детали, разделенная примерно на 5, т.е. в игре бампер стоит примерно 280 у.е. brand_new_prestige_value = 24.00; // престиж детали } }
Все то же самое придется проделать для остальных деталей, если цену и престиж можно оставить прежними, то название детали стоит заменить на свое. Например вот тот же бампер после переименования. Кстати, если кто не знает, то двойной слеш "//" отделяет комментарии, т.е. за ним можно писать что угодно.
package java.game.cars;
import java.util.*; import java.util.resource.*; import java.game.parts.bodypart.*;
public class Einvagen_F_bumper extends Bumper { public Einvagen_F_bumper( int id ) { super( id ); carCategory = PACKAGE; name = "Krevetko bumper"; // собственно название детали в игре. description = "The stock front bumper for the 110 GT and 110 GTK models."; // описание детали, его можно не менять.
value = tHUF2USD(100); // цена детали, разделенная примерно на 5, т.е. теперь в игре бампер стоит примерно 500 у.е. brand_new_prestige_value = 34.00; // престиж детали } }
С исходниками разобрались.
Теперь заходим в корень игры и создаем там текстовый файлик с любым именем, например krevetko.txt , заходим в него и пишем следующее:
resconvert cars/racers/krevetko
Сохраняемся, закрываем и переименовываем этот файлик в krevetko.bat Запускаем получившийся файлик, появится черное окно, в котором побегут строки, когда остановятся закрываем его. Таким путем мы создали из "krevetko.rdb" "krevetko.rpk" , и теперь если мы обновим что-то в "krevetko.rdb" нам достаточно лишь запустить наш "krevetko.bat" в корне игры, чтобы сохранить наши изменения в рпк.
Заходим в игру, создаем карьеру и идем в обменник кузовов или в магазины .. если все сделали правильно, то должен появится эйнваген только под именем "krevetko"
К сожалению у меня нет времени проверять, но вроде ничего не упустил.
Покупаем любую машину и меняемся на кузов креветки, заходим в каталог и смотрим все секции "body" .. листаем все страницы, если игра не вылетела, то все отлично, покупаем движок, подвеску, ставим все это на креветку и сохраняем игру, выходим.
Если же игра вылетела, то идем в корень игра, открываем блокнотом файл error.log и смотрим где же был сбой. К примеру если содержимое error.log такое:
!syntax error in file cars\racers\krevetko_data\scripts\fl_quarterpanel.java at line 14
То это означает, что мы ошиблись в файле FL_quarterpanel.java нашей машины, следуем по адресу и открываем этот файл, переходим на 14 строку и внимательно смотрим на нее, ошибка может возникнуть из-за любого пустяка, например вот из-за такого:
package java.game.cars;
import java.util.*; import java.util.resource.*; import java.game.parts.bodypart.*;
public class Einvagen_FL_quarterpanel extends Quarterpanel { public Einvagen_FL_quarterpanel( int id ) { super( id ); carCategory = PACKAGE; name = Krevetko GT front left quarterpanel"; // вот здесь и закралась ошибка, обратите внимание, я забыл открыть кавычки перед словом Krevetkо. description = "The stock front left quarterpanel for the GT models.";
value = tHUF2USD(87.375); brand_new_prestige_value = 18.60; } }
Чтож, бывает, заходим в игру и снова смотрим каталог.. если вылет, повторяем поиск проблемы.
Все ошибки исправлены, машина есть, теперь приступаем к собственно моделингу. Устанавливаем 3D max 5, zmodeler 1.07 и не забываем плагины к ним.
Открываем zmodeler 1.07 , жмем "File" -> "Import" далее идем вот так street legal racing/cars/racers/einvagen_data/meshes/ открываем файл chassis.scx, при этом появятся несколько ошибок, жмем ок на каждой и видим перед собой кузов эйнвагена. Мышью его можно покрутить Видите справа окошко с названием "Objects" , удалите из него chassis.scx и chassis.scx+ (правой кнопкой на chassis.scx -> Delete, аналогично с chassis.scx+)
Должно получиться вот так. Жмем "File" -> "Export"
В поле "Имя файла" пишем любое имя.. например "chas" и сохраняем в формате 3DS.
Закрываем занозу. Изменения можно не сохранять. Открываем 3D Max 5
Жмем "File" - "Import" и находим наш только что сохраненный файлик. А сохранили мы его в street legal racing/cars/racers/einvagen_data/meshes/chas.3ds
Открываем его. В появившемся мелком окошке жмем "ок" Вот что мы должны увидеть. Но модель слишком маленькая, надо увеличить ее в 100 раз. Как работать в максе, я описывать тут не буду, для этого существует куча туторов, учитесь искать информацию.
И так, кузов эйнвагена нам нужен для того, чтобы подогнать размер своей машины к размеру игровой. После этого кузов эйнвагена можно удалить.
Далее игровой материал, процесс его создания и вставки детали в игру очень хорошо описан в туторе "Накладывание текстур", за который скажем спасибо Konner. Однако я крайне советую еще в свойствах материала ставить "specular level:" 100 для окрашиваемых деталей, для хрома 150-200 "glossines:" 40 Я думаю не надо объяснять на что это влияет, для примера джип разрезанный пополам, угадайте на какой половине применены эти настройки Допустим модель автомобиля готова. Перед экспортом детали в игру, выделите ее, зайдите в "hierarchy", нажмите "affect pivot only", нажмите "center to object", еще раз нажмите "affect pivot only", чтобы отжать кнопку. Далее в поля координат ставим нули, деталь сместится на начало координат. Жмем "File" -> "Export selected" в окошке заходим в папку игры street legal racing/cars/racers/krevetka_data/meshes/ и заменяем нужную нам деталь. Небольшой ликбез: FL - front left - передний левый FR - front right - передний правый RL - rear left - задний левый RR - rear right - задний правый L - left - левый R- right - правый, однако бывает и rear - задний, зависит от детали, например R_mirror - правое зеркало, а R_bumper - задний бампер. F - front - передний
quarterpanel - крыло door - дверь seat - сиденье steering_wheel - руль hood - капот bumper - бампер trunk - багажник sideskirt - порог roof - съемная крыша window - стекло windshield - переднее или заднее стекло mirror - зеркало headlights - передние фары taillights - задние фары.
В любом случае, если вам будет непонятна какая-то деталь, то всегда можно открыть ее модель в zmodeler и покрутить детальку.
После замены детали иногда сбивается порядок текстур, опять же все это описано в туторе "Накладывание текстур", однако опять же добавлю от себя, необязательно при экспорте кузова или иных сложных деталей соединять их последовательно, я всегда экспортировал просто выделив деталь и прописав потом правильно порядок текстур. О порядке текстур опять же добавлю, в рпк вы пишете порядок именно таким, который написан в получившимся tex файле при экспорте детали, НО меняете местами default_white.dds (0x00020025) и основную текстуру вашей детали, для крыла например это Einvagen_F_quarterpanel.dds (0x0000005A). В противном случае, ваша деталь будет закрашиваться полностью, иногда это плохо.
Далее мы возвращаем перемещенную в 0.0.0 деталь на место, для этого достаточно пару раз нажать "CTRL+Z", теперь наша задача установить ее правильно на машине. Открываем street legal racing/cars/racers/krevetko_data/scripts/_main_110_GT.cfg находим в нем нужную нам деталь, в данном случае это
slot -0.700 0.137 -0.778 0.000 0.000 0.000 34 ; FL_quarterpanel
Это слот на кузове, в который ставится переднее левое крыло. Мы видим 3 блока цифр.
-0.700 0.137 -0.778 отвечает за положение слота по 3 осям координат x,y,z (относительно автомобиля: x - перпендикулярная ось, т.е. влево вправо, y - высота, z - продольная ось, т.е. вперед назад.
0.000 0.000 0.000 отвечает за наклон детали по 3 осям. 34 номер слота
В 3д максе эти оси расположены немного по-другому. (пришлось взять гольф, т.к. джип завис и не сохранился .. ЧАЩЕ ЖМИТЕ CTRL+S В МАКСЕ!)
Думаю скрин все объяснит, обратите внимание, что знак у оси X надо менять. А так же делить эти значения на 100. Если стандартный слот выглядил вот так:
slot -0.700 0.137 -0.778 0.000 0.000 0.000 34 ; FL_quarterpanel
То с нашим крылом он будет вот таким:
slot -0.734 -0.185 -1.532 0.000 0.000 0.000 34 ; FL_quarterpanel
Надеюсь понятно.. После этого необходимо зайти в скрипт нашей детали, т.е. левого крыла и поставить там его координаты на 0.0.0.
Открываем street legal racing/cars/racers/krevetko_data/scripts/FL_quarterpanel.cfg
Вот и нужный нам слот на самой детали:
slot 0.022 0.371 0.468 0.000 0.000 0.000 34 ; FL_quarterpanel attach 0x00000006 34 ; chassis->FL_quarterpanel
Ставим координаты на нули, вот так:
slot 0.000 0.000 0.000 0.000 0.000 0.000 34 ; FL_quarterpanel attach 0x00000006 34 ; chassis->FL_quarterpanel
Все, после этого можно зайти в игру, купить наше крыло и поставить его на машину. И так со всеми прочими кузовными деталями, поэтому создавать машины так нудно.. Также не стоит забывать о том, что эта координата относительно детали на которую крепится наша, т.е. например для того, чтобы расположить зеркало на двери, придется ставить дверь и зеркало в начало координат и смотреть какие координаты у зеркала.
С дверьми, багажниками и капотами все несколько сложнее. Проделайте все тоже самое, но придется еще сдвинуть наш слот в то место, где деталь будет закреплена и вокруг которого она будет поворачиваться при нажатии на нее. Сдвиньте слот в _main_110_GT.cfg по оси Z в нужное место (определяется через 3д макс или экспериментальным путем), не забудьте про flap, ее координата должна быть такой же
На такое же число, но с противоположным знаком, сдвиньте слот на самой детали (в ее cfg).. сложно?
Если очень сложно, то можно в 3д максе нажать "Affect pivot only" (помните, мы проделывали это ранее), но не нажимать "Center to object" а перенести указатель к предполагаемой оси кручение (грубо говоря - где будут петли), поставить деталь в начало координат и экспортировать в игру. (так же как и обычно).
Получится немного некрасиво, но легче.
Допустим вы экспортировали все детали в игру, собрали машину. Отлично. Далее надо настроить положение водителя, колес и камер. Все это описывается в _main_110_GT.cfg координатами. (надеюсь помните где он находится )
Начинаем с первой камеры, она же голова водителя.
camera -0.380 0.350 0.202 0.000 0.000 0.000 90.000
Надеюсь, что систему координат вы уже освоили и можете сообразить как и куда двигать. Но если ваша машина будет похожа на стандартный эйнваген, то есть шанс, что водилу и не придется трогать.
steering -0.378 0.080 -0.500 0.000 -0.454 0.000 0.01 sphere 0.1
Сюда крепится руль и соответственно руки водителя.
seat -0.375 -0.320 0.000 0.000 0.350 0.000
Сюда наш афроамериканец кладет свою попку.
pedals -0.375 -0.370 -0.610
А сюда тянет ноги к педалям.
Можно еще дописать ниже
shifter 0.000 0.000 0.000
ну координаты соответствующие, и сюда водила будет тянуть руку во время переключения передач.
cockpit_speed -0.265 0.135 -0.600 0.000 0.000 0.000 0x00020037 2.2 -0.03 -3.0 1.5 cockpit_rpm -0.357 0.135 -0.600 0.000 0.000 0.000 0x00020037 2.2 -0.00045 -1.5 1.5
Координаты стрелок спидометра и тахометра
А сюда будут крепится пружины и амортизаторы к кузову, по порядку: FL, FR, RL, RR (помним что это такое?)
;upper arms on chassis slot -0.490 -0.103 -1.146 0 0 0 501 slot 0.490 -0.103 -1.146 0 0 0 502 slot -0.500 -0.172 1.220 0 0 0 503 slot 0.500 -0.172 1.220 0 0 0 504
Далее меняем положение колес (опять же если понадобится)
# FL wheel # type 10.000 sphere 0.315 spring 0.290 0.100 0.050 wheel -0.670 -0.630 -1.146 0.000 0.000 0.000 1.000 1.000 1.000 0.000 wheelbones slot 0.000 0.000 0.000 0.000 0.000 0.000 101 ; FL wheel attach 0x00040200 1 slottype 101 slotdmgmode 0x00000004
вынос колеса (наружу/внутрь) Высота колеса Продольное положение колеса (вперед/назад)
Вместе с колесом так же меняют свое положение подвески. Аналогично проделайте с другими колесами.
Вот и все, надеюсь ничего не забыл.
Подпись отключена!!!
Сообщение отредактировал TBDxCLOUD - Четверг, 01.09.2011, 14:59
|
|
|
|