Возвращение Max Payne, или что изменит Rockstar Vancouver в нашей привычной игре.
Анонс игры состоялся 23 марта 2009 года, но запуск игры предполагается на период с 1 ноября 2010 по 31 октября 2011.
Изменения под собой предполагают не только новых разработчиков. Нас ждет изменившийся и полысевший главный герой, новый дизайн игры и многопользовательский режим. Как все это будет реализовано и дойдет ли до этого дело вообще, рассмотрим ниже.
Анонс игры состоялся 23 марта 2009 года, но запуск игры предполагается на период с 1 ноября 2010 по 31 октября 2011.
Изменения под собой предполагают не только новых разработчиков. Нас ждет изменившийся и полысевший главный герой, новый дизайн игры и многопользовательский режим. Как все это будет реализовано и дойдет ли до этого дело вообще, рассмотрим ниже.
» Game Observer
» Комментарии (27)
Заключительная часть серии статей Создание объектов со сложной геометрией для игры Max Payne 2. Сразу хочу сказать, что процесс моделирования разрушаемого объекта очень трудоемок. Если вы никогда не занимались моделированием подобных объектов в редакторе Max ED 2.0, то будьте готовы к тому, что несколько первых моделей получаться не совсем такими, как вы ожидали.
» Скачать (197 КБ)
» Комментарии (0)
Во первых "все гениальное просто" - управление игроком за кадром, наступаем на триггеры, происходит действие (конкретно управление направлением - "влево", "право", "вперед", "назад" и "прыжок" (те самые 5 клавиш). Рассматривалось 6 действие - "использовать", но увы влечет за собой кучу багов и поэтому пришлось от него отказаться. Далее перечислены по пунктам фиксы необходимые для скрипта.
1. Настройка скина персонажа:
Движок имеет в наличии оптимизацию в которую входит скрытие моделей не находящихся в обзоре так же и игрока, что не позволяет им управлять исправляется внесением изменений в скиновку игрока, внесем следующие изменения в строки в графе [LOD]
EnableBoundingSphere = FALSE;
BoundingSphereRadius = 10000.90;
EnableBoundingBox = FALSE;
Теперь модель не будет скрываться при отдаленной камере и будет иметь возможность управления вне зависимости от камеры.
2. Убираем видимость управления игрока за сценой:
Используем команды в начале скрипта:
MaxPayne_GameMode->GM_StorePlayerInventory(1);
player->C_RemoveAllWeapons(Empty);
И соответственно на выходе:
MaxPayne_GameMode->GM_RestorePlayerInventory(1);
Теперь игрок во время действия скрипта будет безоружным и не сможет стрелять. Так же желательно отдалить его подальше от сцены но не за портал чтобы не было слышно шагов и прыжков.
3. Сам принцип работы скрипта:
Игрок находится на вэйпойнте среди 5 тригеров (4 вокруг и 1 над головой фиксирован постоянным направлением вперед и с возможностью двигаться с периодом в 0.3 секунды для совершения действия).
4. Рассмотрим основные моменты:
Цель - заставить двигаться кубик в заданном направлении игроком (это 5 наших направлений). Aктивируем скрипт и лишаем оружия игрока. Стабилизируем игрока в скрипте таймером в 0.3 секунды - создаем циклический таймер с FSM_switch. Для его дальнейшего отключения циклируем телепорт на вэйпойнт в центр скрипта тем самым и позволяем игроку управлять лишь 0.3 секунды для совершения направления или прыжка. Атачим камеру на кубик и анимируем его 5-ю направлениями, присваивая соответственно анимации триггерам окружающим игрока. Как надоедает двигать кубик, делаем выход - меняем FSM_switch циклического таймера на Off и возвращаем оружие, делаем сброс камеры.
Сложный, но реализуемый пример на Сontrol Script:
http://www.youtube.com/watch?v=OFRhmu_oqRM
Любой FSM элемент можно активировать с помощью движения игрока, делается это следующим образом:
В файле где описано управление игроком найти нужное движение и дописать к нему строку в анимации.
[Message] Frame = 0; String = "this->FSM_Send(xxxx);";
Где "xxxx" название FSM в категории Player в редакторе Maxed'a (другими словами на карте уровне и т.д.) Таким образом можно создать тучу рандомных sub-анимаций.
1. Настройка скина персонажа:Движок имеет в наличии оптимизацию в которую входит скрытие моделей не находящихся в обзоре так же и игрока, что не позволяет им управлять исправляется внесением изменений в скиновку игрока, внесем следующие изменения в строки в графе [LOD]
EnableBoundingSphere = FALSE;
BoundingSphereRadius = 10000.90;
EnableBoundingBox = FALSE;
Теперь модель не будет скрываться при отдаленной камере и будет иметь возможность управления вне зависимости от камеры.
2. Убираем видимость управления игрока за сценой:
Используем команды в начале скрипта:
MaxPayne_GameMode->GM_StorePlayerInventory(1);
player->C_RemoveAllWeapons(Empty);
И соответственно на выходе:
MaxPayne_GameMode->GM_RestorePlayerInventory(1);
Теперь игрок во время действия скрипта будет безоружным и не сможет стрелять. Так же желательно отдалить его подальше от сцены но не за портал чтобы не было слышно шагов и прыжков.
3. Сам принцип работы скрипта:
Игрок находится на вэйпойнте среди 5 тригеров (4 вокруг и 1 над головой фиксирован постоянным направлением вперед и с возможностью двигаться с периодом в 0.3 секунды для совершения действия).
4. Рассмотрим основные моменты:
Цель - заставить двигаться кубик в заданном направлении игроком (это 5 наших направлений). Aктивируем скрипт и лишаем оружия игрока. Стабилизируем игрока в скрипте таймером в 0.3 секунды - создаем циклический таймер с FSM_switch. Для его дальнейшего отключения циклируем телепорт на вэйпойнт в центр скрипта тем самым и позволяем игроку управлять лишь 0.3 секунды для совершения направления или прыжка. Атачим камеру на кубик и анимируем его 5-ю направлениями, присваивая соответственно анимации триггерам окружающим игрока. Как надоедает двигать кубик, делаем выход - меняем FSM_switch циклического таймера на Off и возвращаем оружие, делаем сброс камеры.
Сложный, но реализуемый пример на Сontrol Script:
http://www.youtube.com/watch?v=OFRhmu_oqRM
Любой FSM элемент можно активировать с помощью движения игрока, делается это следующим образом:
В файле где описано управление игроком найти нужное движение и дописать к нему строку в анимации.
[Message] Frame = 0; String = "this->FSM_Send(xxxx);";
Где "xxxx" название FSM в категории Player в редакторе Maxed'a (другими словами на карте уровне и т.д.) Таким образом можно создать тучу рандомных sub-анимаций.
» Скачать (38 КБ)
» Комментарии (0)
Не секрет, что при создании глобальных модификаций, красивых карт и прочего добра для Max Payne 2: The Fall of Max Payne никак не обойтись без 3D Studion Max 5 (5.1).
С момента выхода игры, прошло более пяти лет. За это время компьютерное железо и программное обеспечение к нему развивалось семимильными шагами. Появление станций на основе двухядерных, а затем и четырехядерных процессоров, в сочетании с большими объемами оперативной памяти (8 Гб и более) позволило заметно повысить эффективность работы в области мультимедиа. Но, ни одна бочка с медом не обходится без ложки дегтя, и данный случай не исключение.
Для того, что бы полностью задействовать вычислительные ресурсы подобных станций, следует использовать 64-х битные операционные системы. А это в свою очередь влечет за собой проблемы несовместимости старых программ написанных под 32-х битные версии Microsoft Windows.
Эта статья научит Вас решить подобные проблемы...
С момента выхода игры, прошло более пяти лет. За это время компьютерное железо и программное обеспечение к нему развивалось семимильными шагами. Появление станций на основе двухядерных, а затем и четырехядерных процессоров, в сочетании с большими объемами оперативной памяти (8 Гб и более) позволило заметно повысить эффективность работы в области мультимедиа. Но, ни одна бочка с медом не обходится без ложки дегтя, и данный случай не исключение.
Для того, что бы полностью задействовать вычислительные ресурсы подобных станций, следует использовать 64-х битные операционные системы. А это в свою очередь влечет за собой проблемы несовместимости старых программ написанных под 32-х битные версии Microsoft Windows.
Эта статья научит Вас решить подобные проблемы...
» Комментарии (5)
Открылся официальный сайт игры.
Из слов президента Rockstar Сэма Хаузера стало известно, что действия третьей части, как и следовало ожидать, будут продолжать сюжет второй. Сам Макс постарел и стал циничнее чем прежде. Жизнь его катится вниз, и в результате ему приходится покинуть Нью-Йорк.
Создаёт новую главу этой истории Rockstar Vancouver, ответственная за создание игры Bully. Датой выхода значится зима этого года, поддерживаемые платформы - PC, PS 3 и Xbox 360.
» Комментарии (11)
Что это такое? Всё очень просто - это мод (хотя это слабо сказано) к игре Max Payne II, включающий все наработки и материалы мода Blade TC, а также кое-что, чего раньше в серии модов к MaxPayne II никогда не делалось - магия - абсолютное новшество.
Эти два мода будут просто-напросто соединены в один. Вы сможете играть за Блэйда, следуя его собственному сюжету. Сюжет будет связан местами с сюжетом Vampire Slayer 2.0, но не будет сильно переплетаться с ним. В итоге вы получите убер-мод, который обязан понравиться всем фанам MP2.
Остальное расскажет очередной ролик
Тема проекта Vampire Slayer 2.0
Эти два мода будут просто-напросто соединены в один. Вы сможете играть за Блэйда, следуя его собственному сюжету. Сюжет будет связан местами с сюжетом Vampire Slayer 2.0, но не будет сильно переплетаться с ним. В итоге вы получите убер-мод, который обязан понравиться всем фанам MP2.
Остальное расскажет очередной ролик
Тема проекта Vampire Slayer 2.0
» Комментарии (10)
Действие происходит в здании на окраине Нью-Йорка. Мафия беспощадно убивает невинных людей и распространяет страшный наркотик "Валькирин". Приходит Max Payne и ... . Ваша цель убить главаря мафии.
Обсудить мод можно здесь
Обсудить мод можно здесь
Здесь Max Payne попадает в другое измерение, которое является его же иллюзией. Мод включает в себя одну карты, не лишенную сюрреализма. В ней Вам предстоит сразиться против Мафиози и Чистильщиков, при поддержке... Русских.
Обсудить мод можно здесь
Обсудить мод можно здесь
Кино по Max Payne уже скоро запустят в кинотеатрах, мировая премьера 17 октября.
А чтобы ждать было не скучно, можно посмотреть трейлер!
А чтобы ждать было не скучно, можно посмотреть трейлер!
» Комментарии (2)
Мне очень понравился стиль фотографии из игры Max Payne, она сделана в черно-белых тонах. Я решил сделать что-то похожее в таком же стиле.
Шаг 1. Откройте фотографию, к которой решили добавить эффект.
Шаг 2. После чего на нажимаем чтобы обесцветить фотографию.
Шаг 3. Корректируем слой Layer>New Adjustment Layer>Posterize... в проявившем меню поставьте галочку напротив Use Previous Layer to Create Clipping Mask. В диалоговом окне Posterize введите значение 4 и нажмите ОК. Нажимаем вызываем редактор "кривых" и ставим и чу чуть затемним фотографию.
Шаг 4. Поставьте курсор на нижний слой и выберете Filter>Blur>Gaussian Blur... со значением от 1 до 2 (также можно применить Filter>Noize>Median...). Дублируем это слой и ставим его в самый вверх и нажимаем (для повторение последнего выполненного эффекта, то есть Gaussian Blur... со значением 1,5), и изменяем режим наложение на Screen.
Шаг 5. Переходим на слой самый нижний слой и нажимаем комбинацию клавиш и выставляем значение Input-79 Output-39.
Шаг 6. Теперь переходим на верхний слой и делаем те же самые действие только со значением Input-88 Output-47.
Шаг 7. Зарисовываем фон фотографии.
Шаг 8. Переходим к самому ответственному моменту. Сначала выделяем отдельные части лица (которые одного цвета) создаем новый слой и заливаем его одним цветом (я залил эту часть белым цветом). На новом слое выберете Filter>Blur>Gaussian Blur... со значением 1 . И так со всем цветными частями.
Шаг 9. Делаем те же действие что и в предыдущем шаге. Волосы и пиджак я залил темно серым цветом #262626.
Шаг 10. После всех действий у Вас должно получится так как показана на рисунке. После чего все слои можно объединить в одни <Сtrl+E>, и дальше редактировать по вкусу.
Вот что у меня вышло)
Шаг 1. Откройте фотографию, к которой решили добавить эффект.
Шаг 2. После чего на нажимаем
Шаг 3. Корректируем слой Layer>New Adjustment Layer>Posterize... в проявившем меню поставьте галочку напротив Use Previous Layer to Create Clipping Mask. В диалоговом окне Posterize введите значение 4 и нажмите ОК. Нажимаем
Шаг 4. Поставьте курсор на нижний слой и выберете Filter>Blur>Gaussian Blur... со значением от 1 до 2 (также можно применить Filter>Noize>Median...). Дублируем это слой и ставим его в самый вверх и нажимаем
Шаг 5. Переходим на слой самый нижний слой и нажимаем комбинацию клавиш
Шаг 6. Теперь переходим на верхний слой и делаем те же самые действие только со значением Input-88 Output-47.
Шаг 7. Зарисовываем фон фотографии.
Шаг 8. Переходим к самому ответственному моменту. Сначала выделяем отдельные части лица (которые одного цвета) создаем новый слой и заливаем его одним цветом (я залил эту часть белым цветом). На новом слое выберете Filter>Blur>Gaussian Blur... со значением 1 . И так со всем цветными частями.
Шаг 9. Делаем те же действие что и в предыдущем шаге. Волосы и пиджак я залил темно серым цветом #262626.
Шаг 10. После всех действий у Вас должно получится так как показана на рисунке. После чего все слои можно объединить в одни <Сtrl+E>, и дальше редактировать по вкусу.
Вот что у меня вышло)
» Комментарии (5)
В этой статье я собираюсь рассказать Вам, как добавить новые комиксы (Graphic Novel Pages или просто GN) к Вашим уровням при использовании MaxEd 2.0.
Для этого Вам нужно:
- Данные MP2, извлеченные в папку MaxPayne2Dev (лучше всего извлекать на диск C: по умолчанию, т.к. если Вы установите на другой диск, у Вас будут проблемы с Particle FX;
- Ваш собственный уровень;
- Графический редактор (я использую Adobe Photoshop);
- Графический браузер, поддерживающий .dds формат (XnView например);
- Еще один вариант редактирования .dds файлов - установить плагин для Adobe Photoshop;
- Шестнадцатеричный редактор (я буду использовать Xvi32 в этой работе);
- Звуковой редактор, скажем, Sound Forge;
- Редактор текста.
Сначала я попытаюсь рассказать Вам, как GN работают в игре. Страница GN составлена из 3 частей:
-kf2 файл, расположенный в data/database/graphicnovelpages/files/, содержит различные составляющие страницы (смена кадров и т.п);
-dds файл, расположенный в data/database/graphicnovelpages/files/textures/, содержит графическую часть комикса;
-wav файл, расположенный в data/database/sound/graphic_novel/. Тут все понятно - звуковое оформление комикса.
Откройте папку /data/database/graphicnovelpages/files/textures/ и просмотрите.dds файлы Photoshop’ом. Ищите картинку, соответствующую Вашему представлению. Для этого мы выберем простую, 3 картинный dds файл (структура (| | |)), но Вы можете выбрать любой файл в этой папке (например: | | || или | | | - или ==...). Мы возьмем 01_Intro_End_03.dds файл.
Скопируйте этот файл в какую-нибудь папку. Скопируйте kf2 файл туда же. (Здесь: 01_Intro_End_03.kf2). Теперь выберите dds файлы, откуда Вы хотите взять фрагмент.
Теперь скопируйте эти файлы в Вашу ранее созданную папку.
Откройте основной dds файл (01_Intro_End_03.dds) графическим редактором, затем откройте другой, откуда вы хотите взять фрагмент. Выберите часть, которую Вы хотите скопировать в основной файл. Переместите это в нужное положение в основном файле. Повторите это для остальных фрагментов. У Вас должно появиться изображение наподобие этого:
Естественно Вам нужно изменить и текст, просто закрасьте буквы фоновым цветом и напишите свой текст.
Ace Anim - шрифт, используемый в игре. Наконец, у Вас должно быть что-то как это:
Итак, Вы изготовили новый свой dds файл.
Откройте шестнадцатеричный редактор (Xvi32) и откройте им .kf2, скопированный ранее. Ищите строку, содержащую название dds файла (здесь: 01_Intro_End_03.dds). Замените название этого названия новыми.
ВИНИМАНИЕ! Число символов вашего названия должно совпадать с числом символов заменяемого dds, иначе будет ошибка.
Итак, название 01_Intro_End_03.dds заменим на NewGNovPage0001.dds и сохраним наш .kf2. Переименуйте dds файл также, как и вы написали в kf2 (NewGNovPage0001.dds). Файл .kf2 файл можно назвать как угодно.
Заходим в data/database/sounds/graphicnovel и копируем звук, названный как Ваш dds файл (который был изначально). Дайте ему новое название (например: NewGNSound01.wav). Откройте свой звуковой редактор. Вы можете теперь видеть что:
1: Два канала файла (stereo);
2: Длина между маркерами определяет время между каждым переходом;
3: Полная длина звукового файла, определяющая, сколько времени будет длиться этот комикс.
Я сделаю этот файл беззвучным, хотя Вы, если хотите, можете отредактировать его. Сохраните wav в том же самом формате (Microsoft ADPCM, 44 100 кГц, 4 бита, стерео).
Таким образом 3 части Вашей GN сделаны! Последняя вещь, которую надо сделать - прописать все сделанное в базе данных MP2.
Откройте папку /data/database/sounds и скопируйте graphicnovel текстовый файл в какую-нибудь стороннюю папку. Откройте /data/database/graphicnovelpages и скопируйте в нее текстовый файл graphicnovelpages.
Откройте папку /data/graphicnovel и скопируйте туда текстовый файл graphicnovel.
Откройте первый (звуковой) текстовым редактором. Скопируйте любой блок звукового файла и измените исходное название на ваше (здесь: NewSound01).
Ваш звук, определяется как новый звук базы данных по имени NewSound01. Это - название, которое игра будет использовать, чтобы загрузить это. Откройте второй текстовый файл (graphicnovelpages). Скопируйте последнюю строку, и измените исходное название kf2 на Ваше.
[02_Intro_End_03]: Название, используемое движком игры.
{[Geometry] ExportData = "files\02_Intro_End_03.kf2";: Исходное название kf2;
[Общий] NewChapter =NO;: Если да Вы можете использовать кнопку Next Chapter, чтобы начать с этой страницы;
FadeLength = 0.5;: Длина затемнения и появления фрагмента комикса;
SoundCategory = graphic_novel;: Папка со звуками для GN, не изменяйте;
SoundName = 02_Intro_End_03;: Название Вашего звукового файла;
[OnExitMessage] String= "maxpayne_graphicnovelmode-> a_playmusic (none);";: Это остановит музыку при выходе из GN;
[OnExitMessage] String = "maxpayne_hudmode-> mphm_fadetocolor (0xff, 0x00,3.0);";}: Цвет и время исчезновения в игре при выходе в GN.
Закройте файл, сохранив его.
Для запуска нашего комикса необходимо создать триггер и прописать в нем следующее:
X_ModeSwitch-> S_ModeSwitch (graphicnovel);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage1);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage2);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage3);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage4);
CustomPage1 - это любая страница комикса. Список страниц надо располагать в том порядке, в каком они должны появиться в игре, то есть, от того как Вы их пропишете будет зависеть порядок появления комиксов.
Введение
Для этого Вам нужно:
- Данные MP2, извлеченные в папку MaxPayne2Dev (лучше всего извлекать на диск C: по умолчанию, т.к. если Вы установите на другой диск, у Вас будут проблемы с Particle FX;
- Ваш собственный уровень;
- Графический редактор (я использую Adobe Photoshop);
- Графический браузер, поддерживающий .dds формат (XnView например);
- Еще один вариант редактирования .dds файлов - установить плагин для Adobe Photoshop;
- Шестнадцатеричный редактор (я буду использовать Xvi32 в этой работе);
- Звуковой редактор, скажем, Sound Forge;
- Редактор текста.
Сначала я попытаюсь рассказать Вам, как GN работают в игре. Страница GN составлена из 3 частей:
-kf2 файл, расположенный в data/database/graphicnovelpages/files/, содержит различные составляющие страницы (смена кадров и т.п);
-dds файл, расположенный в data/database/graphicnovelpages/files/textures/, содержит графическую часть комикса;
-wav файл, расположенный в data/database/sound/graphic_novel/. Тут все понятно - звуковое оформление комикса.
Выбор правильных файлов
Откройте папку /data/database/graphicnovelpages/files/textures/ и просмотрите.dds файлы Photoshop’ом. Ищите картинку, соответствующую Вашему представлению. Для этого мы выберем простую, 3 картинный dds файл (структура (| | |)), но Вы можете выбрать любой файл в этой папке (например: | | || или | | | - или ==...). Мы возьмем 01_Intro_End_03.dds файл.
Скопируйте этот файл в какую-нибудь папку. Скопируйте kf2 файл туда же. (Здесь: 01_Intro_End_03.kf2). Теперь выберите dds файлы, откуда Вы хотите взять фрагмент.
Теперь скопируйте эти файлы в Вашу ранее созданную папку.
Редактирование .DDS файла
Откройте основной dds файл (01_Intro_End_03.dds) графическим редактором, затем откройте другой, откуда вы хотите взять фрагмент. Выберите часть, которую Вы хотите скопировать в основной файл. Переместите это в нужное положение в основном файле. Повторите это для остальных фрагментов. У Вас должно появиться изображение наподобие этого:
Естественно Вам нужно изменить и текст, просто закрасьте буквы фоновым цветом и напишите свой текст.
Ace Anim - шрифт, используемый в игре. Наконец, у Вас должно быть что-то как это:
Итак, Вы изготовили новый свой dds файл.
Редактирование KF2 файла
Откройте шестнадцатеричный редактор (Xvi32) и откройте им .kf2, скопированный ранее. Ищите строку, содержащую название dds файла (здесь: 01_Intro_End_03.dds). Замените название этого названия новыми.
ВИНИМАНИЕ! Число символов вашего названия должно совпадать с числом символов заменяемого dds, иначе будет ошибка.
Итак, название 01_Intro_End_03.dds заменим на NewGNovPage0001.dds и сохраним наш .kf2. Переименуйте dds файл также, как и вы написали в kf2 (NewGNovPage0001.dds). Файл .kf2 файл можно назвать как угодно.
Редактирование WAV файла
Заходим в data/database/sounds/graphicnovel и копируем звук, названный как Ваш dds файл (который был изначально). Дайте ему новое название (например: NewGNSound01.wav). Откройте свой звуковой редактор. Вы можете теперь видеть что:
1: Два канала файла (stereo);
2: Длина между маркерами определяет время между каждым переходом;
3: Полная длина звукового файла, определяющая, сколько времени будет длиться этот комикс.
Я сделаю этот файл беззвучным, хотя Вы, если хотите, можете отредактировать его. Сохраните wav в том же самом формате (Microsoft ADPCM, 44 100 кГц, 4 бита, стерео).
Таким образом 3 части Вашей GN сделаны! Последняя вещь, которую надо сделать - прописать все сделанное в базе данных MP2.
Редактирование TXT файлов
Откройте папку /data/database/sounds и скопируйте graphicnovel текстовый файл в какую-нибудь стороннюю папку. Откройте /data/database/graphicnovelpages и скопируйте в нее текстовый файл graphicnovelpages.
Откройте папку /data/graphicnovel и скопируйте туда текстовый файл graphicnovel.
Откройте первый (звуковой) текстовым редактором. Скопируйте любой блок звукового файла и измените исходное название на ваше (здесь: NewSound01).
Ваш звук, определяется как новый звук базы данных по имени NewSound01. Это - название, которое игра будет использовать, чтобы загрузить это. Откройте второй текстовый файл (graphicnovelpages). Скопируйте последнюю строку, и измените исходное название kf2 на Ваше.
[02_Intro_End_03]: Название, используемое движком игры.
{[Geometry] ExportData = "files\02_Intro_End_03.kf2";: Исходное название kf2;
[Общий] NewChapter =NO;: Если да Вы можете использовать кнопку Next Chapter, чтобы начать с этой страницы;
FadeLength = 0.5;: Длина затемнения и появления фрагмента комикса;
SoundCategory = graphic_novel;: Папка со звуками для GN, не изменяйте;
SoundName = 02_Intro_End_03;: Название Вашего звукового файла;
[OnExitMessage] String= "maxpayne_graphicnovelmode-> a_playmusic (none);";: Это остановит музыку при выходе из GN;
[OnExitMessage] String = "maxpayne_hudmode-> mphm_fadetocolor (0xff, 0x00,3.0);";}: Цвет и время исчезновения в игре при выходе в GN.
Закройте файл, сохранив его.
Запускаем комикс через триггеры
Для запуска нашего комикса необходимо создать триггер и прописать в нем следующее:
X_ModeSwitch-> S_ModeSwitch (graphicnovel);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage1);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage2);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage3);
MaxPayne_GraphicNovelMode-> MPGNM_PickUpNote (CustomPage4);
CustomPage1 - это любая страница комикса. Список страниц надо располагать в том порядке, в каком они должны появиться в игре, то есть, от того как Вы их пропишете будет зависеть порядок появления комиксов.
» Комментарии (0)
Для этого Вам нужно:
1) Sony Sound Forge 8 или 9, разницы нету;
2) NotePad (блокнот) и прямые руки.
Первым делом Вам нужно добавить новый текстовый файл (пока пустой) с Вашими титрами в базу. Создаем текстовый файл с расширением *.h в каталоге X:\MaxPayne2Dev\Game\data\database\subtitles, где Х буква вашего диска. Назовем его New.h. Далее прописываем строку #include "subtitles\New.h" в файле subtitles.txt, который находится в папке Х:\MaxPayne2Dev\Game\data\database.
Следующим номером нашей программы будет добавление самого звукового файла в нашу базу.
Создаем текстовый файл, например NewSound.txt в папке Х:\MaxPayne2Dev\Game\data\database\sounds. Далее прописываем в нем наш новый звуковой файл таким образом:
Формат файлов - Microsoft ADPCM, 22050 кГц, 4бит, mono/stereo.
В том же каталоге Х:\MaxPayne2Dev\Game\data\database\sounds создаем папку NewSound и копируем туда наш звуковой файл.
Теперь осталось создать регионы и прописать титры. Для создания регионов нам потребуется программка Sony Sound Forge (я использую версию 9). Открываем наш звуковой файл.
Теперь вставляем регион. Регион показывает, сколько по времени будет отображаться титр на экране.
Выделяем регион:
Далее жмем Edit и в поле Name пишем имя региона, то есть 01. Сделали. Теперь разберемся с длиной титров.
(1) это начало нашего титра, (2) - конец. Весь файл длится 3 секунды, cледовательно, титр будет отображаться 3 секунды, так как у нас начало и конец региона в начале и в конце файла соответственно. Сделаем его, например 1 секунду. Просто сдвинем (2) влево на уровень 1 секунды. Это же можно сделать, нажав Edit и просто указать время. Также делаются несколько титров на один файл, просто создается новый регион, именуется другим именем, например 02. Регион 01 и 02 идет друг за другом.
Теперь пропишем наши титры в текстовый файл.
Открываем ранее созданный текстовый файл New.h и пишем там:
Пишем вместо "Все они были мертвы." то, что вы хотите. Сюда же пишутся все остальные титры от вашего файла, если вы их добавили.
1) Sony Sound Forge 8 или 9, разницы нету;
2) NotePad (блокнот) и прямые руки.
Первым делом Вам нужно добавить новый текстовый файл (пока пустой) с Вашими титрами в базу. Создаем текстовый файл с расширением *.h в каталоге X:\MaxPayne2Dev\Game\data\database\subtitles, где Х буква вашего диска. Назовем его New.h. Далее прописываем строку #include "subtitles\New.h" в файле subtitles.txt, который находится в папке Х:\MaxPayne2Dev\Game\data\database.
Следующим номером нашей программы будет добавление самого звукового файла в нашу базу.
Создаем текстовый файл, например NewSound.txt в папке Х:\MaxPayne2Dev\Game\data\database\sounds. Далее прописываем в нем наш новый звуковой файл таким образом:
#include "..\soundid.h"
[имя файла, которое будет использовать движок, например 01] //
{
[Properties] ID = 0;
[Default]
{
[Sound]
Filename = NewSound\имя вашего файла(здесь 01).wav;
Volume = PLAYER_TALK_VOLUME;
Random = 0%;
3DSound = YES;
Hotspot = PLAYER_TALK_HOTSPOT;
FallOff = PLAYER_TALK_FALLOFF;
Streamed = YES;
Priority = PLAYER_TALK_PRIORITY;
ItemsToCache = 0;
FrequencyScaling = FALSE;
LipSync = FALSE;
EarRadio = FALSE;
Dialogue = FALSE;
}
}Формат файлов - Microsoft ADPCM, 22050 кГц, 4бит, mono/stereo.
В том же каталоге Х:\MaxPayne2Dev\Game\data\database\sounds создаем папку NewSound и копируем туда наш звуковой файл.
Теперь осталось создать регионы и прописать титры. Для создания регионов нам потребуется программка Sony Sound Forge (я использую версию 9). Открываем наш звуковой файл.
Теперь вставляем регион. Регион показывает, сколько по времени будет отображаться титр на экране.
Выделяем регион:
Далее жмем Edit и в поле Name пишем имя региона, то есть 01. Сделали. Теперь разберемся с длиной титров.
(1) это начало нашего титра, (2) - конец. Весь файл длится 3 секунды, cледовательно, титр будет отображаться 3 секунды, так как у нас начало и конец региона в начале и в конце файла соответственно. Сделаем его, например 1 секунду. Просто сдвинем (2) влево на уровень 1 секунды. Это же можно сделать, нажав Edit и просто указать время. Также делаются несколько титров на один файл, просто создается новый регион, именуется другим именем, например 02. Регион 01 и 02 идет друг за другом.
Теперь пропишем наши титры в текстовый файл.
Открываем ранее созданный текстовый файл New.h и пишем там:
// ========================================================= // My subtitles // --------------------------------------------------------- [01(обязательно должно совпадать с именем региона)] String = "Все они были мертвы.";
Пишем вместо "Все они были мертвы." то, что вы хотите. Сюда же пишутся все остальные титры от вашего файла, если вы их добавили.
» Комментарии (0)
PVSA - отдельный мод сделанный на основе противников из CoG. Одна из особенностей мода это пули, след и звуки максимально приближены к тем стандартам что мы наблюдали в матрице. Мод расчитан на русскую версию (присутствуют субтитры).
Имеется три сложности прохождения, рекомендую последнюю с пасхальным яйцом . У Нео естественно имеется несколько трюков в кармане, а потрепав его он начнет виртуозно использовать bulletdodge.
Обсуждение на форуме
Имеется три сложности прохождения, рекомендую последнюю с пасхальным яйцом . У Нео естественно имеется несколько трюков в кармане, а потрепав его он начнет виртуозно использовать bulletdodge.
Обсуждение на форуме
Данный раздел познакомит Вас с пошаговым процессом создания эффекта на основе частиц. В том случае если вы уже знакомы с подобным процессом создания и Вам нужна другая более узкоспециализированная информация вы можете пропустить данный раздел. Описание процесса создания своих собственных графических элементов, и добавление их в редактор вы можете, найти в нижеследующих раздела данного руководства. Все исходные графические элементы, использованные в данном руководстве, и конечный вариант полученного эффекта вы можете найти в прилагаемых файлах-примерах. Ну что ж давайте приступим непосредственно к рассмотрению процесса создания эффекта.
Запустите Particle FX и создайте новый проект эффекта нажав на кнопу New. Появиться окно нового документа
Для того что бы представляли масштаб создаваемого эффекта в режиме предварительного просмотра у Вас должен быть какой либо задний фон. Для того что бы загрузить его нажмите на кнопку расположенную рядом с пунктом “KF Scene”, и зайдите в директорию Examples \ Backgrounds. В данной директории выберете файл grid.txt и нажмите OK. Тем самым вы добавите в сцену предварительного просмотра эффекта прозрачную координатную сетку с шагом в 1 метр.
Теперь Вы должны создать новую частицу. Для этого выберете “Particle” из выпадающего списка расположенного в разделе “Element and Emitter properties” затем нажмите кнопку New в нижнем левом углу главного окна. Редактор создаст новую частицу и автоматически откроет окно с её свойствами.
По умолчанию новая частица называется “Unnamed Particle”. Измените ее текущее имя на “Flames”.
Теперь вашей частице нужна графическая основа. Нажмите кнопку Import расположенную в разделе “Particle Bitmaps” окна свойств частицы. Откроется браузер файлов. Зайдите в директорию “Bitmaps” которая расположена в корневой директории установленного редактора Particle FX и откройте файл bitmaps.txt.
Конфигурационный файл bitmaps.txt объединяет в себе несколько графических элементов, образуя группы графических элементов. После выбора нужного файла появляется меню в котором вы может выбрать нужную группу. Выберите reelflames_additive one и нажмите OK. Группа “Reel Flames” представляет собой комплект из изображений реалистичного огня расположенных в определенной последовательности. There are 6 sequences in total, each consisting of a different number of bitmaps. (В случае если графическая основа эффекта содержит несколько различных “контейнеров”, Particle FX aавтоматически случайно распределяет их между друг другом. Это добавляет частицам хоть какое-то разнообразие. Ведь эффект будет выглядеть искусственным в случае если все частицы будут выглядеть одинаково.
Хорошо у частицы есть графическая основа, теперь вы можете произвести предварительный просмотр эффекта.so . Если Вы сможете сдержать свое любопытство на некоторое время, то Вы можете пропустить данный шаг. В случае если Вы больше не можете ждать и хотите посмотреть как выглядит эффект на данной стадии разработки, выберите Emitter в разделе Element and Emitter properties tглавного окна проекта и нажмите кнопку New для создания нового Эмиттера частиц (Particle Emitter). После этого перейдите в раздел Emission Control, и нажмите кнопку New для создания новой эмиссии, выберите “Flames” и эмиттер, который вы только что создали (“Unnamed Particle Emitter”) из всплывающего окна и нажмите OK. Нажмите F2 для того что бы запустить предварительный просмотр эффекта. Вы видите огненный фонтан, состоящий из шариков, которые непроизвольно выплевывает эмиттер, Вы не видите пламя? Конечно, нет. Что бы оно появилось необходимо его еще настроить. Закройте окно предварительного просмотра, нажав клавишу F4.
Такой результат вы можете увидеть при использовании изображений огня со стандартными параметрами
Теперь вы должны изменить некоторые параметры эффекта. Вернитесь к элементу Particles в разделе Element and Emitter properties, и дважды кликните по частице Flames, что бы открыть ее. Следующее что нам необходимо сделать:
-Измените тип анимации (Animation type) на Lifetime. Графическая основа огня состоит из последовательных изображений, в которых исчезают несколько различных языков пламени, таким образом, они не зацикливаются.
-Не обращайте внимания на параметры animation FPS (частоты смены кадров анимации) и на random 1st frame (случайный 1 кадр анимации), так как они используются только при зацикленном графическом содержании.
-Установите параметр Particle Random Rotation в пределах от –180 градусов до 180 градусов. Это позволит вращаться частицам на 360 градусов и придаст эффекту пламени большее разнообразие. Так же поставьте галочку напротив параметра Randomize rotation direction.
-Поставьте галочку, напортив параметра Random mirroring X and Y. Теперь частицы будут отражаться по обеим осям в случайном порядке, что придаст эффекту большее разнообразие.
-Наше пламя имеет тенденцию бесконтрольно двигаться вверх. Измените параметр Gravity multiplier на –2.5. Использование отрицательной гравитации вместо направленной эмиссии, в данном случае будет наиболее целесообразно.negative gravity instead of directed emission. Это позволит гарантированно свести к минимуму бесконтрольное движение пламени вверх относительно эмиттера.
-Установите параметр (El. Velocity) в режим Cubic. Это увеличит сопротивление воздуха в момент повышения скорости, что в свою очередь предотвратит слишком быстрый подъем огня.
-Установите параметр (El. Size) в режим Linear. (Данное соотношение размер – сопротивление воздуха, сделает эффект меньше)
-Установите Air Resistance Constant равный 4. Пламя должно иметь правдоподобную аэродинамику.
Попробуйте просмотреть полученный эффект, и Вы увидите огненный столб поднимающийся вверх. Выглядит лучше, но все, же не так как надо. Пора произвести отдельную настройку частиц, до того как они будут эмитированы. Нажмите на кнопку Size Graph, и отредактируйте его как указанно на расположенном ниже рисунке.
Так как данный график не особо точный, установите частоту дискретизации на 8. Кривая графика указывает на то, что частицы в эффекте стартуют с нулевого размера, затем их размер повышается до полного (1единица) и к концу цикла постепенно становится меньше.
Откройте график Rotation Graph, и отредактируйте его как указанно на расположенном ниже рисунке.
Данный график задает вращение частиц с постоянной скоростью на протяжении всего цикла, в пределе от –187 градусов до 0 градусов. Галочка, напортив параметра “Randomize Rotation Direction” позволит беспорядочно переворачивать график для разных частиц, для достижения большего разнообразия (график Rotation Multiplier так же влияет на вращение частиц, но в него мы зайдем позже). Поскольку график содержит только прямые линии, вы можете, изменит частоту выборки графика, и сделать ее равной 2 единицам.
Далее откройте график Vertex Alpha Graph и отредактируйте его как указанно на расположенном ниже рисунке.
Так как последовательная анимация пламени содержит мало кадров, это поможет сгладить конечные кадры когда пламя начнет затухать.
Теперь, откройте график RGB Color Graph и отредактируйте его как указанно на расположенном ниже рисунке.
Если хотите можете представить себе как он действует. Цвет пламени постепенно, по мере угасания, будет переходить в красный.
Отлично! Вы создали работающие частицы огня. Если сейчас, включить предварительный просмотр эффекта, вы увидите подобие огненного столба, с малоподвижными языками пламени.
Как видите частицы нужный эффект не образуют. Более точной настройки требует эмиттер (Emitter), так как во многом именно от него зависит как поведут себя частицы.
Ну что ж давайте приступим к настройке эмиттера (Emitter) который мы создали. Выберете Emitter в разделе the Element and Emitter properties и дважды кликните на “Unnamed Particle Emitter”, тем самым вы откроете окно настроек эмиттера.
Для начала эмиттеру требуется более подходящее название. Изменим его на что-нибудь, типа “Flaming”.
После того как пламя поднимается верх само по себе, направление эмиссии не требуетсяonся. Оставьте график Direction graph без изменений (за исключением понижения частоты выборки графика до 2 единиц).
Точно так же поступите с графиком Emission Random Velocity graph, оставьте все как есть. По умолчанию пламя имеет очень маленький разброс по скорости, но это не значительно. Понизьте частоту выборки графика до 2 единиц.
Теперь давайте перейдем в раздел Emitter Shape. Вероятно, пламя будет смотреться лучше, если оно будет эмитироваться из плоскости. Измените форму эмиттера на Square.
Установите минимальные и максимальные значения для X равными –0.15 и 0.15 метра соответственно. Значения для Y оставьте равными. Установите минимальные и максимальные значения для Z равными –0.15 и 0.15 метра соответственно. Это создаст площадку 30 х 30 сантиметров, на которой в последствии будут генерироваться все частицы эффекта. Начало эффекта будет в центре этой площадки
Эффект пламени над которым, мы работаем постоянный, и The flame effect we’re working on is constant, and meant to loop indefinitely. Установите продолжительность цикла равной 20 секундам и отредактируйте график Emission Rate graph таким образом, что бы верхняя кривая была равна примерно 80 единицам, а нижняя 10. Простейший способ сделать это, поднять графики вверх и опустить вниз с помощью правой кнопки мышки. Какая кривая нижняя, а какая верхняя не имеет значения. Поскольку графики используют только для постоянных величин времени (ie.горизонтальные линии), установите частоту выборки графика на 2. Теперь эффект будет работать 20 секунд с момента старта и эмитировать от 10 до 80 частиц в единицу времени. Поставьте галочку напротив параметра Cycle Looping. Эффект можно сделать зацикленным с помощью включения данного параметра, так же посредством скрипта в игре (информацию по этому вопросу смотрите в документации к редактору).
Измените, график Element Lifetime Graph таким образом, что бы верхняя линия находилась примерно на 1, а нижняя на значении 0.3.Снова измените частоту выборки графика на 2. В результате продолжительность существования эмитируемых частиц будет варьироваться между 0.3 и 1 секундами в течении 20 секундного цикла..
Отредактируйте Size Multiplier Graph таким образом, что бы верхняя линия была примерно на отметке 0.9, а нижняя примерно на 0.4. Размер частиц в эффекте будет варьировать от 0.4 до0.9 единиц в течении всего цикла эмиссии.
В соответствии с предыдущими графиками, отредактируйте Rotation Multiplier Graph до 0.2 и 0.6 единиц соответственно. В таком случае некоторые языки пламени будут вращаться меньше, некоторые больше. Множитель вращения равный 1 не окажет никакого влияния на график вращения; значения больше чем 1 увеличат вращение, а положительные величины меньше 1 уменьшат его.
Теперь посмотрим на полученный результат. Выглядит намного лучше, неправда ли?
Фактически представленный файл пример рассчитан на комбинацию из двух эффектов огня. Первый эмиттер был скопирован с помощью кнопки Clone и немного отредактирован. Первый эмиттер извергает маленькие языки пламени с небольшим временем жизни, а второй напротив – одно большое пламя с большой продолжительностью жизни. Это предотвратит ситуацию когда маленькие языки пламени поднимаются слишком высоко, а она появляется в том случае если вы пытаетесь заставить эмитироваться все частицы огня из одного эмиттера с малым разбросом размера.
Вы могли заметить, что пример эффекта огня из состава, так же содержит восходящий столб дыма. Как использовать его, попробуем воссоздать дым из имеющихся элементов. Вот некоторые рекомендации:
-Изображение дыма из примера очень светлое, по этому используйте Color Graph что бы сделать его темней.
-Дым выцветает практически полностью. Наклоните вниз кривую графика Vertex Alpha Graph. Ввиду того что изображение дыма полностью непрозрачное, вы можете начать кривую прозрачности с изначально низкого значения и опустить его ещё ниже.
-Облако дыма поднимается вверх медленней, чем пламя. Используйте отрицательные значения множителя гравитации.
-Облако дыма имеет тенденцию жить больше чем само пламя. Значение Random Element Lifetime от 2 до 5 секунд должно подойти. Поскольку время существования у него больше, они должны rate to предотвратить чрезмерную густоту дыма.
Еще один интересный вариант использования заготовки эффекта огня, это превращение обычного пламени в подобие шарообразного взрыва. Для начала измените, длительность цикла, так что бы он стал равен 10 секундам, затем возьмите графики Emission Rate, Size и Lifetime и повысьте их разрешение, после чего сделайте, так что бы эмиссия частиц в эффекте была очень сильно, а эмитируемые частицы имели высокую продолжительность существования, и резко понизьте все значения. В результате этого, в начале эффекта мы получим мощный взрыв, после которого появится огонь, который будет гореть до самого конца эффекта. Ниже показано как именно надо изменить, эти три графика.
Создание эффекта огня
Запустите Particle FX и создайте новый проект эффекта нажав на кнопу New. Появиться окно нового документа
Для того что бы представляли масштаб создаваемого эффекта в режиме предварительного просмотра у Вас должен быть какой либо задний фон. Для того что бы загрузить его нажмите на кнопку
Теперь Вы должны создать новую частицу. Для этого выберете “Particle” из выпадающего списка расположенного в разделе “Element and Emitter properties” затем нажмите кнопку New в нижнем левом углу главного окна. Редактор создаст новую частицу и автоматически откроет окно с её свойствами.
По умолчанию новая частица называется “Unnamed Particle”. Измените ее текущее имя на “Flames”.
Теперь вашей частице нужна графическая основа. Нажмите кнопку Import расположенную в разделе “Particle Bitmaps” окна свойств частицы. Откроется браузер файлов. Зайдите в директорию “Bitmaps” которая расположена в корневой директории установленного редактора Particle FX и откройте файл bitmaps.txt.
Конфигурационный файл bitmaps.txt объединяет в себе несколько графических элементов, образуя группы графических элементов. После выбора нужного файла появляется меню в котором вы может выбрать нужную группу. Выберите reelflames_additive one и нажмите OK. Группа “Reel Flames” представляет собой комплект из изображений реалистичного огня расположенных в определенной последовательности. There are 6 sequences in total, each consisting of a different number of bitmaps. (В случае если графическая основа эффекта содержит несколько различных “контейнеров”, Particle FX aавтоматически случайно распределяет их между друг другом. Это добавляет частицам хоть какое-то разнообразие. Ведь эффект будет выглядеть искусственным в случае если все частицы будут выглядеть одинаково.
Хорошо у частицы есть графическая основа, теперь вы можете произвести предварительный просмотр эффекта.so . Если Вы сможете сдержать свое любопытство на некоторое время, то Вы можете пропустить данный шаг. В случае если Вы больше не можете ждать и хотите посмотреть как выглядит эффект на данной стадии разработки, выберите Emitter в разделе Element and Emitter properties tглавного окна проекта и нажмите кнопку New для создания нового Эмиттера частиц (Particle Emitter). После этого перейдите в раздел Emission Control, и нажмите кнопку New для создания новой эмиссии, выберите “Flames” и эмиттер, который вы только что создали (“Unnamed Particle Emitter”) из всплывающего окна и нажмите OK. Нажмите F2 для того что бы запустить предварительный просмотр эффекта. Вы видите огненный фонтан, состоящий из шариков, которые непроизвольно выплевывает эмиттер, Вы не видите пламя? Конечно, нет. Что бы оно появилось необходимо его еще настроить. Закройте окно предварительного просмотра, нажав клавишу F4.
Такой результат вы можете увидеть при использовании изображений огня со стандартными параметрами
Теперь вы должны изменить некоторые параметры эффекта. Вернитесь к элементу Particles в разделе Element and Emitter properties, и дважды кликните по частице Flames, что бы открыть ее. Следующее что нам необходимо сделать:
-Измените тип анимации (Animation type) на Lifetime. Графическая основа огня состоит из последовательных изображений, в которых исчезают несколько различных языков пламени, таким образом, они не зацикливаются.
-Не обращайте внимания на параметры animation FPS (частоты смены кадров анимации) и на random 1st frame (случайный 1 кадр анимации), так как они используются только при зацикленном графическом содержании.
-Установите параметр Particle Random Rotation в пределах от –180 градусов до 180 градусов. Это позволит вращаться частицам на 360 градусов и придаст эффекту пламени большее разнообразие. Так же поставьте галочку напротив параметра Randomize rotation direction.
-Поставьте галочку, напортив параметра Random mirroring X and Y. Теперь частицы будут отражаться по обеим осям в случайном порядке, что придаст эффекту большее разнообразие.
-Наше пламя имеет тенденцию бесконтрольно двигаться вверх. Измените параметр Gravity multiplier на –2.5. Использование отрицательной гравитации вместо направленной эмиссии, в данном случае будет наиболее целесообразно.negative gravity instead of directed emission. Это позволит гарантированно свести к минимуму бесконтрольное движение пламени вверх относительно эмиттера.
-Установите параметр (El. Velocity) в режим Cubic. Это увеличит сопротивление воздуха в момент повышения скорости, что в свою очередь предотвратит слишком быстрый подъем огня.
-Установите параметр (El. Size) в режим Linear. (Данное соотношение размер – сопротивление воздуха, сделает эффект меньше)
-Установите Air Resistance Constant равный 4. Пламя должно иметь правдоподобную аэродинамику.
Попробуйте просмотреть полученный эффект, и Вы увидите огненный столб поднимающийся вверх. Выглядит лучше, но все, же не так как надо. Пора произвести отдельную настройку частиц, до того как они будут эмитированы. Нажмите на кнопку Size Graph, и отредактируйте его как указанно на расположенном ниже рисунке.
Так как данный график не особо точный, установите частоту дискретизации на 8. Кривая графика указывает на то, что частицы в эффекте стартуют с нулевого размера, затем их размер повышается до полного (1единица) и к концу цикла постепенно становится меньше.
Откройте график Rotation Graph, и отредактируйте его как указанно на расположенном ниже рисунке.
Данный график задает вращение частиц с постоянной скоростью на протяжении всего цикла, в пределе от –187 градусов до 0 градусов. Галочка, напортив параметра “Randomize Rotation Direction” позволит беспорядочно переворачивать график для разных частиц, для достижения большего разнообразия (график Rotation Multiplier так же влияет на вращение частиц, но в него мы зайдем позже). Поскольку график содержит только прямые линии, вы можете, изменит частоту выборки графика, и сделать ее равной 2 единицам.
Далее откройте график Vertex Alpha Graph и отредактируйте его как указанно на расположенном ниже рисунке.
Так как последовательная анимация пламени содержит мало кадров, это поможет сгладить конечные кадры когда пламя начнет затухать.
Теперь, откройте график RGB Color Graph и отредактируйте его как указанно на расположенном ниже рисунке.
Если хотите можете представить себе как он действует. Цвет пламени постепенно, по мере угасания, будет переходить в красный.
Отлично! Вы создали работающие частицы огня. Если сейчас, включить предварительный просмотр эффекта, вы увидите подобие огненного столба, с малоподвижными языками пламени.
Как видите частицы нужный эффект не образуют. Более точной настройки требует эмиттер (Emitter), так как во многом именно от него зависит как поведут себя частицы.
Настройка эмиттера
Ну что ж давайте приступим к настройке эмиттера (Emitter) который мы создали. Выберете Emitter в разделе the Element and Emitter properties и дважды кликните на “Unnamed Particle Emitter”, тем самым вы откроете окно настроек эмиттера.
Для начала эмиттеру требуется более подходящее название. Изменим его на что-нибудь, типа “Flaming”.
После того как пламя поднимается верх само по себе, направление эмиссии не требуетсяonся. Оставьте график Direction graph без изменений (за исключением понижения частоты выборки графика до 2 единиц).
Точно так же поступите с графиком Emission Random Velocity graph, оставьте все как есть. По умолчанию пламя имеет очень маленький разброс по скорости, но это не значительно. Понизьте частоту выборки графика до 2 единиц.
Теперь давайте перейдем в раздел Emitter Shape. Вероятно, пламя будет смотреться лучше, если оно будет эмитироваться из плоскости. Измените форму эмиттера на Square.
Установите минимальные и максимальные значения для X равными –0.15 и 0.15 метра соответственно. Значения для Y оставьте равными. Установите минимальные и максимальные значения для Z равными –0.15 и 0.15 метра соответственно. Это создаст площадку 30 х 30 сантиметров, на которой в последствии будут генерироваться все частицы эффекта. Начало эффекта будет в центре этой площадки
Эффект пламени над которым, мы работаем постоянный, и The flame effect we’re working on is constant, and meant to loop indefinitely. Установите продолжительность цикла равной 20 секундам и отредактируйте график Emission Rate graph таким образом, что бы верхняя кривая была равна примерно 80 единицам, а нижняя 10. Простейший способ сделать это, поднять графики вверх и опустить вниз с помощью правой кнопки мышки. Какая кривая нижняя, а какая верхняя не имеет значения. Поскольку графики используют только для постоянных величин времени (ie.горизонтальные линии), установите частоту выборки графика на 2. Теперь эффект будет работать 20 секунд с момента старта и эмитировать от 10 до 80 частиц в единицу времени. Поставьте галочку напротив параметра Cycle Looping. Эффект можно сделать зацикленным с помощью включения данного параметра, так же посредством скрипта в игре (информацию по этому вопросу смотрите в документации к редактору).
Измените, график Element Lifetime Graph таким образом, что бы верхняя линия находилась примерно на 1, а нижняя на значении 0.3.Снова измените частоту выборки графика на 2. В результате продолжительность существования эмитируемых частиц будет варьироваться между 0.3 и 1 секундами в течении 20 секундного цикла..
Отредактируйте Size Multiplier Graph таким образом, что бы верхняя линия была примерно на отметке 0.9, а нижняя примерно на 0.4. Размер частиц в эффекте будет варьировать от 0.4 до0.9 единиц в течении всего цикла эмиссии.
В соответствии с предыдущими графиками, отредактируйте Rotation Multiplier Graph до 0.2 и 0.6 единиц соответственно. В таком случае некоторые языки пламени будут вращаться меньше, некоторые больше. Множитель вращения равный 1 не окажет никакого влияния на график вращения; значения больше чем 1 увеличат вращение, а положительные величины меньше 1 уменьшат его.
Теперь посмотрим на полученный результат. Выглядит намного лучше, неправда ли?
Фактически представленный файл пример рассчитан на комбинацию из двух эффектов огня. Первый эмиттер был скопирован с помощью кнопки Clone и немного отредактирован. Первый эмиттер извергает маленькие языки пламени с небольшим временем жизни, а второй напротив – одно большое пламя с большой продолжительностью жизни. Это предотвратит ситуацию когда маленькие языки пламени поднимаются слишком высоко, а она появляется в том случае если вы пытаетесь заставить эмитироваться все частицы огня из одного эмиттера с малым разбросом размера.
Вы могли заметить, что пример эффекта огня из состава, так же содержит восходящий столб дыма. Как использовать его, попробуем воссоздать дым из имеющихся элементов. Вот некоторые рекомендации:
-Изображение дыма из примера очень светлое, по этому используйте Color Graph что бы сделать его темней.
-Дым выцветает практически полностью. Наклоните вниз кривую графика Vertex Alpha Graph. Ввиду того что изображение дыма полностью непрозрачное, вы можете начать кривую прозрачности с изначально низкого значения и опустить его ещё ниже.
-Облако дыма поднимается вверх медленней, чем пламя. Используйте отрицательные значения множителя гравитации.
-Облако дыма имеет тенденцию жить больше чем само пламя. Значение Random Element Lifetime от 2 до 5 секунд должно подойти. Поскольку время существования у него больше, они должны rate to предотвратить чрезмерную густоту дыма.
Еще один интересный вариант использования заготовки эффекта огня, это превращение обычного пламени в подобие шарообразного взрыва. Для начала измените, длительность цикла, так что бы он стал равен 10 секундам, затем возьмите графики Emission Rate, Size и Lifetime и повысьте их разрешение, после чего сделайте, так что бы эмиссия частиц в эффекте была очень сильно, а эмитируемые частицы имели высокую продолжительность существования, и резко понизьте все значения. В результате этого, в начале эффекта мы получим мощный взрыв, после которого появится огонь, который будет гореть до самого конца эффекта. Ниже показано как именно надо изменить, эти три графика.
» Комментарии (0)
Что такое Particle FX?
Particle FX представляет собой мощный редактор эффектов на основе частиц, который был использован разработчиками из Remedy Entertainment при разработке спецэффектов для игр Max Payne и Max Payne 2: The Fall of Max Payne. Все что вы видели в этих играх, огонь, дым, взрывы, пламя которое так красиво вырывается из стволов оружия при стрельбе, снег, дождь, все это было создано именно в этом редакторе. Редактор Particle FX при должном умении позволяет создавать эффекты как природного, так и техногенного происхождения поистине высочайшего качества…
Основной идеей данного редактора является использование отдельной трехмерной среды в которой создаваемый эффект можно не только редактировать, но и визуализировать на любой стадии разработки, что позволяет оценить полученный результат прямо в редакторе без каких-либо промежуточных действий, таких как экспорт эффекта непосредственно в игру
Цель данной документации заключается в ознакомлении пользователя с основами работы в редакторе Particle FX. Представленное пошаговое руководство по созданию эффекта познакомит вас с основными доступными настройками и параметрами редактора.
Редактирование эффектов
Рассмотрим принцип работы эффектов создаваемых в Particle FX. Эффект на основе частиц состоит из двух основных элементов собственно самих частиц и эмиттера (эмиттеров). Работает это достаточно просто частицы это основная часть эффекта, в различных сочетаниях частицы образуют нужный графический эффект. Но эмиттер, в свою очередь не менее важен, так как именно из него выбрасываются частицы. Процесс извержения частиц из эмиттера называется процессом эмиссии. В зависимости от тех настроек, которые мы задаем процессу эмиссии, мы определяем какой эмиттер какие частицы генерирует. Данный процесс вы прекрасно можете рассмотреть в прилагающихся к редактору эффектах-примерах.
Предварительный просмотр эффекта:
Занимаясь редактированием эффекта, вы в любой момент, можете посмотреть на полученный результат, нажав клавишу F2 или кликнув на иконку Run Preview расположенную на панели инструментов. В режиме предварительного просмотра эффекта вы можете выполнять следующие действия:
-Нажать кнопку F2 что бы запустить воспроизведение эффекта сначала.
-Нажать кнопку F3 для остановки/продолжения визуализации эффекта.
-Используйте стрелки на клавиатуре что бы перемещать камеру вокруг эффекта, так же можно использовать клавиши Page Up и Page Down для отдаления и приближения камеры к эффекту.
-Зажав Ctrl во время вращения или масштабирования, вы ускоряете скорость перемещения камеры.
-Зажав Shift во время вращения или масштабирования, вы замедляете скорость перемещения камеры.
Находясь в режиме предварительного просмотра эффектов вы наверное заметили расположенные в уголках окна цифровые индикаторы, я думаю, стоит рассказать о них подробнее.
-FPS Данный датчик отображает частоту кадров изображения в сцене. С помощью этого датчика вы можете, отслеживать насколько сильно визуализация вашего эффекта нагружает центральный процессор.
-Particles Данный датчик отображает сколько в настоящее время частиц задействовано в вашем эффекте. Если индикатор становится красным, это значит что, количество частиц в эффекте превышает допустимую норму.
-Max Данный датчик отображает общее количество частиц задействованных в эффекте. Если индикатор становится красным, это значит, что общее количество частиц в эффекте превышает допустимую норму.
-Radius Данный датчик отображает максимальный разброс частиц в метрах относительно центра сцены.
После того как вы закончили просматривать эффект нажмите клавишу F4 для выхода из режима предварительного просмотра. Обратите внимание на то, что все изменения, которые вы производите с эффектом, пока открыто окно предварительного просмотра не вступят в силу. Что бы изменения вступили в силу, вы должны выйти из режима предварительного просмотра и зайти в него снова.
Редактирование графиков:
Как вы могли заметить, при нажатии большинства кнопок появляются окна содержащие графики, которые можно изменять простым щелчком мыши. Большинство этих графиков содержит различные настройки частиц и собственно самого эффекта. Преимущество графиков перед обычными постоянными величинами заключается в том что в графике вы можете плавно изменять нужные величины в течении всего времени. Графики легко можно редактировать путем перемещения и добавления узлов, точек соединяющих линии.
Если быть точнее, то на самом деле графики не задают конечные величины для создаваемого эффекта. График представляет дискретные (выборочные) величины. а движок программы конвертирует их в допустимо приведенные величины. Тонкая линия, идущая на протяжении всего графика, представляет конечный результат дискретизации. Изменить частоту дискретизации графика можно при помощи клавиш / и * находящихся на цифровой панели клавиатуры. Текущая частота дискретизации графика (sr) отображается в правом верхнем углу окна. Вы можете, попробовать изменит значение дискретизации графика, и посмотреть на эффект. Оптимизация эффекта заключается в том, что бы частота дискретизации была минимально возможной. Если вы будите использовать график, в котором кривые будут использованы для отображения постоянной или линейно изменяющейся величины то, в данном случае частота дискретизации равная 2 единицам буде вполне уместна. В случае если вы работаете с графиком, кривые которого имеют очень плавные переходы, то вам придется повысить частоту дискретизации.
Некоторые графики которые отвечают за свойства эмиттера содержат две кривые вместо одной. Эта особенность графика позволяет конечной величине варьировать между двумя заданными значениями, в течении всего времени пока происходит выброс частиц из эмиттера. Использование двух кривых в одном графике в данном случае способствует разнообразию конечных величин. В тех местах где кривые графика перекрывают друг друга полностью или частично, разброс по величинам отсутствует.
В заключении частицы эффекта раскрашиваются, а эмиттеру задается определенное освещение. График который отвечает за цветность содержит в себе три кривые каждая из которых означает определенный основной цвет – красный, синий, зеленый.
Любое из окон, в котором происходит редактирование графика, может масштабироваться по вашему усмотрению. После того как окно будет закрыто, все изменения произошедшие в нем будут автоматически сохранены.
Редактируя графики, вы можете выполнять следующие действия:
Масштабировать изображение графика, используя клавиши + и – находящиеся на цифровой клавиатуре или нажав на кнопку Zoom In и Zoom Out находящихся на панели инструментов.
Восстановить разрешение координатной сетки графика, используя сочетание клавиш Ctrl+G или нажав на кнопку Grid Resolution
Добавлять в график новые узловые точки. Добавление точки производится путем двойного нажатия левой кнопки мыши непосредственно на самой кривой графика в том месте где вы хотите расположить новый узел. Произвести удаление точки, можно выделив ее щелчком левой кнопки мыши и нажав Del.
Для перемещения узловой точки, щелкните по ней левой кнопкой мыши и не отпуская перетащите на нужное место. Если во время перетаскивания точек вы зажмете клавишу Shift, то вы перетащите все точки графика относительно их изначального местоположения. Данный прием применим только в случае со сложными графиками содержащими несколько кривых. Если во время перетаскивания точек вы зажмете клавишу Ctrl, то вы сможете переместить точки относительно вертикальной оси графика.
Если зажав, вы попробуете перетащить узловую точку при помощи правой кнопки мыши, то вы сдвинете весь график вверх или вниз.
Для того что бы задать узловой точке или точкам графика точные цифровые значения выберите её левой кнопкой мыши и нажмите клавишу N. В случае если вы работаете с графиком, отвечающим за цветность то при нажатии на кнопку C появится встроенная в Windows палитра, в которой вы сможете задать необходимый цвет
Для того что бы масштабировать сразу весь график по вертикали, зажмите клавишу Ctrl и выбрав узловую точку перетащите её.
Обзор используемых параметров
Main screen (Главное меню)
Emission Control (Контроль эмиссии)
Даже когда Вы создадите Частицу и Эмиттер, ничего не произойдет, пока Вы не создадите Эмиссию. Эмиссия определяет какие частицы эмитируются тем или иным эмиттером. Для того что бы создать новую Эмиссию, нажмите на кнопку New, затем в диалоговом окне выберите соответствующую частицу и эмиттер. Эмиссию в случае необходимости можно удалить с помощью кнопки Delete, или запретить с помощью кнопки Disable. Когда эффект экспортируется в игровой формат функция запрета не учитывается.
Max # of particles (Максимальное количество частиц)
Данный параметр указывает максимальное число активных частиц используемых системой частиц. От значения данного параметра напрямую зависит количество отведенной для эффекта памяти. В случае если величина данного параметра равна 500 частиц, а в эффекте используется только 20 рекомендуется изменить величину параметра до 20 частиц, что позволит избежать, нецелесообразное использование памяти (как следствие ее переполнение). Вообще при создании эффектов следует использовать, настолько мало частиц, насколько возможно – это позволит сэкономить ресурсы процессора. Более подробную информацию по этой теме вы можете найти в разделе «Оптимизация эффектов на основе частиц».
Particles emitted info (Тип эмиссии частиц)
Worldspace (Пространство сцены)
При данном значении параметра, частицы эмитируются в мир, с пространственной системой координат и не будут соединены с эмиттером. По этому, если эмиттер будет перемещаться, частицы будут оставлять за собой шлейф. Данное значение установлено программой по умолчанию и пригодно для использования в большинстве эффектов.
Objectspace (Пространство объекта)
При данном значении параметра частицы эмитируются в собственные пространственные координаты объекта и при его движении следуют за ним без какой-либо задержки. Данное значение удобно использовать при создании эффекта сияния или силового поля.
New particles when maximum reached (Использование новых частиц когда достигнут лимит)
Wait (Ожидание)
Новые частицы не эмитируются до тех пор, пока старые частицы не исчезнут.
Replace oldest (Перемещение самых старых частиц)
В тот момент, когда новые частицы будут эмитироваться, старые (то есть те частицы которые находятся в сцене продолжительный промежуток времени) частицы будут исчезать из эффекта
Replace random (Перемещение случайных частиц)
В тот момент, когда новые частицы будут эмитироваться, некоторые частицы в произвольном порядке будут исчезать
Preview Configuration (Настройки предварительного просмотра эффекта)
KF Scene
Данная функция позволяет загрузить задний фон, который будет использоваться во время предварительного просмотра эффекта, в сцене. Вместе с редактором в комплекте представлено 4 различных, задних фона для сцены предварительного просмотра, вы можете найти их в директории ...\ParticleFX\kf2.scenes\. Нажмите на широкую кнопку, (помечено надписью
Вы можете сами создать модель KF Scene в редакторе 3D Studio MAX, (или в любом другом редакторе который позволяет экспортировать модель в формат kf2) экспортировать в формат kf2 и создать для него скрипт. Ниже приведен пример скрипта для файла Grid.
[10m_grid]
{
[Geometry]
ExportData = data\grid.kf2;
[Animation] // block redundant if the scene has no animation
Index = 0;
filename = data\grid.kf2;
} KF Object (Объекты в формате KF)
Данная функция позволяет вам вставить в сцену любой объект, что позволяет наблюдать, как эффект смотрится, когда он прикреплен к объекту в игре и установлен в относительной позиции к оси объекта. Объект можно перемещать по сцене, а система частиц будет прикреплена к нему. Объект располагается по направлению движения подобно пулям в игре. Для удаления объекта из сцены предварительного просмотра нажмите кнопку Clear. Примечание: Если вы хотите например, разместить эффект вспышки относительно ствола оружия, вы должны настроить значения параметра Emitter’s Relative Position. Значения позиционирования в настройках предварительного просмотра, используются исключительно в предварительном просмотре и при экспорте эффекта в игровой формат не действительны.
Gravity (Гравитация)
Данный параметр задает значение глобальной гравитации, в редакторе частиц, и позволяет посмотреть на эффект с различными настройками гравитации. Стоит отметить, что данный параметр не влияет на гравитацию, установленную в игре. Значение данного параметра по умолчанию равно 9.81m/s^2
Time scale (Коэффициент времени)
Данный параметр изменяет величину коэффициента времени, и позволяет вам посмотреть, как эффект будет выглядеть в режиме замедленного времени. Если Вы установите значение данного параметра равным 0.1, то время будет идти со скоростью 1/10 от стандартного значения. Значения больше единицы ускоряют ход времени.
Max. FPS (Максимальная частота смены кадров)
Изменяя данный параметр, вы можете посмотреть, как низкая частота смены кадров, будет влиять на поведение частиц. На некоторые чрезвычайно быстрые эффекты могут влиять пропущенные кадры. Значение данного параметра по умолчанию равно 85.
Camera follows at maximum distance of meters # (Максимальное отдаление камеры в метрах)
Когда данная функция активирована камера будет следовать за системой частиц. Когда функция не активна камера ориентируется относительно системы частиц сама.
Scene position is locked (Блокировка позиции в сцене)
Параметр не используется.
Gravity affects system (Система имитации гравитации)
Когда данная функция активна система частиц будет падать вниз, подчиняясь гравитации. Используется в случае тестирования эффекта который будет прикреплен к пулям.
Frontplane (Фронтальный обзор)
Устанавливает величину фронтального обзора системы частиц. Если камера находится на расстоянии ближе чем указано в значении параметра Frontplane, то частицы не прорисовываются.
Backplane (Задний обзор)
Устанавливает величину заднего обзора в окне предварительного просмотра. Если частицы будут находиться дальше чем указано в значении параметра Backplane, то они не будут прорисовываться.
Object Offset XYZ (Смещение объекта по осям XYZ)
Устанавливает позицию KF объекта в сцене предварительного просмотра. Стоит отметить что система частиц всегда прикреплена к объекту, по этому если вы сместите объект, система частиц сдвинется вместе с ним.
System Offset XYZ (Система смещения по осям XYZ)
Устанавливает позицию системы частиц относительно объекта для предварительного просмотра. Примечание: Этот параметр не действует в отношении экспортированной системы частиц. По этому если Вы хотите разместить эффект в нужном месте, будь то вспышка при выстреле или что-либо другое, вы должны будите установить в Эмиттере собственные настройки параметра Relative Offset.
System Rotation XYZ (Система поворота по осям XYZ)
Данный параметр вращает систему частиц в сцене предварительного просмотра и позволяет Вам как выглядит эффект при различном вращении. Данный параметр не действует в экспортированной системе частиц. Для вращения эффекта непосредственно в игре используется вращение Эмиттера.
Object/System Velocity (Скорость объекта/системы)
Добавляет системе частиц ускорение в определенном направлении что позволяет, посмотреть как выглядит эффект когда он прикреплен к движущемуся Эмиттеру. Данный параметр совместим с гравитацией и позволяет симулировать Вам эффекты ракетных шлейфов и так далее.
KF Object
Данная функция позволяет вам вставить в сцену любой объект, что позволяет наблюдать, как эффект смотрится, когда он прикреплен к объекту в игре и установлен в относительной позиции к оси объекта. Объект можно перемещать по сцене, а система частиц будет прикреплена к нему.
Частицы
Частицы – это основной элемент эффекта на основе частиц именно их Вы видите падающими летающими и плавающими. В действительности они представляют собой плоскость, площадь полигона, которая всегда видимой своей частью направлена в камеру. Частицы бывают двух разновидностей Additive or Alpha blended.
Для создания частицы выберете “Particle” в выпадающем списке расположенном в разделе Element and Emitter Properties основного окна проекта, затем кликните на кнопку “New” При создании новой частицы появляется окно в котором Вы можете задать параметры создаваемой частицы, в последующем в случае надобности изменения параметров частиц Вы всегда можете зайти в их свойства, для этого сделайте двойной клик по нужной частице. Примечание: Вы можете скопировать частицы в буфер обмена, для этого выберете соответствующую частицу и нажмите CTRL-C или выберите Copy в меню Edit. С помощью данной функции Вы можете перемещать частицы из одного файла в другой.
Частицы имеют следующие параметры:
Name (Имя)
Данный параметр представляет собой обычный редактируемый текст и задает имя частицы. Вы можете переименовывать имеющиеся частицы, для этого, выберите нужную частицу из списка и подождите одну секунду при этом не двигая мышкой. так же Вы можете произвести процесс переименования непосредственно в окне свойств.
Enable Particle Lighting (Разрешить освещение частиц)
Когда данный параметр активен на затенение частиц будет влиять динамических и точечных источников расположенных на уровне света, а так же параметры графика цветности. Примечание: В случае если точечное освещение уровня настроено не совсем точно, это может привести к странным результатам (например, все частицы, могут оказаться окрашенными в черный цвет и подвергаться воздействию освещения.) Это так же повышает использование центрального процессора системы эффектом, по этому использовать данную функцию следует использовать исключительно в особых случаях, например, в случае если у вас есть комната заполненная дымом и мигающей лампой.
Gravity Multiplier (Коэффициент гравитации)
Данный параметр отвечает за то как на частицы будет влиять гравитация. Если значение данного параметра равно 1, то частицы будут находиться под влиянием гравитации. Значения меньше 1 эффект гравитации разделяется, значения больше 1 This determines how the gravity affects the particle. If the value is 1, the particle is directly affected by the gravity. Values smaller than 1 divide the effect of gravity, values larger than 1 увеличивает Если значение параметра равно 0 то гравитация никак не влияет на частицы. Отрицательные величины параметра делают частицы восходящими вверх (используется для огня и других эффектов которые легче воздуха).
Air Resistance (El. Velocity) (Сопротивление воздуха (скорость элементов))
Данный параметр определяет как скорость частиц влияет на сопротивление воздуха.. Чем быстрей двигаются частицы, тем больше сопротивление воздуха
Linear (Линейная)
Воздушное сопротивление полностью зависит от скорости.
Quadratic (Квадратичная)
Скорость воздействует на воздушное сопротивление вдвойне
Cubic (Кубическая)
Скорость воздействует на воздушное сопротивление втройне.
Air Resistance (El. Size)
Данный параметр определяет как размер частиц влияет на сопротивление воздуха. Чем больше размер частиц тем сильнее сопротивление, конечно если это необходимо.
-None: Сопротивление воздуха не зависит от размера частиц
-Linear: Сопротивление воздуха зависит прямо пропорционально от размера частиц
-Quadratic: Сопротивление воздуха зависит от размера частиц вдвойне
Air Resistance Constant (Постоянная воздушного сопротивления)
Общее значение воздушного сопротивления. Как правило чем больше данное значение тем сильнее воздушное сопротивление. Данная величина зависит от двух других (El. Velocity и El. SizeВ случае если данные величины равны нулю сопротивление отсутствует. Отрицательное значение данного параметра, заставляет частицы двигаться быстрее в различных направлениях, что в свою очередь приводит к интересным, а иногда и странным результатам. Экспериментируя с данным параметром Вы возможно получите желаемый результат.
Анимация частиц
Animation Type (Тип анимации)
Данный параметр определяет, как частицы будут анимированы.
Looping (Зацикленный тип анимации)
Последовательность графических изображений замкнута и определяется частотой смены кадров.. Пример: кружащиеся куски осколков.
Lifetime ()
Вся последовательность отображаемых в сцене изображений частиц имеет срок существования, от первого до последнего.
Animation FPS (Частота кадров анимации)
Определяет частоту смены кадров графической основы эффекта. Данный параметр действителен только в случае использования замкнутого типа анимации.
Random 1st Frame (Случайный 1 кадр)
Когда включена данная функция, графическая основа эффекта начинает отображаться со случайного кадра, это позволяет избежать того что выбрасываемые частицы выглядят синхронно. Данный параметр действителен только в случае использования замкнутого типа анимации.
Random rotation from # to #
Данный параметр определяет степень случайности вращения частиц во время эмиссии и представляет собой плавающую величину между двумя заданными значениями в градусах. В случае если обе величины равны, то случайность сводится к нулю. Вы можете установить обе величины (к примеру) на -90 градусов, - таким образом, все частицы будут вращаться на 90 градусов против часовой стрелки, без какого-либо разброса.
Randomize rotation direction (Случайное направление вращения)
Случайным образом инвертирует график вращения частиц (Rotation Graph).
Random mirroring (Случайность отражения)
Случайным образом переворачивает изображения по оси X или Y тем самым добавляя частицам разнообразия. Некоторые частицы (например, взрыв газового баллона) будут, переворачиваться только по горизонтали, а некоторые другие только по вертикали.
Size Graph (График размера)
Данный график определяет как изменяется размер частиц за период своего существования. Примечание: если вы хотите что бы частицы идущие из эмиттера были больше, наилучшим вариантом будет регулировка величины эмиттера Size Multiple чем изменение графика размера, так как в проливном случае эмиттер может выбрасывать одинаковые частицы.
Rotation Graph (График вращения)
Данный график определяет как частицы будут вращаться в течении своего существования. Данный график инвертируется и увеличивается величинами Rotation Multiplier и Randomize rotation direction
Vertex Alpha Graph (График прозрачности альфа канала)
Данный график влияет на прозрачность альфа канала частицы. С помощью данного параметра Вы можете сделать частицы матовыми или прозрачными. Примечание: все величины в этом графике нормализуются до 255
RGB Color Graph (График цветности)
Позволяет вам определить изменение цветности частиц в течении всего времени существования. График имеет отдельные кривые для каждого из основных цветов. (Красный Зеленый Синий). Для упрощения редактирования цветов активируйте встроенную в Windows цветовую палитру Примечание: окраска частиц увеличивает их собственный цвет (используемый в графической основе), Идеальным вариантом, будет создание графической основы белого цвета, для того что бы на нее влиял только цвет заданный графиком цветности. Это позволит Вам использовать одну и ту же графическую основу эффекта для разных целей.
Эмиттер
Эмиттер частиц представляет собой устройство, которое выбрасывает определенные частицы в соответствии с заданными настройками. Для того что бы создать новый Эмиттер, выберите пункт “Particle Emitter” в выпадающем списке расположенном в разделе Element and Emitter Properties и нажмите кнопку “New”. Для редактирования настроек Эмиттера дважды кликните ЛКМ на нужном Эмиттере. Примечание: Вы можете скопировать нужный Эмиттер в буфер обмена с помощью кнопки Copy или сочетания клавиш CTRL-C. Это позволяет переносить Эмиттеры из одного файла в другой
Настроить можно следующие параметры:
General (Основные)
Name (Имя)
Данный параметр задает имя эмиттера. и представляет собой обычный редактируемый текст.
Positions and Directions (Расположение и направление)
Relative Position (Относительное расположение)
Координаты X, Y и Z изменяют относительное расположение эмиттера в сцене. Например, эффект вспышки используемый при стрельбе из оружия, создается точно в центре оружия и с помощью величин параметра Relative Position должен быть установлен нужное место, в данном случае точно в центре дула.
Emission Direction Graph (График направления эмиссии)
Данный график определяет изменение направления эмиссии частиц в течении всего цикла. График содержит три отдельные кривые для каждого из трех направлений (X, Y и Z).
Пример: Вы можете создать кольцеобразную эмиссию, установив цикл эмиссии очень коротким (0.01 секунд), затем измените два графика таким образом, что бы они представляли собой синусоиду, изображенную на рисунке. Таким «кольцеобразным» способом реализованы облака пыли от падающих тел в Max Payne.
X +/-, Y +/-, Z +/-
Эти постоянные величины определяют насколько сильна в эмиссии случайность каждого направления. Если Вы хотите, что бы частицы во время эмиссии распространялись сильнее, установите величины перпендикулярно направлению эмиссии. Если же Вы хотите, что бы процесс эмиссии частиц протекал с разной скоростью, установите величины параллельно направлению эмиссии.
Velocity Inheritance Factor (Фактор ускорения)
Данная функция не используется.
Element Random Velocity Graph (График элемента произвольной скорости)
Данный параметр определяет насколько направление эмиссии частиц случайно, в течении всего цикла эмиссии. Величина состоит из двух кривых определяющих максимальную и минимальную степень случайности. Данный функция вносит элемент случайности по всем трем направлениям (X/Y/Z).
Пример: Если Вы хотите создать струю воды, которая будет распространяться по частям, затем изменяет в однородный поток, создайте график, который начинается с высокого значения, а затем быстро сводится к нулю.
Emitter Shape (Форма эмиттера)
Форма эмиттера определяет вид участка из которого частицы эффекта будут эмитироваться. Вы можете выбрать между двумя формами эмиттеров это Square(Квадрат) и Sphere(Сфера).
Square (Квадрат)
Частицы генерируются внутри квадрата размеры которого регулируются. Установка величины какой-то одной из осей на ноль приводит к созданию плоскости для эмиссии. Установка двух осей на нулевое значение приводит к созданию прямой. Если Вы хотите что бы эффект был в центре куба, значения должны находиться симметрично между отрицательными и положительными величинами (например минимум -2 метра, максимум 2 метра в результате составляют 4 метра). Если все три значения установить равными нулю все частицы будут генерироваться в одной и той же точке.

Sphere (Сфера)
Частицы генерируются внутри сферобразной площадки радиус которой регулируется. Радиус «горячей» точки (Hotspot) это радиус в котором происходит большая часть эмиссий частиц, а радиус точки «спада» (Falloff) это радиус “затухания” в котором эмиссия частиц приближается к нулевой отметке (вы можете поэкспериментировать с созданием очень коротких эффектов которые создаю тысячи очень маленьких неподвижных частиц, а затем настроить значения, радиуса «горячей» точки и точки «спада». Значение радиуса точки «спада» должна быть эквивалентна или больше чем «горячая» точка, если обе величины равны нулю, все частицы будут генерироваться в одной и той же точке.
Эмиссия
Emission Rate graph (График уровня эмиссии)
Данный график определяет, количество частиц эмитируемых в единицу времени, в течении всего цикла. Величины параметра зависят от двух кривых и находятся в промежутке между ними. Пример: Если Вы хотите создать эффект текущей воды в начале которого, вода будет литься мощным потоком а в конце перейдет в мелкие падающие капли, сделайте начальное значение графика высоким, и с помощью равномерной нисходящей опустите его. Если Вы хотите что бы уровень эмиссии был полностью устойчивым, на протяжении всего цикла установите одинаковые значения у обоих кривых графика. Если Вы хотите уровень эмиссии был неравномерным на протяжении всего цикла, установите значения одной кривой равной нулю, а значения второй напротив, сделайте максимально высоким.
Cycle Length (Длительность цикла)
Данный параметр определяет общую длительность эмиссии в секунду времени. This value determines the overall length of the emission in seconds. Вы можете внести в длительность эмиссии элемент случайности путем добавления дополнительного значения в ячейку +/- . Добавочная величина должна быть обязательно меньше чем общая длительность цикла. Таким образом, длительность цикла каждый раз будет меняться. Например: Когда Вы стреляете в бак с питьевой водой, обратите внимание что некоторые струйки воды, текут дольше, чем другие. Это достигается за счет неопределенной длительности цикла.
Cycle Looping (Замкнутость цикла)
Когда включен данный параметр цикл эмиссии начинается сразу после того как заканчивается. Пример: Вы можете создать мерцающий эффект с замкнутым циклом эмиссии длительность, которой будет неопределенной. Примечание: Чем быстрее цикл эмиссии будет перезапускаться, тем сильнее будет задействован центральный процессор системы, по этому, следует использовать такие эффекты как можно реже. Если вам надо создать длинный и замкнутый эффект, намного лучше будет не использовать данную функцию а зациклить эффект непосредственно в редакторе уровней с помощью скрипта (looping = true.)
Element Lifetime Graph (График элемента продолжительности существования)
Данный параметр определяет продолжительность существования эмитируемых частиц. Данный график содержит две кривые и значение продолжительности существования эмитируемых частиц находится в промежутке между ними. Пример: У Вас есть график в котором время существования эмитируемых частиц может измениться в течении цикла. Предположим у Вас есть эффект который длиться 20 секунд , за счет высоких стартовых величин создается мощное пламя. Пока цикл продолжается Вы можете опускать кривую графика все ниже и ниже пока пламя будет становиться все меньше и меньше и не превратиться в маленькие кратковременны всполохи, и так до тех пор, пока пламя не исчезнет совсем.
Эмиттер частицы
Size Multiplier Graph (График коэффициента размера)
Параметры данного графика определяют размер частиц эмитируемых в течении всего цикла. Данный график содержит две кривые и величина коэффициента размера частиц находится в промежутке между ними. Если Вы хотите что бы все частицы в эффекте были, либо большими, либо маленькими, намного лучше сразу настроить график коэффициента размера, чем графики размера самих частиц – в последствии Вы возможно используете те же частицы с другим эмиттером. Например: В случае ели параметры графика заданны в виде равномерно нисходящей прямой, эффект будет работать следующим образом сначала будут эмитироваться большие частицы, а когда эффект будет заканчиваться начнут эмитироваться маленькие частиц.
Rotation Multiplier Graph (График коэффициента вращения)
Данный график содержит две кривые и величина коэффициента вращения частиц находится в промежутке между ними. При значении больше 1 коэффициент вращения частиц возрастает, а при значениях менее 1 убывает. Отрицательные значения инвертируют график. В случае если значения всех графиков установлены в 0 значение, частицы не вращаются, игнорируя при этом значения графика вращения. Тем не менее, произвольное вращении частиц по-прежнему будет действовать. График коэффициента вращения менее важен, чем другие параметры и чаще всего используется в виде двух постоянных величин (горизонтальных линий) с установленным значением частоты выборки равным 2 единицам. Например, если Вы создаете график вращения частиц, которые идет то вверх, то вниз наподобие «американских горок» частицы будут «вертеться» на протяжении всего время существования. Сила вращения может вирироваться в пределах значений графика коэффициента вращения. Таки образом в Max Payne были смоделированы хлопья снега.
Источники света
Кроме частиц, генератор частиц может так же создать источник света, который будет освещать окружающие его объекты и персонажей (и те частицы, которые активирует освещение). Источник света всегда привязан к эмиттеру и перемещается только вместе с ним.
Для активации источника света пометьте галочкой пункт Use Light. Все эмиттеры у которых активный источник света в названии содержат метку «(L)» (Light) – это позволяет избежать использования нескольких источников света в одном эффекте, так как источники света вызывают сильные издержки производительности системы. Если вы хотите использовать эффект только как источник света вы должны создать пустышку (dummy) частицы и пустышку эмиттера с минимальными значениями всех величин, для того что бы частицы не эмитировались.
Используются следующие параметры:
Light Falloff Graph (График спада мощности источника света)
Устанавливает насколько будет уменьшаться радиус источника света на протяжении всего цикла эмиссии, насколько велика область действия источника света. Обратите внимание что быстрое изменение спада мощности источника света приводит к стремительной тесселяции (тесселяция - это аппроксимация гладкой поверхности множеством элементарных треугольников или многоугольников в процессе создания представления объекта в виде проволочного каркаса) геометрии уровня, что не лучшим образом сказывается на производительности. По этому рекомендуется использовать график спада только в особых случаях. По большей части используйте в графике постоянные величины. Для затухания источника света удобнее использовать график цветности.
Light Color Graph (График цветности источника света )
С помощью данного графика вы можете изменять цвет источника света на протяжении всего цикла эмиссии. График цветности содержит три кривые то есть по одной для каждой цветовой составляющей (RGB)
Нажмите C когда окно цветовой диаграммы активно и появиться палитра для более наглядного и простого редактирования. Чем ниже величина цвета тем темнее источник света.
Brightness (Яркость источника света)
Данный параметр не задействован в текущей версии ParticleFX.
Light Position Offset (Смещение позиции источника света)
Вы можете сместить позицию источника света, от позиции эмиттера. Это может быть необходимым в некоторых случаях. Величина смещения зависит от собственной относительной позиции смещения эмиссии. Если вы измените величину смещения позиции эмиссии, источник света сместиться вместе с ним.
Использование эффектов на основе частиц в игре
Для того что бы использовать эффекты на основе частиц в игре, его сначала необходимо экспортировать. Откройте эффект(Open) и выбирете пункт Export в главном меню File. Произойдет экспорт эффекта в игровой формат .RPS (Realtime Particle Set) который в свою очередь являеться полность автономным и содержит в себе графическую основу эффекта и все необходимые параметры.
В случае если вы создаете большой набор эффектов графических объектов и в тоже время модифицируете определенный набор графических элементов намного проще реэкспортировать их все сразу. Вы можете экспортировать эффекты используя командную строку. Так же вы можете создать bat файл который экспортирует вс частицы в соответствующие директории. Ниже приведен пример экспорта с использованием командной строки (Примечание: Это только пример, по этому пути и директории должны соответствовать вашим настройкам )
ParticleFX.exe -y -e "\particle effects\fire\*.pse" -d "\database\particles\fire\"
После того как нужный эффект будет экспортирован, вы должны добавить его в игровую базу данных и прописать в специальном скриптовом файле. Данный файл вы можете найти в директории ….\data\database\particles\
Запустить готовый эффект вы можете с помощью команды ps_starteffect Более подробную информацию по этому вопросу вы можете найти в документации по редактору Remedy Max ED.
Оптимизация эффектов
В процессе создания визуальных спецэффектов много, неоднозначных моментов. Одним из таких моментов является именно оптимизация эффекта. Конечно, учитывая мощности современных компьютеров оптимизацией можно пренебречь, но все, же в разумных пределах. Ведь весьма вероятно, что ваша модификация будет содержать множество сцен, в которых будет одновременно визуализироваться несколько сложных эффектов. По этому, если Вы хотите в последующем снизить нагрузку на центральный процессор системы, об оптимизации надо думать с самого начала. В противном случае вы можете столкнуться с ситуацией, когда при каждом запуске нескольких красивейших спецэффектов частота кадров в сцене будет резко падать до критической отметки. Данный раздел предназначен для того что бы, такие ситуации не возникали, и даст большинству продвинутых пользователей представление о различных аспектах оптимизации эффектов
The number of particles (Число частиц)
Из представленных ниже, это самый простой способ снизить нагрузку на процессор. Суть данного способа состоит в том, что бы при создании эффекта использовать настолько мало частиц насколько это вообще возможно. То есть обойтись необходимым минимумом. Вы можете установить примерный лимит, который будет определять число частиц, которые будут использоваться в эффекте. Данный способ не позволяет тратить ресурсы памяти на частицы, которые никогда не будут использоваться. В процессе регулировки количества частиц следите за частотой кадров. Рекомендуем, небольшие, но очень частые эффекты, такие как осколки, при столкновении пули с поверхностью ограничить 10-40 частицами, взрывы должны использовать в районе 150-200 частиц, а крупные эффекты типа снежного бурана около 400-600 частиц.
Particle size (Размер частиц)
Известно, что чем больше графическая составляющая используемых в эффекте частиц, тем быстрее частота кадров будет достигать критического уровня. Используйте ее разумно и только тогда когда это нужно.
Emission Rate (Интенсивность эмиссии)
Если длительность цикла эмиссии равна 0.1 секунды, а эффект использует максимум 20 частиц, это не является ограничением для массовой интенсивной эмиссии в течении цикла которой распространяется около 20 000 частиц из которых только 20 частиц остаются существовать.. Эмиссия с низкой интенсивностью эта та эмиссия которая использует максимальное число частиц.
Rapid Cycle Looping (Малая продолжительность замкнутого цикла)
Если цикл эмиссии частиц очень короткий и является замкнутым, то, как следствие частый перезапуск эффекта вызывает повышенное использование ЦП. Используйте подобные циклы только в особенных случаях. Для того что бы зациклить какой-либо эффект, например пар который идет из трубы или горящий в камине огонь, оптимальная длительность эффекта равна 5-10 секундам. Собственно сама цикличность эффекта обеспечивается за счет скрипта прописанного при создании уровня, а не в результате манипуляций в редакторе частиц
Particle Lifetime (Продолжительность существования частиц)
Частицы продолжают существовать даже после того как они попадают за видимые пределы уровня. Тот факт, что мы их не видим, не означает то, что они не используют вычислительные ресурсы Вашей системы. По этому, вы должны рассчитывать продолжительность существования частиц в сцене таким образом, что бы они как можно меньше существовали в «мертвой зоне» карты. Например, для эффекта падающих с потолка обломков время существования частиц устанавливается такое, что бы они (обломки) успевали долететь до пола комнаты.
Graph Samplerate (График частоты выборки)
Если вы используете график, только для задания постоянной величины (горизонтальная линия) или линейно изменяющейся характеристики, не имеющей точек (прямая наклонная), он имеет частоту выборки равную 16. Для улучшения производительности понизьте ее до 2 единиц. Если вы используете только некоторые параметры эффекта из всех имеющихся (например когда вы используете эффект только как источник света) возможно снижение выборки графика до минимума. По умолчанию редактор выставляет для всех графиков величину выборки равную 16 единицам, в не зависимости от того используется он или нет.
Effect Overall Radius (Общий радиус эффекта)
Дальнейшее распространение частиц из центра эмиссии больше чем общий радиус эффекта. Очень большие эффекты или очень длинные дымные шлейфы должны быть вытянуты внутри каждой комнаты, которые находятся вне радиуса эффекта причина перегрузки. Правда гарантия того что радиус эффекта не будет становиться больше
Use the lights wisely (Разумное использование освещения)
В случае если реализуемый эффект вспышки при выстреле состоит из несколько разных вспышек которые появляются то тут то там, достаточно использовать только один источник света. Использование 4 источников света в одном эффекте является предельно плохой идеей. Намного лучше будет, разделить источник света невидимым эмиттером и невидимыми частицами.
Rarely use the Light Falloff Graph (Редкое использование графика спада света)
Всякий раз, когда радиус источника света меняется, геометрия уровня перетеселируется и адаптируется под новые характеристики источника света. Изменение радиуса источника света очень сильно повышает нагрузку на ЦП, поэтому используйте данный параметр только в необходимых случаях.
Combine the bitmaps (Комбинирование графических элементов)
На последней стадии, когда Вам надо будет интегрировать набор созданных эффектов в игру все используемые эффекты должны быть добавлены в файл _All_Particles.pse. Все мелкие графические элементы будут объединены в один большой, таким образом, несколько совершенно разных эффектов могут находиться в одном и том же файле. Это помогает сохранить ту часть памяти, в которой хранятся текстуры, особенно в том случае, когда два эффекта используют одну и ту же основу, а различия заключаются в очень маленьких деталях.
» Комментарии (1)
Это универсальный распаковщик всевозможных игровых и не игровых ресурсов. Что очень полезно он работает с ресурсами и первой и второй части Max Payne.
Введение
От грамотного использования текстур зависит процентов тридцать визуального качества создаваемого уровня, остальное, можно списать на качество геометрии и собственно дизайна. Порой неправильно подобранная или наложенная текстура может очень сильно испортить общую картинку. Но сегодня мы поговорим не о том, как правильно подбирать и накладывать текстуры, а как, используя различные свойства материалов сделать картинку вашей карты более красивой и разнообразной…
Свойства материалов
Для начала давайте рассмотрим свойства материалов, которые используются в редакторе Max ED 2.0.
Вызвать свойства используемого в данный момент материала можно нажав сочетание клавиш Alt+Enter, или дважды кликнув ЛКМ по необходимому материал в Палитре Материалов. Так же вы можете кликнуть по необходимому материалу ПКМ и в выпадающем списке выбрать пункт Properties.
Name - данный параметр указывает имя основной текстуры (изображения или диффузной текстуры) и полный путь к ее расположению.
Dualsided - данный параметр позволяет отображать текстуру с двух сторон одного полигона.
Adult Content - данный параметр, используется в том случае, если используемая текстура содержит запретный для несовершеннолетних конвент. И в режиме защиты она отображаться не будет.
Name - имя и путь текстуры. В случае если вы хотите сделать анимированную текстуру вы можете выбрать последовательность и различный формат текстур.
Default width - данный параметр задает ширину текстуры по умолчанию
Default height - данный параметр задает высоту текстуры по умолчанию
UI Visible Frame - данный параметр задает тот кадр (в случае если текстура анимирована) который отображается в редакторе.
Framerate - данный параметр контролирует частоту смены кадров в анимированной текстуре.
Normal - данный вариант использования текстуры является стандартным и выбран по умолчанию.
Alpha compare - при использовании этого варианта рендринга текстуры альфа канал используется вкупе с дополнительным сглаживанием, которое регулируется с помощью двух нижеследующих параметров. В данном случае текстура должна быть в формате DDS DXT 3 или DDS DXT 5 и содержать альфа канал соответственно.
Edge Blend - данный параметр доступен в случае если вы используете Alpha compare. Он имитирует стандартный alpha blended. В случае если данная функция не задействована, текстура будет выглядеть резкой
Reference value - величина 0-255 которая контролирует сглаженность альфа канала.
Alpha Blend - при использовании данного параметра текстура использует имеющийся альфа канал без дополнительных сглаживаний. (Текстура должна быть в формате DXT3 или DXT5).
Additive - рендринг текстуры происходит таким образом, что весь черный цвет в текстуре становиться прозрачным.
With detail texture - текстура детализации может использоваться только с нормальными текстурами, не использующими альфа канал. Если вы используете текстуру детализации, то в данной строке указывается имя текстуры и путь к ней.
Reflection - карта отражения. Вы можете использовать как обычные текстуры, так и кубические карты отражения сохраненные в формате DDS.
Gloss - имя и путь используемой карте блеска (gloss map). Карта блеска контролирует силу псевдо-отражения.
Light Layer Texture - данный параметр не используется.
Псевдоотражения от извлечения к использованию
Поскольку движок MaxFX 2.0 достаточно старый мы не можем позволить использовать очень, много, отражающих поверхностей, которые обрабатывались бы в реальном времени. Тем более мы не можем использовать их на небольших динамических объектах. В данном случае нам помогут текстуры с псевдоотражениями, то есть отражениями, которые предварительно сохранены в графический файл. Чаще всего эффект псевдоотражения достигается за счет использования двух отдельных текстур Reflection и Gloss, примененных к основной диффузной текстуре. Но давайте обо всем по порядку.
Reflection map – является картой искусственного отражения, которая содержит собственно картинку отражения, точнее она может представлять не только одно обычное изображение, а целый комплект из шести изображений. По одной картинке на каждое направление в трехмерном пространстве. Называется такая карта отражения кубической. Используют данные изображения формат DDS DXT! С использованием mipmaps.
Слева на право: 1. обычная карта отражения (одиночная), 2. кубическая карта отражения (вид из обычного XnWiev), 3. кубическая карта отражения (но уже открытая в Adobe Photoshop).
Gloss map – является картой блеска и отвечает не только за общую интенсивность (отражение может быть четким или блеклым) но и за собственно наличие самого отражения на поверхности. По своей сути карта блеска, является копией диффузной текстуры, с поправкой на то что изображена в черно-серых тонах. Где черный цвет это полное отсутствие отражения на поверхности, а белый цвет соответственно самое четкое отражение на поверхности. Используя данное свойство, глосс карт вы можете имитировать очень правдоподобные царапины на полированной поверхности метала.
Слева на право: 1. стандартная карта блеска для металла, 2. карта уже в редакторе, 3. конечный материал с применением Gloss и Reflection карт.
Вы можете создавать карты отражения самостоятельно, а может прибегнуть к использованию уже созданных разработчиками Max Payne 2. При использовании утилиты ldb2rip карты отражения по каким-то причинам не извлекаются. По этому, прибегнем к использованию сторонних программ, в данном случае нам поможет программа чешской фирмы Nova Software – Extractor 2.4.
Итак, запускаем программу, выбираем нужный формат – dds. Затем указываем файл для сканирования, возьмем, например 04_Warehouse.ldb и жмем кнопку «Начать» После окончания сканирования выбираем все найденные файлы и жмем + в левом нижнем углу окна, затем нажмите кнопку «Извлечь»… Все текстуры извлечены. Зайдите в папку с извлеченными файлами и ищите нужные вам текстуры. Программа работает таким образом, что текстуры карт Gloss и Reflection всегда находятся в самом конце. Найти их достаточно просто поскольку выглядят они весьма специфично.
Рассматривать создание Gloss карт не имеет смысла, так как очень легко понять, как они устроены, если посмотреть на карты, предложенные разработчиками. В конце концов, здесь все зависит от вашего умения пользоваться Photoshop’ом. А вот создание карт Reflection скорее дело техники, чем ваших рук. Что бы сделать правдоподобное отражение комнаты у объектов сцены. Вам следует построить куб в самом центре нужной комнаты. Выберите построенный объект и в режиме F5 и щелкнув по объекту выберите Generate Cubic Reflection Map (Генерировать кубическую карту отражения) После этого выберите разрешение будущей карты. Чем больше объект тем больше разрешение должно быть у карты отражения. Хотя чаще всего идеальный вариант это 128х128. По умолчанию после генерации карта сохраняется в tga формате в развернутом виде. Что бы использовать ее откройте полученную карту в Photoshop и сохраните в формате DDS DXT1. В случае необходимости вы можете ее подкорректировать. Важно отметить, что в момент генерации вы должны убрать координатную сетку и другие подобные «ненужные» детали – таким образом, что бы картинка в редакторе выглядела идентично той, что будет в игре. В противном случае все эти прелести вы будите наблюдать на вашей карте. Кстати возможно в некоторых случая вам может пригодиться обесцвечивание карты отражения или снижение уровня ее контрастности. У разработчиков к слову практически все карты сделаны с минимальной контрастностью.
Естественно в случае использования текстур с RM и GM объект должен использовать Polygroups с активными параметрами Smooth Lightmaps Smooth Geometry. В противном случае текстура будет отображаться не совсем корректно. Учитывая то что текстура отражения копирует координаты диффузной текстуры, все нестыковки на гранях будут заметны даже с использованием полигональных групп. По этому при текстурировании сложных объектов используйте копирование координат текстур.
Эффект хромированного металла
Кстати Reflection карты можно использовать не совсем стандартным образом. Предположим, что вы решили сделать объект из металла, который имеет идеально ровную отражающую поверхность (идеальный аналог в данном случае хромированный металл). Этот эффект очень легко достичь используя вместе с диффузной текстурой Reflection map. В нашем случае Reflection map должна иметь минимальную контрастность для усиления эффекта металлической поверхности. Собственно на этом все так как в этом и заключается основная фишка данного трюка, мы используем только Reflection map без Gloss map, что и позволяет достичь нам нужного эффекта. Единственный недостаток данного метода в том, что объект использующий текстуру только с Reflection map, в темных помещениях очень сильно поглощает свет и на фоне остальных объектов выглядит слишком темным. Из этой ситуации есть, пусть не идеальный но, выход. выберите объект и принудительно выберите ему освещение.
Текстуры детализации
Текстуры сам по себе вещь достаточно древняя и использовалась она еще во времена первой части Max Payne. К сожалению ни отечественные моддеры ни западные в своих картах данный эффект не используют. Не знаю с чем это связанно так как сделать текстуру детализации достаточно просто. Полученный эффект конечно нельзя сравнить с современным эффектом бамп маппинга. Но придать картинке какое-то разнообразие он вполне способен.
Итак, рассмотрим структуры текстуры детализации для использования ее в Max Payne 2. Для этого совершим краткий экскурс в далекое прошлое, если быть точнее в Max Payne 1.
Если распаковать ресурсы данной игры то в …Max Payne\data\database\sharedtextures можно найти текстуры детализации для разных поверхностей представленным файлами в формате .jpg и .pcx - соответственно растровое изображение и его альфа канал. Мы не будем использовать эти форматы, а используем более современный и удобный dds. Для проведения эксперимента возьмем ТД дерева.
1. Растровое изображение, 2. Альфа канал.
Откроем в Photoshop оба файла и сделаем дубликат канала у растрового изображения в полученный дубликат скопируем альфа-канал. Проверьте что бы режим изображения был установлен в RGB Color. Теперь сохраните полученный файлt в формате DDS DXT3 без mipmaps. Теперь применим полученную текстуру детализации на какую-либо текстуру дерева.
Как видите результат достаточно неплохой. Но использование текстур детализации из игры 2001 года не самая хорошая идея. Я считаю что в STALKER текстуры и качественнее, и разрешение у них побольше. Единственный недостаток в том что если их наложить в редакторе Max ED оригинальная текстура становится как бы немного белесой. Этого можно избежать, для этого откройте ТД и понизьте у альфа канала яркость и контрастность до такой степени, что бы он стал похож на тот, который представлен выше. С самой текстурой тоже надо сделать небольшие изменения – обесцветить ее и повысить контрастность. Вот и все ТД из сталкера готова к нормальному употреблению в Max Payne 2.
Файл Flares. Эффекты бликов
Ну и напоследок, хотя это касается материалов, достаточно посредственно, приведу параметры настройки эффекта Flare
TextureFilename - файл, используемый как графическая основа для эффекта блика. Во время использования применяется эффект блендинга (черный цвет в изображении автоматически становится прозрачным).
Directional - в случае если включена данная функция эффект ориентируется на ось Z. То есть основное излучение эффекта сияния направлено по оси Z. В противном случае эффект отображается по всем осям.
DirExp Hotspot - данный параметр это подобие степени интенсивности ярких участков. Чем выше значение данного параметра, тем более высокая плотность света.
Size - данный параметр задает диаметр эффекта сияния в метрах.
Color - данный параметр задает цвет эффекта, и состоит из трех составляющих типа ( 255.0, 255.0, 255.0 )
Intensity - данный параметр является множителем величины цветности.
Rotation - данный параметр задает исходную величину поворота в градусах.
RotationSpeed - данный параметр задает скорость вращения в градусах согласно изменению расстояния от эффекта до персонажа.
UpdateInterval - данный параметр задает количество пропущенных кадров.
» Комментарии (0)
В этой статье я расскажу, как отредактировать изображение, что бы оно было похоже на фотки из комиксов в Max Payne\Max Payne 2.
Откроем изображение, которое хотим изменить. Совершенно случайно я нашел необработанную фотку из этой же игры:
Дублируем слой и переводим в черно-белое изображение при помощи Desaturate.
Понижаем прозрачность так, чтобы цвета были чуть заметны. Я поставил 50%.
Применим Filter > Artistic > Palette Knife со следующими настройками:
Новый слой. Filter > Render > Clouds. Затем Filter > Noise > Add Noise с настройками:
Filter > Blur > Motion Blur c настройками:
Blending mode меняем на Overlay.
Сливаем все слои (Shift+Ctrl+E) и затем Image > Abjustments > Brightness\Contrast:
Напоследок добавим Noise со старыми настройками и все готово!
Немного фантазии и из фотографий обработанных при помощи этого урока можно создавать свои комиксы.
Откроем изображение, которое хотим изменить. Совершенно случайно я нашел необработанную фотку из этой же игры:
Дублируем слой и переводим в черно-белое изображение при помощи Desaturate.
Понижаем прозрачность так, чтобы цвета были чуть заметны. Я поставил 50%.
Применим Filter > Artistic > Palette Knife со следующими настройками:
Новый слой. Filter > Render > Clouds. Затем Filter > Noise > Add Noise с настройками:
Filter > Blur > Motion Blur c настройками:
Blending mode меняем на Overlay.
Сливаем все слои (Shift+Ctrl+E) и затем Image > Abjustments > Brightness\Contrast:
Напоследок добавим Noise со старыми настройками и все готово!
Немного фантазии и из фотографий обработанных при помощи этого урока можно создавать свои комиксы.
» Комментарии (2)
Введение
Данная статья является прямым продолжением 1 части статьи о моделировании объектов со сложной геометрией средствами стандартного редактора Remedy Max ED 2.0. В прошлой статье были рассмотрены три основных принципа моделирования сложных объектов и собственно настройка редактора для облегчения этого самого процесса. Сегодня мы рассмотрим аспекты освещения, а так же примеры каким способом проще моделировать тот или иной объект.
Моделирование объектов с вогнутой формой от теории к практике
Специально для начинающих я решил рассмотреть объект при создании которого используется сразу несколько методов. Предположим, что нам надо сделать округлый корпус для лампы дневного света. Запомните что моделирование каждого сложного объекта, начинается с точного планирования самого объекта, на данном этапе надо правильно определить, как лучше объект смоделировать, какими инструментами пользоваться и в какой последовательности. Только после этого преступаем к моделированию….
Итак, рассмотрим моделирования корпуса лампы на практике. В данном объекте, несомненно, самое сложное это округлые края. По этому моделирование корпуса начнем именно с них. Для этого строим половину сечения корпуса (рисунок 1) и разворачиваем после чего, получаем подобие ¼ сферы (рисунок 2) Для того, что бы продолжить работу нам необходимо сделать сторону противоположную закругленной абсолютно ровной.. Для этого срежем лишнюю часть объекта. Как вариант мы можем сделать это двумя способами. Первый срезать с объекта излишки путем булевой операции Subtract, а второй путем использования координатной сетки, как секущей плоскости. Для разнообразия применим второй способ. Установим координатную сетку в нужную плоскость, для этого накладываем сетку в режиме F4 на грань, которую будем срезать, так что бы сетка была расположена перпендикулярно полу и в режиме F12 с помощью мышки и клавиш 1 2 3 устанавливаем координатную сетку в нужно положение как показано на рисунке 2. Выделяем объект и жмем клавишу Y. После чего выделяем отрезанную часть и удаляем. Обратите внимание, что прежде чем производить процесс рассечения детали, ее надо оптимизировать, то есть удалить лишние внутренние полигоны и произвести объединение полигонов лежащих в одной плоскости. (Последнее, к слову не так важно, но позволяет хорошо оптимизировать объект) Теперь нам надо построить середину детали. Для этого методом обводки строим сечение нужной детали как показано на рисунке 4.
Методика обводки плоскости
Для тех, кто не знает, поясняю, в чем заключается метод обводки плоскости, и для чего он нужен. Предположим нам надо скопировать профиль очень сложного объекта (рисунок 1), причем обычное копирование нам не походит. (Такая ситуация чаще всего возникает, когда вы наращиваете объект для скругления, или увеличения его сторон) В режиме F4 с помощью клавиши A вы накладываете координатную сетку на ту плоскость которую будете обводить, причем центр должен располагаться на одной из вершин плоскости как показано на рисунке 2 (именно с этой точки вы будете начинать обводку). После чего в режиме F3 вы начинаете обводить плоскость, суть в том, что после задания первой точки вы подводите курсор к следующей вершине плоскости (рисунок 3) и жмете клавишу A - координатная сетка автоматически выравнивается по нужной точке, вы ставите точку и переходите к следующей вершине. На словах звучит достаточно сложно, но на практике прием примитивный, но очень полезный. Данный метод так же применяется когда надо один большой полигон разбить на несколько маленьких, или когда надо дорисовать пропавший полигон (такое случается при форматировании сложных объектов).
Продолжаем...
Построив среднюю часть детали, объединяем ее с округлой крайней частью, после чего оптимизируем и форматируем полученный объект (рисунок 5). Теперь нам предстоит предать заготовке окончательную форму. Для этого полученный объект копируем и с помощью модификатора размера уменьшаем, причем уменьшаем только в двух координатных плоскостях на 5 единиц (стоит отметить, что расположение этих осей зависит от расположения координатной сетки, в данном случае сетка установлена в положение по умолчанию – уменьшаем высоту и ширину объекта). Теперь уменьшенную копию располагаем, так как что она располагалась в центре основной детали но немного выступала из нее (рисунок 7). Теперь с помощью булевой операции Subtract исключаем копию из основы и получаем результат изображенный на рисунке 8.
Вот и добрались мы до той части создания высоко полигональных объектов, когда возникают ошибки и проблемы. С точки зрения работы с булевыми операциями редактор Max ED самый сырой из тех которые я знаю, он очень привередлив и так и норовит зависнуть или выкинуть ошибку при экспорте. По этому главный совет сохраняйтесь почаще и желательно в разных проектах, таким образом что бы в случае чего можно было вернуться на предыдущий этап работы…
Как вы видите на 8 рисунке четко видно, что после булевой операции часть полигона на плоскости просто-напросто исчезла. Дыры слишком большие, что бы прибегать к форматированию. По этому, нам ничего не остается, как дорисовать нужные полигоны. Методом обводки рисуем недостающие полигоны и объединяем их с основной деталью (рисунок 9). Поскольку созданные полигоны лежат в одной плоскости с основным полигоном мы можем объединить их. Теперь осмотрим объект еще раз, на внутренней стороне есть достаточно большая щель. В этом случае проще удалить тот полигон, из-за которого возникла щель, и создать новый. (рисунок 10) Здесь мы используем метод обводки, только плоскость будущего полигона мы задаем сами с помощью изменения позиционирования координатной сетки. Устранив все явные ошибки в геометрии объекта форматируем его и скопировав отражаем. Далее следует процесс объединения и оптимизации.(рисунок 11 и 12) После чего накладываем текстуры и освещаем. (рисунок 13) Да кстати полученный колпак немного плоский по этому можно его немного углубить, путем увеличения высоты с помощью модификатора размера.
Процесс создания раковины я расписывать не буду, так как занятие это достаточно однообразное и не нужное, так как если вы не уловили суть создания сложных объектов из прошлого примера, то лучше не стоит и пытаться. Остановлюсь лишь на ключевых моментах и рекомендациях.
В процессе моделирования сложных объектов всегда, если есть возможность, создавайте только половину детали, это сильно экономит время, особенно если нужно скруглять много граней. Раковину надо строить путем наслоения, то есть сначала мы рисуем самую верхушку раковины (рисунок 1). Затем по нужным точкам производим обводку и построив следующий слой изменяем угол наклона его сторон. Стоит отметить что нужная форма достигается за счет разных углов наклона сторон и общей толщины слоя. Чем толще слой тем меньше вероятность того что вы сможете произвести наклон одной из стороны. Так же не пытайтесь производить наклон сразу на 45 градусов как минимум надо использовать только 15 а на практике используются самые минимальные числа. Не стоит забывать, что даже если вы используете минимальный угол наклона с шагом координатной сетки равным 500 единиц или больше у вас ничего не получиться, наклон производить лучше при значениях в 0.004 – 0.016 единиц. Рассматриваемая раковина имеет всего 7 слоев (рисунок 2)
Нарисовав раковину нужной формы, возьмите примитив сферы (желательно тот в котором больше полигонов) и с помощью модификатора размера сделайте из него овал. После чего полученным овалом вырежьте в основной заготовке углубление. (рисунок 3)
Текстуру на круглые объекты надо накладывать от центра к краям, именно так достигается наибольшая плавность. Насчет небольших нестыковок беспокоиться не стоит, их скроет наложенная текстура отражения (рисунок 4).
Освещение объектов со сложной геометрией
Освещение самая большая проблема редактора Max ED 2.0. Очень сложно давать какие либо рекомендации здесь как говорится, мастерство приходит с опытом. Основная задача в освещении – это его мягкость. Рассматривать настройки качества просчета освещения не имеет смысла, так как они расписаны в официальном руководстве, а вот об использовании Polygroup упомянуть стоит. Так как, сколько бы полигонов объект не содержал, а без них освещение мягким не будет. Но даже использование полигональных групп не всегда обеспечивает, мягкость. Здесь есть одна особенность. Посмотрите на следующий рисунок:
Полигоны, отмеченные разными текстурами, лежат в одной плоскости и могут быть объединены в любой момент. На вопрос, почему они не объединены, могу ответить следующее. Полигоны, имеющие много вершин всегда выпадают из общей полигональной группы, даже если они в ней состоят. При освещении такие полигоны заметно светлее и сильно выделяются из общей картинки. По этому если у вашего объекта появляются подобные проблемы надо найти такой полигон и разбить его на несколько маленьких (делается это путем обводки вершин и особого труда не составляет). Немаловажен тот факт, что, сколько бы полигонов вы не использовали много полигональные объекты, не любят когда на них падают тени от других объектов. Используя данную методику, ваши объекты будут выглядеть не хуже чем сделанные в 3D Studio MAX .
Для ленивых, существует способ наложения равномерной текстуры света на весь объект. Для этого выберите нужный объект и нажмите Shift+K в появившемся окне выберите пункт Solid Color и нажмите Edit. Выберите нужный оттенок будущей карты света и примените ее к объекту. Вот и все вне зависимости от сложности геометрии объект будет равномерно затенен.
На этом все. Честно говоря, я даже не знаю, что еще можно сказать по поводу моделирования сложных объектов. В первой части статьи мы рассмотрели настройки и основные методы моделирования, в этой опробовали их на практике и рассмотрели способы устранения наиболее частых ошибок. Решение основной проблемы, которая возникает при освещении вы теперь знаете. Для полноценного моделирования этого более чем достаточно. Помните, что все зависит только от вашей фантазии. В любом случае если возникнут, какие либо вопросы я всегда готов на них ответить.
» Статьи
» Комментарии (0)
Введение
Начнем с того что данная статья создана для того что бы развеять сомнения по поводу возможностей редактора Remedy Max ED 2.0 . Множество людей занимающихся созданием карт на основе игры Max Payne 2: The Fall of Max Payne ошибочно предполагают что редактор годен только для создания основной простейшей геометрии уровня. То есть комнат коридоров и так далее, а если делать с помощью редактора объекты интерьера, то все будет большим и квадратным. На самом деле при должном опыте, умении и знании некоторых приемов в редакторе Max ED можно создавать очень сложные много полигональные объекты, которые будут смотреться так, словно их сделали в сложном редакторе типа 3D Studio MAX.
Хочу сразу оговориться, конечно, всему есть придел и очень сложные объекты типа машин делать в редакторе просто не целесообразно. Но раковины ванны трубы все это можно сделать с помощью стандартного редактора. Вопрос просто скорее в том сможете ли вы правильно использовать возможности редактора….
С чего начать?
Начнем естественно с настройки редактора, я не буду расписывать все до мелочей, так как предполагается, что читатель не первый день работает в редакторе. По этому, если есть какие-то вопросы, по поводу интерфейса смотрите учебники на XGM.Итак вы спросите а что можно настроить, а настроить нам надо всего несколько параметров дабы сберечь нервы в дальнейшем. Создаем новый проект и заходим в его настройки Document Preference для начала изменим параметр камеры Frontplane по умолчанию стоит значение 0.1 смело, меняем его значение на 0.0010. Стоит объяснить для чего мы это сделали. Очень часто при моделировании сложных объектов приходиться залетать у ним вовнутрь или приближать камеру практически вплотную к полигонам объекта. В данном случае возникает проблема когда камера автоматически срезает видимую область нужного объекта и мы как бы пролетаем сквозь него. Изменив значения параметра на указанное выше мы раз и навсегда избавимся от этой проблемы. Кстати что бы камера не перемещалась слишком быстро используй те клавишу Ctrl + клавиши + ( для ускорения) / - (для замедления) на цифровом блоке.
Вот пример того как выглядит объект при одинаковом положении камеры но с разными параметрами. Что называется почувствуйте разницу (значение 0.1 справа, значение 0.0010 слева):
Следующий параметр который стоит настроить это Angle Snap параметр который позволяет задать числовое значение углов с которыми нам можно будет работать в данном проекте, по опыту скажу что в основном хватает тех углов которые заданны по умолчанию но когда возникает ситуация, когда нужна подгонка полигонов, возникает необходимость пользоваться очень маленькими величинами. Что бы каждый раз не возиться с введением данных параметров в новый документ рекомендую просто скопировать их куда-нибудь.
Вот основные значения, которые вам могут понадобиться
0.006;0.06;0.125;0.25;0.5;1;1.25;2;2.5;5;7;10;11.25;15;20;22.5;30;45
Разобравшись со значениями углов, перейдем к параметру шага координатной сетки. Вот на этот параметр следует обратить особое внимание так как без него точная подгонка практически невозможна. Без использования мелкого шага координатной сетки построение сложных объектов невозможно. Чем меньше данное значение, тем более плавной будет заготовка, которую вы рисуете.
В принципе к стандартным значениям достаточно добавить значения 0.050, 0.002 и 0.001
0.001;0.002;0.00390625;0.0078125;0.015625;0.03125;0.05;0.0625;0.125;0.25;0.5;1.0;2.0;4.0;8.0;16.0;32.0;64.0;128.0;256.0;512.0
Закончив с настройкой проекта, перейдем к теории создания объектов и неоднозначным аспектам моделирования в редакторе Max ED 2.0
Моделирование объектов методом отражения сегментов
Для начала, возьмем заготовку (заготовки лучше всего использовать пакет примитивов Aknott Primitives. Содержит 39 объектов представляющих собой шарики ромбики X угольники и так далее…
Берем объект обычного восьмиугольника копируем его в свой проект. Чтобы в дальнейшем не тратить время на наложение сразу применяем к объекту выбранный материал со стандартными значениями соотношения сторон. Подгоняем текстуру и получаем что то типа этого.
Теперь выделяем ту грань объекта в которую хотим загнуть трубу, выбираем угол наклона (клавиши Shift + +/-). Для начала пусть это будет значение в 15 градусов. Жмем стрелку влево и ничего не происходит. Вопрос почему кроется в том что шаг координатной сетки слишком велик и что бы произвести изменения с заготовкой следует понизить ее как минимум до 0.062. Есть закономерность чем больше угол тем меньше шаг сетки. Но в идеале любые угловые преобразования следует делать с маленьким шагом. После того как наклон на 15 градусов удастся расположите координатную сетку на наклоненной грани. Теперь выберите заготовку и скопировав ее а затем вставив (Ctrl+C и Ctrl+V) произведите зеркальное отражение.
Теперь еще раз выберем ту же самую грань и еще раз наклоним плоскость на этот раз уже копии заготовки. Теперь следует расположит сетку как в прошлый раз и скопировав заготовку отразить ее. .Полученный результат на рисунке 5 Кстати сторона 4 сегмента нашей трубы наклонена на 15 градусов так что лучше ее выровнять. Ну вот закругленный кусок трубы готов. Но на самом деле это всего лишь части заготовок никак не соединенные друг с другом здесь нас выручат булевы операции. Выберите один сегмент и нажав J (соединение) щелкните по соседнему объекту. Таким образом соедините все сегменты трубы что бы получился один объект. Теперь приступим к оптимизации объекта. Нам надо удалит внутренние полигоны трубы. Для этого залетаем в нее и выбрав нужный полигон жмем Del (рисунок 6).
ВНИМАНИЕ! удаляйте только те полигоны, которые не видимы если вы удалите лишний полигон, то объект перестанет быть замкнутым и в дальнейшем появиться необратимые ошибки вплоть до полной неработоспособности карты.
Теперь когда объект оптимизирован создаем для него Poly Group. Для этого выбираем объект в окне иерархии и щелкнув на нем ПКМ выбираем Add Polygroup. На вопрос о добавление всех полигонов объекта в группу отвечаем утвердительно. Затем выбираем созданную полигональную группу и ставим в ней галочки напротив значения Smooth Lightmaps Это позволит картам света лечь на объект ровно и не будет резких переходов на закругления. Если вы используете текстуры псевдо отражений (то есть Gloss & Reflection) то стоит поставить галочку напротив пункта Smooth Geometry – это в свою очередь обеспечит плавное распределение отражающей текстуры по поверхности всего объекта. На последок я думаю стоит уменьшить трубу уж слишком она большая относительно окружающей обстановки. Для этого выбираем объект жмем C и задаем размер в процентах. Больше 100 это увеличение а меньше – уменьшение. Так же можно масштабировать объект только по определенным выбранным координатным осям. В итоге получилось что то типа этого:
Теперь рассмотрим некоторые аспекты данного приема моделирования. Округлость трубы в данном случае зависит от количества углов заготовки чем больше тем более круглая будет труба. Плавность изгиба трубы зависит от выбранного вами угла изгиба чем он меньше тем плавне будет изгиб. Данный метод подходит для моделирования множества объектов это не обязательно трубы, а так же перила рельсы дверные ручки краны и так далее. В случае если в объекте после объединения появились щели, а такое бывает вам нужно отформатировать заготовку форматировать ее можно с разными значениями запомните стандартное значение 0.00050 щели не уберет для каждого объекта величину можно подобрать индивидуально, но лучше использовать проверенные величины, а это 0.00900 и 0.00500. Перед форматированием лучше сохраняться так как редактор может непроизвольно вылететь в Windows. Кстати чем больше величина форматирования, тем больше «не нужных» полигонов редактор уничтожит. Данный пункт применим ко всем методам моделирования сложных объектов. Если моделируемый объект сам по себе очень мал например водопроводный кран то заготовку лучше делать большой а когда модель будет построена просто уменьшить ее и отформатировать со стандартным значением
Достаточно справедлив вопрос, почему во время объединения сегментов не используется инструмент Union (объединение) во время этой операции ненужные полигоны удаляются автоматически. В тоже время программа чаще всего слишком грубо обрабатывает сегменты и на следующих этапах работы с моделью появляются необратимые ошибки и нестыковки.
Моделирование методом поворота вокруг центральной оси
С помощью этого способа вы в буквальном смысле за три минуты сможете смоделировать бутылку (вазу и т.д.) любой формы. Данным способом моделируются все объекты, которые имеют круглую симметричную форму.
Итак смоделируем простенькую вазу. Для начала нам надо нарисовать половину сечения создаваемой вазы (рисунок 1)
Затем выберем грань которая будет являться осью будущей вазы (рисунок 2) и изменим наклон плоскости (рисунок 3). После этого построим секущую плоскость, что бы она рассекала созданную заготовку точно по середине. (рисунок 4). Выберите секущую плоскость и обрежьте ей заготовку вазы (клавиша S). Теперь выберите полученную заготовку и зеркально отразите её (рисунок 5). Теперь объедините её с первой (клавиша J), после объединения обязательно удалите внутренние полигоны и объедините полигоны лежащие в одной плоскости, для этого в режиме F4 выберите полигон и нажав на J щелкните на соседний полигон. Это позволит сэкономить полигоны в модели. После того как заготовка полностью оптимизирована последовательно размещая сетку на одной из сторон полученного сегмента копируйте его и отражайте до тех пор пока не получиться половина вазы (рисунок 8). Теперь объедините все сегменты уничтожьте невидимые полигоны и и объедините полигоны лежащие в одной плоскости (в зависимости от формы на данном этапе их может не быть) в нашем случае в верхней и нижней частях вазы полученную половину вазы скопируйте отразите и объедините. Проделайте операции по оптимизации и отформатируйте. Теперь можно заниматься текстурингом модели.
Все аспекты касающиеся детализации такие же как и при создании труб. То есть чем меньше угол наклона сегмента тем более округлой получается конечная модель.
Округление граней объекта
Наконец мы дошли до последнего пункта нашей статьи. Скажу сразу пунктик достаточно неоднозначный. Дело в том что данная операция с объектами достаточно трудоемкая но в то же время позволяет сделать картинку непривычно гладкой. Резкость, которая довольно сильно бросается в глаза в оригинальном Max Payne 2 можно избежать.
Итак нарисуем обычный прямоугольник (рисунок 1) затем поверх него нарисуем точно такой же но сделаем его намного тоньше. Боковые грани второго прямоугольника наклоним на 22.50 градусов что бы у создаваемого прямоугольника появилась фаска. (рисунок 3) после этого поверх второй заготовки рисуем методом обводки еще один прямоугольник примерно такой же толщины и загибаем его грани так же как и в предыдущий раз но уже на 45 градусов (рисунок 4). Для более плавного закругления добавляем таким же способом еще один слой грани которого будут наклонены вначале на 45 градусов а потом еще на 22.50 (рисунок 5). Объединяем слои удаляем невидимые полигоны внутри нашего закругленного прямоугольника подгоняем текстуру и любуемся полученным результатом (рисунок 6).
К слову скруглять можно не только прямоугольники но так же овалы круги, да в принципе все многоугольники поддаются этой несложной операции.
На этом все. Комбинируя описанные в данной статье способы построения можно добиться поистине потрясающих результатов. Используя изогнутые формы ваши уровни, не будут похожи на стандартные. Ну а следующей части данной статьи я расскажу, как обходить подводные камни при освещении сложны объектов и раскрою еще несколько немаловажных аспектов высокополигонального моделирования. Вопросы возникшие при прочтении данной статьи вы можете задать на форуме XGM в разделе Max Payne.

Сведения о возможном очередном продолжении Max Payne будоражат умы геймеров с момента выхода второй части нуар-шутера. Сначала выступил Джеффри Л. Лапин (Jeffrey L. Lapin), на тот момент президент Take-Two, который заверил общественность, что «будет еще одна игра», и добавил, что случится это через несколько лет. Затем создатель обеих игр, компания Remedy, принялась на разработку Alan Wake, попутно перейдя под крыло Microsoft. 11-го сентября прошлого года Take-Two внимательно рассмотрела все свои франчайзы, и очередной президент компании Бен Федер (Ben Feder) объявил о сдувании пыли с нескольких подопечных проектов, назвав среди них и Max Payne. Кроме того, он сказал, что данные проекты находятся на стадиях разработки, но не отважился открыто анонсировать хотя бы один из них.
Затем несколько игровых аналитиков, сверив убытки издателя, выдвинули теорию, согласно которой компания вернет к жизни Max Payne. Ни подтверждения, ни опровержения не последовало, лишь Remedy в очередной раз напомнила, что Take-Two владеет правами на проект и может делать с ним все, что захочет, вплоть до поручения разработки триквела какой-нибудь сторонней студии.
Но времена идут, руководители меняются, и настала очередь третьего президента Take-Two, Штраусса Зельника (Straus Zelnick), отдуваться за обещания предшественников. На сегодняшней конференции ему был задан прямой вопрос по поводу третьей части Max Payne. «В случае с Max Payne мы не будем продавать виноград прежде, чем он вырастет, - уклончиво ответил Зельник. – Комментировать данный проект пока рановато. В данный момент у нас вообще происходит много чего интересного».
Некоторое время спустя, на той же конференции, Зельник пообещал выпуск одного из бывших тайтлов Rockstar AAA-класса в 2009-м фискальном году, который начинается с апреля 2008-го года. Max Payne 3 под эту категорию отлично попадает.
С учетом съемок фильма о приключениях харизматичного копа, остается лишь удивляться, если третья часть игры не будет анонсирована в скором времени.
» Комментарии (3)
Дилогия Max Payne стала ярким примером того, как простой шутер превращается в захватывающий драматичный триллер, стоит лишь привлечь к его разработке толковых сценаристов. Несмотря на то, что сюжет экшена буквально просится на широкий экран, о киноадаптации долгое время никто не говорил.
Max Payne: Payne & Redemption — фильм про Макса Пэйна, который обещает быть верным стилю игры и представить новую, красивую историю. Это фильм, основанный на оригинальных идеях игры: о любви, предательстве, мести… и большом количестве обезболивающих. История сфокусирована на проработке Макса Пэйна как персонажа, изучении его души и попытки понять, что управляет им в непрерывной жажде к преследованию того, что он считает важным — Правосудия. Ну и конечно же - будут и убийства, и хаос.
Год выпуска: 2007
Страна: UK
Студия: Sonar Pictures
Режиссер: Ферджел Гибсон / Fergle Gibson
Подробнее >>>
Max Payne: Payne & Redemption — фильм про Макса Пэйна, который обещает быть верным стилю игры и представить новую, красивую историю. Это фильм, основанный на оригинальных идеях игры: о любви, предательстве, мести… и большом количестве обезболивающих. История сфокусирована на проработке Макса Пэйна как персонажа, изучении его души и попытки понять, что управляет им в непрерывной жажде к преследованию того, что он считает важным — Правосудия. Ну и конечно же - будут и убийства, и хаос.
Год выпуска: 2007
Страна: UK
Студия: Sonar Pictures
Режиссер: Ферджел Гибсон / Fergle Gibson
Подробнее >>>
» Комментарии (2)
Прикольный мод в стиле комиксов а-ля Sin City и многие другие. То есть, почти все в моде черно-белое. Всего два коротеньких сюжетных уровня, но выглядят они довольно интересно с визуальной стороны. Жаль, что автор забросил свою идею.
Довольно занятная модификация. Геймпелй похож на ГТА. Сюжетная карта одна - небольшой кусочек города в котором вам придется выполнять задания. По улицам бродят пешеходы и полиция. Если полицию злить, то сами догадываетесь чем это закончится. Добавлены еще новые стволы. В общем, очень неплохо.
















































































































