Визуальные эффекты в скриптинге
Материал из GTAModding.ru
Версия от 20:39, 23 августа 2011; DK22 (обсуждение | вклад)
В серии игр GTA визуальные эффекты реализуются при помощи систем частиц (particles). В этой статье мы рассмотрим не только системы частиц, но и другие 2dfx эффекты.
Содержание |
GTA 3
Короны
№ | Описание | Скриншот |
---|---|---|
0 | Круглый свет | ![]() |
1 | Круглый свет (менее яркий) | ![]() |
2 | Луна | ![]() |
3 | Шероховатый продолговатый свет | ![]() |
4 | Удлинённый в ширину свет | ![]() |
5 | Восьмиугольник | ![]() |
6 | Круг | ![]() |
7 | Кольцо | ![]() |
8 | Длинная полоса света | ![]() |
Vice City
Системы частиц
0437: scatter_particle 1 size 0.52 at 772.2785 -268.6476 10.3203 speed_XYZ 0.0 0.0 0.0
Создаёт одну (или несколько) частиц, нужно применять в цикле.
- scatter_particle 1 - номер частицы (перечислены в таблице ниже)
- size 0.52 - размер частиц
- at 772.2785 -268.6476 10.3203 - координаты
- speed_XYZ 0.0 0.0 0.0 - проекции скорости по осям
№ | Название в particle.cfg | Описание | Рисунок |
---|---|---|---|
0 | SPARK | Жёлтые искры | ![]() |
1 | SPARK_SMALL | Белые короткие искры | ![]() |
2 | WATER_SPARK | Блеск воды | ![]() |
3 | WHEEL_DIRT | Кусочки земли, как при езде по земле | ![]() |
4 | SAND | Песок | ![]() |
5 | WHEEL_WATER | Капли воды | ![]() |
6 | BLOOD | Светлая кровь | ![]() |
7 | BLOOD_SMALL | Тёмная кровь | ![]() |
8 | BLOOD_SPURT | Струя крови | ![]() |
9 | DEBRIS | Листья | ![]() |
10 | DEBRIS2 | Больше обломков | ![]() |
11 | FLYERS | Газеты | ![]() |
12 | WATER | Пар? | ![]() |
13 | FLAME | Огонь | ![]() |
14 | FIREBALL | Огненный шар | ![]() |
15 | GUNFLASH | Вспышка оружия | ![]() |
16 | GUNFLASH_NOANIM | Тусклая вспышка оружия | ![]() |
17 | GUNSMOKE | Линия? | ![]() |
18 | GUNSMOKE2 | Дым от оружия | ![]() |
19 | CIGARETTE_SMOKE | Сигаретный дым | ![]() |
20 | SMOKE | Белый дым | ![]() |
21 | SMOKE_SLOWMOTION | Белый медленный дым | ![]() |
22 | DRY_ICE | ![]() | |
23 | TEARGAS | ![]() | |
24 | GARAGEPAINT_SPRAY | ![]() | |
25 | SHARD | ![]() | |
26 | SPLASH | ![]() | |
27 | CARFLAME | ![]() | |
28 | STEAM | ![]() | |
29 | STEAM2 | Закручивающийся пар | ![]() |
30 | STEAM_NY | ![]() | |
31 | STEAM_NY_SLOWMOTION | ![]() | |
32 | GROUND_STEAM | ![]() | |
33 | ENGINE_STEAM | ![]() | |
34 | RAINDROP | ![]() | |
35 | RAINDROP_SMALL | ![]() | |
36 | RAIN_SPLASH | ![]() | |
37 | RAIN_SPLASH_BIGGROW | ![]() | |
38 | RAIN_SPLASHUP | ![]() | |
39 | WATERSPRAY | ![]() | |
40 | WATERDROP | ![]() | |
41 | BLOODDROP | 184px | |
42 | EXPLOSION_MEDIUM | ![]() | |
43 | EXPLOSION_LARGE | ![]() | |
44 | EXPLOSION_MFAST | ![]() | |
45 | EXPLOSION_LFAST | ![]() | |
46 | CAR_SPLASH | ![]() | |
47 | BOAT_SPLASH | ![]() | |
48 | BOAT_THRUSTJET | ![]() | |
49 | WATER_HYDRANT | 184px | |
50 | WATER_CANNON | ![]() | |
51 | EXTINGUISH_STEAM | ![]() | |
52 | PED_SPLASH | ![]() | |
53 | PEDFOOT_DUST | ![]() | |
54 | CAR_DUST | ![]() | |
55 | HELI_DUST | ![]() | |
56 | HELI_ATTACK | 184px | |
57 | ENGINE_SMOKE | ![]() | |
58 | ENGINE_SMOKE2 | ![]() | |
59 | CARFLAME_SMOKE | ![]() | |
60 | FIREBALL_SMOKE | ![]() | |
61 | PAINT_SMOKE | ![]() | |
62 | TREE_LEAVES | ![]() | |
63 | CARCOLLISION_DUST | ![]() | |
64 | CAR_DEBRIS | ![]() | |
65 | BIRD_DEBRIS | ![]() | |
66 | HELI_DEBRIS | ![]() | |
67 | EXHAUST_FUMES | ![]() | |
68 | RUBBER_SMOKE | ![]() | |
69 | BURNINGRUBBER_SMOKE | ![]() | |
70 | BULLETHIT_SMOKE | ![]() | |
71 | GUNSHELL_FIRST | ![]() | |
72 | GUNSHELL | ![]() | |
73 | GUNSHELL_BUMP1 | ![]() | |
74 | GUNSHELL_BUMP2 | ![]() | |
75 | ROCKET_SMOKE | ![]() | |
76 | TEST | ![]() | |
77 | BIRD_FRONT | ![]() | |
78 | SHIP_SIDE | 184px | |
79 | BEASTIE | 184px | |
80 | RAINDROP_2D | 184px | |
81 | HEATHAZE | 184px | |
82 | HEATHAZE_IN_DIST | 184px | |
83-87 | Нет | 184px |
San Andreas
Системы частиц
В San Andreas система цастиц создаётся опкодом:
064B: 0@ = create_particle "prt_gunshell" at 1557.162 24.305 22.7313 type 1
- 0@ - переменная, в которую сохранится хендл системы частиц
- "prt_gunshell" - название создаваемой системы частиц (перечислены далее)
- at 1557.162 24.305 22.7313 - координаты
- type 1 - какой-то тип, я не понял.
Также можно создать систему частиц на актёре, объекте, машине; с вращением и без:
0669: 55@ = create_attached_particle "EXHALE" on_actor $ACTOR_RYDER with_offset 90@ 91@ 92@ flag 1 066A: 137@ = create_attached_particle "PETROLCAN" on_actor 71@ with_offset 0.0 0.116 0.048 rotation 95@ 96@ 97@ flag 1 066B: 280@ = create_attached_particle "PRT_SPARK" on_car 152@ with_offset -1.69 3.607 -0.271 flag 1 066C: 179@ = create_attached_particle "CEMENT" on_car 90@ with_offset 0.0 -4.4 0.0 rotation 0.0 -1.0 0.0 flag 1 066D: 100@ = create_attached_particle "SMOKE_FLARE" on_object 94@ with_offset 0.0 0.0 0.1 flag 1 066E: create_attached_particle "COKE_TRAIL" on_object 22@ with_offset 0.0 -0.2 -0.1 rotation 0.0 0.0 -1.0 flag 1 handle_as 20@
При создании мы создаём только объект системы частиц, что бы воспроизвести эффект, нужно применить опкод:
064C: play_particle 0@
- 0@ - хендл системы частиц
Что бы остановить, нужно применить опкод:
064E: stop_particle 0@
Ещё есть команда прицепления ситемы частиц на позвонок актёра:
0883: attach_particle 0@ to_actor $ACTOR_RYDER mode 5
- attach_particle 0@
- to_actor $ACTOR_RYDER - хендл актёра
- mode 5 - режим, чем меньше, тем ниже, чем больше, тем выше
Например, этот код создаёт дым у рта актёра:
0669: 0@ = create_attached_particle "EXHALE" on_actor $PLAYER_ACTOR with_offset 0.05 0.12 0.0 flag 1
0883: attach_particle 0@ to_actor $PLAYER_ACTOR mode 5
064C: make_particle 0@ visible
Уничтожение системы частиц:
0650: destroy_particle 177@
Освободить хендл particl'ей можно этой командой (когда игрок отвернётся, игра удалит систему частиц):
064F: remove_references_to_particle 167@
Название | Описание | Цикл | Звук | Скриншот |
---|---|---|---|---|
prt_blood | Фонтан крови. Серой. | Цикл | Нет | ![]() |
prt_boatsplash | Пена от лодки | Цикл | Нет | ![]() |
prt_bubble | Пузыри. Видны только под водой. | Цикл | Нет | ![]() |
prt_cardebris | Огромные серые осколки коробки | Цикл | Нет | ![]() |
prt_collisionsmoke | Плотный белый стоячий дым | Цикл | Нет | ![]() |
prt_glass | Огромные осколки | Цикл | Нет | ![]() |
prt_gunshell | Гильзы | Цикл | Нет | ![]() |
prt_sand | Пыль плотная | Цикл | Нет | ![]() |
prt_sand2 | Пыль плотная побольше | Цикл | Нет | ![]() |
prt_smokeII_3_expand | Серый дым | Цикл | Нет | ![]() |
prt_smoke_huge | Серый дым побольше | Цикл | Нет | ![]() |
prt_spark | Искры | Цикл | Нет | ![]() |
prt_spark_2 | Большие искры | Цикл | Нет | ![]() |
prt_splash | Всплеск воды | Цикл | Нет | ![]() |
prt_wake | Волна от плывущего человека | Нет цикла | Нет | ![]() |
prt_watersplash | Всплеск капель воды | Цикл | Нет | ![]() |
prt_wheeldirt | Пыль от колёс | Цикл | Нет | ![]() |
boat_prop | Распыляющиеся капли воды от лодки | Цикл | Нет | ![]() |
camflash | Вспышка фотокамеры | Нет цикла | Нет | ![]() |
exhale | Дымок | Нет цикла | Нет | ![]() |
explosion_fuel_car | Вспышка взрыва топлива | Нет цикла | Нет | ![]() |
explosion_large | Большой взрыв | Нет цикла | Нет | ![]() |
explosion_medium | Средний взрыв | Нет цикла | Нет | ![]() |
explosion_molotov | Взрыв от коктейля Молотова | Нет цикла | Нет | ![]() |
explosion_small | Малый взрыв | Нет цикла | Нет | ![]() |
explosion_tiny | Очень маленький взрыв | Нет цикла | Нет | ![]() |
extinguisher | Пена огнетушителя | Цикл | Нет | ![]() |
fire | Огонь | Цикл | Есть | ![]() |
fire_bike | Огонь с дымом (от мотоцикла) | Цикл | Есть | ![]() |
fire_car | Огонь с дымом побольше (от машины) | Цикл | Есть | ![]() |
fire_large | Большой огонь | Цикл | Есть | ![]() |
fire_med | Средний огонь | Цикл | Есть | ![]() |
flamethrower | Огонь | Цикл | Нет | ![]() |
gunflash | Вспышка вылетевших пуль | Нет цикла | Нет | ![]() |
gunsmoke | Дым от ствола (пистолета) | Нет цикла | Нет | ![]() |
heli_dust | Клубы пыли на земле, как от вертолёта | Цикл | Нет | ![]() |
jetpack | Оранджево-синий огонь от сопел джетпака | Цикл | Нет | ![]() |
jetthrust | Огонь от сопел реактивного самолёта | Цикл | Нет | ![]() |
molotov_flame | Огонёк от коктейля Молотова | Цикл | Нет | ![]() |
nitro | Нитро | Цикл | Нет | ![]() |
overheat_car | Чёрно-белый дым от машины | Цикл | Нет | ![]() |
overheat_car_electric | Чёрно-белый дым с искрами от электрической машины | Цикл | Нет | ![]() |
riot_smoke | Черный дым. Грубый, но поднимается высоко. | Нет цикла | Нет | ![]() |
spraycan | Спрей (зелёная краска) | Цикл | Нет | ![]() |
tank_fire | Выстрел танка | Нет цикла | Нет | ![]() |
teargas | Серый круглый малый дым | Цикл | Нет | ![]() |
teargasAD | Слезоточивый газ | Цикл | Нет | ![]() |
water_hydrant | Вода из сломанного водоразборного крана | Нет цикла | Есть | ![]() |
water_ripples | Круги на воде | Цикл | Нет | ![]() |
water_speed | Очень большой (по сравнению с последующими) настоящий всплеск воды | Нет цикла | Нет | ![]() |
water_splash | Средние брызги от всплеска | Нет цикла | Нет | ![]() |
water_splash_big | Большие брызги от всплеска | Нет цикла | Нет | ![]() |
water_splsh_sml | Маленькие брызги от всплеска | Нет цикла | Нет | ![]() |
water_swim | Всплеск воды | Нет цикла | Нет | ![]() |
cigarette_smoke | Дым от сигареты | Цикл | Нет | ![]() |
Flame | Огонёк | Цикл | Нет | Система частиц "Flame" |
insects | Насекомые | Цикл | Нет | ![]() |
smoke30lit | Серо-белый уходящий вверх и расширяющийся дым | Цикл | Нет | ![]() |
smoke30m | Чёрно-серый уходящий вверх дым | Цикл | Нет | ![]() |
smoke50lit | Серо-белый уходящий ещё выше дым | Цикл | Нет | ![]() |
vent | Дымок из трубы | Цикл | Нет | ![]() |
vent2 | Дымок из трубы побольше | Цикл | Нет | ![]() |
waterfall_end | Пар от каскада водопадов | Цикл | Нет | ![]() |
water_fnt_tme | Фонтан регулярно вкл/выкл (как гейзер "Regular Tom") | Цикл | Есть | ![]() |
water_fountain | Фонтан | Цикл | Есть | ![]() |
tree_hit_fir | "Листья" дерева | Нет цикла | Нет | ![]() |
tree_hit_palm | Несколько пальмовых листов | Нет цикла | Нет | ![]() |
blood_heli | Кровавый взрыв (Как во когда время миссии "Return the Families" копа разморошили лопастями вертолёта) | Нет цикла | Нет | ![]() |
carwashspray | Много пара (от автомойки) | Цикл | Нет | ![]() |
cement | Выливающийся цемент | Цикл | Нет | ![]() |
cloudfast | Быстрые облака, как в миссии "Stowaway" | Цикл | Нет | ![]() |
coke_puff | Вспышка пара (регулярно) | Цикл | Нет | ![]() |
coke_trail | Выливается кокс | Цикл | Нет | ![]() |
explosion_barrel | Сломался ящик (осколки вверх) | Нет цикла | Нет | ![]() |
explosion_crate | Сломался ящик (осколки во все стороны) | Нет цикла | Нет | ![]() |
explosion_door | Резкая маленькая вспышка взрыва и рассеивающийся дым | Нет цикла | Нет | ![]() |
petrolcan | Струя, использовалась R* как струя мочи | Цикл | Нет | ![]() |
puke | Рвота | Нет цикла | Нет | ![]() |
shootlight | Осколки, искры и дымок от разбитого прожектора | Нет цикла | Нет | ![]() |
smoke_flare | Яркий сигнальный огонь со светящимся красным дымом | Цикл | Нет | ![]() |
wallbust | Появляющиеся и быстро оседающие клубы пыли (как от сломанной стены в миссии End Of The Line) | Нет цикла | Нет | ![]() |
WS_factorysmoke | Фабричный желтоватый дым | Нет цикла | Нет | ![]() |
Короны
024F: create_corona_with_radius 0.2 type 2 lensflares 0 with_color 255 0 0 at 2112.607 2422.873 59.8223
Создаёт корону. Нужно исполнять эту команду в цикле.
- _with_radius 0.2 - радиус короны
- type 2 - вид короны (перечислены далее)
- lensflares 0 - Определяет нечто вроде гало (перечислены далее)
- with_color 255 0 0 - цвет в формате RGB
- at 2112.607 2422.873 59.8223 - координаты
№ | Описание | Скриншот |
---|---|---|
1 | Круглый свет | ![]() |
2 | Луна | ![]() |
3 | Шероховатый продолговатый свет | ![]() |
4 | Удлинённый в ширину свет | ![]() |
5-8 | Нет? | |
9 | Кольцо | ![]() |
Типы lensflares:
№ | Описание | Скриншот |
---|---|---|
0 | Нет lensflares | ![]() |
1 | Размытые жёлтые и красные | ![]() |
2 | Чёткие, цвета короны | ![]() |
Проекции
Это тоже 2d-эффекты. Я назвал их например проекциями, но это не очень удачное название.
С помощью этой команды можно создать тень, пятно крови на земле, световой круг на земле и т.д.
016F: create_particle 2 rotation_factor 0.0 size 1.0 intensity 150 color_RGB 0 0 0 at 2112.607 2422.873 59.8223
- create_particle 2 - тип проекции
- rotation_factor 0.0 - вращение в градусах
- size 1.0 - размер
- intensity 150 - интенсивность (альфа-канал)
- color_RGB 0 0 0 - цвет в формате RGB (не действует на тени, а у крови меняется только красный канал)
- at 2112.607 2422.873 59.8223
№ | Описание | Скриншот |
---|---|---|
1 | Квадратная тень | ![]() |
2 | Круглая тень | ![]() |
3 | Круглый свет | ![]() |
4 | Тень в форме рыбки (от вертолёта) | ![]() |
5 | Свет от фар машины | ![]() |
6 | Пятно крови | ![]() |