Сповіщення
Очистити все

РРЕ - Загальна інформація


NazarTmm
Ранг:
Досвідчений
Роль:
Модмейкер
Угруповання:
Бандити
Записи:
35
Приєднався:
9 місяців тому
Початок теми  

Загальна інформація:
PPE = postprocess
Постпроцеси - це, грубо кажучи, кольорові шумові ефекти екрану актора, які ми можемо спостерігати в більшості сучасних шутерів.

Приклади того, чим взагалі може бути постпроцесс:

"Червоний екран" під час поранення ГГ
Помутніння екрана у стані алкогольного сп'яніння
Шум та "коричневий екран" від радіоактивного вогнища
ПНВ
"Зелений екран" від хімікатів
Ефект для сценок, коли ГГ розплющує/закриває очі
"Білий екран" від світло-шумової гранати
"Чорний екран" у різних технічних моментах
Роздвоєння в очах ГГ

Скриптові функції
В lua_help.script можемо знайти наступні рядки, які відповідають діям з постпроцесами:
function add_pp_effector(string, number, boolean); function remove_pp_effector(number); function set_pp_effector_factor(number, number, number); function set_pp_effector_factor(number, number);
function add_pp_effector(string, number, boolean);
function remove_pp_effector(number);
function set_pp_effector_factor(number, number, number);
function set_pp_effector_factor(number, number);
Увага! Ці движкові функції належать до простору level (namespace level). Це означає, що їх потрібно запускати у скриптах таким чином:

level.add_pp_effector(string, number, boolean);
level.remove_pp_effector(number);
level.set_pp_effector_factor(number, number, number);
level.set_pp_effector_factor(number, number);
Тепер давайте розберемо їх призначення та аргументи.
В принципі, з першими двома зрозуміло: одна функція запускає ефект, а інша - зупиняє.

Аргументи level.add_pp_effector
string - шлях до ppe-файлу від папки anims.
number - тимчасовий story_id ефект, будь-яке довільне число.
boolean – true/false – грати зациклено/не зациклено. Наприклад, ефект ПНО програється закциклено, а контузія від удару - не зациклено.
Приклад:
level.add_pp_effector("radiation.ppe", 150, true) --запускаємо ппе радіації
Аргументи level.remove_pp_effector
number - той самий тимчасовий ефект story_id, який був запущений.
Приклад:
level.remove_pp_effector(150) --відключаємо ппе\
Виходить, що ми задаємо ефект свій номер, а потім по цьому номеру зупиняємо ефект. Все просто, чи не так?
З іншими двома функціями дещо складніше. З невідомих причин розробники вирішили назвати дві функції однаково. Єдина їхня відмінність - кількість аргументів: 3 і 2. Давайте глянемо в вихідні движки:

def("set_pp_effector_factor", &set_pp_effector_factor),
def("set_pp_effector_factor", &set_pp_effector_factor2),
Як бачимо, в самому движку одна функція називається set_pp_effector_factor (3 аргументи), а інша - set_pp_effector_factor2 (2 аргументи). Обидві задають інтенсивність ефекту. Дивимося аргументи.

Аргументи level.set_pp_effector_factor (3 аргументи)
number(int) – story_id нашого вже запущеного ефекту.
number (float) – число від 0 до 1 (дроби, зрозуміло, підтримуються), що означає саму інтенсивність.
number (float) – ймовірно, швидкість переходу від поточної інтенсивності до нової, яка вказана у другому аргументі. Число від 0 до 1. Параметр вивчений мало.

У другої однойменної функції перші два аргументи збігаються, а третій відсутній.
level.set_pp_effector_factor(1001, 0.5, 0.3)
level.set_pp_effector_factor(118713, 0.5)\
Хочу зауважити, що розробники користувалися функцією із двома аргументами майже у всіх випадках. Однак є виняток (див. sr_deimos.script, xr_detector.script).

Скриптовий метод створення/запуску ефекту
Зізнаюся, я цим методом ніколи не користувався, бо не бачу особливого значення. Тим не менш, знати про те, що така існує - не зайве. Скажімо, дякую Маландринусу та іншим хлопцям, які створили у цій справі довідку:
АМК

Процес створення PPE-файлу
Так, це найскладніше для розуміння.

Утиліти:
SDK Postprocess Editor. На жаль, уроків я не зустрічав. У майбутньому чекайте на розбір цього редактора від мене. Чесно кажучи, я хоч і навчився там створювати практично юбий ефект, для мене там багато чого досі на рівні інтуїції та методи тику. Порада: переглядайте оригінальні файли, дивіться значення, дивіться градієнти постпроцесів, дивіться ефект у грі.


   
Цитата
Теги теми