Просмотры
Визуальные эффекты в скриптинге
Материал из GTAModding.ru
В серии игр 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 | Изображение:Vc particle 41.jpg | |
| 42 | EXPLOSION_MEDIUM | ||
| 43 | EXPLOSION_LARGE | ||
| 44 | EXPLOSION_MFAST | ||
| 45 | EXPLOSION_LFAST | ||
| 46 | CAR_SPLASH | ||
| 47 | BOAT_SPLASH | ||
| 48 | BOAT_THRUSTJET | ||
| 49 | WATER_HYDRANT | Изображение:Vc particle 49.jpg | |
| 50 | WATER_CANNON | ||
| 51 | EXTINGUISH_STEAM | ||
| 52 | PED_SPLASH | ||
| 53 | PEDFOOT_DUST | ||
| 54 | CAR_DUST | ||
| 55 | HELI_DUST | ||
| 56 | HELI_ATTACK | Изображение:Vc particle 56.jpg | |
| 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 | Изображение:Vc particle 78.jpg | |
| 79 | BEASTIE | Изображение:Vc particle 79.jpg | |
| 80 | RAINDROP_2D | Изображение:Vc particle 80.jpg | |
| 81 | HEATHAZE | Изображение:Vc particle 81.jpg | |
| 82 | HEATHAZE_IN_DIST | Изображение:Vc particle 82.jpg | |
| 83-87 | Нет | Изображение:Vc particle 83-87.jpg |
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 | Огонёк | Цикл | Нет | Изображение:Sa particle Flame.jpg |
| 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 | Кольцо |
Виды бликов:
| № | Описание | Скриншот |
|---|---|---|
| 0 | Нет бликов | |
| 1 | Размытые жёлтые и красные | |
| 2 | Чёткие, цвета короны |
Проекции
Это 3D-эффект, создаваемый на горизонтальной поверхности карты.
С помощью этой команды можно создать тень, пятно крови на земле, световой круг на земле и т.д.
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 - координаты X, Y, Z
| № | Описание | Скриншот |
|---|---|---|
| 1 | Квадратная тень | |
| 2 | Круглая тень | |
| 3 | Круглый свет | |
| 4 | Тень в форме рыбки (от вертолёта) | |
| 5 | Свет от фар машины | |
| 6 | Пятно крови |
GTA 4
Короны
В GTA 4 используется только один вид корон.
Для создания короны используется команда DRAW_CORONA


