Jump to content
Sign in to follow this  
Airman

Scenery Faq

Recommended Posts

Airman
Q: Чем cоздаются сценарии для Flight Simulator

Теоретически для создания сценария достаточно Microsoft SDK и текстового редактора. Для написания используется специальный язык BGL ассемблер, который потом компилируется при помошью программы BGLC (BGL Compiler). Так же в состав СДК входят вспомогательные программы BGLPacer - для "расстановки" эфффектов и библиотечных объектов, Annotator - для создания автогена на своих текстурах и Resampler - для создания фототеррайна, изменеиния ландклассов (текстур поверхности), создания т.н. мешей (неровности поверхности земли).

 

Кроме того используется SCASM (Scenery ASeMbler) еще один язык от сторонних разработчиков.

 

На практике для создания сценария используются визуальные средства. На сегодняшний день самые распостраненые это Airport for Windows http://www.airportforwindows.com/ и Flight Simulator Scenery Creator (FSSC). http://www.fssc.avsim.net/ Обе программы практически равнозначны и позволяют создавать законченный сценарий. Кроме того могут потребоватся программы создания трехмерных объектов такие как Easy Object Designer (EOD), GMax. Кроме того в интернете можно найти много программ облегчающих труд разработчика (постараюсь описать их в отдельно ближе к темем вопросов). Еще раз повторюсь AfW и FSSC на начальном этапе достаточны для создания полноценного сценария.

Share this post


Link to post
Share on other sites
Airman
Q: Создал свой сценарий, теперь у меня две полосы "старая" и "новая" Что делать?

 

 

Бывают случаи когда файлы сценариев перескаются. Предположим файл сценария содержит взлетную полосу. Если другой файл BGL содержит ту же взлетную полосу в той же или слегка отличной позиции, две взлетных полосы могут быть отрисованы одновременно. Едиственный путь избегнуть этой ситуации - "вырезать" объекты из "старого" сценария.

Для этого в AfW и в FSSC применяется Excluse Area в параметрах которой можно задать координаты области вырезания и категории объектов (для сценариев расположенных "ниже" в списке Библиотеки сценариев FS) которые необходимо скрыть.

 

Вышесказанное относится и к другим объектам (визуальным, навигационным) и автогену.

 

Кроме того "вырезать" область можно в Scenery.cfg например (пример из СДК):

 

[Area.100]

Group=Your Area

ID=Your Area

Title=Your Area

Active=TRUE

Layer=100

Local=C:\Your Area

Exclude=N45 30,W120,N45,W119 30,objects,vors

 

Первые четыре параметра координаты углов, следующий (или разделенные запятыми) что вырезается

ALL, Objects, VORS, NAVS

 

Последний вариант можно применить для "чужих" сценариев если автор по каким то причинам этого не сделел.

Share this post


Link to post
Share on other sites
Airman
Q:Полигоны отображаются в симе не правильно. Искажена форма, моргают или не видны вообще.

 

 

Основных причин две:

 

Первая - не выровнена поверхность и наш полигон просто прорезает какую либо неровность поверхности и частично (или полностью) проходит под ней. Для выравнивания применить Flaten Area

 

Вторая - ошибка в номерах слоев (Level Layer)

Номера слоев устанавливаются для полигонов, рулежек, дорог, и рек и могут иметь значения от 01 - 80. Объекты отрисовываются в FS в порядке увеличения слоев. Взлетная полоса имеет номер слоя 24. Так им образом, если вы хотите отобразить полигон "под" взлетной полосой уровень слоя для этого полигона должен быть меньше 24 и наоборот. Таким образом "нужный" полигон может быть отрисован под другими (не виден) или на одном слое с другим (моргать) и т. п.

Share this post


Link to post
Share on other sites
Airman
Q:Жесткая поверхность в ГМаксе

 

Если вы сделали наземный полигон в Гмаксе, то добавив выделеную строку можно задать область жесткости для твердых поверхностей. Помните кусок кода для "превращения" 3D объекта в полигон (в понимани сима)

 

OBJECT_0_START label word

IFIN1 OBJECT_0_FAIL, image_complex, 2, 32767

ADDCAT OBJECT_0_SCALE, 26 ; 26 - номер слоя

SET_SURFACE_TYPE 0, 273, 232, 0 ; задаем тип асфальт

;SHADOW_CALL OBJECT_0_SCALE ; эта стока нам не нужна - закоментирована

OBJECT_0_FAIL label BGLCODE

 

Парметры

1) 0 - тип поверхности (0-асфальт/бетон, 1-трава/песок, 2-вода)

2,3) 273, 232 - размеры если не помним, смотрим в Vertex_List (в _0.asm) и складываем абсолютные величины координат точек первый и третий столбец соответственно)

4) 0- высота.

 

Центруется область по последней команде SCALE - в нашем случае по центру координат в Гмакс или по координатам введеным при экспрте (что одно и тоже)

 

Просьба сообщить в топик "О Scenery SDK" если будут замечания, комментарии и вопросы, бо это мое ИМХО, но проверил - работает.

Share this post


Link to post
Share on other sites
Airman
Q:Как изменить автоген

 

 

Автоген привязан к конкретному ландклассу - например на классе "тундра" будут расти чахлые кустики, на "крупный город" большие здания.

Т.о. первый способ изменить автоген в своем сценарии - это поменять ландклассы - соответственно им изменятся и автоген.

Второй способ это создать собственные текстуры поверхности (т.н. "Фототеррайн") и программой Annotator из Autogen SDK расположить на этих текстурах здания и деревья. Разумеется что зания будут случайными (различные высоты в заданном диапазоне, разной раскраски) но можно добится некой узнаваимости жилых массивов.

(На самом деле фототерайн это просто еще один спецефический ландкласс - для которого существуют текстуры связанные с конкретным местом по своему имени)

 

И для первого и второго случая можно применить resampler из Custom Terrain Textures SDK.

Для создания RAW-файла ландклассов можно воспользоватся утилитой Landclass Assistant (она же поможет создать и INF файл)

Так же есть утилиты облегчающие работу например TerraBuilder.

 

 

EugSh напомнил мне еще один вариант использовать VTP полигоны с дефолными ландклассовыми текстурами.

Share this post


Link to post
Share on other sites
Airman
Q:Как "оживить" свой сценарий.

 

Способ первый - использование эффектов. Применим когда задачу можно решить игрой текстур (как правило прозрачных), например дымы, феерверки, ночные иллюминации и т.п. Файл эффекта - обычный текстовый файл. Описание есть в Effect SDK. Там же есть и программа Placer - позволяющая помещать эффекты в свой сценарий. Кроме того есь ряд утилит. Напимер FSRergen - позволяющая в Гмакс расставить "точки привязки" и "привязать к ним эффекты.

Способ второй - анимация в Гмакс. Обычно применяется для создания цикличного движения, например вращающихся антенн радаров. Используется префикс tick18_ для объекта и делается обыкновенная ключевая анимация.

Способ третий - создание динамического сценария. Самый простой вариант использование динамических команд (типа как в програмируемом вездеходе Лего - "вперед 50", "ждать 10 сек.", "повернуть на курс 90", "разбудить другой объект", "уснуть" и т.д.)

Следующим шагом может быть придание некого интелекта используя динамические переменные (например время суток) или мониторинг нахождения самолета или других динамических объектов в определенной зоне. Динамические команды описаны в документации к SCASM и в Scenery SDK 2000.

Share this post


Link to post
Share on other sites
Airman
Как настрить Гмакс для создания сценариев

 

1. Копируем в папку Plugins Гмакса, два файла FSModelExp.dle и MakeMDL.exe которые находятся в папке FS2002\gmax\Flightsim\plugins. MakeMDL лучше взять крайнюю версию из MakeMDL SDK (старая вообщем то тоже работоспособная, но есть пару глюков и главное в новой версии есть опция Keep Files - которая нам может пригодится в дальнейшем)

2. В национальных настройках Виндовс (Панель управления->Язык и стандарты->Числа) ставим разделител целой и дробной частей числа в "." (точку) вместо запятой в русской (и некоторых других) версиях.

3. Запускаем ГМакс. В Customize-> Unt Setup ставим Metric и выбираем Meters.

4. В Customize -> Preferences -> General ставим 1 Unit=1.0 Meters

 

Все, теперь можно создать кубик с размерами равными длинне нашего любимого самолета, выполнить File -> Export - в появившемся окне MakeMDL указать нужные нам координаты. Полученую БГЛ положить в папку Addon Scenery сима, загрузит сим и проверить что наш кубик правильного размера.

  • Upvote 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...