PRO Mods - Forums
PRO Mods
Ваш ID: Guest
Recent messages\ Последние сообщения форума · Users list\ Список пользователей · Site search\ Поиск
  • Страница 1 из 1
  • 1
Тутор по импорта автомобиля в игру
NIXДата: Воскресенье, 2007-04-29, 21:33:28 | Номер сообщения: 1
Флудер
Группа: Trusted Member
Сообщений: 700

Награды: 1

Положение: Offline

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 happy

Переименовываем нашу вставленную папку из "копия 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 и опять же открываются блокнотом.
Кстати рекомендую сделать "Вид" -> "Таблица"

Открываем файл "Einvagen_110_GT.java"

Выделенные строки и являются названием нашего автомобиля, кузова, описания.. текст внутри кавычек можно править, например так:

Чуть ниже мы увидим вот это, комментарии на скрине.

Нам снова надо заменить "einvagen" на "krevetko" но только в тех строках, в которых ставятся кузовные панели.
Жмем "правка" -> "заменить" , остальное видно на скрине.

Сохраняемся и закрываем. Для начала у нас будет 1 модель машины, поэтому другие 110 GTK, 140 GTA мы трогать не будем.

Поэтому открываем "Einvagen_models.java" и удаляем синие строки.

Quote
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"

Теперь самое скучное - во всех исходниках надо заменить название деталей на свои, например для бампера:

Quote
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; // престиж детали
}
}

Все то же самое придется проделать для остальных деталей, если цену и престиж можно оставить прежними, то название детали стоит заменить на свое. Например вот тот же бампер после переименования.
Кстати, если кто не знает, то двойной слеш "//" отделяет комментарии, т.е. за ним можно писать что угодно.

Quote
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 такое:

Quote
!syntax error in file cars\racers\krevetko_data\scripts\fl_quarterpanel.java at line 14

То это означает, что мы ошиблись в файле FL_quarterpanel.java нашей машины, следуем по адресу и открываем этот файл, переходим на 14 строку и внимательно смотрим на нее, ошибка может возникнуть из-за любого пустяка, например вот из-за такого:

Quote
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

Я думаю не надо объяснять на что это влияет, для примера джип разрезанный пополам, угадайте на какой половине применены эти настройки smile

Допустим модель автомобиля готова. Перед экспортом детали в игру, выделите ее, зайдите в "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
находим в нем нужную нам деталь, в данном случае это

Quote
slot -0.700 0.137 -0.778 0.000 0.000 0.000 34 ; FL_quarterpanel
(строка 481)

Это слот на кузове, в который ставится переднее левое крыло.
Мы видим 3 блока цифр.

-0.700 0.137 -0.778 отвечает за положение слота по 3 осям координат x,y,z (относительно автомобиля: x - перпендикулярная ось, т.е. влево вправо, y - высота, z - продольная ось, т.е. вперед назад.

0.000 0.000 0.000 отвечает за наклон детали по 3 осям.
34 номер слота smile

В 3д максе эти оси расположены немного по-другому. (пришлось взять гольф, т.к. джип завис и не сохранился .. ЧАЩЕ ЖМИТЕ CTRL+S В МАКСЕ!)

Думаю скрин все объяснит, обратите внимание, что знак у оси X надо менять.
А так же делить эти значения на 100.

Если стандартный слот выглядил вот так:

Quote
slot -0.700 0.137 -0.778 0.000 0.000 0.000 34 ; FL_quarterpanel

То с нашим крылом он будет вот таким:

Quote
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

Вот и нужный нам слот на самой детали:

Quote
slot 0.022 0.371 0.468 0.000 0.000 0.000 34 ; FL_quarterpanel
attach 0x00000006 34 ; chassis->FL_quarterpanel

Ставим координаты на нули, вот так:

Quote
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 координатами. (надеюсь помните где он находится wink )

Начинаем с первой камеры, она же голова водителя.

Quote
camera -0.380 0.350 0.202 0.000 0.000 0.000 90.000

Надеюсь, что систему координат вы уже освоили и можете сообразить как и куда двигать. Но если ваша машина будет похожа на стандартный эйнваген, то есть шанс, что водилу и не придется трогать.

Quote
steering -0.378 0.080 -0.500 0.000 -0.454 0.000 0.01 sphere 0.1

Сюда крепится руль и соответственно руки водителя.

Quote
seat -0.375 -0.320 0.000 0.000 0.350 0.000

Сюда наш афроамериканец кладет свою попку.

Quote
pedals -0.375 -0.370 -0.610

А сюда тянет ноги к педалям.

Можно еще дописать ниже

Quote
shifter 0.000 0.000 0.000

ну координаты соответствующие, и сюда водила будет тянуть руку во время переключения передач.

Quote
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 (помним что это такое?)
Quote
;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

Далее меняем положение колес (опять же если понадобится)
Quote
# 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

вынос колеса (наружу/внутрь)
Высота колеса
Продольное положение колеса (вперед/назад)

Вместе с колесом так же меняют свое положение подвески.
Аналогично проделайте с другими колесами.

Вот и все, надеюсь ничего не забыл. Тутор по добавлению детали в игру так же есть на promods.us.
Есть еще физические модели, это те же 3д модели, детали, но которые как бы следуют по границам детали, в игре они отвечают за столкновения, т.е. определяют границы детали при столкновении. Можно и их исправить, но если ваша машина очень похожа на игровую, с которой делалась (в данном случае эйнваген) то можно оставить так, но по-хорошему надо бы и их нарисовать, учтите что при этом надо будет во всех скриптах сменить пути к 3д модели, т.к. они остались старыми со ссылками на эйнваген.

 
  • Страница 1 из 1
  • 1
Поиск:
Copyright PRO Mods 2005© All rights reserved