Quake III Arena

Quake III Arena

평점이 부족합니다.
Документация по Q3: MME
borjomi 님이 작성
Версия документации: 1.0.2v

Инструмент предназначенный для создания киношных сцен для Quake 3.

В этом руководстве рассказано как пользоваться данной модификацией. Информация была собрана со всех источников которые только удалось найти, включая официальные туториалы от Auri и пользователей форумов.

Если есть вопросы или обнаружите какую-либо ошибку в руководстве/есть идея чего добавить - пишите в коментарии, обязательно отвечу.

❤️ Special Thanks for — entdark, KittenIgnition, foskie, philian, renk and etc.
   
어워드
즐겨찾기
즐겨찾기됨
즐겨찾기 해제
Установка
Для начала вам необходимо:
Распакуйте архив в корневой папке игры.

В директории игры появятся важные файлы:

  • start q3mme.cmd – Запускает сам MME
  • Папка MME – Там то и будут наши записи, скрипты, проекты и т.д.
Базовое Управление
Демки
Прежде всего вам нужно будет понимать, что чтобы делать красиво нужно иметь с чего это делать, в нашем случае записывать определенные записи игры, в Quake 3 их называют Демками.

Чтобы её записать вы должны в начале игры проделать следующие действия:

~ / Ё — Консоль

/record record1 (Вместо "record1" Название вашей демки, придумайте сами)

/stoprecord или выйти из игры – Закончить запись

ВАЖНО! Не вводите g_synchronousClients 1, ибо она вызывает прерывистость и задержку, поскольку игра пытается ждать, пока все клиенты игроков будут обновлены. Если игра запрашивает - вводите её и после начала записи сразу же отключайте.

Управление

Итак, после записи демки можете смело запускать start q3mme.cmd, нажать на первую кнопку DEMOS и выбрав свою демку смело запустить её.

Поначалу вы будете просто просто смотреть от лица первого игрока и не понимать как передвигаться. Первое ваше испытание будет разобраться с управлением. Не бойтесь, следующие кнопки и команды помогут вам в этом:

C — Остановить/возобновить воспроизведение демки

Shift + движение мышь лево / право — перематывать демку вперед/назад в зависимости от направления
Shift + D — Перемотать на 4 секунды вперед (Вы можете зажать)
Shift + A — Перемотать на 4 секунды назад (Вы также можете зажать, не запрещаю)

КСТАТИ! Вы можете использовать команду mov_seekInterval [секунд] чтобы изменить значение которое было установлено по умолчанию (4 секунды)

КСТАТИ! Есть куча команд для кастомизации, к примеру от сообщения о фраге до скрытия подобранных предметов, поэтому я собрал все необходимые в одном разделе ПОЛЕЗНОСТЕЙ переходите туда когда будете чувствовать себя как рыба в воде.

Камера

Разобравшись в перемотке и остановке записи вы заинтересуетесь самым вкусненьким – Камерами. Вы видели во всяких обработанных демо, как эти самые камеры красиво кружатся рядом с игроком или вовсе следят за объектами. Так вот, есть несколько видов камеры которые вы можете переключать с помощью Z и X

  • Камера (Camera)
Чтобы перейти в режим их редактирования вы можете нажать “1” и режим-камеры View to Camera через Z / X. Важно понимать, что режимы используют в основном для создания путей, то есть создав одну камеру вы можете создать еще одну и так далее и в конечном итоге они будут перемещаться между собой. (А можете и вовсе использовать только одну, зависит от ситуации)

ВАЖНО! Чтобы перемещаться необходимо зажать Левую кнопку мыши, потом уже использовать клавиши WASD, запомните это.

Ctrl – вниз
Spacebar (Пробел) – вверх

Надеюсь, что вы перемотали демку на начало нужного вам момента. Для того чтобы создать вашу первую камеру нажмите на кнопочку V, но если камера сразу вам надоела, можете её удалить нажав на кнопочку B при этом находясь на ней

R - Заблокировать взгляд на камерах(точках)

Чтобы находиться в вашей установленной первой камере нажмите R, если вы создали несколько камер можете посмотреть как проходит их путь отпустив паузу демки. Чтобы переключатся между ними нажмите Q или E (Назад, вперед)

ВАЖНО! Скорость второй созданной камеры зависит от перемотанного времени, чем ближе, тем быстрее и наоборот.
  • Слежка (Chase)
*некоторые гифки пришлось урезать из-за порога стима в 2MB, если необходимо увидеть их полностью, можете посмотреть на документацию через Google docs[docs.google.com], там старая-кривая версия которую я обновлять не собираюсь, так что советую опираться на это руководство

Второй режим, слежка за объектом от третьего лица, жмякаем кнопку 2 и режим камеры View to Chase через Z / X. Зажмите пробел и двигайте мышь вверх / вниз пока не увидите белый маркер (плюсик[точку]). Видите? Отлично, теперь можете спокойно передвигаться к игроку или предмету который вам нужен, далее наведите мышь на него и нажмите F, сделали? Отлично, вы зафиксировалось на этот объект

Пробел используется чтобы фиксировать расстояние, и да, вы можете так создавать камеры.

ВАЖНО! Не забывайте про кнопку R!
  • Дефраг Камера

Перейдите в просмотр от лица камеры, а также в редактирование камеры через клавишу 1. Посмотрите на объект который вам нужен и удерживая ЛКМ нажмите клавишу F. Теперь вы смотрите только на него, но камера не передвигается :)

Таймлайн

Не думаю, что кому либо вообще понадобится эта функция, ибо слоумо здесь увы не сделаешь. Почему? Потому что тут есть либо стандартная скорость(1), либо никакая(0).

Чтобы применить сие чудо на практике нужно иметь заготовленные камеры и перейти в режим редактирования таймлайна с помощью кнопки 3. А также, что ВАЖНО, закрепиться через букву R. И наконец, чтобы у вас ничего не поломалось уже в самом начале демки создайте таймлайн-точку через кнопку V и укажите в консоли /line speed 1

Теперь взгляните на эту картинку:


Думаю она точно описывает то, как использовать таймлайн и как он выглядит на деле. То есть вы не задаете одну точку начала спада скорости, а можете гибко настраивать её начало и конец. Но опять же, слоумо здесь не будет.

Сохранения
Чтобы сохранить проект и не настраивать все заново вы можете просто ввести в консоль /save [придумайте имя сохранения], а когда нужно загрузится, то /load [имя сохранения]
Съемка
Итак, камеры расставлены, таймлайн настроен, проект на всякий случай сохранен и теперь можно так сказать “рендерить”.

Скорее всего программа у вас вылетит, ибо MME по умолчанию выделяет оперативной памяти для рендера всего ничего, так что держите консольную команду которая поможет исправить эту проблему: mme_workMegs [мегабайт]

Кстати, вы наверняка видели красивое размытие на работах созданных при помощи MME, так вот, их есть три вида:

mme_blurtype [gaussian ,triangle, median] а то есть [гауссовский, треугольник, медиана]
Сразу несколько использовать нельзя и вообще фу-фу-фу.

  • Гауссовский

  • Треугольник

  • Медиана

*Все типы снято при значении 18 в Frames и Overlap. Вряд ли вы увидите разницу.

mme_blurFrames 0-32 — определяет, сколько кадров смешивается вместе для размытия.

mme_blurOverlap 0-32 — определяет, сколько уже размытых кадров снова смешивается вместе. Возитесь со значениями подбирая нужные вам, но лично я рекомендую mme_blurFrames ставить 18 или 24, как и mme_blurOverlap.

Теперь остановите демонстрацию, нажав C, перейдите к точке начала демонстрации, где вы хотите начать захват.

Откройте консоль и все, что вам потребуется, так это знать эту команду:
/capture <png/tga/jpg/avi> <fps> <name> — То есть формат, кадры в секунду и имя итогового файла. Кстати, если вы выбрали avi, то если файл начнет весить ровно два гигабайта автоматически начнется запись второго файла и т.д.

Пример: /capture avi 60 bazirovano

ВАЖНО! Привяжите остановку захвата к любой клавише /bind F2 "capture stop" (F2 можете поменять на нужную вам клавишу)

Запись начнется, когда вы нажмете С

Когда оно дошло до момента который должен быть для вас концом, можете смело нажимать на F2 ИЛИ вашу клавишу остановки записи ИЛИ просто выйти из игры через ESC. Запись будет находится в папка_с_игрой/mme/capture. А ещё стоит помнить, что у каждой демки есть своя папка в capture директории и вы, возможно, увидите несколько видеофайлов. Не пугайтесь, всего лишь странная особенность MME, благодаря которой он, опять же, делает новый видеофайл во время “рендеринга” если предыдущий дошёл до размера 2GB.
Скрипты
Они бывают разными, бывают простенькие, бывают сложные в которых вам понадобится даже векторная математика, ибо вектор-3 это вам не игрушки.

Прежде чем я переведу и распишу туториал FX скриптинга от CaNaBiS вам нужно знать для чего вообще они используются в квейке. Вот делали вы демку и захотели поменять эффект оружия или добавить/поменять что то в демке, чтобы это выглядело красиво, да? Так вот, для этого и нужны скрипты.

Вы имеете Шейдеры и Модели(та же ракетница, игрок и пр.) которым и прописываете новые свойства.

Зайдите по пути quake3/mme/scripts и увидите например base_weapon.fx для оружия очевидно, также и base.player для игрока. Но запомните, менять данные там бессмысленно, создавайте свои файлы скриптов (к примеру Rocket.fx)

ВАЖНО! Файл обязательно должен быть .fx, изменять его можете с помощью Notepad++, обычный блокнот не рекомендую. Почему? — Узнаете дальше

Система FX (в дальнейшем - эффектов) построена на наборе переменных и команд для их изменения или использования для запуска эффекта.
Скрипты запускаются движком с уже установленными определенными движком переменными, а затем скрипту передается управление. То есть если в игре желтый огонек, то скрипт который вы создали будет делать его зелёным.

Что значит эти переменные установленные движком? Ну значит слушайте, представьте, что есть эффект в игре, который делает взрыв.

И если игрок запускает этот эффект в одном месте, например, на открытом пространстве, то значения переменных могут быть разными, чем если игрок запускает его в узком проходе, где размер взрыва должен быть меньше.

Поэтому при запуске различных эффектов могут быть установлены разные значения переменных, физика квейка короче говоря.

Теория
  • Типы переменных

float (Плавающая точка/поплавок) Могут хранить только одно число

Допустимые имена(параметры) переменных float:

size, width, angle -> Используется некоторыми командами
t0, t1, t2, t3 -> временные значения, которые можно использовать для сложных вычислений

Для совсем зашкварных в програмировании объясняю что значат "временные значения":

Например, в игре может быть скрипт, который управляет визуальным эффектом при попадании пули в цель.

Временные переменные могут использоваться в этом скрипте для хранения результатов вычислений, таких как расстояние между пулей и целью, угол, под которым пуля попала в цель и т.д.

Когда пуля достигает своей цели или выходит за границы игрового поля, временные переменные, связанные с этой пулей, могут быть сброшены до нуля, чтобы освободить память и гарантировать корректную работу скрипта

ВАЖНО! Различные переменные и значения могут быть установлены при запуске скрипта, что позволяет управлять поведением эффекта в зависимости от событий и параметров, заданных в программном обеспечении или игре

  • vectors (векторы)

Векторы - это математические объекты, которые используются для представления физических величин, имеющих направление и магнитуду, таких как сила, скорость, ускорение и т.д.

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

3 числа с float, сгруппированные под 1 именем, используемыми для векторной математики
Вы также можете получить доступ к конкретному поплавку, добавив 0, 1, 3 к имени вектора.

В данном контексте "3 числа с float, сгруппированные под 1 именем, используемыми для векторной математики" означает, что векторные переменные состоят из трех чисел типа float (обычно это x, y и z), которые связаны между собой и используются для математических операций с векторами

Кроме того, "Вы также можете получить доступ к конкретному поплавку, добавив 0, 1, 3 к имени вектора" означает, что можно обратиться к каждому из трех чисел, составляющих векторную переменную, добавив к имени переменной число 0, 1 или 2

Например, если у вас есть векторная переменная position, вы можете обратиться к ее X-координате, используя имя position0, к Y-координате - position1, и к Z-координате - position2

Это может быть полезно, когда нужно работать только с одной из координат вектора, а не со всем вектором.

origin, velocity, dir, angles: используются командами рендеринга для вывода материала.
v0, v1, v2, v3: Временные векторы, которые можно использовать для расчета и хранения.

Имеется ввиду, что origin, velocity, dir, angles используются командами рендеринга для вывода материала" — означает, что переменные origin (точка начала координат), velocity (скорость), dir (направление) и angles (углы поворота) используются для вывода графических элементов в программе, например, для отрисовки объектов в 3D-пространстве

"v0, v1, v2, v3: Временные векторы, которые можно использовать для расчета и хранения" означает, что переменные v0, v1, v2 и v3 являются временными векторными переменными, которые могут использоваться для выполнения математических операций или для хранения промежуточных результатов вычислений в программе. Например, вы можете использовать эти переменные для расчета новой позиции объекта в зависимости от его скорости и направления, а затем сохранить полученный вектор в одной из этих переменных для дальнейшего использования. В общем случае, временные переменные используются для хранения информации, которая не нужна длительное время, но может быть полезна во время выполнения программы.

v0, v1, v2 и v3 в контексте float переменных могут быть использованы как отдельные значения с плавающей точкой(float), которые хранятся в памяти компьютера. Эти значения могут использоваться для выполнения математических операций или для хранения промежуточных результатов вычислений в программе, а также для передачи значений между различными функциями и процедурами.

origin0 будет вести себя как обычный float.
Использование имен векторов в математике приведет к длине используемого вектора.

Короче, если нужно изменить только одну из координат (например X), то да, проще просто изменить соответствующую переменную. Но если нужно выполнить операции, которые зависят от нескольких координат (например, переместить объект в направлении, заданном вектором), то векторная математика может быть более удобной и эффективной.
Скрипты [2]
Специальные переменные
color -> red, green, blue, alpha
shader -> шейдер, используемый некоторыми командами
model -> модель, используемая некоторыми командами

Команды эффектов(FX)
Существует целая куча команд для создания эффектов, изменения переменных и создания сущностей и выполнения векторных вычислений
  • Математические команды с float

Используя любое имя переменной с плавающей запятой, команда запускает математическую команду с плавающей запятой.

Пример:
size 5*size -> Размер теперь больше на пять раз от его исходного значения.
Векторные математические команды
Большинство математических команд принимают несколько входных данных и окончательное имя вектора хранения.

Иногда также следует дополнительное математическое значение
scale <src> <dst> <math> ЭТО -> <scr> * <math>
add <src1> <src2> <dst> ЭТО -> добавить <src2> в <src2>
addScale <src1> <src2> <dst> <math> ЭТО -> добавить <src2> * <math> к <src1>
sub <src1> <src2> <dst> ЭТО -> вычесть <src2> из <src>
subScale <src1> <src2> <dst> <math>-> вычесть <src2> * <math> из <src1>
copy <src> <dst> ЭТО -> копировать <src>
clear <dst> ЭТО -> установить на 0,0,0
wobble <src> <dst> <math> ЭТО Рандомно перемещать src в пределах конуса <math> градусов
random <dst> ЭТО Создать случайный вектор длиной 1 в любом направлении
normalize <src> <dst> ЭТО Нормализовать вектор так, чтобы его длина была равна 1
perpendicular <src> <dst> ЭТО Создать перпендикулярный вектор к <src>
cross <src1> <src2> <dst> Создать векторное произведение src1xsrc2
Команды рендеринга
Они будут отображать что-то на экране, используя текущее состояние переменных. Этим вы будете пользоваться в первую очередь.

sprite <options> -> просмотреть выровненное изображение -> origin, shader, color, size, angle
spark <options> -> просмотреть выровненную искру -> origin, velocity, shader, color, size, width
quad -> спрайт с фиксированным выравниванием -> origin, dir, shader, color, size, angle
beam -> изображение, растянутое между двумя точками, исходная точка(origin), шейдер(shader)
  • FX Математика:

Fx-скрипты могут использовать набор математических функций.
Они строятся из нескольких вариантов

Математические операторы: +, -, *, /

Операторы математических тестов:
Специальная группа операторов, которые возвращают 0 или 1 в зависимости от теста
< -> ( 0 < 2 ) возвращает 1 -> 2 меньше 0
> -> ( 2 > 0 ) возвращает 1 -> 2 больше 0
! -> ( 2 ! 0 ) возвращает 1 -> 2 не равный 0
= -> ( 2 = 2 ) возвращает 1 -> 2 равно 2
& -> ( 2 & 2 ) возвращает 1 -> 2 && 2
| -> ( 2 | 0 ) вернуть 1 -> 2 || 0

Логические операции проверяют только на неравенство нулю, без булевой алгебры
Математические числа (numbers)
Просто обычные числа, например 0.112 22 12412
Математические поплавки (Floats)
float переменные, такие как size, width, origin0
Математические векторы (Vectors)
Векторные переменные, такие как origin, velocity, которые вернут длину вектора.
Математические константы (Constants)
Это константы только для чтения, которые будут использоваться в математических процедурах

time -> Время в секундах с начала демки
loop -> Идет от 0 -> 1 во время любого повторяющегося действия в скрипте
red, green, blue, alpha -> определенное значение компонентов цвета в 0,1
pi -> 3.1414155
rand -> случайное значение между 0, 1
crand -> случайное значение между -1, 1
lerp -> Идет от 0 -> 1 в течении жизни эмиттера
life -> количество времени жизни в секундах, которое получает сущность при ее создании (эмиссии)
  • Математические функции

Эти функции могут быть вложены в математическое выражение со своим собственным выражением.
поэтому sin(sin(3*pi)) будет допустимым математическим выражением

Это означает, что в программе или системе, которая использует математические функции, эти функции можно использовать как отдельные выражения или вложить их в другие математические выражения.

Например, функция "sin" вычисляет синус угла, заданного в радианах. Выражение "sin(3*pi)" означает, что угол равен 3 * π (пи - математическая константа, примерно равная 3,14) радиан, и функция "sin" возвращает значение синуса этого угла.

Затем это значение можно использовать как часть другого математического выражения, например, в выражении "sin(sin(3pi))". В этом случае функция "sin" применяется к результату выражения "sin(3pi)", которое само по себе является математическим выражением с использованием функции "sin".

sqrt( значение ) -> Квадратный корень
ceil( значение ) -> округлить значения до следующего целого числа 0,3 -> 1
floor( значение ) -> округлить значения до следующего целого числа 0,3 -> 0
sin( значение ) -> обычный синус с использованием градусов
cos( значение ) -> обычный косинус с использованием градусов
wave( значение ) -> волна синусоидального типа, но для завершения требуется 0-1 по сравнению с 0-2pi
clip( значение ) -> возвращает значение, обрезанное между 0,1, поэтому <0 становится 0, а > 1 становится 1

  • Математические переменные

Это специальная группа, если математический парсер fx не может найти имя переменной

Он попытается увидеть, есть ли обычная переменная q3 с таким именем, а затем будет использовать это значение

Таким образом, вы можете использовать значения cg_* или любую переменную, которую хотите.

Практика

Создадим зеленый свет для ракет ракетницы:



ВАЖНО! Заходим в mme/scripts, создаем файл с расширением .fx и “z-(название)” в начале


  • Открываем и вписываем:

    weapon/rocket/trail {
    / Путь к нужному объекту и его настройкам. Считайте мы их заменяем при этом не меняя стандартные параметры
    color 0 1 0
    / Цвет R G B (К примеру 1 1 1 это белый цвет)
    size 200
    / size определяет размер следующего нарисованного объекта (1 - максимальный размер, 0 - минимальный, size 200 - размер в единицах измерения Quake III)
    Light
    / Этот параметр рисует динамический свет
    shader flareshader
    / Определяет шейдер, который мы будем использовать
    size 48
    / Задает размер спрайта
    sprite
    / Рисует спрайт.
    }

  • Давайте дополним его красивым дымом.

    color 1 1 1
    shader smokePuff
    rotate 360 * rand
    / устанавливает случайное вращение от 0 до 360 градусов
    distance 30 {
    / определяет расстояние между создаваемыми частицами.
    emitter 2 {
    / определяет тип эмиттера (генератора частиц), который создает 2 частицы каждый раз
    alphaFade 0.2
    / устанавливает, когда частицы начнут исчезать (здесь через 80% времени своего жалкого существования)
    size 8 + lerp * 64
    / задает размер частиц (от 8 до 72), который будет изменяться во времени
    sprite cullNear
    / Этот параметр у sprite говорит, что при наложении на другие объекты будут отображаться только на переднем плане
    }
    }

    ВАЖНО! Шейдеры это картинки свойства которым определяются в скрипте(цвет, прозрачность, x, y, z и т.д.)

  • Так же есть функция shaderlist, благодаря ей можно дать игре список спрайтов, и после с помощью loop она будет выбирать один из них рандомным способом:

    shaderlist loop {
    smokePuff
    flareshader
    }

Полезное
Ссылки
Официальный форум MME (Английский)[q3mme.proboards.com]
MME в GitHub[github.com]
Группа в ВК Quake Moviemaking (Изначально познакомился с MME там)[vk.com]
QuakeNet IRC Network[www.quakenet.org]

Создание нового шейдера
Возможно у вас возникнет вопрос о создании нового шейдера и ответить на него я могу.

Для начала нужно перейти по такому пути quake_3/baseq3. Теперь найдите там pak0.pk3 откройте его любым архиватором и перед вашими глазами будет основная часть всей игры, думаю и так понятно, что нас волнует папка scripts.

Создайте новый текстовый файл на рабочем столе, но задайте ему расширение .shader

Отлично, теперь там будут определятся все ваши шейдеры, надеюсь вы дали ему достойное имя.

(Здесь и нужен Notepad++, ибо с обычным блокнотом вы устанете сохранять файл в архив при каждом сохранении)

Впишите туда что то такое:

Explode
{
cull none
{
map gfx/misc/explode.tga
blendFunc GL_ONE_MINUS_SRC_ALPHA
rgbGen vertex
}
}


Explode - имя шейдера, выбирайте его правильно, чтобы потом небыло путаницы
map - путь к шейдеру, его картинка обязательно должна быть формата .tga и обязательно находится в этом архиве.
blendFunc - это команда, используемая в OpenGL для установки режима смешивания цветов при отрисовке. К примеру:
GL_ONE_MINUS_SRC_ALPHA означает, что для вычисления цвета уже находящегося на экране используется обратное значение альфа-канала исходного цвета.
GL_SRC_ALPHA означает, что для вычисления цвета каждого пикселя используется значение альфа-канала (прозрачности) исходного цвета.

Конечно, есть ещё параметры и всё это тонко настраивается, но это уже нужно обращаться к документации по OpenGL. Возможно когда нибудь распишу здесь это.

Команды

mme_saveWav 1/0
Включить / отключить захват звука в WAV-файл во время захвата

mov_captureFPS
Определяет, сколько скриншотов кадров в секунду делается во время захвата.

mov_Obituaries 1/0
Включить / отключить печать fragmessages в консоли

cg_centerPrint 1/0
Включить / отключить сообщения сервера, такие как «ИГРОК присоединился к красной команде»

cg_centerScale 0-10
Размер fragmessages и других вещей, появляющихся в середине экрана

cg_drawWeaponSelect 1/0
Показать / скрыть список оружия при переключении оружия

cg_drawDamageBlob 1/0
Показать / скрыть красный кровавый шарик, который вы видите, когда вы получаете удар

cg_drawPickupItem 1/0
Показать / скрыть подобранные предметы

cg_drawScores 1/0
Показать / скрыть результаты в правом нижнем углу

cg_drawFollow 1/0
Показать / скрыть информацию в верхней части экрана, на какого игрока вы наведены

cg_drawVote 1/0
Показать/скрыть голоса в левом верхнем углу

cg_drawPowerups 1/0
это нужно объяснять? :)

mov_ospRail 1/0
Включить / отключить стиль рельса, как это выглядит в osp

r_railringsAlign 1/0
Включить/выключить рельсы, выравнивающиеся по отношению к playerview

mov_fragFormat
Формат fragmessage: %t = цель, %s = оценка, %p = место, %, %a = атакующий, %n = новая строка
По умолчанию: You fragged %t%n%p с %s

con_notifyTime
Время отображения консольных сообщений на экране. Поставьте -1, чтобы они не отображались на экране во время записи. Используйте его, а не cl_noprint, потому что с noprint вы не сможете ничего прочитать в консоли, с notifyTime все напечатано в консоли, просто не отображается на экране.

mov_chatBeep 1/0
Включить / выключить звук уведомления чата

mme_saveDepth
Позволяет сохранять глубинные скриншоты. Глубина не является слоем в стандартных скриншотах, глубина сохраняется в отдельных tga файлах.

mme_depthFocus
Определяет место, которое глубина будет принимать как необходимую точку на расстоянии от камеры. Если говорить проще, то это для ДОФа. Фокусное расстояние. Например если 500, то все будет в фокусе на расстоянии 500 кваковских дюймов

mme_depthRange
Определяет, насколько окружающая среда размыта. Проще говоря для ДОФа. Вне Фокуса! например 100.

Все после 100 кваковских дюймов будет вне фокуса. 500\100 = 5 квак единиц, плавный переход от фокуса до вне фокуса.

mme_blurFrames 0
Если вы используете предыдущие три команды, от поставьте вот это на 0

примерные значения:

mme_depthFocus 100
mme_depthRange 200


cg_drawDamageBlob [0,1]
Показывать или нет Сплэш на морде от попаданий

fx_Megs [MB]
Кол-во памяти для Скриптовых эффектов

fx_Vibrate [0,1]
Выкл или вкл тряску камеры при взрывах (советую 100 гыг)

mme_jpegQuality [0-100]
Для экономных. Качество откаптуренных Джепегов.

mme_aviFormat [0,1]
Ставьте всегда 0, ибо 1 это каптуренное видео с таким себе сжатием

mme_saveDepth [0,1]
0 это выкл, 1 Записывать в png последовательность Альфа канал для Последующего Эффекта ДОФ. (настройки mmeDepthRange&FOcus)

mme_screenshotFormat [jpg, png, tga, avi]
Формат для каптура (не нужная штука - настоятельно рекомендую каптурить capture avi 30-900

mme_skyKey [0-9, a-z]
Красьте небо в какой хотите цвет, 0 - стандартная текстура

mme_worldShader [shadername]
Если написать mme_worldShader mme/green то покрасим всю карту кроме предметов и игроков в зеленый Цвет (хромакей)

mov_fontName "font.ttf"
Меняем Шрифт Фрагов (шрифт кидать в папку mme)

mov_fontSize #
Размер шрифта

mov_musicFile [filename]
У кого нет спотифая может послушать музыку в MME

mov_filtermask 18
Удаляются все модели

mov_filtermask 13
Удаляются все айтемы

mov_filtermask 14
Удаляются айтемы и модели

mme_worldshadder
По большому счёту очень похожая переменная на mme_skykey[0,1], но если в skykey + drawworld [0,1] вы не можете видеть что есть на стенах например следы от пуль и т.д. То в worldshader нет. Стены остаются на прежнем месте.

clientoverride (id) hide 1
Удалить конкретного игрока