Створюємо свій автомобіль для ARMA 3 (Частина 1)

Посібник, у кількох частинах, зі створення свого автомобіля для ARMA 3 в Object Builder. Стаття написана проектом, присвяченим моддингу в ARMA 3 — armatools.info

Отже, припустимо у вас є поки що статична модель автомобіля. Я вибрав Скорпіона з гри FlatOut, якого завантажив на просторах інтернету

автомобіль

Якщо наголошувати на якості - то я раджу насамперед, поки немає текстур перевірити чи правильно згладжена ваша модель. Закруглені місця повинні мати згладжені грані, прямі гострі грані. .3DS формат ламає згладжування на моделі, тому я рекомендую для складних об'єктів імпортувати в оксиген у форматі.FBX. Але іноді все одно бувають косяки, які краще поправити ручками, як ось тут:

автомобіль

Видно, що на місці номера має бути поглиблення, але його їли помітно, і лише темні трикутники виділяються. Потрібно це виправити. Виділяю місце під номер і прибираю згладжування(U) :

arma

Виглядає вже краще. І так далі ... Звичайно робити це зовсім не обов'язково, але на світлих ділянках моделі виділятимуться полігони, що говорить про не якісну роботу.

Іноді трапляється ось так:

свій

Це буває, коли намагаєшся згладити «двосторонні» полігони. На моїй моделі скла мають полігони як зовні машини, так і з середини із загальними точками, але на нульовому ЛОДі, де салон не видно, ці полігони зовсім не потрібні. Тому я їх виділив і видалив, після чого згладжування застосовувалося нормально:

arma

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

Почнемо з виділення селекшенів у нульовому ЛОДі, необхідні для роботи підвіски та керма:

Виділяємокермо і називаємо йогоdrivewheel

Колеса. Опишу Важливі селешні:

wheel_hide - вказуємо саме колесо. Якщо у вашій моделі видно гальмівні диски - можна їх включити в цей селектив, щоб диски крутилися разом з колесом.

wheel_steering — частини підвіски які не крутяться з колесами, але на нього впливає підвіска та поворот керма. Тобто. якщо у вашої моделі є гальмівний супорт або маточина колеса - можна включити їх у цей селектив, щоб ці частини реагували на поворот керма.

wheel_damper — на цей селектив впливає тільки хід підвіски. Їм можна зробити наприклад задні амортизатори ресори.

ВАЖЛИВО! Колеса вказуються від лівого переднього до заднього лівого, потім праве переднє до правого заднього, тобто:

wheel_1_1_… — переднє ліве, wheel_1_2_… — заднє ліве

wheel_2_1_… - переднє праве, wheel_2_2_... - заднє праве.

На моїй моделі немає жодних видимих ​​частин підвіски, тому я обійшовся тільки селекшенами …_hide

свій

З основними селекшенами в нульовому ЛОДі все, повернемося до них коли додаватимемо машині пошкодження, фари, кольори і т.д.

Крім основного ЛОДа нам потрібен ЛОД, який включається коли гравець сидить у машині з виглядом від першої особи.

Створюємо ЛОДView Cargo і копіюємо туди ті частини авто, які водій/пасажир бачитимуть зі своїх місць. Не варто копіювати всю машину цілком, адже, наприклад, нижню частину авто, колеса або дах гравець все одно не побачить, а гру навантажувати зайвий раз ні до чого.

Із селекшенів нам поки що буде потрібно тільки кермо:

свій

Тепер нам потрібно «посадити» водія та пасажирів по місцях. Для цього нам знадобиться розпакована ПБОшка шляхомP:\A3\data_f\proxies

Створюємопроксі водія, вибираючи відповідного під ваше авто (driver_low01 - низька посадка - підходить для спорткарів,driver_mid01 -середня - для звичайних авто,driver_high01 - висока посадка.) та пасажира -passenger_low01, і т.д.

Як змусити водія обхопити кермо руками?

Якщо вмієте робити анімації, то можна зробити індивідуальну для своєї машини, щоб і кермо тримало, і ноги на педалях були :), але в нас поки тільки такий спосіб:

У в'юпорті ховаємо все, крім керма/сидушки/підлоги/стелі (щоб бульдозер швидше оновлювався), запускаємо бульдозер, згортаємо його, і рухаємо проксю так, щоб руки водія лягли на кермо, попутно перемикаючись альт-табом у бульдозер. Якщо кермо більше або менше охоплення рук, відповідно зменшити/збільшити кермо.

створюємо

Після того, як посадили всіх як треба, проксі обов'язково копіюємо в нульовий ЛОД.

Тепер створюємоЛОД memory і ставимо потрібні точки осей коліс, керма, точки посадки\висадки, підвіску.

doplnovani - ставимо крапку біля багажника. Підходячи до цієї точки, ми можемо заглянути в інвентар авто.

drivewheel_axis - вісь повороту керма

exhaust1_dir\exhaust1_pos - точки позиції та напрямки виходу вихлопних газів. Якщо труби дві і більше, треба додавати крапкиexhaust2_dir\ exhaust2_pos

pos cargo \ pos cargo dir

pos driver \ pos driver dir - 4 точки які визначають де виявиться водій \ пасажир при виході з машини, і в яку сторону буде повернутий.

pos_cargo \ pos_driver ставляться за межами авто, за півметра від неї, а точки… dir — визначальний напрямок — повинні бути ближчими до машини.

створюємо

Далі ставимо крапкиposun wheel_1_1, posun wheel_1_2, posun wheel_2_1,posun wheel_2_2. Ці точки необхідні анімації ходу підвіски тобто. наскільки сильно може опуститься піднятися колесо від свого основного положення. Ставиться по 2 точки на колесо - нижні точки в центр осі колеса, верхні - трохи вище (не обов'язково вимірювати міліметри, сама відстань підвіски ходу задається в конфізі). Можна обійтися одним селекшеном posun wheel_1_1, в конфізі все одно інші успадковуються від нього, але, наприклад якщо хід підвіски у задніх коліс потрібно зробити відмінним від передніх - то поставити на кожне колесо свої точки, і додати їх в конфізі .

arma

Ставимоwheel_1_1_steering_axis іwheel_2_1_steering_axis - відповідальні за вісь повороту коліс від керма.

Не обов'язково ставити купу точок, в даному випадку можна об'єднати точки підвіски, що відповідають за хід, з віссю повороту коліс - тобто. на 2-х точках 2-а селекшена

свій

Ставимо по 2 крапки по центру кожного колеса – це буде вісь обертання колеса. Називаємоwheel_1_1_axis, wheel_1_2_axis і т.д.

Далі ставимо по 2 точки на кожне колесо, тільки не по центру - а на нижній край колеса - будемо вказувати ширину коліс для слідів від шин на асфальті. Але тут кожна точка має назву, тобто. всього8 точок і 8 селекшнів.

  • Ліве переднє колесо, зовнішня точка -TrackFLL
  • Ліве переднє колесо, внутрішня точка -TrackFLR
  • Ліве заднє, зовнішня — TrackBLL
  • Ліве заднє, внутрішня -TrackBLR
  • Праве переднє, зовнішня - TrackFRR
  • Праве переднє, внутрішня -TrackFRL
  • Праве заднє, зовнішня — TrackBRR
  • Праве заднє, внутрішня -TrackBRL

створюємо

Ну і залишилося вказати ціж зовнішні точки якwheel_1_1_bound, wheel_1_2_bound і т.д. - Ці точки служать для розрахунку двигуном гри радіусу колеса (центр якого автоматично береться від точокwheel_…_…_axis ), тому розташування цих точок відносно один одного дуже важливе.

Далі створюємо ЛОДLandContact, копіюємо в нього крайні точки ... bounds (тобто по одній точці на колесо), і перейменовуємо вwheel_1_1_damper_land... і так далі

Ну все, з точками поки що всі (поки до фар не дісталися). Можна підключитиmodel.cfg і подивитися, чи крутиться кермо\колеса в бульдозері. (не забудьте замінити «YOUR_MODEL_NAME » на назву вашого .p3d файлу моделі). Якщо нічого цього не працює — перечитуємо статтю знову, відкриваємо БІСівський приклад, намагаємося розібратися.

Весь код ви можете скопіювати, натиснувши кнопку копіювання у верхньому правому куті вікна коду

Далі, обов'язковим для роботи автомобіля в грі нам є мужні ЛОДИ геометрії (колізії).

Почнемо з ЛОДУGeometry. Я сильно не морочився, скопіював колізійку з БІСівського прикладу та розтягнув за розмірами своєї машини. Тут особливої ​​ролі не грає як вона виглядає головне зробити колеса з циліндра, щоб вони не вилазили за межі основних коліс. І зробити їх селекшенами з назвоюwheel_1_1_damper, wheel_1_2_damper і т.д. щоб наші колізійні колеса працювали з підвіскою.

Ставимо масу колесам кілограм50, основної моделі приблизно1000 - це важливо - вага коліс впливає на розгін авто та інерцію, це обчислюється в конфізі.

Не забуваймо порахувати компоненти (Structure -> Find Components )

автомобіль

На скрині видно, що я скопіював проксі водія та пасажира, але за такої колізії як у мене це робити не обов'язково.

Тепер створюємоЛОД Geometry Phys. Судячи з БІСівських прикладів - у цьому ЛОДі використовується один елемент розміром з машину без коліс та іншого. Я скопіював у нього свій основний ЛОД колізії. Маса там не потрібна.

Якщо ви копіюєте назву селекшенів з цієї статті - будьте уважні, іноді, при подвійному кліку за назвою можна скопіювати пробіл, і тоді селекшен працювати не буде!