Структура модели транспорта (SA) — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
м (Повреждение компонентов)
(Модель коллизии)
Строка 220: Строка 220:
 
  +--node_dam
 
  +--node_dam
 
При обработке иерархии модели, геометрия компонентов (RpAtomic) node_ok и node_dam переходит к компоненту node, а сами компоненты (RwFrame) удаляются.
 
При обработке иерархии модели, геометрия компонентов (RpAtomic) node_ok и node_dam переходит к компоненту node, а сами компоненты (RwFrame) удаляются.
 +
=Модель коллизии=
 +
Модель коллизии транспорта хранится в .dff-файле. Она состоит из сфер и малополигонального меша. Сферы помогают определить повреждение компонентов транспорта, в то время как меш - позволяет более чётко описать поверхность транспортного средства.
 +
Компонент, за который отвечает сфера, определяется по идентификатору её материала.
 +
ID Компонент
 +
  0 Стандартный
 +
  1 Капот
 +
  2 Багажник
 +
  3 Передний бампер
 +
  4 Задний бампер
 +
  5 Левая передняя дверь
 +
  6 Прававя передняя дверь
 +
  7 Левая задняя дверь
 +
  8 Правая задняя дверь
 +
  9 Левое переднее крыло
 +
10 Правое переднее крыло
 +
19 Лобовое стекло
 +
Треугольники меша тоже имеют присвоенный материал. С помощью материала определяется часть коллизии, которая отвечает за лобовое стекло автомобиля. Обычно используются только два идентификатора материала.
 +
ID Материал        ZModeler ID
 +
45 GLASS (Стекло)  210 (255-45)
 +
63 CAR (Автомобиль) 192 (255-63)

Версия 19:14, 23 октября 2012

Содержание

Классы транспорта

Всего имеем 11 классов, 2 из них в финальной версии игры не используются.

Vehicle
   |
   +--Automobile
   |   |
   |   +--Mtruck
   |   +--Quad
   |   +--Heli
   |   +--Plane
   |   +--Trailer
   |
   +--Boat
   |
   +--Train
   |
   +--FHeli
   |
   +--FPlane
   |
   +--Bike
       |
       +--BMX

Иерархия

Флаги

Бит Имя Описание
0 IS_NOT_IN_ARRAY Компонент не сохраняется в массиве используемых игрой компонентов
1 IS_DAMAGABLE Компонент повреждается
2 IS_WHEEL Скопировать геометрию главного колеса для этого компонента
3 IS_POS_DUMMY Компонент определяет только позицию
4 IS_DOOR Компонент - дверь
5 IS_LEFT_SIDE Компонент справа
6 IS_RIGHT_SIDE Компонент слева
7 IS_FRONT_SIDE Компонент спереди
8 IS_REAR_SIDE Компонент сзади
9 IS_EXTRA Компонент - экстра
10
11 IS_WINDSCREEN Компонент - лобовое стекло
12
13 IS_REAR_DOOR Компонент - задняя дверь
14 IS_FRONT_DOOR Компонент - передняя дверь
15
16 IS_MAIN_WHEEL Копировать геометрию этого компонента для компонентов-колес
17 IS_UPGRADE Компонент - апгрейд
18
19
20 IS_BOGGIE_FRONT Копировать геометрию этого компонента для компонента задней пары колёс
21 IS_BOGGIE_REAR Скопировать геометрию передней пары колёс для этого компонента
22

Каждый класс транспорта имеет свой набор стандартных компонентов.

Automobile

Компоненты

№  Название                 Флаги
1  chassis                  -
2  wheel_rf_dummy           IS_RIGHT_SIDE, IS_MAIN_WHEEL
3  wheel_rm_dummy           IS_WHEEL, IS_RIGHT_SIDE
4  wheel_rb_dummy           IS_WHEEL, IS_RIGHT_SIDE
5  wheel_lf_dumm            IS_WHEEL, IS_LEFT_SIDE
6  wheel_lm_dummy           IS_WHEEL, IS_LEFT_SIDE
7  wheel_lb_dummy           IS_WHEEL, IS_LEFT_SIDE
8  door_rf_dummy            IS_DAMAGABLE, IS_DOOR, IS_RIGHT_SIDE, 12, IS_FRONT_DOOR, 15
9  door_rr_dummy            IS_DAMAGABLE, IS_DOOR, IS_RIGHT_SIDE, IS_REAR_SIDE, 12, IS_REAR_DOOR, 15
10 door_lf_dummy            IS_DAMAGABLE, IS_DOOR, IS_LEFT_SIDE, 12, IS_FRONT_DOOR, 15
11 door_lr_dummy            IS_DAMAGABLE, IS_DOOR, IS_LEFT_SIDE, IS_REAR_SIDE, 12, IS_REAR_DOOR, 15
12 bump_front_dummy         IS_DAMAGABLE, IS_FRONT_SIDE
13 bump_rear_dummy          IS_DAMAGABLE, IS_REAR_SIDE
14 wing_rf_dummy            IS_DAMAGABLE
15 wing_lf_dummy            IS_DAMAGABLE
16 bonnet_dummy             IS_DAMAGABLE
17 boot_dummy               IS_DAMAGABLE, IS_REAR_SIDE, 15
18 windscreen_dummy         IS_DAMAGABLE, IS_FRONT_SIDE, 10, IS_WINDSCREEN
19 exhaust_ok               IS_DAMAGABLE, IS_REAR_SIDE
20 misc_a                   -
21 misc_b                   -
22 misc_c                   -
23 misc_d                   -
24 misc_e                   -

Дамми

№  Название                 Флаги
0  headlights               IS_NOT_IN_ARRAY, IS_POS_DUMMY
1  taillights               IS_NOT_IN_ARRAY, IS_POS_DUMMY
2  headlights2              IS_NOT_IN_ARRAY, IS_POS_DUMMY
3  taillights2              IS_NOT_IN_ARRAY, IS_POS_DUMMY
4  ped_frontseat            IS_NOT_IN_ARRAY, IS_POS_DUMMY
5  ped_backseat             IS_NOT_IN_ARRAY, IS_POS_DUMMY
6  exhaust                  IS_NOT_IN_ARRAY, IS_POS_DUMMY
7  engine                   IS_NOT_IN_ARRAY, IS_POS_DUMMY
8  petrolcap                IS_NOT_IN_ARRAY, IS_POS_DUMMY
9  hookup                   IS_NOT_IN_ARRAY, IS_POS_DUMMY
10 ped_arm                  IS_NOT_IN_ARRAY, IS_POS_DUMMY
11 miscpos_c                IS_NOT_IN_ARRAY, IS_POS_DUMMY
12 miscpos_d                IS_NOT_IN_ARRAY, IS_POS_DUMMY
13 miscpos_a                IS_NOT_IN_ARRAY, IS_POS_DUMMY
14 miscpos_b                IS_NOT_IN_ARRAY, IS_POS_DUMMY

Экстры

№  Название                 Флаги
0  extra1                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra2                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra3                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra4                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra5                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra6                   IS_NOT_IN_ARRAY, IS_EXTRA, 10

Апгрейд

№  Название                 Флаги
0  ug_bonnet                IS_NOT_IN_ARRAY, IS_UPGRADE
1  ug_bonnet_left           IS_NOT_IN_ARRAY, IS_UPGRADE
2  ug_bonnet_right          IS_NOT_IN_ARRAY, IS_UPGRADE
3  ug_bonnet_dam            IS_NOT_IN_ARRAY, IS_UPGRADE
4  ug_bonnet_left_dam       IS_NOT_IN_ARRAY, IS_UPGRADE
5  ug_bonnet_right_dam      IS_NOT_IN_ARRAY, IS_UPGRADE
6  ug_spoiler               IS_NOT_IN_ARRAY, IS_UPGRADE
7  ug_spoiler_dam           IS_NOT_IN_ARRAY, IS_UPGRADE
8  ug_wing_left             IS_NOT_IN_ARRAY, IS_UPGRADE
9  ug_wing_right            IS_NOT_IN_ARRAY, IS_UPGRADE
10 ug_frontbullbar          IS_NOT_IN_ARRAY, IS_UPGRADE
11 ug_backbullbar           IS_NOT_IN_ARRAY, IS_UPGRADE
12 ug_lights                IS_NOT_IN_ARRAY, IS_UPGRADE
13 ug_lights_dam            IS_NOT_IN_ARRAY, IS_UPGRADE
14 ug_roof                  IS_NOT_IN_ARRAY, IS_UPGRADE
15 ug_nitro                 IS_NOT_IN_ARRAY, IS_UPGRADE

Boat

Компоненты

№  Название                 Флаги
1  boat_moving_hi           -                   
2  windscreen_hi_ok         10, IS_WINDSCREEN   
3  boat_rudder_hi           -                   
4  boat_flap_left           -                   
5  boat_flap_right          -                   
6  boat_rearflap_left       -                   
7  boat_rearflap_right      -                   
8  static_prop              IS_REAR_SIDE, 18    
9  moving_prop              IS_REAR_SIDE, 10, 18
10 static_prop2             IS_REAR_SIDE, 18    
11 moving_prop2             IS_REAR_SIDE, 10, 18

Дамми

№  Название                 Флаги
0  ped_frontseat            IS_NOT_IN_ARRAY, IS_POS_DUMMY

Экстры

№  Название                 Флаги
0  extra1                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra2                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra3                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra4                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra5                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra6                   IS_NOT_IN_ARRAY, IS_EXTRA, 10

Bike

Компоненты

№  Название                 Флаги
1  chassis_dummy            -
2  forks_front              -
3  forks_rear               -
4  wheel_front              -
5  wheel_rear               -
6  mudguard                 -
7  handlebars               -
8  misc_a                   -
9  misc_b                   -

Дамми

№  Название                 Флаги
0  headlights               IS_NOT_IN_ARRAY, IS_POS_DUMMY
1  taillights               IS_NOT_IN_ARRAY, IS_POS_DUMMY
2  headlights2              IS_NOT_IN_ARRAY, IS_POS_DUMMY
3  taillights2              IS_NOT_IN_ARRAY, IS_POS_DUMMY
4  ped_frontseat            IS_NOT_IN_ARRAY, IS_POS_DUMMY
5  ped_backseat             IS_NOT_IN_ARRAY, IS_POS_DUMMY
6  exhaust                  IS_NOT_IN_ARRAY, IS_POS_DUMMY
7  engine                   IS_NOT_IN_ARRAY, IS_POS_DUMMY
8  petrolcap                IS_NOT_IN_ARRAY, IS_POS_DUMMY
9  hookup                   IS_NOT_IN_ARRAY, IS_POS_DUMMY
10 bargrip                  IS_NOT_IN_ARRAY, IS_POS_DUMMY
11 miscpos_a                IS_NOT_IN_ARRAY, IS_POS_DUMMY
12 miscpos_b                IS_NOT_IN_ARRAY, IS_POS_DUMMY

Экстры

№  Название                 Флаги
0  extra1                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra2                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra3                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra4                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra5                   IS_NOT_IN_ARRAY, IS_EXTRA, 10
0  extra6                   IS_NOT_IN_ARRAY, IS_EXTRA, 10

Повреждение компонентов

Визуальное повреждение реализовано включением/отключением (флаг rpATOMICRENDER RpAtomic) целой/повреждённой версии компонента. Повреждаемый компонент заведомо содержит целую и повреждённую версии моделей. Они определяются наличием в имени суффиксов

_ok - целый компонент
_dam - повреждённый компонент

В иерархии это выглядит так:

node
|
+--node_ok
|
+--node_dam

При обработке иерархии модели, геометрия компонентов (RpAtomic) node_ok и node_dam переходит к компоненту node, а сами компоненты (RwFrame) удаляются.

Модель коллизии

Модель коллизии транспорта хранится в .dff-файле. Она состоит из сфер и малополигонального меша. Сферы помогают определить повреждение компонентов транспорта, в то время как меш - позволяет более чётко описать поверхность транспортного средства. Компонент, за который отвечает сфера, определяется по идентификатору её материала.

ID Компонент
 0 Стандартный
 1 Капот
 2 Багажник
 3 Передний бампер
 4 Задний бампер
 5 Левая передняя дверь
 6 Прававя передняя дверь
 7 Левая задняя дверь
 8 Правая задняя дверь
 9 Левое переднее крыло
10 Правое переднее крыло
19 Лобовое стекло

Треугольники меша тоже имеют присвоенный материал. С помощью материала определяется часть коллизии, которая отвечает за лобовое стекло автомобиля. Обычно используются только два идентификатора материала.

ID Материал         ZModeler ID
45 GLASS (Стекло)   210 (255-45)
63 CAR (Автомобиль) 192 (255-63)