• Страница 1 из 1
  • 1
Модератор форума: hangman  
Форум » Garry's mod » Моделинг » [Tutorial] Как создать vehicle модель для garry's mod
[Tutorial] Как создать vehicle модель для garry's mod
hangmanДата: Понедельник, 02.05.2011, 01:32 | Сообщение # 1
Администратор
Группа: G-Admin
Награды: загрузка наград ...
Сообщений: 28
Награды: 1
Репутация: 666
Статус: Offline
Этот туториал расскажет, как создать свой примитивный транспорт в Hilf Life 2.
Для этого туториала, я использую программу 3DMax седьмой версии и заранее мною смоделированную модель.Я предполагаю, что у вас есть элементарные знания относительно 3д мах, а также знания, как импортировать модель в Half Life 2.

Смоделируйте свою модель, или используйте уже готовую "Car_tut.max" которая прилагается к этому туториалу. Запустите Material Editor, выбирете любую ячейку с материалом и загрузите в цвет "diffuse" текстуру "kraska.tga", которая прилагается к этому туториалу, выберите модель и назначте ей только что созданный материал, примените к модели модификатор UVW map, потом модификатор "Editable Mesh".

Дальше вам нужно создать 14 костей и связать их в иерархию.Создайте первую кость, назовите ее "Rig_Buggy.Frame" и разместите примерно так, как показано на рисунке ниже с параметрами rotate 90 0 0:

Дальше создайте вторую кость и назовите ее "Rig_Buggy.view" эту кость разместите перед рулем, где должен сидеть игрок, на уровне его глаз с параметрами rotate 0 0 -90

Дальше создайте третью кость и назовите ее "Rig_Buggy.Steer_Wheel" эту кость разместите по центру руля и с наклоном, как у руля см.рисунок:

Дальше создайте четвертую кость и назовите ее "Rig_Buggy.Wheel_FL_Turn_parent" разместите ее по центру левого переднего колеса, как показано на рисунке ниже с параметрами rotate 0 0 0

дальше создайте пятую кость, назовите ее "Rig_Buggy.Wheel_FL_Rotate" и разместите ее по центру левого переднего колеса так, чтобы кость находилась внутри колеса с параметром rotate 0 0 180

Дальше в окне вид сверху выделите кости "Rig_Buggy.Wheel_FL_Turn_parent" и "Rig_Buggy.Wheel_FL_Rotate" и отразите их инструментом Mirror по оси X, с копированием костей и передвиньте только что клонированные кости, к правому переднему колесу и переименуйте их так "Rig_Buggy.Wheel_FR_Turn_parent" и "Rig_Buggy.Wheel_FR_Rotate"

Дальше создайте четыре кости для задних колес также, как создавали ранее, для передних колес, Rig_Buggy.Axel_RR и Rig_Buggy.Wheel_RR, для заднего правого колеса, кость с именем Rig_Buggy.Wheel_RR должна находится внутри колеса с параметром rotate 0 0 0 и Rig_Buggy.Axel_RL, Rig_Buggy.Wheel_RL, для заднего левого колеса, Rig_Buggy.Wheel_RL должна находится внутри колеса с параметром rotate 0 0 180

Теперь соединим кости в иерархию.Выделите кость Rig_Buggy.Wheel_FR_Rotate нажмите кнопку select and link и свяжите ее с костью Rig_Buggy.Wheel_FR_Turn_parent, потм выделите кость Rig_Buggy.Wheel_FL_Rotate свяжите ее с костью Rig_Buggy.Wheel_FL_Turn_parent, дальше выделите кость Rig_Buggy.Wheel_RR и свяжите ее с костью Rig_Buggy.Axel_RR, дальше выделите кость Rig_Buggy.Wheel_RL и свяжите ее с костью Rig_Buggy.Axel_RL, дальше выделите кости Rig_Buggy.Wheel_FR_Turn_parent, Rig_Buggy.Wheel_FL_Turn_parent, Rig_Buggy.Axel_RR, Rig_Buggy.Axel_RL, Rig_Buggy.view, Rig_Buggy.Steer_Wheel и свяжите их с костью Rig_Buggy.Frame все, вы создали иерархию из костей.Теперь нужно создать еще три независимые кости.Создайте кость с названием Rig_Buggy.exit1 и разместите ее с левой стороны машины, на высоту примерно с половину роста игрока с параметром rotate 0 0 -90

Теперь создайте кость с именем Rig_Buggy.enter1, разместите ее также, как и Rig_Buggy.exit1, только сдвинув ее немного в сторону и с параметром rotate 0 0 -180

.Дальше создайте последнею кость Rig_Buggy.Mesh с параметром move 0 0 0 и rotate 90 0 0.Теперь выделите нашу модель и примените, к ней модификатор Skin, в закладке параметры нажмите кнопку Add вылезет окно Select Bones нажмите кнопку All и потом Select

Теперь свяжем нашу модель с костями, перетащите ползунок анимации на 50 кадр, нажмите кнопку Auto key, дальше на командной панели, в стеке модификаторов, нажмите на Editable Mesh, на закладке Selection нажмите Element, дальше в окне перспективы выделяем правое переднее колесо и перетаскиваем в сторону и остальные колеса также, руль тоже в сторону примерно так:

Теперь отожмем кнопку Auto key, мы создали анимацию, для того, чтобы было удобно присоединять к костям элементы нашей машины.Дальше в стеке модификаторов, нажмите на модификатор Skin, на закладке параметры, в группе Select, поставьте галочку напротив Vertices, дальше выделите кость Rig_Buggy.Wheel_FL_Rotate и мышкой в окне перспективы выделите левое переднее колесо, выделятся все вершины колеса, дальше на закладке параметры, в группе Weigth Properties, в Abs. Effect поставьте 1,0, все мы связали колесо и кость, дальше тоже самое проделайте, для правого переднего колеса, эта кость Rig_Buggy.Wheel_FR_Rotate, потом для заднего левого, эта кость Rig_Buggy.Wheel_RL, потом для заднего правого, эта кость Rig_Buggy.Wheel_RR, все колеса связали, теперь выделите кость Rig_Buggy.Steer_Wheel, выделите руль и в Abs. Effect поставьте 1,0, дальше выделите кость Rig_Buggy.Wheel_FL_Turn_parent выделите вершины которые показаны на рисунке ниже и в Abs. Effect поставьте 1,0

тоже самое проделайте для кости Rig_Buggy.Wheel_FR_Turn_parent с правой стороны переднего правого колеса, теперь выделите Rig_Buggy.Axel_RR у правого заднего колеса выделите вершины заднего моста с правой стороны и в Abs. Effect поставте 1,0

тоже самое проделайте с левой стороны для кости Rig_Buggy.Axel_RL, теперь выделите Rig_Buggy.Frame и выделите вершины всего корпуса модели, как показано на рисунке и в Abs. Effect поставьте 1,0

Дальше выйдите из редактирования в стеке модификаторов нажмите на Skin, передвиньте ползунок анимации на нулевой кадр, выделите все ключи и удалите их, выделите кость Rig_Buggy.Frame и подвигайте ее по сторонам, если модель полностью двигается в месте с костями, значит модель полностью связана с костями, если часть модели остается на месте исправте это.Теперь экспортируйте свою модель, как Reference под именем Car_ref.smd и сохраните ее как Car_tut.max.Теперь создадим три анимации с названиями Car_turn, Car_suspension, Car_wheelspin.Выделите модель и удалите ее, выделите кости Rig_Buggy.enter1 и Rig_Buggy.exit1 и удалите их тоже.Выделите кость Rig_Buggy.Mesh и переименуйте ее в New_Mesh.Mesh в Time Configuration в группе Animation установите start time 0 а end time 2.Перейдите в окно Top, выделите кости Rig_Buggy.Wheel_FR_Turn_parent, Rig_Buggy.Wheel_FL_Turn_parent и Rig_Buggy.Steer_Wheel передвиньте ползунок анимации на кадр 1, на ползунке щелкните правой кнопкой мыши вылезет окно Create Key, поставьте галочку напротив Rotation и нажмите ok создастся ключ анимации, дальше передвиньте ползунок на 0 кадр, в окне вид сверху выделите кость Rig_Buggy.Wheel_FR_Turn_parent, нажмите кнопку Auto Key и поверните кость на -25 градусов по оси Z создастся ключ анимации, дальше передвиньте ползунок анимации на кадр 2, поверните кость на 25 градусов по оси Z, дальше выделите кость Rig_Buggy.Wheel_FL_Turn_parent, передвиньте ползунок анимации на кадр 0, поверните кость на -25 градусов по оси Z создастся ключ, потом передвиньте ползунок на кадр 2, поверните кость на 25 градусов по оси Z создастся ключ, перейдите в окно Front, выделите кость Rig_Buggy.Steer_Wheel, передвинте ползунок анимации на кадр 0, поверните кость на 25 градусов вверх создатся ключ, передвинте ползунок на кадр 2 поверните кость на -25 градусов вниз создатся ключ, отожмите кнопку Auto Key, все мы создали первую анимацию имитирущую поворот руля и колес, экспортируйте модель как Skeletal Animation с названием Car_Turn.

Дальше передвинте ползунок анимации на кадр 1, выделите все кости и удалите все ключи анимации.Теперь создадим анимацию Car_wheelspin.Щелкаем на Time Configuration, ставим в в группе анимации Start Time 0 и End time 9 жмем ok.В окне перспективы выделите кости Rig_Buggy.Wheel_FR_Rotate и Rig_Buggy.Wheel_FL_Rotate, перейдите в окно вид сбоку слева, перетащите ползунок на кадр 1 жмем кнопку Auto Key и поворачиваем выделенные кости на 40 градусов по часовой стрелки и проделайте тоже самое в каждом кадре до девятого кадра, отожмите кнопку Avto Key, выделите ключ кадра 0 и клонируйте его в кадр 9, все для передних колес анимацию сделали, теперь для задних колес, выделите кости Rig_Buggy.Wheel_RR и Rig_Buggy.Wheel_RL и проделайте тоже самое, что для передних колес.Теперь экспортируйте модель, как Skeletal Animation с названием Car_wheelspin.

Дальше передвинте ползунок анимации на кадр 0, выделите все кости и удалите все ключи анимации. Щелкаем на Time Configuration, ставим в в группе анимации Start Time 0 и End time 2 жмем ok.Выделяем все кости, двигаем ползунок на кадр 1, щелкаем правой кнопкой мыши появится окно Create Key, ставим везде галочки жмем ok.Теперь выделяем кость Rig_Buggy.Wheel_FR_Turn_parent, жмем на командной панели закладку иерархия, жмем на кнопку Link Info и на закладке Inherit в группе Move снимем галочку с оси Z, тоже самое проделайте для кости Rig_Buggy.Wheel_FL_Turn_parent.Теперь ползунок анимации передвинте на кадр 0, выделите кость Rig_Buggy.Frame, жмем кнопку Auto Key и в окне вид спереди передвигаем кость вниз примерно так:

а в кадре 2 поднимите кость выше, примерно на такоеже растояние, как и вниз.Затем перей дите в кадр 0, выделите кость Rig_Buggy.Axel_RR и спомощью Rotate поверните кость вверх так, чтобы центр кости Rig_Buggy.Wheel_RR был по центру кости Rig_Buggy.Wheel_FR_Rotate:

дальше перейдите в кадр 2 и поверните кость Rig_Buggy.Axel_RR вниз так, чтобы центр кости Rig_Buggy.Wheel_RR был по центру кости Rig_Buggy.Wheel_FR_Rotate, тоже самое проделайте для кости Rig_Buggy.Axel_RL.Эта анимация имитерует амортизаторы колес.Экспортируйте модель, как Skeletal Animation с названием Car_ suspension.Все необходимые анимации мы сделали.Теперь создадим физбокс для модели.В меню File выберите Reset, теперь загрузите ранее сохраненый фаил Car_tut.Выделите все кости кроме Rig_Buggy.Frame и Rig_Buggy.Mesh и удалите их, в стеке модификаторов нажмите Editable Mesh > Element выделите все колеса и удалите их, группы сглаживания на каждый элимент должны быть разные.и незабудьте удалите все ключи анимации.Дальше в стеке модификаторов нажмите на Skin, выделите кость Rig_Buggy.Frame, выделите всю модель и в Abs. Effect поставте 1,0.

Экспортируйте модель как Reference c именем Car_Phy.

Теперь с помощью блокнота создайте файл с именем Car_tut.qc и запишите следущие:

$modelname buggy.mdl

$cdmaterials models/buggy

$origin 0 0 0 90

$scale 1.0

$body "Body" "Car_Ref.smd"

$surfaceprop "metal"

$noforcedfade

$include "Car_shared.qci"

Дальше создайте еще один фаил с именем Car_shared.qci и запишите следущие:

//----- KeyValues -----

$keyvalues
{
"vehicle_exit"
{
// Entries are: Key = exit animation, Value = "upright" or "upsidedown"
"exit1" "upright"
}
}

//----- Attachments -----
$attachment wheel_fl "Rig_Buggy.Wheel_FL_Rotate" 0 0 0
$attachment wheel_fr "Rig_Buggy.Wheel_FR_Rotate" 0 0 0
$attachment wheel_rl "Rig_Buggy.Wheel_RL" 0 0 0
$attachment wheel_rr "Rig_Buggy.Wheel_RR" 0 0 0
//Это глаза нашего игрока их положение регулируется в Model Viewer
$attachment "vehicle_driver_eyes" "Rig_Buggy.view" 5.00 0.00 -6.00 rotate 0 0 0
$attachment vehicle_feet_passenger0 "Rig_Buggy.view" 0 0 -32
//двигатель модели регулируется положение в Model Viewer
$attachment "vehicle_engine" "Rig_Buggy.Frame" 0.00 0.00 -40.00 rigid
//Выход из модели положение регулируется в Model Viewer
$attachment "exit1" "Rig_Buggy.Frame" 60.00 23.00 28.00 rotate -90 -90 0 rigid
//Вход положение регулируется в Model Viewer
$attachment "enter1" "Rig_Buggy.Frame" 60.00 23.00 10.00 rotate 0 -180 90 rigid
$attachment "beam_damage" "Rig_Buggy.Frame" 17.00 20.00 49.00 rotate 0 0 0rigid

//----- Pose Parameters -----

$poseparameter "vehicle_guage" 0 1
$poseparameter "vehicle_steer" -1 1
$poseparameter "vehicle_wheel_fl_height" 0 1
$poseparameter "vehicle_wheel_fr_height" 0 1
$poseparameter "vehicle_wheel_rl_height" 0 1
$poseparameter "vehicle_wheel_rr_height" 0 1

$poseparameter "vehicle_wheel_fl_spin" -180 180 wrap
$poseparameter "vehicle_wheel_fr_spin" -180 180 wrap
$poseparameter "vehicle_wheel_rl_spin" -180 180 wrap
$poseparameter "vehicle_wheel_rr_spin" -180 180 wrap

// --------- Animation sequences -------

$sequence "idle" "Car_Ref" fps 30 ACT_IDLE 1 //addlayer aim_all
$sequence "turn" "Car_turn" fps 30
$sequence "suspension" "Car_suspension" fps 30
$sequence "spin" "Car_wheelspin" fps 30

$animation neutral "Car_Ref" frames 0 0

// front steering sequence
$weightlist front_wheels { "Rig_Buggy.Wheel_FL_Turn_parent" 1.0 "Rig_Buggy.Wheel_FR_Turn_parent" 1.0 "Rig_Buggy.Steer_Wheel" 1.0 }
$animation turn_left "Car_turn" frame 0 0 subtract neutral 0 weightlist front_wheels
$animation turn_right "Car_turn" frame 2 2 subtract neutral 0 weightlist front_wheels
$sequence turning { turn_left turn_right blend vehicle_steer -1 1 } weightlist front_wheels delta autoplay

// front right
$weightlist wheel_fr { "Rig_Buggy.Wheel_FR_Turn_parent" 1.0 }
$animation wheel_fr_low "Car_suspension" frame 0 0 subtract neutral 0 weightlist wheel_fr
$animation wheel_fr_high "Car_suspension" frame 2 2 subtract neutral 0 weightlist wheel_fr
$sequence wheel_fr_suspension { wheel_fr_low wheel_fr_high blend "vehicle_wheel_fr_height" 0 1.0 } weightlist wheel_fr delta autoplay

$weightlist wheel_fr_spin { "Rig_Buggy.Wheel_FR_Rotate" 1.0 }
$animation wheel_fr_spin0 "Car_wheelspin" frame 0 0 subtract neutral 0 weightlist wheel_fr_spin
$animation wheel_fr_spin120 "Car_wheelspin" frame 3 3 subtract neutral 0 weightlist wheel_fr_spin
$animation wheel_fr_spin240 "Car_wheelspin" frame 6 6 subtract neutral 0 weightlist wheel_fr_spin
$sequence wheel_fr_spin { wheel_fr_spin0 wheel_fr_spin120 wheel_fr_spin240 wheel_fr_spin0 blendwidth 4 blend "vehicle_wheel_fr_spin" -180 180 } weightlist wheel_fr_spin delta autoplay

// front left
$weightlist wheel_fl { "Rig_Buggy.Wheel_FL_Turn_parent" 1.0 }
$animation wheel_fl_low "Car_suspension" frame 0 0 subtract neutral 0 weightlist wheel_fl
$animation wheel_fl_high "Car_suspension" frame 2 2 subtract neutral 0 weightlist wheel_fl
$sequence wheel_fl_suspension { wheel_fl_low wheel_fl_high blend "vehicle_wheel_fl_height" 0 1.0 } weightlist wheel_fl delta autoplay

$weightlist wheel_fl_spin { "Rig_Buggy.Wheel_FL_Rotate" 1.0 }
$animation wheel_fl_spin0 "Car_wheelspin" frame 0 0 subtract neutral 0 weightlist wheel_fl_spin
$animation wheel_fl_spin120 "Car_wheelspin" frame 3 3 subtract neutral 0 weightlist wheel_fl_spin
$animation wheel_fl_spin240 "Car_wheelspin" frame 6 6 subtract neutral 0 weightlist wheel_fl_spin
$sequence wheel_fl_spin { wheel_fl_spin0 wheel_fl_spin120 wheel_fl_spin240 wheel_fl_spin0 blendwidth 4 blend "vehicle_wheel_fl_spin" -180 180 } weightlist wheel_fl_spin delta autoplay

// rear right
$weightlist wheel_rr { "Rig_Buggy.Axel_RR" 1.0 "Rig_Buggy.Wheel_RR" 0.0 }
$animation wheel_rr_low "Car_suspension" frame 0 0 subtract neutral 0 weightlist wheel_rr
$animation wheel_rr_high "Car_suspension" frame 2 2 subtract neutral 0 weightlist wheel_rr
$sequence wheel_rr_suspension { wheel_rr_low wheel_rr_high blend "vehicle_wheel_rr_height" 0 1.0 } weightlist wheel_rr delta autoplay

$weightlist wheel_rr_spin { "Rig_Buggy.Wheel_RR" 1.0 }
$animation wheel_rr_spin0 "Car_wheelspin" frame 0 0 subtract neutral 0 weightlist wheel_rr_spin
$animation wheel_rr_spin120 "Car_wheelspin" frame 3 3 subtract neutral 0 weightlist wheel_rr_spin
$animation wheel_rr_spin240 "Car_wheelspin" frame 6 6 subtract neutral 0 weightlist wheel_rr_spin
$sequence wheel_rr_spin { wheel_rr_spin0 wheel_rr_spin120 wheel_rr_spin240 wheel_rr_spin0 blendwidth 4 blend "vehicle_wheel_rr_spin" -180 180 } weightlist wheel_rr_spin delta autoplay

// rear left
$weightlist wheel_rl { "Rig_Buggy.Axel_RL" 1.0 "Rig_Buggy.Wheel_RL" 0.0 }
$animation wheel_rl_low "Car_suspension" frame 0 0 subtract neutral 0 weightlist wheel_rl
$animation wheel_rl_high "Car_suspension" frame 2 2 subtract neutral 0 weightlist wheel_rl
$sequence wheel_rl_suspension { wheel_rl_low wheel_rl_high blend "vehicle_wheel_rl_height" 0 1.0 } weightlist wheel_rl delta autoplay

//$weightlist wheel_rl { "Rig_Buggy.Wheel_RL" 0.0 }
//$animation wheel_rl_low "Car_suspension" frame 0 0 subtract neutral 0 weightlist wheel_rl
//$animation wheel_rl_high "Car_suspension" frame 2 2 subtract neutral 0 weightlist wheel_rl
//$sequence wheel_rl_suspension { wheel_rl_low wheel_rl_high blend "vehicle_wheel_rl_height" 0 1.0 } weightlist wheel_rl delta autoplay

$weightlist wheel_rl_spin { "Rig_Buggy.Wheel_RL" 1.0 }
$animation wheel_rl_spin0 "Car_wheelspin" frame 0 0 subtract neutral 0 weightlist wheel_rl_spin
$animation wheel_rl_spin120 "Car_wheelspin" frame 3 3 subtract neutral 0 weightlist wheel_rl_spin
$animation wheel_rl_spin240 "Car_wheelspin" frame 6 6 subtract neutral 0 weightlist wheel_rl_spin
$sequence wheel_rl_spin { wheel_rl_spin0 wheel_rl_spin120 wheel_rl_spin240 wheel_rl_spin0 blendwidth 4 blend "vehicle_wheel_rl_spin" -180 180 } weightlist wheel_rl_spin delta autoplay

//----- Physbox -----

$collisionmodel "Car_phy.smd" {
// Mass in kilograms
$Mass 800
$concave
}

Теперь скомпилируйте модель под именем buggy.mdl и текстуру под именем kraska.vtf.Текстур положите сюда: [ваш мод]\materials\Models\Buggy а модель здесь:[ваш мод]\Models.Вобще имя модели может быть и другим.На вашу карту модель добовляется в Hammer через Object Properties закладка ClassInfo>Class> prop_vehicle_jeep

Готовую модель и остальные вещи к туториалу качать здесь


FAQ(Часть 1)
FAQ(Часть 2)
FAQ(Часть 3)
Видео
Форум
 
Форум » Garry's mod » Моделинг » [Tutorial] Как создать vehicle модель для garry's mod
  • Страница 1 из 1
  • 1
Поиск: