Сегодня я хотел-бы поделится с Вами некоторым опытом.
Все мы знаем, как ограничен в средствах моделирования Гмакс, и о прочих его недостатках, которые я перечислять не буду, тем более для каждого они свои.=)
Большинство моделлеров, которые работают над самолетами в конечном счете приходят к тому, что отказываются от Гмакса, в пользу связки из его старшего собрата 3dsMax 6-7-8(обычно 7) и экспортера в формат Direct X от Pandasoft(далее по тексту — Панда)
Эта связка гораздо эффективнее в плане моделирования, текстурирования и прочего, она банально удобнее, экономит время- так как большинство вещей в Максе делаются несравнимо быстрее чем в Гмаксе, но в этой бочке меда есть ложка дегтя, которую сначала даже не все замечают. Но она на самом деле очень существенная.
Это я об экспорте лайтмапов в ВК.
Связка 3дсМакс-Панда не умеет экспорировать лайтмапы в ВК, в отличие от Гмакса.
Как мне однажды ответил Денис Окань «Панда — кривотень только в этом- а Гмакс во всем остальном». Это в общем правильно.=)
Существует способ добавить Лайтмапы вручную в asm-файл при компиляции. Я не буду сейчас останавливатся и расписывать всю технологию — кому надо знают или узнают.
Смысл её в том чтобы дописать строчки с лайтмапами по всей длине asm-файла соблюдая нумерацию, а потом компильнуть это все через bglc. Способ, конечно, очень трудоемкий, но действенный.
Однако из его трудоемкости выходит ряд следствий:
— Элементарно можно ошибится при редактировании — asm-файл штука не маленькая — и все, начинай сначала, ошибку в фале такого обьема можно искать очень долго..
— КАЖДЫЙ лайтмап нужно вписать руками, да ещё не в одном, и не в двух местах. Хорошо если лайтмап один… А если мы хотим не только подсветить приборы, но и сделать подсветку панелей, и деталей интерьера? И так немаленькое количество работы умножается ещё и на количество битмапов. — т.е. становится совсем уж нереальным.
Пожалуй главным недостатком этого является то что это все надо проделывать КАЖДУЮ компиляцию, если вы хотите видеть свет в каждой промежуточной МДЛ.
Почему-бы не совместить преимущества одной программы с преимуществами другой? — тут встает ряд сложностей, скажут опытные моделлеры и будут правы.
— Просто делать в другой программе ВК -глупо и долго, теряются преимущества работы с 3дс Максом. Да и другие сложности есть, о них чуть позже.
— Тогда есть другой путь — переэкспорт.
Фи-и-и да что там останется от модели, и что с этим потом делать- приводить в порядок дольше чем делать заново… скажут опытные моделлеры и будут неправы!
В 3дс Макс существует формат экспорта который напрямую поддерживается Гмаксом — это .3ds — Формат очень древний, ещё времен ДОС.
При экспорте из 3дс Макса и импорте потом в 3дс Макс группы сглаживания, анимация и материалы в .3ds как правило не сохраняются. НО! Это важно! Гмакс основан на коде 3dsMax R.3 —
третьей ревизии этой программы для Windows. — Эта ревизия все ещё поддерживала импорт групп сглаживания, анимации и материалов из .3ds!
Наш с вами ВК, который мы холя и лелея делали в 3дсМакс практически без проблем переносится через .3ds в Гмакс. Группы сглаживания, материалы, анимация — всё переносится нормально и готово к компиляции. Да-да, без всяких ресет-ов, и прочего… просто экспорт-импорт-компиляция.
ВАЖНО! У меня при импорте галка «Convert Units» вызвала искажение размеров всей ВК, но если её снять — то все нормально.
Теперь мы имеем ситуацию в Гмаксе ВК — в Максе Наружка. Как нам это совместить?
Особенностью экспорта из Гмакса является то что там процесс экспорта автоматизирован, т.е. МейкМДЛ запускается плагином Гмакса. И мы напрямую не видим наших .х-файлов.
Но существует такая всеми сегодня забытая программа — MDLCommander 
MDLCommander.zip 19.05К
187 Количество загрузок: — я приложил, так как найти её бывает непросто — она вклинивается в процесс экспорта и позволяет вручную запускать MakeMDL, но главное — она позволяет сохрянить .х-файлы, которые создает экспортер Гмакса!
Таким образом, можем экспортировать ВК из Гмакса и наружку из 3дс Макса. «В два клика», без ковыряния в асм-файлах и ручной компиляции через bglc.
Для этого нам нужно только кое-что настроить.
Итак, настройка компилирующей «фермы» для сборки МДЛ со светом.
Нам потребуется:
1). — Ваш Макс, настроенный на экспорт Пандой.-это я описывать не буду -кто не знает — в топик «создаем модель с нуля» Самдима.
2). — Gmax, с Геймпаком из SDK (я предпочел отказатся от Геймпаковой структуры и просто раскидал по папкам ГМакса соответствующие элементы — меньше проблем, по-моему, чем создавать отдельные ярлыки и мучатся с Геймпаковой структурой.)
3). — MDLcommander 
MDLCommander.zip 19.05К
187 Количество загрузок:
Операции с Максом.
Экспортируем наш ВК в .3ds
File->Export
Важно что-бы ни одной детали не было скрыто и ни одна деталь не была выбрана.
Можно заранее экспортировать нашу Внешку в .х .
Операции с MDL-commander’ом
В поставку MDL-коммандера входит только один .exe и файл справки. В файле справки написано как регулировать работу программы с помощью конфиг-файлов. Нам это в общем-то не нужно, я опишу как все сделать, что-бы работало и экспортилось, но вдруг вам понадобятся какие-то другие возможности…
1) — Кладем MDLcommander.exe в папку с плагинами Gmax’а — там где у Вас лежит MakeMDL.exe
2) — Переименовываем Вашу MakeMDL.exe и makemdl.parts.xml в mkmdl.exe и mkmdl.parts.xml соответсвенно. — это важно, использовать именно эти имена, если вы хотите что-бы у вас запускалась MakeMDL после экспорта из Гмакса .х-файлов.
3)— переименовываем MDLCommander.exe в MakeMDL.exe — теперь экспортер Гмакса вместо MakeMDL будет вызывать MDL-commander не подозревая о подмене.
4)— Создаем в этой-же папке текстовый файл параметров и переименовываем его в ИМЯ_ВАШЕЙ_МОДЕЛИ.par — обратите внимание, что в имени модели и файла не должно быть скобок, тире и прочих элементов, использующихся в командной строке. Например Il86.par
— В файле параметров пишем следующее, можно скопировать или не писать коментарий — я его просто так оставил:
# these are parameters for exporting my aircraft -i -keep -viewlog +savexfile
Весь список параметров есть в докуменьте к commander’у — 3/4 из них нам не нужны, отмечу только +nocompile — отмену вызова Make MDL после пуска MDLcommander. Некоторые могут предпочесть запускать makeMDL отдельно.
ВСЁ, мы все настроили! Поздравляю.
Теперь что мы делаем когда экспортируем модель.
1) Проверяем всю нашу анимацию в модели ВК(в Гмаксе), иногда бывают мелкие косяки, связанные с разными криво сделанными детальками. Внимательно смотрим имя модели — оно должно совпадать с именем Файла .par.
2) Экспортируем в .mdl(так как будто-бы мы просто экспортировали самолет) ВАЖНО! Когда вы выбираете Имя для MDL оно должно совпадать с именем файла .par Гмакс недолго думает, потом появляется окно MakeMDL(или не появляется если вы поставили в .par ещё и +nocompile). Но компиляция не происходит (если вы все настроили как у меня), оно просто висит. Ничего пока там не трогаем.
3) Компилируем .х внешки, если вы этого ещё не сделали.
4) Теперь берем нашу Внешку и копируем её в каталог где у нас лежит файл .х ВК из Гмакса(она у нас называется il86.x). Переименовываем оба файла так как вам удобно, не забывая что ВК нужно обозвать Имя внешки_interior.x, что-бы она подхватилась автоматом. Ну допустим назовем ВК Il-86_interior.x а внешку Il-86.x
5) В Make MDL (который у нас висит, если вы помните, если не висит- самое время запустить его) выбираем как обычно Il-86_Interior.x, Внешка автоматом подхватывается, и мы компилируем далее как обычно.
Лезем в Сим и смотрим, Вуаля — у нас в ВК появился свет!
Таким образов мы используем Гмакс по-сути как компилятор. Ничего дорабатывать в нем нам не нужно(ну если только паре деталек анимацию подправить — Под парой деталек я подразумеваю ПАРУ ДЕТАЛЕК, а не пол-вк, у меня на 204-ом съехало 4 детали — Штурвал, Руды и Ручка на форточке — это дело 10-20 минут поправить)
Теперь по поводу того какие детали находятся в группе риска — те детали у которых «контейнер» не совпадает с координатами. Это сложно объяснить, но один раз увидев легко понять закономерность, скорее всего это детали с «кривым» Пивотом. Видите что «кубик» границ детали непараллелен сетке, когда деталь параллельна — скорее всего эта деталь — клиент на коррекцию анимации.
Надеюсь этот туториал поможет Вам упростить и ускорить разработку ваших моделей, и мы вместе увидим их в симе.
С Уважением.
Сообщение отредактировано Kirill Konovalov: 09 March 2010 — 19:04
Возможно я не прав, Но лайтмапы таки компилятся стандартными средствами — панда+мейкмдл, НО! только не для $ текстур.
Если честно, то я думал что для $ текстур вообще не нужна лайтмапа- то есть рисуется ночной прибор и дневной и программно выводится в область $ текстуры- так или нет?
Кстати на счет ручного редактирования асм файла- ничего сложного если делать это скажем в вордпаде.
Буквально какие то 2 минуты на правку 2-3 листов текстур.
Ага, и так каждый раз при каждой компиляции, потом компиляция через bglc руками… Увольте… Мне проще в Гмакс перегнать.
Я человек, любящий человеческий GUI, и люто ненавидящий командную строку, как пережиток DOS’а. Ребят на дворе 21 век, ничего так
Извините,если обидел любителей работать в «строке».
Александр, хочешь руками- делай руками, способ работает… Но я хочу видеть свет при каждой компиляции, коих бывает по 4-5 за час, и тратить время на редактирование asm и пляски с bglc-мне каждый раз неохота…
Ты будешь вынужден все остальные действия (начиная с восстановления анимации) производить в Гмаксе, а значит ты уже никогда не будешь иметь на руках окончательный исходник в Максе,- только в Гмаксе.
Так что я оставляю пляски с настройкой анимации, мдл командером и прочими геймпаками тебе 🙂
Мне как то проще в блокноте найти и заменить автоматом пару строк.
Ну альтернатива на то она и альтернатива.
Для тех кто все таки да не убоится редактировать асм
Порядок действий
В Мейкмдл ставим галочку HasLightMap и Keep Files
В то место, где сформируются 3 файла имямодели.asm, имямодели_0.asm, имямодели_1.asm ложим файлик
BGLC_9.zip 293.85К
74 Количество загрузок:
Открываем в блокноте имямодели_0.asm (это ВК), находим строки $ текстур (эти секции находятся в самом верху файла)
$ текстуры идут за обычными текстурами
TEXTURE_DEF TEXTURE_AIRCRAFT , <255,255,255,255>, 0.313154, «P2_T.BMP» ; 2 // Это строка дневной обычной текстуры
TEXTURE_DEF TEXTURE2_LIGHTMAP , <255,255,255,255>, 0.313154, «P2_L.BMP» ; 3 // Эта строка лайтмапы обычной текстуры. Ее мейкмдл сам вставляет
TEXTURE_DEF TEXTURE_AIRCRAFT , < 0, 0, 0, 0>, 1.503453, «$GAU2» ; 4 //Это строка дневной (по сути виртуальной приборной текстуры)
вот сюда сразу за верхней строчкой вписываем
TEXTURE_DEF TEXTURE2_LIGHTMAP , < 0, 0, 0, 0>, 1.503453, «$GAU2» ; 5 // и рисуем порядковый номер! (в нашем случае 5)Соответственно у второго листа текстуры меняется порядковый номер с 5 на 6 (Это важно)
TEXTURE_DEF TEXTURE_AIRCRAFT , < 0, 0, 0, 0>, 0.382836, «$GAU1» ; 6 //Это строка дневной текстуры
и опять же прописываем к этому текстурному листу лайтмапу
TEXTURE_DEF TEXTURE2_LIGHTMAP , < 0, 0, 0, 0>, 0.382836, «$GAU1» ; 7 // и рисуем порядковый номер! (в нашем случае 7)
это первый этап
ниже по файлу находим строку содержащую $GAU2
MATERIAL 1,4 ; <0,0,0,0> $GAU2.BMP;;;
выделяем часть $GAU2.BMP;;;
жмем Ctrl+H (найти и заменить)
вставляем скопированное в верхнюю часть поиска а в нижнюю пишем
$GAU2.BMP;;$GAU2.BMP;
и жмем заменить все.
Далее аналогично находим строку содержащую $GAU1
Только теперь обратите внимание! Нам надо поменять порядковый номер текстуры
MATERIAL 1,5 ; <0,0,0,0> $GAU1.BMP;;;
я просто копирую часть текста начинающуюся с (5) пример (5 ; <0,0,0,0> $GAU1.BMP;;
и меняю автоматом везде на (6 ; <0,0,0,0> $GAU1.BMP;;$GAU1.BMP;) (почему на 6- см выше)
строка приобретет вид соответственно
MATERIAL 1,6 ; <0,0,0,0> $GAU1.BMP;;$GAU1.BMP;
Остается теперь сохранить изменения в файле и перетащить файл ИмяМодели.asm и бросить на BGLC_9.exe
через несколько секунд получим файл ИмяМодели.bgl меняем расширение на mdl и все дела
Важно драгндроп делать там где сформировались фалы асм
Для особых гурманов:
Можно вместо ссылки на саму себя $ текстуру сослаться на другую $Gau1_L.bmp содержащую альфу с возможными вариациями подсветки будильников
PS Лайтмапы нет никакой нужды пихать ни в амбиент ни селф илюминейшен (в редакторе материалов в Максе)
Всем этим рулит МейкМдл (и не ругайте панду- она не при чем)
Сообщение отредактировано DUST: 05 April 2011 — 13:15
_100_interior_lights_on label word
_100_interior_lights_on_land_off label word
_100_interior_lights_off label word
соответственно необходимо в нижних 2 поменять порядковые номера $ текстур
PS кстати может кто то разбирался — для чего эти секции?
Например в A320 аирсиммера в ВК три типа лайтмапов : надписи, флуды (пятна света под козырьком) и надписи+флуды. А на внешке отдельно и независимо сделаны пятна света на движках с крыльями и пятна от посадочных фар.
правда с добавлением любой новой переменной количество блоков растет в геометрической прогрессии.
В общем сложно все это, я вообще девятый сим забросил и не компилил ничего уже больше года
Сообщение отредактировано Kirill Konovalov: 06 April 2011 — 19:52
Пригодиться еще может, но в общем поделиться могу. Можем обсудить как-нибудь в скайпе
2-я секция включает и выключает текстуру подсветки незвисимо от положения Главного Выключателя Питания борта (A:ELECTRICAL MASTER BATTERY), тогда как 3-я секция выключит лайтмап подсветки ровно тогда, когда разрядятся АКБ, либо ГВП будет выключен (при условии что РАП отключена).
Незабудьте в соответсвующих строках вместо
TEXTURE_DEF TEXTURE2_LIGHTMAP……….
прописать
TEXTURE_DEF TEXTURE2_NONE…………..
Хотя тут нужно поиграть. У меня так, у Вас может случиться по другому, тк текстуры в ВК у меня добавлены несколько нетрививльным способом из-за особенностей 3Д Макса 2009 для которого у меня нет плагинов и соответствущих материалов для сима.
Сообщение отредактировано Virpil: 12 April 2011 — 15:18