-
Постов
71 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Новости
Статьи
Мемы
Видео
Форумы
Блоги
Загрузки
Магазин
Галерея
Весь контент @perture
-
Создание анимированной модели — Часть 2
@perture прокомментировал @perture статья в Модостроение Skyrim
Скинул на ЯД что нашел. И видео поменял. Странно, что ни кого не смутил левый ролик. -
Создание нового мира — работа с картой высот, лодами и генерация всего необходимого Для начала немного теории Единицы измерения 1 GU (Game Unit) = 0,5625 дюйма = 1,42875 см. 1 THU (TES Height Unit) = 8 GU = 4,5 дюйма = 11,43 см. – шаг изменения высоты рельефа. 1 HP (Height Point) =128 х 128 GU = 182,88 х 182,88 см. - базовая величина, фрагмент поверхности ландшафта приходящийся на один пиксел карты высот. 1 Cell (Ячейка игрового мира) = 32 х 32 HP. Максимальный размер играбельного мира составляет 128 х 128 Cell, 4096 х 4096 HP, или приблизительно 7 491 х 7 491 метр. Кое-что о карте высот Карта высот, из которой компилируется esp файл с ландшафтом мира, представляет собой изображение в цветовом режиме «градации серого» с глубиной канала 8 или 16 бит, что составляет 256 и 65536 оттенков серого соответственно. Каждый шаг градиента соответствует 1 THU, таким образом из 8-ми битной карты высот можно сделать ландшафт с глубиной от -128 до +127 THU или 29,15 метров. Пригодно только для плоских ландшафтов. Можно, конечно, применить масштабирование при компиляции, но при этом пострадает детализация поверхности. 16-ти битная карта формирует рельеф с глубиной от -32768 до +32767 THU, что соответствует 7 491 метру. Один пиксел карты высот соответствует одному HP, таким образом максимальное разрешение карты должно составлять 4096 х 4096 пикселов. Существует миф о том, что Skyrim считывает изображения с оттенками в интервале 0-76%. Это не так. Я скомпилировал градиентную карту с оттенками от черного до белого цветов, и получил ландшафт соответствующей высоты – от -3 745 м. до +3 745 м., без каких либо ограничений. Использование же таких глубин и высот на практике маловероятно. К примеру мир Tamriel содержит 3808 x 3008 HP, а разница по высоте между самой высокой и самой низкой точками ландшафта составляет 1063 метра. В 3D это выглядит так Jднако существует некоторое ограничение на разницу высот соседних HP, которая должна лежать в диапазоне от -128 до +127 THU. Если это правило будет нарушено, то соответствующие пикселы карты высот будут исключены при компиляции и на ландшафте получим неприятные артефакты в виде отверстий или вертикальных стен. О наличии подобных ошибок мы узнаем по итогам компиляции, отчетная информация будет содержать следующие строки Some gradient overflows/underflows have been caught and blocked: Total Overflows: 46785 Total Underflows: -3671 Цифры, естественно, будут иными. В этом случае надо доработать карту высот, яркость любых двух соседних пикселов которой не должна отличаться более чем на -128 или +127 шагов градации серого. Это применимо в основном к 16-ти битной карте и лечится, к примеру, снижением яркости изображения (как следствие снижение глубины рельефа) либо применением каких-нибудь сглаживающих фильтров в графическом редакторе (что повлечет сглаживание детализации) или в Geo Control, что даст более интересный результат. Переходим к практике Создаем карту высот Самое сложное – это создание карты высот, которая дала бы нам в итоге желаемый рельеф и без ошибок. Можно рисовать её в каком-нибудь графическом редакторе, можно воспользоваться специализированным софтом, предназначенным для генерации ландшафтов, а можно совместить эти два варианта – наброски сделать в редакторе, а необходимую детализацию добавить с спец-софте. Для данного туториала я воспользовался программой Geo Control 2. После запуска программы будет активна вкладка Generation и в настройках General устанавливаем Terrain Size – 4096 (разрешение карты высот), Width – 7491 (ширина ландшафта), Height – 600 (желаемая максимальная высота рельефа), Amount of details – 16 (детализация генерируемых искривлений поверхности), переходим в настройки Filter и добавляем парочку фильтров с настройками как на скриншоте: Нажимаем кнопку Generate и ждем завершения генерации, смотрим в режиме 3D, устраивает ли нас результат. Если не очень – то генерируем заново, до достижения приемлемого рисунка, каждый раз рельеф будет разный. При получении желаемого рисунка можно отметить чекбокс Keep Seed – это предотвратит изменение рельефа при последующей перегенерации, которая может понадобиться при настройках или изменениях фильтров. У меня получилось вот так: Если освоить программу и изучить настройки фильтров, то можно делать весьма приличные ландшафты. К тому же (если например нужно определенное расположение гор) можно импортировать изображение с набросками рельефа, и доработать до приемлемого качества. Закончив генерацию ландшафта переходим на вкладку Project, и устанавливаем параметры Projectsize 4096 и Max Altitude 600 (высота рельефа, как в настройках Generation, но можно и другую выставить) и 0 в полях Point at и Cut соответственно. После чего нажимаем Rebuild и ландшафт реконструируется. При этом он станет почти плоским, это нормально. Проект можно сохранить и экспортировать результат в формате RAW 16 bit или TIFF 16 bit. Полученную карту высот открываем в Photoshop и отражаем по вертикали, так как TESAnnwyn при обработке RAW формата отражает изображение, таким образом восстанавливая исходное положение, и применяем размытие по Гауссу с радиусом 1 пиксел, для сглаживания угловатостей в рельефе подобных этим Сохраняем результат в формате RAW. На всякий случай настройки открытия и сохранения RAW формата в Photoshop Компилируем .esp TESAnnwyn – это консольная утилита, которая на основе карты высот компилирует esp файл с ландшафтом. Для своего ландшафта я использовал следующие параметры TESAnnwyn.exe -i Skyrim -p 1 -b 16 -d 4096x4096 -x -64 -y -64 -h -11000 -w TestWorld land.raw Подробности о программе и параметрах её запуска можно изучить в прилагаемой к ней документации. Остановлюсь лишь на параметре –h, который отвечает за уровень самой нижней точки ландшафта относительно уровня воды, который в свою очередь задаётся в параметрах Worldspace в esp файле создаваемого мира, по умолчанию равен нулю, и я его не менял, за отсутствием видимого смысла. Эта цифра измеряется в GU и зависит от особенностей рельефа и необходимого уровня воды. Компиляция завершилась успешно Ошибок не возникло, разница высот около 600 метров, что и ожидалось. Копируем полученный esp в папку data в директории игры (можно переименовать) и переходим к следующему шагу. Создание лодов Для создания лодов воспользуемся программой Oscape. Лоды можно создать и с помощью Creation Kit, но это долго, чревато вылетами конструктора и отсутствием контроля над процессом. После запуска программы первым делом в меню Game выбираем режим работы Skyrim. Во вкладке Active Plugins отмечаем наш esp файл с ландшафтом, если вы его не переименовали, то он будет называться tesannwyn.esp. По слухам Oscape работает только с esm файлами, но у меня он и с esp прекрасно справился. Далее нажимаем кнопку Fill и в выпадающем слева списке выбираем наш мир, название которого задавали в параметре –w при создании esp. Отмечаем чекбоксы feature-map и surface-map. Выбираем место и имя файла вывода, и жмём Extract. После извлечения необходимых файлов программа переключится на вкладку Preview, где мы увидим нашу карту высот, и области заполненные водой, обозначенные синим цветом. Если уровень воды отличается от ожидаемого, то нужно перекомпилировать esp с корректировкой параметра –h. Затем повторить извлечение карты высот в Oscape. Oscape имеет одну неприятную особенность – ячейка с координатами 0, 0 не обрабатывается при извлечении карты высот, что выражается черным квадратом на карте размером 31 х 32 пиксела и соответствующим провалом в лодах. Лечится вставкой в извлеченную карту аналогичной области из исходной карты, с корректировкой яркости, так как карты отличаются. Результат до и после. Также после создания лодов надо будет исправить четыре текстуры лежащие по пути Data\Textures\terrain\TestWorld testworld.4.0.0.dds, testworld.8.0.0.dds, testworld.16.0.0.dds и testworld.32.0.0.dds (testworld – название мира, у вас будет своим), закрасив чёрный квадрат основным цветом. Результат до и после. Параметры сохранения текстур UPD. Проблема с ячейкой 0, 0 обусловлена отсутствием регионов в esp файле. Добавление хотя бы одного региона с помощью Creation Kit, даже без назначения на какие либо ячейки, перед запуском Oscape, устраняет проблему пустой ячейки с координатами 0, 0 в лодах. После исправления карты высот нажимаем кнопку Accept в программе Oscape и попадаем во вкладку Generator. Выставляем параметр Target of max. Resolution отвечающий за полигональность генерируемых мешей. Слишком высокое значение приводит к ошибке при генерации лодов, поскольку количество полигонов в мешах не может превышать 64 К на один меш. Для моей карты подошло значение 800 000. Отмечаем чекбоксы как на скриншоте и жмём Generate. После завершения генерации программа переключит нас на вкладку Installer, где проверяем правильность директории инсталляции (папка data в директории игры), отмечаем все чекбоксы и жмём Install. После инсталляции не забываем исправить текстуры центральной ячейки. Теперь можно подключить наш esp в лаунчере игры и переместиться в созданный мир с помощью консольной команды cow testworld 0 0. Testworld – название вашего мира, координаты ячейки могут быть другими, в диапазоне размеров вашего мира. В качестве дополнения к туториалу хочу показать ещё один вариант создания карты высот. На этот раз мы не будем генерировать рельеф случайно, а попробуем создать его по своим параметрам, на основе заготовки. Заготовочку для примера я сделал разрешением 2048 х 2048 пикселов, и довольно примитивную. Можно сделать её с большим количеством слоёв, и более разнообразным рельефом. В моём случае это будет остров с большой горой. Нарисована она из восьми слоев разного оттенка серого, от 30% до 95%. Первые три слоя (самые темные) имеют между собой меньшую разницу в оттенке, нежели последние, этим обеспечивается необходимый угол наклона поверхности. После сведения слоев применяем размытие по Гауссу, в моем случае с радиусом 20 пикселов. Импортируем в Geo Control и начинаем экспериментировать с фильтрами. Здесь ни каких конкретных советов дать не могу, сам только учусь. После часа экспериментов у меня получилась вот такая картина Дальше всё по туториалу, компилируем esp, если возникают ошибки возвращаемся в Geo Control, меняем настройки фильтров, и пробуем ещё раз. Если ошибок не много, то можно уменьшить высоту рельефа в параметре Max Altitude на вкладке Project. У меня рельеф генерировался с высотой 1500 м., а Max Altitude я установил в 1000 м. Высота после компиляции получилась 964 м. над водой, и 29 м. под водой. Дополнение Выше было рассмотрено создание ЛОДов земли для нашего мира. Но ЛОДы - это не только земля на расстоянии, но также и отдаленные объекты и деревья. Стоит отметить, что на сегодняшний день существует много различных утилит по генерации ЛОДов для объектов и деревьев, но мы же их тут рассматривать не будем. Предполагается, что вы будете использовать для этого редактор Creation Kit. И сейчас мы поговорим об одном очень неприятном подводном камне, с которым вы наверняка столкнетесь в процессе работы. Дело в том, что алгоритм работы Oscape и Creation Kit (далее СК) - разный, и частенько бывает такое, что ЛОДы объектов/деревьев, созданные с помощью СК, не будут работать с ЛОДами земли, сгенерированными через Oscape. Как результат вы либо будете видеть только ЛОДы деревьев/объектов и отсутствие ЛОДов земли, либо наоборот, либо же чересполосицу земли (полоса светлая, полоса черная). Мы же сейчас обсудим как нам "сшить" эти ЛОДы так, чтобы они вместе корректно работали. Ну что ж... немного о том, в чем технически заключается данный конфликт... Итак, Oscape-у все равно, какие ячейки у вас задействованы, он спокойно сгенерирует ЛОДы земли для всего мира. а СК же создает ЛОДы только для активных ячеек, т.е. для тех, которые задействованы (видоизменены, отредактированы) у вас в плагине. Таким образом, какая-нибудь ячейка "Пустоши -30 -30" на отшибе вашего мира вряд ли подвергалась редактированию и, следовательно, не будет затронута при генерации ЛОДов через СК. Поэтому нам нужно сделать ее активной вручную. Суть конфликта вроде бы объяснил, теперь к решению. Сделать ячейку "активной", можно поредактировав там ландшафт или поместив в нее какой-то объект. Но не спешите, это несколько не то, что я предлагаю. Значит, мы открываем в СК вкладку "World", идем в раздел "Regions" и создаем новый регион для своего мира. Причем создаем не абы какой, а строго определенный. Квадрат с координатами в крайних ячейках нашего мира. Например так: левый нижний угол (-32; -32) левый верхний угол (-32; -31) правый верхний угол (31; 31) правый нижний угол (31; -32) И отмечаем регион как "Border region" - т.е. граничный. Это не обязательно, но, сами понимаете, за ним все равно ничего нет, а подобная галка не позволит игроку зайти за край мира. Все ячейки, которые затрагивает регион, стали "активными". Теперь их видит наш esp. Все, такой вот нехитрой операцией мы решили упомянутую проблему несостыковки ЛОДов. Теперь можно спокойно генерировать ЛОДы объектов/деревьев в СК и не бояться того, что с ЛОДами от Oscape-па что-то случится. Да, немаловажное замечание! Сохраните свой плагин и перезапустите СК, в момент генерации ЛОДов ничего не должно быть подгружено в Render Window, иначе беда - поломается ландшафт, и вы запорете себе плагин. Поэтому не забудьте перед генерацией сделать бэкап, ну и, желательно, сконвертировать свой esp в esm и генерировать ЛОДы уже из esm. P.S. Созданием региона, мы устранили и еще одну проблему, упомянутую ранее в туториале. Проблему черной ячейки в координатах (0,0). Практика показывает, что если для мира создан хоть один регион, то при генерации ЛОДов земли в Oscape, черной ячейки не возникает. На этом все. [Дополнено werr92]
-
Изложенный в видео-уроках процесс является одним из возможных вариантов создания анимированных моделей для игры. При составлении туториала были использованы утилиты модмейкера anton Animation Tools N4 - Body Animator Создатель файлов Поведений (Behavior) А так же модель шлема, предоставленная модмейкером Myprism, которую с его позволения можно скачать вместе со всеми рабочими материалами и созданным в результате модом. Так же был использован мод Animation Catcher для отслеживания анимационных эвентов непосредственно во время игрового процесса. Данный урок освещает лишь общие этапы создания анимированных моделей, а так же использования необходимых для этого программ. При создании той или иной модели могут возникнуть различные нюансы, не освещенные в уроке, пишите, будем разбираться и дополнять материал.
-
Туториал по программе Havok Animation Tool. Havok Animation Tool - это программа от разработчиков физического движка Havok для создания behavior файлов, так называемых файлов поведения, которые управляют логикой работы анимаций моделей в игре. Именно с помощью этой программы созданы все файлы поведения для игры Skyrim. Как для существ, так и для неодушевленных предметов, оружия, различных механизмов и прочего. Данный туториал знакомит с базовыми принципами работы в данной программе, с освоением которой откроются новые горизонты в моделировании анимированных объектов для игрового мира. В общем, как говорится, лучше один раз увидеть. Как и положено, в процесс вкралась ошибочка, и в игре анимации сразу не запустились. :) Ошибка была в пути. В файле helmdetailchar для скелета был прописан путь "Character Assets\" с пробелом, а в названии папки пробела не было. Переименование папки запустило процесс. Скачать файлы проекта и готовой модели можно здесь. Ввиду сложности пост-обработки файлов проекта, экспортируемых программой Havok Animation Tool, была написана утилита для автоматизации процесса. О том, как ей воспользоваться рассказывается в нижеследующем ролике. BHVCompile - та самая утилита. Пароль на архив havok, без него ЯД ругается как на вирус. Skyrim Behavior Organizer - программа для реорганизации behavior файла в формате XML в более удобную для изучения структуру.
-
При экспорте (а точнее при сжатии) меша в коллизию типа compressedMeshShape происходят необратимые изменения. То есть, восстановить исходный меш не возможно. В зависимости от исходных характеристик меша и опций сжатия восстановленный меш будет иметь искажения разной степени, в Вашем случае дыры. Ни чего с этим не сделаешь, компрессия - билет в один конец. По нормальному - выкинуть импортированную коллизию, и создать собственную. Если лень - то залатать дыры на импортированной.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
Вряд ли кто то подскажет. Если коллизия импортируется с ошибками - то это недоработки плагина, во время разработки подобная модель вероятно не проверялась.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
С 2015 переделали отображение задних сторон полигонов. Если надо, чтобы их не было видно, то можно в свойствах объекта указать. Если объектов много - то в свойствах слоя, но в свойствах объектов опять же, надо включить зависимость от слоя.
- 783 ответа
-
- 2
-
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
Режется по материалам. Каждый материал - отдельный шейп. Ни куда от этого не денешься.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
В режиме выделения элементов надо включить отображение нормалей, и выделять элементы. У которых нормали наружу направлены - скрывать, у которых внутрь - удалять. Обработав все элементы - показать скрытые. После такой обработки во первых полигонов в 2 раза меньше будет, а во вторых с нормалями проблема решится.
- 783 ответа
-
- 1
-
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
Меш двухслойный, не оптимизированный. Модификаторами не исправить. Нужно в ручном режиме проблемные участки исправлять.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
По первому скрину с нормалями проблемы. С чем конкретно может быть связано - только увидев файлы можно сказать.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
В архиве не все текстуры, использованные в сцене. rune - нет таких файлов. К тому же, они указаны с расширением jpg
-
-
Настройки экспорта не правильные. Заскринь окно экспорта.
-
Не совсем понятно, о чем речь. Nif-файл в NifSkope не импортируется, а как бы открывается в нем. В случае необходимости можно внести изменения, и сохранить. Но не экспортировать. Что значит пропадает текстура? Она не отображается во вьюпорте NifSkope? Или пропадает в блоке BSShaderTextureSet? Или может быть файл с текстурой исчезает с HDD SSD? Причин тому может быть несколько. От пропавшего файла, до некорректных настроек нифа. Помочь тут сможет либо "Ванга", либо человек который выпросит у обратившегося проблемные файлы для анализа, поскольку в подобных случаях люди практически ни когда не предоставляют файлы сами. Видимо рассчитывают на первый вариант.
-
Я что то не припоминаю, чтобы в скае Packed Srips Shape юзался. С такими моделями как дома обычно используется CompressedMeshShape. С твоей версией плагина геморойно такую коллизию делать, нужны дополнительные утилиты и мануалы. Я когда то добавлял поддержку импорта и экспорта таких коллизий в макс, отзывов не было, но вроде нормально работает. Посмотри здесь.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
А почему этот тип? Для какой игры? Какие версии макса и плагина?
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
В скае глаза заскинены на кость головы, а движуха заложена в тришниках. Как тебе сделать - не знаю. Возможно, в фолле какие то особенности есть, но мне о них не известно.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
Ни чего по глазам посоветовать не могу. У меня нет ни фолла, ни опыта по его моделям.
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )
-
А кто такие америкосы? Они что, самые знающие? Достаточно заглянуть в программный код плагина, чтобы понять природу проблемы. При условии понимания кода. https://1drv.ms/u/s!AojdGZEOk4lqg0pNuNyWujTKitCr
- 783 ответа
-
- скрипт
- ribbon - modeling
- (и ещё 2 )