XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Моделлинг> MdlVis
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Багфикс MdlVis1.39b
Итак, MdlVis1.39b готов!
Прежде чем я перейду к официальной части, запомните, пожалуйста: то, что кнопка проигрывания анимаций не видна, когда выбрана «Вся линейка» - это не баг! Если кто-то сообщит мне об этом «баге» или начнёт задавать глупые вопросы вроде «что за фигня, почему не видно кнопки», я буду очень долго биться головой о клавиатуру. А вы ведь этого не хотите, не так ли?
.
Так, теперь – об изменениях. Прежде всего, я исправил где-то с десяток различных багов (полный список – в history.txt), так что теперь новый MdlVis полностью готов к работе. Конечно, баги в нём наверняка ещё остались – но, по крайней мере, не больше, чем в 1.21. Так что прежняя версия (1.21) окончательно уходит на свалку истории, а новая занимает её место.
От багов плавно переходим к небольшим изменениям. Их тоже немного – они в основном касаются интерфейса. В частности, я вернул старый вариант окошка «Сохранить как» (в слегка доработанном виде), но фанаты нового стиля могут выбрать и его (подробности – в history.txt). Затем я вернул старый вариант вращения, которое теперь осуществляется горизонтальным движением мыши (если, конечно, отключён автовыбор рабочей плоскости).
А вот теперь – внимание: иерархия WoW-моделей отныне будет храниться не в отдельных MDH-файлах, которые всё время теряются, а в самих MDL/MDX. Ради этого мне пришлось внести некоторые изменения в формат: к MDL иерархия дописывается отдельной секцией (которую хорошо видно в Блокноте), а в MDX внедряется дополнительный тег. Warcraft отлично переваривает такие «модифицированные» модели, но все другие редакторы и конвертеры на них глючат. Чтобы обрезать всю доп. инфу, переведя модель в стандарт (как правило, уже после окончания работы с окном иерархий), воспользуйтесь командой Оптимизация->Канонизация (или нажмите «горячую» клавишу K). Думаю, объяснил всё достаточно понятно. А если вы ещё и FAQ+History почитаете, то, я думаю, никаких вопросов и проблем с новой фичей не будет. Да и не каждый же работает с WoW-моделями!
Так, с этим разобрались. Последнее нововведение в интерфейс – возможность вращать сцену (т.е. изменять MdlVis-камеру, «взгляд» на модель) без использования кнопки «Поворот» - т.е. прямо в режиме выделения. Сделано это как в Max’е – через Alt+LMB (т.е. левая кнопка мыши+Alt). Может, кому-нибудь такая фича и пригодится, остальные могут о ней попросту забыть ;).
.
Крупных дополнений всего два: это модификаторы нормалей (пригодятся лишь опытным моделистам – подробности в history.txt) и оптимизатор.
Вот об оптимизаторе мне хотелось бы рассказать подробнее. Убедительная просьба – не проходите мимо! Я потратил немало усилий на создание этого модуля, и надеюсь, что он неплохо себя зарекомендует. Оптимизатор предназначен для уменьшения размера (или «веса» - кому как больше нравится) моделей. Я испытывал его на скачанных с XGM’а моделях – и наблюдал значительное (иногда – даже в 2 раза!) уменьшение размера файлов. Т.е. этот инструмент определённо стоит использовать (только осторожно – в его коде могут быть баги, т.к. он ещё «свежий»).
Вызвать оптимизатор очень просто – с помощью команды меню
Оптимизация->Оптимизатор. Сам модуль очень прост в использовании – думаю, разберётесь ;). Возможно, у вас возник вопрос: а за счёт чего же этот самый оптимизатор уменьшает вес моделей? Ну, тут есть несколько методов. Начнём с классических:
  • Прежде всего, можно удалить дополнительную информацию (ту, что помещает в модель сам MdlVis). Впрочем, большого выигрыша этот метод не даст.
  • Размер моделей WoW можно уменьшить удалением повторяющихся поверхностей. Этот вид оптимизации вам уже давно известен (тоже баян, одним словом).
  • А вот тут уже начинается кое-что интересненькое: после удаления треугольников в поверхностях иногда остаются свободные вершины – т.е. такие, которые не входят ни в один треугольник. В игре такие вершины не отображаются и, стало быть, могут быть безболезненно удалены. При этом размер модели несколько уменьшится. Добавлю лишь, что в качественно сделанных моделях таких вершин нет. А вот в тех поделках, которые лежат на wc3sear.ch, наблюдаются целые россыпи свободных вершин.
  • Едем дальше. Иногда в моделях попадаются кости, к которым вообще ничего не крепится - ни вершин, ни аттачей, ни источников, ни чего-либо ещё. Такие кости появляются при удалении части геометрии - особенно характерна эта проблема для моделей персонажей (Characters) WoW. Бывает, что в модели присутствуют целые цепочки свободных костей - т.е. кости крепятся друг к другу, образуя цепочку, но ни к одной из них ничего не прикреплено. Этот тип оптимизации удаляет такие "паразитные" кости вместе со всеми их контроллерами (т.е. с их КК). В некоторых моделях WoW при такой оптимизации кости удаляются целыми десятками, и размер модели падает очень сильно. На анимации это НИКАК не отражается, но модель становится гораздо меньше. Для "обычных" моделей выигрыш невелик - максимум несколько десятков байт.
  • Ещё одна распространённая проблема – «ничейные» КК. Крутые (в кавычках) модельщики любят изощряться над анимационной линейкой, тасуя КК и анимации. После этого обычно остаётся превеликое множество КК, которые не принадлежат ни одной анимации и, соответственно, только зря занимают место (модели из соответствующего XGM-раздела тоже этим грешат). Если все эти КК удалить, вес модели тоже сильно уменьшится.
Заинтересовались? А ведь самое интересное только начинается. Далее идут два сверхмощных метода оптимизации, которые базируются на знании приёмов «чёрной» магии и шаманских ритуалах ;). Для ничего не подозревающей модели такая оптимизация сравнима с наездом асфальтового катка. По умолчанию эти два приёма «выключены», но вы можете их включить – думаю, оно того стоит.
  • Линеаризация анимации. Не пугайтесь страшного названия. Этот приём основан на том, что линейные контроллеры анимации «весят» почти в три раза меньше сплайновых. И если все сплайновые контроллеры модели конвертировать в линейные, то она очень сильно похудеет. Не даром, разумеется, а за счёт небольшого ухудшения качества анимации (зачастую разница очень невелика – на глаз это ухудшение незаметно или почти незаметно). Насколько сильно уменьшается размер модели? Ну, это зависит от количества этих самых сплайновых контроллеров в модели и от того, насколько хорошо они линеаризуются. Модели WoW, к примеру, вообще не содержат сплайновых контроллеров (а жаль…), так что на них вы не выиграете ни байта. А вот большинство моделей из War’овских MPQ содержат много сплайновых контроллеров. Соответственно, все поделки на их основе (в т.ч. примерно 90% всех моделей wc3sear.ch) при линеаризации очень сильно теряют в весе ;). Вот пример: обычная модель Дриады (Dryad.mdx) весит 178Кб, а после линеаризации – всего 97Кб!. Согласитесь, вполне ощутимый выигрыш. Некоторые модели могут «похудеть» более чем в два раза! В общем, тут уж как повезёт.
  • Увеличение сжимаемости. За эту идею – огромное спасибо Guess’у, который подробно описал этот алгоритм на форуме wc3c.
    Думаю, ни для кого не секрет, что War’овские карты – это тоже MPQ-архивы. Да и на сайт модели обычно выкладывают не в «натуральном» виде, а в архиве. Соответственно, чем сильнее архиватор сожмёт модель (т.е. чем больше уменьшится её размер при сжатии), тем лучше. Так вот, оказывается, сжимаемость MDX-файлов можно существенно повысить – за счёт некоторых хитрых манипуляций с «внутренностями» формата. Модель при этом остаётся стандартной (т.е. нормально и без глюков «кушается» как самой игрой, так и всякими редакторами/конвертерами), её качество совершенно не страдает, её размер не уменьшается ни на байт, но сжимаемость любыми архиваторами – в архивы zip, rar, mpq и пр. - сильно увеличивается! Метод эффективен для любых достаточно крупных моделей (которые содержат геометрию+КК и занимают свыше 100Кб). Например, модель NightElfCampaign3D.mdx сжалась в zip-архив размером 882Кб, а после оптимизации – в 563Кб-архив! Как видите, сжимаемость и впрямь сильно растёт. Не забывайте только, что к MDL-моделям такая оптимизация, естественно, неприменима – так что не забудьте после увеличения сжимаемости сохранить модель как MDX, иначе весь эффект потеряется.
А теперь представьте себе модель, обработанную всеми этими методами сразу! (Не забудьте глянуть history – там есть некоторые замечания о применимости вышеописанных методов). Кстати, недавно я нашёл ещё один эффективный способ оптимизации, который также позволит существенно уменьшать размеры моделей, но пока ещё не успел его реализовать. Убедительная просьба протестировать оптимизатор, поделиться своими впечатлениями (насколько он эффективен на ваших моделях) и, если идея себя зарекомендует, число методов оптимизации будет расти.
.
Ну, а вот и ссылка на сам MdlVis (который за счёт доп. модуля преодолел 400Кб-барьер):
www.public.kubsu.ru/polushin/mdlvis.zip
(размер файла – 412Кб).
Старый 02.12.2006, 23:14
Iron
Листовой
offline
Опыт: 24,427
Активность:
АААА Я ПЕРФЫЙ !!!
Алексей, усё бягу тестить.

Iron добавил:
Алексейбоковые поверхности костей лучше затениять не так как сейчас 2-е смажые затенены, а 2-е смежные нет. Лучше 2-е противоположные затенены, а две другие - нет. Пусть нереалистично, зато удобно.
Старый 02.12.2006, 23:53
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
ААА, я второй! =)

Алексей, радость прет ото всюду...

Цитата:
Иногда в моделях попадаются кости, к которым вообще ничего не крепится - ни вершин, ни аттачей, ни источников, ни чего-либо ещё. Такие кости появляются при удалении части геометрии - особенно характерна эта проблема для моделей персонажей (Characters) WoW.

наканецта. За это особенное спасибо. Надеюсь, цикл несколько раз проходит?

на счет вноса MDH внутрь модели и не знаю - раньше можно было присвоить модельке без MDH таковой файл от предыдущей версии модели, и это было удобно. Теперь тока если из мдл копировать участок, а это гиморнее. Ну посмотрим, посмотрим...
Старый 03.12.2006, 00:08
Iron
Листовой
offline
Опыт: 24,427
Активность:
Wolverine, теперь нет смысла присваивать, ибо mdh не теряются, т.е. даже при копировании (изменении имени, перемещении) модели, mdh файл всегда остается в ней.

Кста, Алексей, чуть не забыл, огромное СПАСИБО за нормали.
Старый 03.12.2006, 11:02
Кет

offline
Опыт: 111,109
Активность:
Не знаю, исправлен ли уже тот баг, при котором мдлвис считает поврежденной модель, в которой есть вершины, не присоединённые ни к одной кости? это очень мешает, например при переносе вершин от модели к модели через обычную вставку...
Старый 03.12.2006, 16:23
NETRAT

offline
Опыт: 83,712
Активность:
Ну вот, все просят анимации и эмиттеры, а Алексей делает оптимизаторы =?

NETRAT добавил:
Следует отметить что для мелких моделей(которые, как правило, и так оптимальные) оптимизация не имеет эффекта
Старый 03.12.2006, 16:58
Iron
Листовой
offline
Опыт: 24,427
Активность:
Цитата:
Ну вот, все просят анимации и эмиттеры, а Алексей делает оптимизаторы =?

А в чем притензия? Эммитеры отображаются (по крайней мере их положение). Анимации редактируются.
Старый 03.12.2006, 17:03
MPI3
Хм...
offline
Опыт: 24,597
Активность:
Алексей
У меня снова не сушествующии анимации,только уже на модели морлока(жёлтого,стандартного)!!!
Старый 03.12.2006, 17:04
Iron
Листовой
offline
Опыт: 24,427
Активность:
Цитата:
Следует отметить что для мелких моделей(которые, как правило, и так оптимальные) оптимизация не имеет эффекта

Ну это смотря как смотреть. Я видел модель шара, в которой было порядка 50 ненужных костей (ВНИМАНИЕ! с анимами). Так что против ламерски сделаных моделей очень даже помогает.
Старый 03.12.2006, 17:05
NETRAT

offline
Опыт: 83,712
Активность:
Iron гхм, да, крайности я не рассматриваю ...

Цитата:
Последнее нововведение в интерфейс – возможность вращать сцену (т.е. изменять MdlVis-камеру, «взгляд» на модель) без использования кнопки «Поворот» - т.е. прямо в режиме выделения
Это правильно, но текущий режим(кроме режима поворота) после такого поворота перестает корректно работать - его приходится заново включать

Цитата:
Прежде чем я перейду к официальной части, запомните, пожалуйста: то, что кнопка проигрывания анимаций не видна, когда выбрана «Вся линейка» - это не баг
Возможно, я что-то упустил из виду, но зачем ты ее убрал? так было достаточно удобно просматривать всю линейку.
И вот еще по поводу линейки - вроде бы раньше можно было клацнуть Play, затем клацнуть в поле выбора анимации и крутить колесико, просматривая анимации, при этом они все время проигрывались - это было удобно, теперь колесико можно повернуть только один раз =\ этот глюк вроде бы обусловлен тем что элемент combobox теряет selection после поворота колесика

На будующее - было бы круто, если бы в MDlVis можно было просматривать анимации подобно W3V - то есть без распаковки текстур из архива ... для этого, правда, придется увеличить вес программы либо на вес sfmpq либо на вес storm.lib. Но вообще, лично мне без разницы сколько она будет весить

Отредактировано NETRAT, 03.12.2006 в 17:23.
Старый 03.12.2006, 17:36
Iron
Листовой
offline
Опыт: 24,427
Активность:
Алексей, нашел недоработку. При повороте, усреднении нормалей, их вид не обновляется. Т.е. например поворачивать вообще неудобно (не видишь куда поворачиваешь).
Нормали отображают результат действий только после прехода в другой режим вида.

Усреднитель че-то лагает, т.е. нормали сводятся не в 1-у точку, а просто слегка поворачиваются (угол между ними становится менше, но далеко не 0, так что перпепад остается, + поворачиваются они криво, т.е. не стремятся в направлении друг друга, а вылетают куда-то вверх).

См. скрины до и после усреднения.

Iron добавил:
Баг, оптимизированая оптимизатором модель сохраняется только если нажать "Сохранить как". При обычном сохранении кнопак нажимается, но модель не сохраняется.
Миниатюры
Кликните на картинку для увеличения
Название:  1.png
Просмотров: 52
Размер:  11.5 Кбайт  Кликните на картинку для увеличения
Название:  2.png
Просмотров: 48
Размер:  11.6 Кбайт  
Старый 03.12.2006, 17:42
NETRAT

offline
Опыт: 83,712
Активность:
При проигрывании анимции, переключение видимости поверхностей паузит анимацию - это баг или фича? Лучше что бы это было багом ...
Да, и кнопочку "Показать все" я себе представлял немного по-другому. В моем понимании она должна иметь значение "Выделить все / Снять выделение" - то есть я представлял на ее месте кнопку инвертирования выделения поверхностей с полного, на пустое. Обычно, так делают, так более привычно

NETRAT добавил:
Хм, лол, поскольку ты отключил кнопку для "Всех анимаций", то это явно баг - при просмотре анимаций в режиме play, если выбрать "Все анимации", то кнопка Stop не исчезает и проигрывается вся линейка

NETRAT добавил:
И, кстати говоря, в этом режиме имеет смысл проигрывать только те кадры, в которых есть кк - то есть пусты промежутки вообще следует пропускать

NETRAT добавил:
Вообще у тебя фигня со всеми комбобоксами - колесико работает только один раз. То же самое и в костях и в движении

NETRAT добавил:
При изменении режима отображения(общий вид, поверхность) так же происходит пауза анимации - раньше этого не было, и это было лучше

NETRAT добавил:
Не знаю как у тебя, но у меня в режиме Fullscreen(1280*1024) чекбокс МКИ накладывается на надпись "Кадр"

NETRAT добавил:
Ну и, старый глюк, когда крутишь колесико мыши в комбобоксе цвета команды(который, опять же, работает только один раз), это работает и как зум для модели

NETRAT добавил:
Если вместо колесика клацать клавиши вверх-вниз, то получаем другой глюк - комбобокс опять же срабатывает только один раз + клавиша работает как tab, то есть выбирает следующий(предыдущий элемент) в tab-порядке элементов
Старый 03.12.2006, 18:20
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
NETRAT: Да, баги буду исправлять. Насчёт архивов: или я чего-то не понимаю, или, если MdlVis.exe лежит в одном каталоге с War'овскими MPQ, он находит (и загружает прямо оттуда!) все требуемые моделью текстуры.
Кнопку проигрывания для всей линейки введу - убрал её временно, пока не отладил "компоновку" на линейке. К концу недели выйдет багфикс 1.39c - там она уже будет функционировать.
Пауза при переключении видимости поверхностей - безусловно, баг.
"Показать все" - это именно "Показать все". А если ты кликнешь правой кнопкой мыши по списку поверхностей, то будут тебе и "Включить все", и "Выключить все", и даже "Инвертировать включённое" ;).
С комбобоксами - извечная проблема: на колёсико "прицеплен" масштаб рабочей области, а пользователи хотят ещё, чтобы оно (в зависимости от их мыслей!) то масштабировало, то прокручивало комбобоксы. А т.к. MdlVis не владеет телепатией, я стараюсь запретить работу с комбобоксами при помощи колёсика. Варианты типа "когда selection в combobox'е - крутить, иначе - масштабировать" не катят: уже пробовал, пользователи путаются и сильно возмущаются :(. Похоже, текущий вариант - один из лучших.
С паузой при переключении вида тоже разберусь.
И с Fullscreen. Дело в том, что у меня стоит 800x600 (не хочу глаза портить), а при тестировании MdlVis включаю 1024x768. Не могу же я тестировать редактор на всех возможных видеорежимах (учитывая, что их очень проблемно ставить, и на рабочем столе сносит иконки с их законных мест).
.
Iron: Да, это глюк - после усреднения я зачем-то "воткнул" код, складывающий усреднённую нормаль с исходной. Исправлю.
Баг с отображением нормалей тоже поправлю. А вот глюк с сохранением после оптимизации у меня не воспроизвёлся - т.е. всё нормально сохраняется.
Старый 03.12.2006, 19:09
NETRAT

offline
Опыт: 83,712
Активность:
Алексей ох ты, надо же, значит упустил. Проблема в том что MdlVis лежит у меня в отдельной папке(ибо в папке вара у меня и так много чего лежит - просто неудобно и не охота свалку устраивать в папке), и пути к вару в реестре не прописаны - ты не мог бы решить такую проблему в следующих версиях? Ну файл конфига какой-нить или при первом запуске сказать пользователю что игровой архив не найден - искать? и записать путь в реестр самой программки
А про выделение, точно, забыл, ты говорил уже про это, сорри, просто непривычно немного
Вроде бы тут не надо читать мыслей - если выделен (CurrentSelection / IsActive) комбобокс, то колесико должно работать только для него - без всяких переключений и табов. Как проверить выделенность - либо просто последний щелчек мыши, либо куда наведен курсор мыши - то и считать выделенным элементом. Вроде бы правило достаточно простое. Нет, не надо ничего запрещать, ни в коем случае - это же жутко неудобно - как просматривать анимации - каждый раз кликать и выбирать анимацию - это бред, да и потом на зум ты можешь перекинуть какой-нить Alt + колесико или еще что-нить. Кстати, если ты будешь определять выбранный элемент положением мыши, то пользователи так путаться не будут - ибо там где мышь, то и делаем - это интуитивно понятно.
Верю, конечно не можешь, поэтому и сообщил свое разрешение - какой тут выход - даже представить себе не могу. Напряга с иконками лично я не испытываю, так как у меня их очень мало

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

NETRAT добавил:
Да, в W3V и, вроде бы, в W3ME анимации можно просматривать выбрав соответствующий бокс и прокручивая колесико мыши - и это удобно. А для зума там нужно клацнуть в области отображения модели и после этого крутить колесо. Ты можешь сделать даже без щелчка мыши - просто при наведении(без щелчка), крутим колесико, и это уже зум
Миниатюры
Кликните на картинку для увеличения
Название:  Overlay1280x1024.jpg
Просмотров: 58
Размер:  4.4 Кбайт  
Старый 03.12.2006, 20:05
tysch_tysch
Работаем
offline
Опыт: отключен
NETRAT и во вьювере и в модельэдиторе список анимаций в отдельном окне..
единственный вариант сделать масштабирование с помощью клавыиш + и -,но тут тоже свои заморочки
Старый 03.12.2006, 20:33
GadenbIsh
Просто Гад
offline
Опыт: 70,930
Активность:
Алексей
Версия гуд...
Глюк со швами действительно исчез.

Но вот новый глюк. Честно сказать, я не понял, что я такого сделал, но мдлвис вылетел. Вот дамп.
Прикрепленные файлы
Тип файла: rar mdlvisCrash1.rar (5.5 Кбайт, 64 просмотров )
Старый 03.12.2006, 20:43
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
Цитата:
Алексей
У меня снова не сушествующии анимации,только уже на модели морлока(жёлтого,стандартного)!!!

а они случайно не "7500" и "8400" называются?
Цитата:
Варианты типа "когда selection в combobox'е - крутить, иначе - масштабировать" не катят: уже пробовал, пользователи путаются и сильно возмущаются :(. Похоже, текущий вариант - один из лучших.

нифига. чё там путаться? Давайте опрос создадим, кто будет путаться, а кто нет. Большинство не будет...
Цитата:
каждый раз кликать и выбирать анимацию - это бред

+1
Цитата:
Как проверить выделенность - либо просто последний щелчек мыши, либо куда наведен курсор мыши - то и считать выделенным элементом

имхо лучше шелчок последний
Цитата:
Не знаю как у тебя, но у меня в режиме Fullscreen(1280*1024) чекбокс МКИ накладывается на надпись "Кадр"

ога

единственное, что осталось неудобным - все то же вращение костей. У меня, например, она при движении мыши влево поворачивается охотнее, хотя по идее при двух равных по длине противоположных движениях мыши кость должна вернуться в исходное положение, однако это не так. Да и чувствительность можно было бы увеличить.
Старый 03.12.2006, 22:07
NETRAT

offline
Опыт: 83,712
Активность:
ZlaYa1000 нудапофиг - главное что там это есть, значит это возможно, это не единственный вариант, но он точно неудобный =\
Цитата:
имхо лучше шелчок последний
да, имхо тоже

NETRAT добавил:
Цитата:
нифига. чё там путаться? Давайте опрос создадим, кто будет путаться, а кто нет. Большинство не будет...
Агри, все утилиты пишутся под пользователей с ровными руками, а для тех у кого кривые - пишутся мануалы, помогающие руки выровнять
Старый 03.12.2006, 22:40
Wulfrein
где я?
offline
Опыт: 88,142
Активность:
Цитата:
все утилиты пишутся под пользователей с ровными руками, а для тех у кого кривые - пишутся мануалы, помогающие руки выровнять

точнах
Старый 03.12.2006, 22:48
tysch_tysch
Работаем
offline
Опыт: отключен
NETRAT ты меня вообще читаешь или наискосок? два разных окна значит, что одно активное, а второе нет. можно конечно сделать алексею что-то схожее, но насколько это будет удобно - большой вопрос.
Старый 03.12.2006, 23:28

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 00:02.