Jump to content

Recommended Posts

Создаю эту тему для обсуждения эффектов в FSX.

Для начала переношу сюда свои наблюдения о создании эффектов из темы Ка-25.

 

Поговорим об огнях.
Как я уже отмечал выше, с новым графическим ускорителем DirectX для Windows Vista (сейчас при обновлениях у меня установился DirectX 11), возникли проблемы с отображением огней. Все огни, разработанные для дефолтных моделейFSX, а также моделей, сделанных для FSX на основе FS9, либо не отображаются вообще, либо отображаются неустойчиво - мигают, не видны с определенных ракурсов, или вообще не видны. Исключение составляют только огни для L-39 и еще нескольких моделей, разработанных специально для FSX SP2 и Acceleron с DirectX 10 и 11 версий.
Эти положительные примеры заставили заняться созданием огней средствами SDK FSX SP2. Вот что получилось.
1. Сначала немного теории, как я ее понял.
Огни создаются и применяются как визуальные эффекты. Общий принцип работы эффектов заключается в организации появления, поведения и исчезновения элементарных частиц, формирующих эффект. Эти частицы упорядочиваются в группу, именуемую эмитентом, который в свою очередь определенным образом появляется, работает и исчезает. Эмитентов в эффекте может быть много, следующих один за другим. Их поведение может интерполироваться и тогда возникает непрерывная анимационная картина, например, дым. А могут и не интерполироваться, тогда это просто совокупность эмитентов, например, огни фейерверка. В свою очередь, каждый эмитент может испускать другие эмитенты, что открывает почти неограниченные возможности для создания эффектов.
Так как огонь объект стационарный, то предусмотрена возможность присваивать такому эффекту признак стационарности. Это позволяет избежать изменения эмитента в процессе визуализации эффекта и создает картину постоянного свечения огня.
Каждый эффект описывается текстовым файлом с расширением *.fx. Эмитенты описываются секциями, каждая из которых состоит из трех разделов:
[Emitter.0] - описывает эмитент.
[Particle.0] - описывает поведение частицы эмитента.
[ParticleAttributes.0] - описывает атрибуты частицы эмитента, текстуру, анимацию и др.
Цифра после точки определяет порядковый номер эмитента в эффекте. Эти номера должны следовать строго по порядку от 0 до последнего.
О структуре этого файла поговорим позднее. 

  • Upvote 1

Share this post


Link to post
Share on other sites

2. Сначала следует определиться с инструментами для создания огней. Нам понадобятся:
- Special Effects Tool - это инструмент SDK;
- Фотошоп.

3. Устанавливаем инструмент Special Effects Tool, если он не был установлен раньше.
Он устанавливается в пакете SDK FSX SP2 при установке SDK. После чего его надо инициализировать.
Для этого его надо прописать в файле dll.xml (находится в <Drive>:\Documents and Settings\<alias>\Application Data\Microsoft\FSX. Эта папка является скрытой, поэтому сначала надо открыть доступ к ней). 
Открываем файл dll.xml и вставляем в него следующую секцию:

<Launch.Addon>
<Name>Special Effects Tool </Name>
<Disabled>False</Disabled>
<Path>..\Microsoft Flight Simulator X SDK\SDK\Environment Kit\Special Effects SDK\visualfxtool.dll</Path>
</Launch.Addon>

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

Загружаем FSX, любую сцену. В меню FSX должна появиться дополнительная опция FX Tool. Это и есть инструмент по созданию эффектов, а значит и огней.

Подразумеваем, что Фотошоп у нас есть.
Значит все готово к процессу создания огней.

post-1097-0-50386700-1384240532_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

3. Ставим в сцену вертолет Ка-25ПЛ (конечно же можно поставить любой летательный аппарат). Для удобства включаем режим просмотра Locked Spot.

post-1097-0-36037600-1384240624_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

4. Нажимаем опцию FX Tool в подменю инструментов главного меню FSX. Откроется окно FX Edit - редактирования эффектов.
Первоначально, если до этого не редактировались эффекты, это окно будет иметь такой вид.

post-1097-0-43148600-1384240692_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Главное меню редактора эффектов включает опции: File, Edit, View, Insert.
Рассмотрим эти опции.
Подменю File включает следующие опции:
New - создает новый файл эффекта.
Open - открывает уже существующий файл эффекта для редактирования.
Save - сохраняет файл эффекта.
Save As... - сохраняет файл эффекта под другим именем.
Exit - выход из редактора эффектов.

post-1097-0-14312600-1384240788.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Подменю Edit включает следующие опции:
Copy Current Tab - копирует выделенный эмитент (секцию эффекта) и создает его копию с другим номером.
Delete Current Tab - удаляет выделенный эмитент.
Tab name... - присваивает имя выделенному эмитенту.
Stop Animations - останавливает анимацию в эффекте.

post-1097-0-15116400-1384240895.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Подменю View включает одну опцию Always on Top. При ее включении окно редактора эффектов всегда будет отображаться поверх остальных окон.


Подменю Insert включает следующие опции:
Sprite - создает новый эмитент с нулевыми исходными параметрами.
Debris - выбирает эффект из библиотеки эффектов в качестве эмитента.

post-1097-0-98757100-1384241013.jpg

Edited by dmi-shef
  • Upvote 1

Share this post


Link to post
Share on other sites

Нажимаем Sprite и редактор эффектов приобретет следующий вид (на скрине показаны некоторые значения в окнах вкладок, т.к. для иллюстрации я открыл уже имеемый эффект. Для нового эффекта во всех окошках будут нули).

post-1097-0-80873600-1384241091_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Попробуем создать зеленый навигационный огонь. Одновременно рассмотрим назначение кнопок и параметров.
В верхней секции (обозначена цифрой 1) вводятся общие параметры эффекта:
Friendly name - имя эффекта. Так будет называться файл *.fx (в моем случае это имя будет fx_Sht_lightGreen_nav.fx). 
Radius - радиус эффекта в метрах. Введем его 1.
Priority - приоритет эффекта. 0-наивысший приоритет, 1,2,3 и т.д. - более низкие приоритеты. Введем его равным 0.
Has Sound - включает звуковое сопровождение для эффекта. Не включаем.
Show Location - включает видимость координатных осей для облегчения визуализации эффекта при его создании. На сам эффект влияния не оказывает.
При включении этой функции активируются бегунки положения начала системы координат визуализации по осям X (вправо-влево), Y (вверх-вниз), Z (вперед-назад).

post-1097-0-27745200-1384241210_thumb.jpg

Edited by dmi-shef
  • Upvote 1

Share this post


Link to post
Share on other sites

Включим эту функцию и сдвинем начало координат визуализации по оси Z вперед на 5 метров. При этом по носу у нашей модели появится изображение осей!
Этим продемонстрировано замечательное свойство редактора эффектов - он использует загруженную в сцену FSX модель самолета (вертолета) в качестве испытательного полигона! Изменяя параметры, мы сразу же увидим наш эффект в FSX!
Очень удобная штука!!!

post-1097-0-35741300-1384241395_thumb.jpg

Edited by dmi-shef
  • Upvote 1

Share this post


Link to post
Share on other sites

Остается сказать о самой правой верхней кнопке первой секции - Do Effect.
Если ее нажать, то и происходит визуализация эффекта в сцене.
Можно сейчас нажать ее. Однако мы ничего не увидим т.к. мы еще не описали эмитенты. 


Первый эмитент является исходным. Он определяет начальное состояние эффекта. Возможно, что в каких-то эффектах есть только один эмитент, но у меня такой эффект не работает. Поэтому надо создавать несколько эмитентов.
Заполняем данными секцию, которая на скрине обозначена номером 2.
- Lifetime - это время жизни эмитента в секундах. Для первого эмитента оставим его равным 0.
- X Scale и Y Scale - это размер эмитента в метрах по осям X и Y соответственно. Установим по 0.15 м. Увеличение этой площадки приводит к зрительному увеличению интенсивности огня и его размеров.
- Rate - это периодичность испускания эмитента в секундах. Оставляем 0.
- Offset: X, Y, Z - это величина смещения в метрах начала координат эффекта по осям. Оставляем 0.

post-1097-0-58003600-1384241568_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Заполняем секцию под номером 3. Это секция цвета эмитента.
Особого пояснения не требует. Цвет для установки вызывается при нажатии кнопок Start и Goal (начала и конца эмитента). В нашем случае выбираем зеленый цвет, т.к. делаем зеленый огонь.
Параметр альфа оставляем равным 0

post-1097-0-83657800-1384241705_thumb.jpg

Edited by dmi-shef

Share this post


Link to post
Share on other sites

Заполняем секцию под номером 4. В ней нас пока интересует только параметр Static, который запретит любые динамические процессы в эффекте. Поэтому в окошке этого параметра ставим галочку.
На значении остальных параметров пока останавливаться не будем.

post-1097-0-04701200-1384241848_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Переходим к секции 5. В ней устанавливаются параметры поведения частицы первого эмиттента.
Для того, чтобы эту секцию включить, ставим галочку в окошке Active. Обратим внимание, что при этом появилось сообщение ACTIVE в правом верхнем углу над секцией текстуры (о ней чуть позже).
В этой секции устанавливаем время жизни частицы Lifetime равным 0.5 секунды, остальные параметры оставляем равными нулю.

post-1097-0-11523800-1384241942_thumb.jpg

Share this post


Link to post
Share on other sites

Теперь делаем перерыв и переходим к изготовлению текстур в Фотошопе (хотя их можно сделать и заранее).
На скрине показаны текстуры, которые я сделал для навигационных огней, а также для посадочных, рулежных и поисковых фар.
Последовательность действий:
- создаю текстуру в формате psd;
- добавляю альфа-канал с цветом 244 по всем каналам цвета (светло-серый, почти белый);
- конвертирую в формат dds;
- помещаю в папку texture корневой папки Effects сима.

post-1097-0-34163300-1384242051_thumb.jpg

Share this post


Link to post
Share on other sites

Возвращаемся в редактор эффектов, в секции 6 включаем поиск нашей текстуры и после выбора ее в окне поиска нажимаем Ok. Наша текстура отобразилась в окне текстуры.

post-1097-0-01477300-1384242119_thumb.jpg

Share this post


Link to post
Share on other sites

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

post-1097-0-79307100-1384242182_thumb.jpg

Share this post


Link to post
Share on other sites

Создаем второй эмитент. Для этого в опции Edit главного меню редактора эффектов выбираем опцию Copy Current Tab (копируем первый эмитент).
Появилась вкладка второго эмитента с именем Partide 2 (на скрине отмечено пунктом 1). Это имя можно изменить, как я уже говорил, опцией Tab Name..., шрифт применять латинский.
На этой вкладке все параметры в точности повторяют значения первого эмитента. Для того, чтобы эффект заработал, необходимо изменить хотя бы один параметр из тех, которые подсвечены красным цветом.
Изменим Alfa с 0 на 1 (на скрине отмечено пунктом 2) и Rate с 0.00 на 0.01 (на скрине отмечено пунктом 3).
Нажимаем Do Effect и - о, чудо!, перед вертолетом появился зеленый огонь!
Я забыл сказать, что для большей контрастности огня в симе, я изменил дневное время на ночное.

post-1097-0-70498400-1384242244_thumb.jpg

Share this post


Link to post
Share on other sites

Рассматриваем огонь со всех сторон и видим, что он плоский. Плоскость расположена перпендикулярно вертолету и при ракурсах, близких к 90 градусов правого (левого) борта огонь не виден, превращается в черточку.
Для исправления этого недостатка в группе Facing ставим галочку в окошке Heading (Пеленгация). Эта функция включает поворот эмитента так, что он все время расположен плоскостью к наблюдателю (правда, только по горизонту).
Снова нажимаем Do Effect. Видим, что огонь стал вполне приемлемым.

Примечание: На этой стадии и открывается обширное поле для редактирования эффекта. Можно и размеры менять, и положение эмитента на осях координат, и цвет, и т.д.

post-1097-0-69121100-1384242313_thumb.jpg

Share this post


Link to post
Share on other sites

Опять рассматриваем огонь со всех сторон. Смотрится лучше, но при взгляде сверху, а значит и снизу, эмитенты выглядят черточками и огонь исчезает. Решаем поставить третью плоскость, горизонтальную. Тогда огонь со всех сторон будет смотреться объемным.
Создаем третий эмитент, как копию второго.
Снимаем галочку у параметра Heading. Включаем галочку у параметра Align to ground (паралельно земле).
Нажимаем Do Effect и видим, что появилась третья, горизонтальная, плоскость. Теперь огонь смотрится хорошо со всех сторон.

post-1097-0-09078900-1384242381_thumb.jpg

Share this post


Link to post
Share on other sites

Сохраняем созданный эффект, в Проводнике убеждаемся, что файл нашего эффекта появился в папке эффектов FSX, прописываем этот огонь в файле конфигурации вертолета Ка-25ПЛ.
Аналогично создаем красный и белый огни. При этом можно просто скопировать файл зеленого огня под новыми именами, заменить имена текстур и цвет при старте и завершении эмитентов.
Пререзапускаем FSX видим наши навигационные огни.
На скрине - зеленый (правый) и белый (хвостовой) огни Ка-25ПЛ.

post-1097-0-25355900-1384242452_thumb.jpg

Share this post


Link to post
Share on other sites

На этом скрине красный (левый) и белый (хвостовой) огни Ка-25ПЛ.
Пока все.

post-1097-0-80262500-1384242532_thumb.jpg

  • Upvote 1

Share this post


Link to post
Share on other sites

Спасибо за интересную тему. Вопрос - приобрел DXFixer для использования 10го директа. Почти все устраивает, но есть небольшие косяки. Один из них - отображение нав. огней на используемом самолете, в частности НГХ и 777 ПМДГ (а также траффиковых моделей, но их опустим пока). При увеличении зума более 0.70 при внешнем виде стробы и навы пропадают, при уменьшении соответственно появляются. Посредством вышеописанной утилиты возможно ли отредактировать огни для корректной работы в 10м директе? И кстати, при использовании альтернативных текстур РЕКС, АС2012 откорректированные эффекты сохраняются?

Share this post


Link to post
Share on other sites

Спасибо за интересную тему. Вопрос - приобрел DXFixer для использования 10го директа. Почти все устраивает, но есть небольшие косяки. Один из них - отображение нав. огней на используемом самолете, в частности НГХ и 777 ПМДГ (а также траффиковых моделей, но их опустим пока). При увеличении зума более 0.70 при внешнем виде стробы и навы пропадают, при уменьшении соответственно появляются. Посредством вышеописанной утилиты возможно ли отредактировать огни для корректной работы в 10м директе? И кстати, при использовании альтернативных текстур РЕКС, АС2012 откорректированные эффекты сохраняются?

При включении в FSX опции Preview DirectX 10 появляется много погрешностей в работе симулятора. В том числе и с огнями.

После того, как сохранение эффектов огней я провел описанным выше способом через редактор эффектов, огни стали отображаться корректно на всех дальностях и на всех курсовых углах. Редактор эффектов FSX обрабатывает любые эффекты независимо от производителя, т.к. все они в конечном счете описываются текстовыми файлами fx. Исключение составляют эффекты, созданные 3D инструментами, их редактировать этим редактором нельзя. 

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

Share this post


Link to post
Share on other sites

Ка-25ПЛ  - это вы специально дразнитесь и кокетничаете? :D А где такой вертолетик можно взять? 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...