Визуальные эффекты в скриптинге

Материал из GTAModding.ru
Перейти к: навигация, поиск

В серии игр GTA визуальные эффекты реализуются при помощи систем частиц (particles). В этой статье мы рассмотрим не только системы частиц, но и другие 2dfx эффекты.

Содержание

GTA 3

Короны

Описание Скриншот
0 Круглый свет Gta3 corona 0.jpg
1 Круглый свет (менее яркий) Gta3 corona 1.jpg
2 Луна Gta3 corona 2.jpg
3 Шероховатый продолговатый свет Gta3 corona 3.jpg
4 Удлинённый в ширину свет Gta3 corona 4.jpg
5 Восьмиугольник Gta3 corona 5.jpg
6 Круг Gta3 corona 6.jpg
7 Кольцо Gta3 corona 7.jpg
8 Длинная полоса света Gta3 corona 8.jpg

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 - проекции скорости по осям

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 - режим, чем меньше, тем ниже, чем больше, тем выше

Например, этот код создаёт дым у рта актёра:

  1. 0669: 0@ = create_attached_particle "EXHALE" on_actor $PLAYER_ACTOR with_offset 0.05 0.12 0.0 flag 1 
  2. 0883: attach_particle 0@ to_actor $PLAYER_ACTOR mode 5
  3. 064C: make_particle 0@ visible

Уничтожение системы частиц:

0650: destroy_particle 177@

Освободить хендл particl'ей можно этой командой (когда игрок отвернётся, игра удалит систему частиц):

064F: remove_references_to_particle 167@

Короны

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 Круглый свет Particle corona 1.jpg
2 Луна Particle corona 2.jpg
3 Шероховатый продолговатый свет Particle corona 3.jpg
4 Удлинённый в ширину свет Particle corona 4.jpg
5-8 Нет?
9 Кольцо Particle corona 9.jpg

Типы lensflares:

Описание Скриншот
0 Нет lensflares Particle corona lensflares 0.jpg
1 Размытые жёлтые и красные Particle corona lensflares 1.jpg
2 Чёткие, цвета короны Particle corona lensflares 2.jpg

Проекции

Это тоже 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 Квадратная тень Particle g 1.jpg
2 Круглая тень Particle g 2.jpg
3 Круглый свет Particle g 3.jpg
4 Тень в форме рыбки (от вертолёта) Particle g 4.jpg
5 Свет от фар машины Particle g 5.jpg
6 Пятно крови Particle g 6.jpg

GTA 4