Создание меша. Продвинутый Создание объекта с нуля. Создание лицевых мешей

Но несмотря на это, Unity поддерживает работу со многими пакетами трёхмерной графики. Unity также поддерживает работу с мешами, которые состоят как из трёхсторонних, так и из четырёхсторонних полигонов. Неоднородные рациональные безье-сплайны (Nurbs), неоднородные рационально сглаживаемые сетки (Nurms) а также высокополигональные поверхности должны быть конвертированы в полигоны.

3D форматы

Импортирование мешей в Unity может быть выполнено с помощью двух основных типов файлов:

  1. Экспортированные 3D форматы файлов , такие как.FBX или.OBJ
  2. Собственные файлы 3D приложений , например такие как.Max и.Blend файлы из 3D Studio Max и Blender.

Любой из этих типов позволит вам добавлять свои меши в Unity, но есть соображения относительно того типа, который вы выберите:

Экспортированные 3D файлы

Преимущества:

  • Экспортируйте только необходимые данные
  • Проверяемые данные (перед импортированием в Unity, переимпортируйте в 3D пакет)
  • Как правило файлы меньшего размера
  • Поддерживает модульный подход - к примеру разными компонентами для интерактивности и типов коллизий
  • Поддерживает другие 3D пакеты, чьи форматы не поддерживаются у нас напрямую

Недостатки:

  • Может замедлять процесс прототипирования и итераций
  • Легче потерять след между исходной (рабочий файл) и игровой версией данных (к примеру экспортированный FBX файл)

Собственные файлы 3D приложений

Unity также может импортировать, путём конвертации , файлы: Max , Maya , Blender , Cinema4D , Modo , Lightwave и Cheetah3D , например, .MAX , .MB , .MA и др.

Преимущества:

  • Быстрый процесс итерации (для повторного импортирования в Unity сохраните исходный файл)
  • Изначально просто

Недостатки:

  • На машинах, задействованных в работе над Unity проектом, должны быть установлены лицензионные копии данного программного обеспечения
  • Файлы, содержащие ненужные данные могут стать неоправданно большими
  • Большие файлы могут замедлить процесс автосохранения
  • Меньше проверяется, поэтому труднее устранить ошибки

Здесь находится перечень поддерживаемых пакетов трёхмерной графики, другие же чаще всего экспортируют вышеупомянутый тип файла.

Текстуры

При импорте меша, Unity попытается используя свой метод поиска, автоматически найти текстуры, используемые им. Сперва импортёр начнёт искать подпапку Textures, внутри папки с мешем или в папках уровнем выше. Если это не поможет, тогда по всей структуре проекта будет выполнен глобальный поиск всех имеющихся текстур. Конечно данный метод поиска значительно медленнее обычного и его главным недостатком является то, что в результатах поиска может появиться две и более текстур с одинаковым названием. В таком случае нет гарантий того, что нужная текстура будет найдена.

Doc-menu">Textures в или над уровнем с компонентами (ассетами)

Создание и присвоение материала

Для каждого импортированного материала, Unity применит следующие правила:-

Если генерация материала отменена (иначе говоря если галочка Import Materials не выставлена), тогда будет назначен материал по-умолчанию. Если же генерация была включена, тогда произойдёт следующее:

  • Unity будет использовать название для своего материала, основываясь на значении параметра Material Naming
  • Unity попытается найти существующий материал с таким именем. Область поиска для поиска материала задаётся при помощи параметра Material Search
  • Если Unity удастся найти существующий материал, тогда он будет использован в импортированной сцене, если же нет, тогда будет создан новый материал

Коллайдеры (Colliders)

В Unity используется два основных типа коллайдеров: Mesh Colliders и Primitive Colliders . Меш коллайдеры - это те компоненты, которые используют для себя данные импортированного меша и могут быть применены для создания столкновений с окружением. Когда вы в настройках импорта (Import Settings) активируете опцию Generate Colliders , меш коллайдер автоматически добавится в сцену вместе с импортированным мешем. Он будет рассматриваться как цельный до тех пор, пока он будет работать в контексте использования физической системой.

При перемещении своего объекта по сцене (к примеру машины), вы не можете использовать меш коллайдеры. Вместо этого, вам необходимо использовать примитивные коллайдеры. В этом случае вам необходимо отключить опцию Generate Colliders .

Анимации (Animations)

Анимации автоматически импортируются из сцены. Для более детального ознакомления с настройками импорта анимации посетите главу документации под названием подготовка компонентов и их импорт в системе анимации (Mecanim).

Карты нормалей и персонажи (Normal mapping and characters)

Если у вас есть модель персонажа с наложенной на него картой нормалей, взятой с высокополигональной модели, тогда вам необходимо будет импортировать в сцену версию модели для игры с Smoothing angle в 180 градусов. Таким образом можно предотвратить появление странно выглядящих швов в местах сочленения модели. Если же швы всё ещё останутся даже после применения данных настроек, тогда активируйте опцию Split tangents across UV seams .

Если вы конвертируете чёрно-белое изображение в карту нормалей, вам не следует об этом беспокоиться.

Формы смешивания (Blendshapes)

Unity поддерживает формы смешивания(Blendshapes) (которые ещё называют морфинговыми целями или вертексной анимацией). Unity может импортировать формы смешивания из таких форматов как .FBX (формы смешивания и контроль над анимацией) и .dae (только формы смешивания). Формы смешивания Unity также поддерживают вертексную анимацию на вершинах, нормалях и касательных. На меш одновременно может воздействовать как его его скин (Skin), так и формы смешивания. Все меши, которые были импортированы с формами смешивания будут использовать компонент SkinnedMeshRenderer (и не важно, был ли к нему применён до этого скин или нет). Анимация форм смешивания импортируются как часть обычной анимации - она попросту анимирует веса форм смешивания на компоненте SkinnedMeshRenderer.

Есть два способа импорта форм смешивания с нормалями:

  1. Если установить режим импорта Normals в положение Calculate , тогда для мешей будет использоваться та же последовательность просчёта нормалей что и для форм смешивания.
  2. Экспортируйте информацию о группах сглаживания в исходный файл. Таким образом Unity просчитает нормали из групп сглаживания как для меша, так и для форм смешивания.

Если вам нужны касательные на ваших формах смешивания, тогда выставите режим импорта Tangents в положение Calculate .

  • Слейте между собой как можно больше мешей в единое целое. И сделайте так, чтобы они использовали одни и те же материалы и текстуры. Это должно дать хороший прирост в производительности.
  • Если в процессе работы в Unity вам придётся довольно часто сталкиваться с настройкой своих объектов, (применяя к ним физику, скрипты и другие полезности) то, чтобы в дальнейшем избавить себя от лишней головной боли, вам следует заранее позаботиться о правильном именовании своих объектов в том трёхмерном приложении, в котором они изначально были созданы. Потому как работать с большим количеством объектов, имеющих названия вроде pCube17 или Box42 мягко говоря не очень удобно.
  • Работая в своём трёхмерном приложении старайтесь располагать свои модели в центре мировой системы координат. В дальнейшем это упростит их размещение в Unity.
  • Если вершины меша изначально не имеют своих цветов, то при первом рендере Unity автоматически назначит всем вершинам белый цвет.

Редактор Unity отображает гораздо больше вершин и треугольников (по сравнению с тем, что отображается в моём трёхмерном приложении).

Так и есть. На что вы действительно должны обратить внимание, так это на то, какое количество вершин/треугольников на самом деле было послано для просчёта на графический процессор (GPU). В отличие от случаев, где материал требует, чтобы эти данные посылались на GPU дважды, такие вещи как твёрдые-нормали (hard-normals) и несмежные UV развёртки(non-contiguous UVs) намеренно отображают гораздо большее количество вершин/треугольников, чем есть на самом деле. В контексте UV и 3D пространства треугольники должны располагаться смежно, чтобы сформировать собой границу, поэтому при уменьшении количества треугольников на UV-швах, которые и должны были образовать собой границу и возникает эффект мнимого увеличения их количества.

Таблица 11.6. Фонемы американского английского

Значение

Значения IPA, показанные в таблице 11.2, являются индексами массива лицевых мешей фонем, используемого при визуализации. Для создания последовательности анимации, соедините значения IPA, образуя таким образом слова и предложения. Вы узнаете больше о создании последовательностей звуков в разделе "Создание последовательностей фонем", расположенном далее в этой главе.

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

Создание лицевых мешей

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

Здесь и расположена самая сложная часть воплощения лицевой анимации - создание разнообразных лицевых мешей, используемых движком. Используя различные программы трехмерного моделирования, такие как trueSpace фирмы Caligari или Poser фирмы Curious Labs, вы можете создавать лицевые меши быстро и легко.

Морфируемаялицеваяанимация

TrueSpace фирмы Caligari (версия 5.1 и новее) комплектуется плагином3 Facial Animator, который очень помогает при создании, текстурировании и анимировании лицевых мешей. Я использовал плагин Facial Animator для создания демонстрационной программы этой главы.

Poser является пакетом, полностью ориентированным на создание персонажей, позволяющим моделировать всего человека. При использовании форм, текстур, одежд и лицевых особенностей Poser определенно является очень полезным трехмерным пакетом.

Независимо от используемого трехмерного пакета все сводится к одной вещи - созданию базового лицевого меша.

Создание базового меша

Оба пакета трехмерного моделирования, о которых я упоминал, поставляются с определенным набором лицевых мешей. Используя trueSpace, вы можете очень просто импортировать ваши собственные меши и подготавливать их для работы с плагином Facial Animator. При работе с Poser вы можете использовать лицевой генератор для получения практически неограниченного числа лиц.

Опять же, независимо от используемого пакета вам необходимо создать базовый меш. Помните, что этот базовый меш не должен содержать никаких выражений: рот должен быть закрыт, а глаза полностью открыты. Для упрощения, я собираюсь использовать один из лицевых, мешей, поставляемых в наборе с Facial Animator программы trueSpace. На рис. 11.3 показан базовый меш, который я буду использовать в этой главе.

После выбора меша, используемого в качестве базового, вам необходимо корректно текстурировать его. Замечательным свойством плагина Facial Animator программы trueSpace является то, что вы можете создавать карты текстур, используемые лицевым мешем, взяв картинки самогосебя, сделанные сбоку и спереди, и натянуть их на меш, используя инструмент Texturize Head. Для этой демонстрационной программы я использовал свое собственное лицо при текстурировании меша.

Замечание. Лицевой меш Chris (содержащий малое количество граней), который я использую в качестве базового, имеет несколько недостатков, самым заметным их которых является отсутствие глаз. Я использовал инструмент AddFace программы trueSpace для добавления нескольких граней, представляющих собой глаза, что позволило мне наложить карту текстуры на них.

3. Плагин (plug-in) - подключаемый программный модуль, который расширяет возможности родительской программы. - Примеч. науч. ред.

Рис. 11.3. Лицевой меш Chris (содержащий малое количество граней) из программы trueSpace замечательно послужит в качестве базового меша. Помня о лицензии фирмы Caligari, поставляемой для каждого пользователя, вы можете свободно изменять модель Chris в ваших приложениях

После двух небольших шагов базовый меш готов! Я знаю, что пропустил некоторые особенности, такие как моделирование головы, но эта книга не о моделировании, она об анимировании! По правде говоря, оба пакета трехмерного моделирования, о которых я упоминал, выполняют свою задачу и делают процесс моделирования лиц очень простым, так что о создании меша головы вы можете прочитать из документации этих пакетов.

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

Создание выражений лица

Прежде чем продолжить, убедитесь, что вы сохранили базовый меш на диск, используя описательное имя, например, Base.x. Помните, вы используете формат.X, так что вы можете захотеть экспортировать меш в качестве.X файла. Если такой возможности нет, экспортируйте меш как файл.3DS. После того как вы выполнили это, вы можете использовать программу Conv3DS.exe, поставляемую с DirectX SDK, для

в директории \Bin\DXUtils DirectX SDK, или вы можете скачать последнюю ее версию с сайта http://www.microsoft.com/DirectX кopпopaции Microsoft.

После того как вы сохранили базовый меш на диск, вы можете начинать создавать различные виды мимики. Наиболее просто начинать с выражений лица, таких, как например, улыбка, моргание, нахмуривание. Опять же, я хочу сделать все максимально простым, поэтому будем использовать плагин Facial Animator программы trueSpace.

Так получается, что Facial Animator поставляется с набором предопределенных выражений лица, которые вы можете накладывать на лицевой меш простым щелчком мыши! Если задуматься, у Poser имеются точно такие же возможности, так что вы можете создавать выражения лица в любой из этих программ!

Для создания выражений лица меша щелкните закладку Expressions (Выражения) в диалоговом окне Facial Animator. Как вы можете видеть на рис. 11.4, появляется список выражений, которые можно применить к мешу.

Рис. 11.4. Список Expressions плагина Facial Animator предоставляет вам восемь выражений, которые вы можете выбрать

Я хочу, чтобы демонстрационная программа была проста, и т. к. я достаточно счастливый парень, я хочу использовать выражение Smile (Улыбка). Щелкните на кнопку Smile, и вы увидите, как лицевой меш в трехмерном редакторе изменится в соответствии с выбранным выражением. Если вам интересно, щелкните на кнопках других выражений, чтобы увидеть как они влияют на меш. После того, как вы закончите, щелкните на кнопку Smile, чтобы вернуться к настройке улыбающегося меша.

После того как вы выбрали используемое выражение лица (в данном случае улыбку), экспортируйте меш. Для упрощения, назовите его Smile.x. Поместите файл Smile.x в ту же директорию, что и Base.x. Если вы хотите использовать большее количество выражений, щелкните на соответствующую кнопку выражения в диалогом окне Facial Animator, подождите изменения меша и экспортируйте его в.X файл.

Я не хочу вводить вас в заблуждение тем, что в Facial Animator только восемь выражений, поэтому щелкните на вкладку Gestures (Жесты). Вот! Должно появиться еще четырнадцать выражений (см. рис. 11.5).

Рис. 11.5. Список Gestures плагина Facial Animator содержит еще 14 выражений, которые вы можете применять к мешу

Прежде чем использовать выражения вкладки Gestures, щелкните один раз кнопку Reset All (Сбросить все). Это вернет лицевой меш к начальной ориентации. Не стесняйтесь использовать набор жестов. Решите, какой жест вы хотите использовать, и экспортируйте меш, использующий его. Для своей демонстрационной программы я использую только жест Blink (Моргать).

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

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

Создание объекта с нуля (от А до Я)


Урок рассчитан на пользователей хотя бы с элементарными навыками в Фотошопе.
Для работы нам потребуются: Workshop, MilkShape, Photoshop. С вашего позволения дальше я их буду писать на русском. В Милкшейп обязательно должны быть установлены плагины для wso, в Фотошоп плагины для dds. (смотреть соответствующие темы)

В этом уроке я попробую научить вас делать свои объекты с созданием меша и созданием своей текстурной карты. Для примера мы возьмем не очень сложный объект, но и не совсем простой, чтоб вы видели, как делается нестандартный меш. Урок очень большой, поэтому все части я оформляю под спойлер.

SpoilerTarget">Изготовление меша высокой детализации

Начинаем с меша. Открываем Милкшейп. Приближаем окна так, чтобы хорошо было видно сетку координат и три клетки в высоту. Это размер стены. Предмет можно для начала делать любого размера, в конце всегда можно уменьшить.

Справа находится окно управления. Во вкладке Model кнопки корректировки и создания простых фигур. Давайте сделаем простую вазу. Ваза симметричная со всех сторон и не имеет углов, поэтому логично, что наиболее подходящая фигура для ее изготовления – это цилиндр.

Нажимаем на кнопку Cylinder. Открылось дополнительное меню, в котором нам нужно сразу рассчитать, сколько у нашей вазы будет полигонов. Для новичков это может показаться сложным, все достигается опытом. Тут не следует забывать, что готовый объект не должен превышать 1200 полигонов. А у нашей вазы будет еще внутренняя сторона, значит эта часть не должна превысить 600. Контролируется это во вкладке Tools-Show Model Statistics.
Sliсes – сколько точек будет по окружности, чем меньше, тем угловатей фигура. Stacks – сколько точек будет по длине цилиндра, т.е. мест, где наш цилиндр мы сможем изгибать. Всегда прибавляем 1 stacks наверху для того, чтобы плавно загнуть край. Я возьму для нашей вазы 10х16, вполне оптимально.
После того, как выставили параметры, в левом верхнем окне просто растягиваем наш цилиндр.

Нажимает кнопку Select, кликаем по чистому полю и снимаем выделение.

Основа готова. Теперь нам нужно придать вазе форму. Для этого во вкладке Select нажимаем внизу Vertex (т.е. будем выделять повертексно). Обязательно убираем галочку Ignore Backfaces в закладке Select, если она у вас стоит. Мышкой выделяем нужную линию вертексов. Т.к. у нас симметричная фигура, выделяем сразу всю линию.

Переходим во вкладку Scale. Внизу параметры по осям. Ставим в каждом окошке через точку, если хотим уменьшить выделенный фрагмент, то меньше единицы (с минусом), если увеличить, то больше единицы. Советую ставить самый маленький интервал, чтобы увеличение шло плавно. Я обычно ставлю для уменьшения -0.99, а для увеличения 1.01.

Сейчас будем уменьшать. Нажимаем на кнопку Sсale рядом с параметрами (четное количество раз! Иначе у вас могут перевернуться полигоны). Я нажала шесть раз, сразу стало заметно округление нижнего края.
Дальше делаем все тоже самое с остальными линиями, пока не добьетесь той фигуры, что вам нужна. Уменьшаем, увеличиваем их по вашему желанию. Также линии можно передвигать вверх и вниз. Для этого (при выделенной линии) переходим в Move и мышкой двигаем.

После манипуляций у вас получится своя ваза, советую делать по какой-либо картинке, так проще. У меня получилось вот так. Наверху оставлены вертексы для сведения с внутренним слоем.

Переходим во вкладку Select-Face и в окне Top нажимаем на центральную точку. У нас выделилась окружность и прилегающие к ней полигоны (но так же выделилось и донышко).

Зажимаем шифт и правой кнопкой мыши снимаем выделение с донышка (нам его трогать не надо).

Затем кнопкой Delete на клавиатуре удаляем лишние фейсы по горлышку вазы. Ваза стала полой.

Все, что в левом нижнем окне показано белым будет видеться в игре – все что черным будет прозрачным (это обратная сторона фейсов), поэтому нашей вазе необходим второй внутренний слой.

Выделяем всю вазу без самой верхней окружности вертексов. Нажимаем Edit-Dublicate Selection. Мы продублировали нашу вазу, теперь их две.

Не снимая выделения, чуть чуть уменьшаем наш внутренний слой (Scale). Затем также не снимая выделения, нажимаем в меню Face-Reverse Vertex Order и Face-Smoose All (этим мы переворачиваем все полигоны в обратную сторону. Ваза внутри стала белой, как и снаружи.

Выделяем кромку (повертексно). Немного уменьшая ее (Scale) и функций Move опускаем до уровня соединения с внутренним слоем. Если этого не сделать, то край вазы будет резко обрываться и в игре будет разделение на внешний и внутренний слои.

Можете еще поиграться с формой, при этом не забывайте уже выделять оба слоя.
Если вы решили, что ваза закончена, то самое время сохранить проект (File-Save) и перейти к группам и текстурной развертке.


SpoilerTarget">Создание текстурной карты в Милкшейп

Откроем Фотошоп. Создаем новый документ размером 512*512 и заливаем его любым темным цветом, например черным, сохраняем в png. Это будет ваш основной файл фона для Милкшейпа, вы будете использовать его во всех своих объектах.

Идем обратно в Милкшейп, переходим на вкладку Groups. Если у вас все правильно, в этом окне сейчас должны быть две группы (две ваши фигуры – внешний и внутренний слои вазы. Сколько вы сделаете отдельных фигур, столько и будет групп. Пока вы не сделали карту, объединять группы нельзя). Для удобства можете группы переименовать (Rename), а то если их много, можно потом в карте запутаться.
Встаем на каждую группу по очереди и нажимаем Select, у нас выделилась вся ваза.

Переходим во вкладку Materials, нам нужно добавить сюда свой материал, чтобы мы смогли увидеть карту. Нажимаем New, в окошке появился шарик, кликаем на первое слово none и выбираем наш файл с черным фоном (шарик стал черным или того цвета, какой у вас фон), затем жмем Assign (накладываем эту текстуру на нашу фигуру).

Не снимая выделения жмем Ctrl+T (в меню Window-Texture Coordinat Editor). Ура, мы видим нашу карту. Сбоку переход между группами. Будьте тут аккуратны и не нажимайте лишних кнопок, от карты зависит вся ваша текстуризация объекта.

Если вы попереключаете по группам, то увидите, что они перекрывают друг друга, т.е. если вы в фотошопе наложите текстуру, она ляжет и на внутренний и на внешний слой одновременно. А нам так не надо, нам нужно, чтобы у вазы на внешнем слое был один рисунок, на внутреннем другой. Поэтому нам надо подвинуть карты так, чтобы они друг друга не перекрыли.
Не снимая выделения, нажимаем на Scale и уменьшаем карту мышкой (до разумных пределов), оттаскиваем (Move) ее в сторону, затем во второй группе делаем тоже самое и оттаскиваем ее в другую сторону.



Так как у нас всего две группы, то тут нет сложности. Сложнее распределить карту, когда групп очень много и они сложные по форме. Я внутренний слой сделала меньше, внешний больше, потому что по внешнему хочу сделать рисунок, а внутренний будет без рисунка.

Текстурная карта почти готова, теперь нужно назначить кости и добавить тень. Обычно я эти два действия совмещаю, если предмет простой декор.


SpoilerTarget">Клонирование объекта в Воркшопе и экспорт меша

Открываем Воркшоп. Идем в раздел Объекты-Декор-различный декор и выбираем себе любой предмет для клонирования (это тот файл, на который вы потом будете импортировать свой объект). Я обычно беру вот этот предмет декора.

Заполняем поля Title – всегда пишите какие-то свои уникальные данные, чтоб название не могло повториться или совпасть ни с каким другим. В поле Description смело вписываем свое имя, потому что этот предмет – ваша авторская работа.

Переходим во вкладку Mesh и экспортируем меш этой коровки в свою рабочую папочку.


SpoilerTarget">Добавление тени и привязка костей

Переходим назад в Милкшейп. Открываем экспортированный меш прямо в нашем проекте с вазой.

Смотрим на пропорцию. Как видно, моя вазочка очень большая.

В данный момент она выделена, я просто применяю функцию Scale и уменьшаю ее всю пропорционально.

Затем снимаем все выделение (Edit-Select none), переходим во вкладку Groups и видим, что у нас добавилось две группы. Одна группа это тень, вторая сам импортированный объект. Выделяем группу с ненужным объектом и удаляем.

Тень оставляем и двигаем вверх, она должна быть самой первой (Up). Если тень маловата, увеличиваем ее и подвигаем под наш объект (Scale, Move).

Назначение костей. Если вы не назначите кости своему объекту, в игре он не будет видеться (будет прозрачным). Переходим во вкладку Groups и выделяем все наши группы (кроме тени).

Затем переходим во вкладку Jonts. Мы видим, что там появилась одна кость. Если вы заходили сюда ранее, то видели здесь пустое место. Эта кость появилась с тенью. Нажимаем Assign - этим мы привязываем этим нашу кость ко всем выделенным группам объекта.


SpoilerTarget">Группировка и редактирование текстурной карты

Меш готов, однако если мы глянем меш в Воркшопе, то увидим там две группы – тень и объект, а у нас их три и если мы экспортируем меш так, то Воркшоп выдаст ошибку. Нам надо объединить группы в одну. Тень всегда отдельно! Выделяем группы нашего объекта (без тени) и нажимаем Regroup.
Нажимаем контрл+Т, проверяем карту, теперь у нас все на одном поле, ничего не должно пересекаться. Если что-то не так, делаем контрл+Z и двигаем группы на карте по новой, затем опять объединяем группы. Должно получиться так:

Еще небольшой нюанс, мы двигали вертексы по нашей вазе вверх и вниз, а на карте они расположены на одном расстоянии друг от друга, если оставить такую карту и наложить на нее рисунок, он может непропорционально растянуться.
Поэтому кропотливо выделяем функцией Scale строчки вертексов и приблизительно поднимаем/опускаем Move их также, как на нашей вазе. Большой точности здесь не нужно.

Если карта вас устраивает, копируем ее кнопкой PrtScr (принтскрин) в буфер обмена.
Экспортируем меш. File-Export-TSRW Objects (имя можно дать любое, но для себя пометьте, что это меш hide). Милкшейп не закрывайте.


SpoilerTarget">Создание текстур в Фотошопе

Переходим в Фотошоп. Создаем новый файл размером 512*512. Вставляем из буфера обмена нашу карту (контрл+V), подвигаем ее так, чтобы она была ровно на весь файл.



Осталось наложить текстуру. Самое сложное – найти такую текстуру. Это должна быть развертка. Т.е. мы видим что наша ваза на карте прямоугольная, т.е. она развернута на плоскости.
Я нашла в интернете вот такую текстуру для верхнего слоя (внутренний будет просто гладкий):

Накладываем нашу текстуру на карту так, чтобы полностью перекрыть края.

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

Так как рисунок будет "огибать" всю вазу, я его сделала двойным. Качество вашего Мультиплеер напрямую зависит от вашего владения фотошопом. Учитывайте, что текстура должна иметь ровные края, и рисунок должен сходиться. Если это не так, дорабатывайте кистями и фильтрами.
По возможности, можно и внутреннюю часть немного отредактировать, например наложить тень по ободку. В данном случае я просто выделила по карте прямоугольный блок и кисточкой-затемнителем чуть-чуть наложила тень.

Объединяем все слои Layer-Flattern Image и сохраняем файл как dds с названием «ваза multiplier»

Создание маски. Если у вас не предполагается различный перекрас предмета, то маска – это файл 512*512, полностью залитый красным цветом, в формает dds. Если у вас в предмете две или три зоны перекраса, то на исходной карте в фотошопе выделяете область 1-го перекраса и заливаете красным, область второго перекраса – зеленым, область третьего – синим. Для наглядности сделаем в нашей вазе две зоны перекраса. Я выделяю часть, где внешний слой – красным, а часть карты с внутренним слоем зеленым. Вот такая карта у меня получилась:



Так же объединяем все слои и сохраняем с именем «ваза mask»

Создание Specular. Спекулар отвечает за блеск нашего объекта, поэтому он делается из Мультиплеера, просто добавляется контрастности и яркости. Все что белое будет светиться, все темное наоборот будет матовым. Тут зависит от объекта, если вам нужно чтоб он сверкал – делаете белее, если нужно, чтоб был матовым, то темнее.

Для правильного Спекулара нужно еще добавить черный Альфа-канал. Вкладка Channels, контрл+А, добавить канал по выделению и залить черным.

Объединяем слои и сохраняем с именем «ваза specular».


SpoilerTarget">Сведение меша и текстур в Воркшопе

Текстуры готовы, теперь необходимо все свести в Воркшопе. Переходим в Воркшоп. Во вкладке Textures оставляем только одну позицию, остальные удаляем. Клик справа по треугольничку - Delete.

Ипортируем меш своей вазы (вкладка mesh, кнопка с зеленной стрелкой). Импортируем во вкладку hide (высокая детализация), к low и shadow вернемся позже.

Теперь меняем все текстуры на свои (Маску, Мультиплеер и Спекулар), на вопрос изменить размер, отвечаем «да».
Вот что на этом этапе получилось у меня:


SpoilerTarget">Изменение паттернов и экспорт в сим3пак

Теперь займемся паттернами. Под основными текстурами, которые мы импортировали находятся 3 вкладки с паттернами. Первая из них перекрасит все, что залито в нашей Маске красным, вторая зеленым, третья синим. Если у вас в маске всего две зоны перекраса, то третий паттерн можно отключить (false).
Итак, подбираем паттерн под внешний слой вазы. Я взяла Металл – chrome01 и выставила понравившийся мне цвет.

Также выбираем цвет для второй зоны перекраса, в нашем случае это внутренняя часть вазы.

Третьей зоны у нас нет, я этот паттерн отключила.

Меш Low и Shadow. Одного меша с высокой детализацией не хватит, в объекте еще есть меш с низкой детализацией (мы видим его в игре при загрузке предмета) и Shadow – солнечная тень. Сейчас можно увидеть, что наша ваза отбрасывает тень от старого объекта.
Конечно, заново мы эти меши делать не будем, мы их сделаем из нашего меша с высокой детализацией.
Для этого вернемся в Милкшейп. На вкладке Groups удалим группу с тенью, она не нужна. У нас осталась одна объединенная группа. Применяем к ней плагин уменьшения полигонов – Tools –DirectX Mesh Tools.

Тянем мышкой ползунок и уменьшаем полигональность нашего объекта (как можно меньше, но до разумных пределов).

Я остановилась на цифре 340 (уменьшила вполовину), нажимаем на дискетку – Сохранить.
Наша фигура стала черной. Это произошло из-за того, что плагин поломал все фейсы и они перевернулись.

Заходим в меню Face-Smoose All (перевернуть фейсы). Фигура стало опять белой.

После этой операции пропадает привязка к костям. Нам нужно опять их привязать. Для этого выделяем получившийся уменьшенный по полигонам объект, импортируем наш меш hide, переходим в Joints, нажимаем Assign и удаляем загруженный меш hide. В результате у вас должна остаться одна группа с объектом с уменьшенными полигонами и с привязанными костями.

Все, экспортируем этот объект с названием «ваза напольная low».

Переходим в Воркшоп и импортируем этот меш Low во все три оставшиеся вкладки - в меш Low и в оба меша Shadow



Осталось проставить цену на вкладке Project

Можете еще добавить иконку в поле Launcher tunbnail. Иконка это изображение в любом формате (jpg. gif. png) размером 256*256 с изображением предмета и вашим логотипом. Это, что будет отображаться в Лаунчере (S3 Wiewer).

Экспортируем в формате sim3pack (желательно с тем же именем, которое вы писали в поле Title).

Ставим в игру, проверяем )) Надеюсь, у вас все получилось.


В данном туториале я максимально подробно расскажу, как создать новый меш предмета в The Sims 2 , используя средства SimPE и 3dsMax.

В сети есть множество туториалов о том, как сделать свой собственный уникальный объект для Симс 2 . Я хочу добавить немного больше от себя того, чего я не увидела в других уроках. Но постараюсь не менее детально и доступно объяснить для новичков, как же все-таки сделать свой предмет, имея на руках следующие программы:
- SimPE (я пользуюсь версией 0.68, есть более новая, но в ней отсутствует импорт/экспорт 3ds формата - придется скопировать папку с плагинами из старых версий, если вы пользуетесь этой версией)
- 3ds Max или любой другой 3D редактор, которым вы умеете пользоваться (здесь я буду рассказывать на примере Макса)

Предисловие: Также хочу заметить, что делать объект с нуля мы не будем. Все предметы делаются посредством клонирования из других объектов. Многие новички спросят: "Почему?" Да потому, что создание объекта с нуля – это не просто создание его меша и текстуры, помимо меша у предмета есть множество функций, характеристик, отвечающий в игре за его функциональность, месторасположение, взаимодействие с другими объектами и кучу других действий. Оставим это разработчикам, а сами возьмем их труд за пример и будем клонировать предмет уже с готовыми функциями. Но не переживайте, предмет в последствии станет отдельным и уникальным объектом!

1. Совместимость предмета с игрой.

Прежде, чем начать, хочу обратить ваше внимание на то, что не все предметы совместимы с оригинальной версией игры. Например, если вы клонируете регистрационную стойку для гостиницы, то она будет работать только при наличие аддона Бон Вояж, если клонируете автомобиль, то он работает под дополнение Ночная жизнь. Но бывает и так, что вы клонируете какой-то простой стандартный предмет, а он почему-то не работает у других ребят.
Все дело в аддонах. Вы можете клонировать обычный холодильник, имея на руках, допустим, дополнение Бизнес, которое добавляет в него функцию для готовки порций на продажу. И кажется, что он должен работать у всех, но почему-то те, кто не имеет этого дополнения жалуются, что предмет не появился в режиме покупок или вызывает ошибку и сбой игры.
Если вы хотите, чтобы ваш предмет был универсальным и работал без совместимости с аддонами (то есть, он будет работать даже у тех, у кого вовсе нет дополнений, только оригинальная игра), то я предлагаю следующий вариант:
- зайдите в SimPE в верхнее меню Extra - Preferences

Перейдите во вкладку File Table

Здесь вы увидите список установленных у вас аддонов, если вы хотите убрать совместимость предмета с ними, снимите их галками.

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

2. SimPE - клонирование предмета

Итак начнем создание объекта. Запустите SimPE, если он еще не запущен. Нам нужно открыть закладку Object Workshop, она должна быть в правом верхнем углу. Если же ее там нет, зайдите в Window - Object Workshop.

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

Нажмем Next, выберем Clone (Клонировать) со следующими настройками:

Примечание: я заметила, что при клонировании таких объектов, как кровати, шторки и некоторые столешницы, пропадает текстура в пакете. Долго мучалась, и потом сообразила: оказывается, такие объекты при клонировании берут текстуру у стандартных объектов, из которых они клонированы. Если же вы хотите, чтобы у вашего предмета была своя собственная текстура, то при клонировании таких объектов нужно выделить параметр Create a stand-alone object

Итак, идем дальше. Теперь появится окно с выбором названия объекта, его ценой и описанием. Можете вписать туда свои параметры. Советую вписывать на английском, поскольку игра не у всех русифицирована и ваш русский шрифт превратится просто-напросто в иероглифы. Жмем Finish.
Появляется следующее окно:

Вы можете изменить левую часть файла на ваше уникальное имя, после чего нужно нажать Update и OK. Сохраните ваш пакадж в любую удобную для вас папку.

3. SimPE - назначение уникального GUID (делаем наш объект уникальным).

В 1-м этапе мы создали полноценный клон предмета, который заменяет оригинал в игре. Но теперь нам нужно его отделить от оригинала и сделать полноценным уникальным объектом. Для этого не выходя из SimPE, заходим в дерево ресурсов (Resource Tree) - Object Data (OBJD)

В окне Resource List вы увидите файл, нажмите на него. Теперь в нижнем левом углу перейдите на вкладку Plugin View и нажмите на кнопку Get GUID

Здесь нужно зарегистрировать себя как нового юзера для получения уникальных GUIDов для своих объектов. И в дальнейшем ваша авторизация будет появляться автоматически при получении GUIDов.

Что такое GUID? Это некий номер, который имеет каждый объект в игре. Если вашему объекту не назначен уникальный номер, он будет иметь номер прототипа, из которого был клонирован, и будет заменять его в игре. За вами выбор - делать уникальный объект или заменяющий стандартный, смотря, чего вы хотите добиться.

Нажимаем Register Object, после чего поле GUID обновляется на новый код. Выберите галкой Update all MMATs и нажмите на Update MMATs and commit. После этого можете сохранить свой пакет (File - Save).

Примечание. Если в данном разделе вы видите несколько файлов, получение GUID"ов для них производите следующим образом:
- найдите название основного файла (тот, который не имеет окончания А, В или С), у меня это Table - Dining - Formica. При получении GUIDа для него, перед тем, как нажать Update MMATs and commit, поставьте галку Update all MMATs - это обновит все гуиды в разделе Material Override.
- после этого для файлов с окончанием А, В, С или D получение GUID"ов происходит без включения галки Update all MMATs

В Overall Sort вы можете поменять раздел, в котором появится ваш предмет в Режиме покупок.

Теперь наш объект отделен от начального прототипа и является независимым уникальным объектом.

4. SimPE - экспорт меша и текстур.

Теперь наш объект готов к использованию, но его внешний вид еще не изменен. Для того, чтобы достать из пакаджа меш объекта,
1 - зайдите в Geometric Data Container (GMDC) в дереве ресурсов (Resource Tree),
2 - кликните на файл в закладке Resource List и внизу 3 - перейдите на вкладку Plugin View.

Внизу вы увидите окошко с несколькими (либо одним) файлом - это части меша.

Примечание: у каждой такой части меша могут быть свои характеристики. Например, столешница может состоять из ножек и стеклянной поверхности - это 2 разных части одного меша. И они имеют разные свойства материала (то есть столешница - свойства стекла). Не бойтесь количества таких частей. Вы можете работать с ними как по отдельности, так и вместе. Но при импортировании, нужно помнить, чтобы отдельные части вернулись на свои прежние места. Как это сделать, вы узнаете позже. Я буду экспортировать все части вместе.

Строчки с концовкой shadow нам не нужны (это тени от объекта). Поставьте галку напротив нужного меша и кликните Preview, чтобы посмотреть, что вы выбрали и убедиться, что это то, что вам нужно. (перемещение превьюшки - левая кнопка мыши, вращение - правая кнопка мыши, увеличение - удерживая колесико мыши, вперед-назад).
Теперь выберите координаты XYZ (если вы перепутаете координаты, ваш стол может лечь боком на пол) и нажмите Export.
Появится окно с выбором директории, куда сохранить экспортированный файл. Предлагаю сохранить файл в папку с нашим проектом и дать ему название 01. Если вы работаете в 3ds Max, формат выбираете.3ds. Экспортируем файл.

Теперь выудим из пакаджа текстуры. Зайдем в Дереве ресурсов (Resource Tree) в ветку Texture Image, кликнем на файл в рабочем окне Resource List и посмотрим на Plugin View. Черно-белые изображения - это альфа-каналы теней, нам не нужны. Выбираем цветные текстурки, которые взяты с самого объекта и нажимаем Export. Сохраняем в ту же папку с нашим проектом. Можете поменять им имя, это не столь важно.

5. 3ds Max - меняем меш (каркас) предмета.

Ну наконец-то, добрались до самого интересного! Хочу сказать: что все, что было до этого, только на первый взгляд выглядит сложным. Сейчас этап с клонированием и экспортом я прохожу максимум за 2 минуты. Я надеюсь, что вы также быстро привыкнете делать это, даже не заглядывая в данный туториал.

Те, кто умеет в нем работать, сами смогут сделать каркас без посторонней помощи. Те, кто впервые работает в Максе, советую пройти несколько туториалов из его справки или зайти в наш раздел по 3ds Max и потренироваться там. Но все же основные моменты я постараюсь описать очень подробно.

Есть 2 способа изменения меша: либо изменять уже существующий меш, либо создавать полностью новый, а затем подгонять его под размер оригинала. Я предлагаю второй вариант. Итак, чтобы загрузить наш меш в Макс, нажмем File - Import и выберем только что экспортированный.3ds файл. Почему я импортировала его до создания нового меша? Потому, что вам уже есть, с чем сравнивать создаваемый меш как в масштабе, так и по габаритам.

Возьмем самые простые фигуры (Create - Standart Primitives) или же более сложные (Create - Extended Primitives) и сделаем из них простой столик. Я возьму обычный Box и Cylinder. Вы можете делать любые модификации с этими фигурами, чтобы добиться сложных изгибов. Помните, что в основе любой сложной фигуры все равно лежит какая-то простая, которую вы потом просто видоизменяете и модифицируете.

Немного об интерфейсе 3ds Max для тех, кто ничего в нем не понимает:
Чтобы выделить и начать редактировать фигуру, нажмите на нее правой кнопкой мыши Convert to - Convert to Editable Mesh. После чего появятся функции редактирования меша (Vertex - Вершины, Polygon - Полигоны и т.д.) Чтобы закончить редактирование, снова нажмите Convert to - Convert to Editable Mesh.
Чтобы увеличить/уменьшить фигуру, в тех же функциях редактирования меша есть Scale - Масштаб (используйте сразу все координаты для изменения масштаба, иначе при увеличении по одной координате ваш меш растянется.
Для поворота фигуры используйте Rotate
Для движения фигуры пользуйтесь Move
Если вы хотите слить 2 фигуры в одну, пользуйтесь Attach
Включить / выключить отображение граней F4 (очень удобно при работе с разверткой текстуры)

Внимание!!! Не забывайте, что:
- масштаб нового меша должен по габаритам совпадать с масштабом прототипа!
- плоскость нового стола должна по высоте совпадать с плоскостью прототипа, иначе ваши предметы либо погрузятся в стол, либо будут висеть над ним! Подгонять высоту стола удобнее на проекциях в увеличении, либо вручную, прописывая координаты XYZ. То же самое касается стульев, кроватей, диванов и т.д.
- положение нового стола должно в конечном счете сравняться с положением прототипа, иначе ваш стол уедет вбок. Если координаты прототипа 0.0.0, то вы можете выставить их вручную для нового меша, после чего удалить прототип! Если же координаты смещены, то старайтесь максимально подогнать расположение нового меша под старый!

Подгоняем все новые части по высоте, ширине, центру и т.д. После чего прототип можно удалить.

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

В принципе, вы можете соединить ножку стола со столешницей, но есть несколько "Но!":
- если у вас будет большое количество полигонов (ограничение 1800), то ваша модель будет "тормозить", и в таких случаях их специально разбивают на несколько составляющих, что и обеспечивает их более быструю загрузку.
- при соединении частей в одну, если вы захотите изменить материал стола, то он будет меняться для всей части, то есть сразу для всего стола. В данном случае вы уже не сможете сделать отдельно столешницу стеклянной, а ножку металлической, все будет меняться вместе.

Но пока наша модель не готова к Экспорту. Нам еще предстоит сделать развертку текстуры. Для начала давайте наложим на наш новый меш экспортированные ранее текстуры. Выберите Material Editor в правом верхнем углу

Выберем первый шар и зайдем в Diffuse

В появившемся списке щелкаем 2 раза на Bitmap и выбираем первую из экспортированных текстур для нашего столика. То же самое проделываем со вторым шаром для второй текстуры.
Теперь перетягиваем соответствующие текстуры (шары) на соответствующие части меша. Не забудьте нажать Show map in viewport, чтобы было видно текстуру на меше.

Вот, что получилось

Как видите, текстуры лежат хаотично, видны пятна и ненужные уголки изображения. Чтобы этого не было, мы должны сделать развертку текстуры. Она поможет нам как бы развернуть части меша на текстуре (помните развертку мешей одежды? - у каждой части тела свое место расположения). Также и тут. Мы определим для каждой части меша свое место на текстуре.
Для этого выделяем нужный сабсет (ножку или столешницу). И далее переходим в панель модификаторов в правом верхнем углу, откройте Modifier List и выберите модификатор Unwrap UVW.

Откроется дополнительное окошко с непонятными линиями и клетками. Не пугайтесь. Не закрывая окошка, перейдите к проекции своего меша, на ней удобнее всего выделять элементы. Советую перейти на уровень редактирования полигонов (Face). Советую также включить отображение граней (F4) и на панели справа включить галку Ignore Backfacing (это позволит выделять видимые передние грани без случайного выделения невидимых сзади). Выделите нужные вам элементы для создания части текстуры, затем, в зависимости от формы, выбираем, как мы будем разворачивать текстуру. Поскольку у меня выделенный элемент имеет цилиндрическую форму, я выбираю тип развертки Cylindrical во вкладке Map Parameters.

Для плоских частей меша я использую тип развертки Planar.

Повторите модификатор развертки для второго элемента. Поскольку он более сложный, используйте различные типа разверток для конкретных деталей. Для нижних шарообразных креплений подойдет тип развертки Spherical, для самих ножек можете использовать Planar или Cylindrical, с последующим редактированием и перемещением точек уже на развертке.

Располагать эти две развертки нужно так, чтобы они поместились в синей рамке окна. Синяя рамка - это и есть границы нашей текстуры. Вот мой пример развертки.


Теперь наша раскладка готова. Если вы заметили оригинальная текстура приняла более равномерное положение на столешнице. Осталось ее перекрасить.
Не забывайте, что в случае, если два сабсета используют одну текстуру на двоих, то части меша придется располагать так, чтобы они не накладывались друг на друг на итоговой текстуре.

Теперь вы можете открыть их в Фотошопе, отредактировать текстуры на свой вкус, сохранить с тем же именем, после чего обновите просмотр в Максе и вы увидите, как лежит отредактированная текстура на вашем объекте.
"А как же использовать раскладку в Фотошопе, чтобы все детали попали под сетку", - спросите вы? Для этого в окне с разверткой есть меню Tools - Render UVW Template, выбираете в ней ширину и высоту экспортируемой текстуры, кликаете кнопку Render UV Template, затем в окне рендера - дискету для сохранения и сохраняете в удобном для вас формате. Затем накладываете ее в Фотошопе с настройками прозрачности или смешения слоя. Очень удобно!


Если вы довольны результатом меша и текстуры, можете экспортировать меш из Макса. File - Export, сохраняем в папку с проектом с формате.3ds под новым именем 02.

6. SimPE - импорт меша и текстур.

Осталось дело за малым. Открываем пакадж с нашим столиком. Заходим в Дерево ресурсов (Resource Tree), кликаем на строку в рабочем окне Resouse List и смотрим на Plugin View. Убеждаемся, что координаты стоят XYZ, и нажимаем Import. Выбираем наш новый меш 02, после чего появится вот такое окошко:

В нем будут указаны 2 части нашего меша. Мы должны заменить соответствующие части мешей на новые. Для этого в нижнем правом углу в строке Action вместо Add выбираем Replace и ниже указываем, что заменить. Не перепутайте, какие части какими заменять, для этого можете посмотреть кол-во полигонов в частях. Тот, у которого 35, явно будет столешницей. После того, как вы указали замену, нажмите ОК.

Части заменены, можете выбрать их галочками и нажать Preview для просмотра. Если вы довольны результатом, нажмите Commit, а затем сохраните пакадж.

Осталось Импортировать новые текстуры. Заходим в Дерево Ресурсов (Resource Tree) в ветку Texture Image и выбираем соответствующую текстуру. Нажимаем Import и выбираем замену, после чего изображение обновится. Теперь щелкаем правой кнопкой мыши на новое изображение и выбираем Update all Sizes. Обновятся все размеры текстур. Делаем Commit и повторяем процедуру со второй текстурой, после чего сохраняем пакадж.

Ура! Объект закончен, теперь вы можете переместить его в папку Downloads и запустить игру для проверки.

Послесловие: Фух! Ну и писанины тут набралось, надеюсь это вас не смутило и вы достойно прошли все этапы! Пусть вас не пугает количество текста в этой теме, я просто старалась как можно более подробно описать для новичков все этапы. На самом деле, после того, как вы привыкнете делать предметы, вы перестанете сюда заглядывать и будете делать мебель, декорации и др. намного быстрее. Свой первый предмет я делала 2 недели. Свой последний - 2 часа))
Удачи!

Внимание, урок не рассчитан на новичков с нулевыми знаниями в данном деле! Если у вас нет базовых навыков работы в 3D программах, Workshop и фотошоп, то этот туториал вам будет попросту бесполезен. Изучите хотя бы текстурирование на должном уровне, и научитесь минимально редактировать игровые меши, а только потом переходите к более сложному.

Для работы нам понадобится набор отдельных частей тела в формате obj (Скачать), ну и, само собой, любая 3d программа (я работаю в трех для собственного же удобства – Milkshape , Khed и 3d Max, но вам хватит и одной). Туториал пишется с использованием Milkshape (Милка – разг.). Поскольку я собираюсь сделать женскую одежду, а именно платье, то используем меш женского тела с названием afbody.obj (для справки: AF – сокращенное обозначение меша тела взрослой женщины (Adult Female) , AM – меша взрослого мужчины (Adult Male) , EF-EM – женские и мужские меши для пожилых, TF-TM – женские и мужские меши для подростков, СU – меш для детей (Child Unisex), PU – меш для тоддлеров (Puppy Unisex)).
Так, галочка с Auto Smooth в разделе Groups должна быть убрана. Импортируем файл afbody.obj в Милку (File – Import – Wavefront Object):

Для удобства замораживаем вертексы, чтобы случайно не деформировать меш. Для этого жмем на панели Select, полностью выделяем тело и жмем Ctrl+H (или заходим в Edit – Hide Selection). Наша моделька должна стать серой:

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

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

Только на юбку, разумеется, это пока не похоже, поэтому срезаем часть сферы. Для этого выделяем ее при помощи Select:

Жмем на клавиатуре кнопку Delete:

Основа юбки готова. Снова полностью выделяем нашу полусферу и перетаскиваем ее на модель при помощи Move. Располагаем так, как нравится нам, и готовимся танцевать танец бабуинов, ведь мы почти создали меш нашего платья!

Кстати, я не зря показываю вам все четыре проекции. Обратите внимание, чтобы центр нашей юбки находился точно посередине меша тела, подвигайте ее во всех окошках.
Конечно, в мои планы не входит викторианская пышная юбка, поэтому я хочу чуть уменьшить ее. Для этого жмем Scale и вбиваем такие значения:

Чем больше значения, тем больше и увеличение выделенного участка. Обязательно нажмите U в списке координат (см. скрин выше), иначе юбочка уменьшится только в боках. После того, как вы прописали числа, жмем на белую кнопку Scale:

Если вас все устраивает, то вы можете пропустить следующую часть урока, но лично я считаю, что эта юбка недоделана.

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

По умолчанию у нас стоит Wireframe (мы видим просто точки-вертексы), переключение на Smooth Shaded позволяет нам увидеть текстуру, как на манекене в четвертом окне с 3D просмотром. Чтобы видеть на этой текстуре точки – нажмите Wireframe Overlay. На скрине ниже мы видим доступные нам проекции, вы можете смотреть меш со всех сторон, просто переключая виды.

Я хочу чуть удлинить юбку и придать ей немного вытянутую форму. Выделяем каждый ряд вертексов и чуть опускаем его. Также можно экспериментировать с размером и пышностью юбки, используя Sсale и вбивая туда разные значения (если хочется немного уменьшить, то пишем 0.9, 0.9, 0.9. если же увеличить – 1.1, 1.1, 1.1).
У меня получилась вот такая, эээ… симпатичная юбочка:

Можно заметить, что закрытый верх я удалила (хотя это необязательно) и подогнала инструментами Move и Scale под талию. Все ряды точек должны быть равноудалены друг от друга! Это обязательно, иначе кости могут не привязаться. Теперь стоило бы округлить низ, чтобы он не смотрелся сплошной линией. Выделяем нижний ряд точек и чуть-чуть смещаем вниз:

Теперь выделяем точки в середине и тоже их смещаем:

Затем выделяем соседние две точки (каждую по отдельности с зажатым Shift), двигаем и их.

Такая прелесть у нас должна получиться:

Переходим в режим просмотра слева или справа. Честно говоря, мне не нравится, что юбка настолько пышная:

Поэтому жмем на ненужные нам координаты (смотрим скрин выше – на те, что серые), оставляем активной только Z. Вписываем значения, как у меня, выделяем юбку и жмем на Scale столько раз, пока наша юбка не станет нормального объема.

Конечно, наш верх тоже уменьшился. Если перейти в передний режим просмотра, можно увидеть такое безобразие на талии:

Чтобы сделать край более-менее ровным, выделяем его и вписываем в Scale значения 1.1, 1.1, 1.1. Никакие координаты не включаем, жмем Scale столько раз, пока не получим ровных краев. Просматриваем наш меш во всех окнах, чтобы не вылезало ничего лишнего! Результат:

Меш готов. Заходим в группы и видим, что их несколько:

Группы под названием GEOM – это наш манекен. GEOM-00 – верх, GEOM-01 – нижняя часть туловища. Если вы хотите сделать меш для верхней части (кофту, тунику), то удаляете нижнюю, если для нижней (просто юбку, например) – верхнюю. Поскольку у нас платье, то оставляем как есть, просто объедините эти части манекена (выделите через Select обе группы, затем Regroup). Сейчас нужно создать текстурную развертку (потом это у вас не получится!), поэтому ничего не сливаем в одну группу, а просто сохраняем наш файл в формате.obj (File – Export – Wavefront Object). Не закрываем Милку, просто сворачиваем. Открываем UVMapper (скачать) и загружаем наш меш (File – Load Model), видим такую красоту:

Наша юбка находится не там, где нам нужно, поэтому жмем Edit – Select – By Group. Выбираем группу со сферой:

Юбка должна «покраснеть»:

Перемещаем ее в удобное нам место, стараясь не перекрыть развертку тела (я разместила под рукой манекена) и масштабируем:

Все, сохраняем нашу текстурную развертку (File – Save Texture Map) и сам меш (File – Save Model).
Открываем сохраненную после UVMapper модель меша в Милке. Если вы не хотите, чтобы изнанка платья была черной, выделяем группу с юбкой, дублируем (Edit - Duplicate Selection), затем применяем к продублированной юбке Face - Reverse Vertex Order (если изнанка все равно черная, то чуточку уменьшаем продублированную группу при помощи Scale).

Объединяем теперь все наши группы (Select – Regroup), переименовываем одну-единственную в group_base (в белое поле справа от Rename пишете новое имя и жмете эту самую кнопку)

Сохраняем готовый меш в формате.wso (File – Export – TSRW Object).

Теперь нам нужно привязать кости и создать телосложения Fat, Thin и Fit, для этого нам понадобится MeshToolKit (скачать). Но сначала открываем Workshop и находим платье, похожее мешем на наше. Я выбрала розовое:

Экспортируем его меш с названием Reference:

Теперь открываем MeshToolKit. Я отметила три вкладки, которые нам понадобятся:

Производим проверку файла:

Производим проверку костей:

Производим автопривязку. Внимание! Будьте внимательны, есть малый, но все же шанс неправильной привязки!

Создаем телосложения. Может потребоваться некоторое время. Обязательно выбираем наш предыдущий сохраненный меш с привязанными костями:

Готово! Можете проверить файл в Милке:

Как видим, группы телосложений имеются, кости тоже привязаны.
Импортируем файл в Ворк, во все группы мешей (High level of detail и т.д.). На первое сообщение, что нам покажется, жмем «Нет»:

Потом можете свободно нажимать «Да».
Ура! Мы создали СОБСТВЕННЫЙ меш:

Приступаем к работе над текстурой. Открываем нашу развертку в Photoshop, и идем в Изображение – Размер изображения, ставим 1024*1024:

Далее опять идем в Изображение – Режим – RGB. Все, можно приступать к созданию текстуры. Я не буду расписывать процесс, поскольку этот урок рассчитан на тех, кто уже давно освоился в ретекстурировании. Как правило, мне удобней работать без альфа-каналов, так что не удивляйтесь прозрачному фону.
Моя текстура получилась такой:

Все нужные операции проделаны, но остался последний штрих, ОБЯЗАТЕЛЬНЫЙ для всех креаторов, которые стремятся к качеству и не плюющие на тех, кто качает их контент. Уменьшаем вес платья, удаляя ненужные нам текстуры. В ворке жмем в верху панели Edit – Project Contents. В новом окне, выделенные мной DDS – это наши текстуры. Их должно быть 3-6. Текстуры, которые загружались ранее и оказались ненужными, тоже там сохраняются, проверьте файлы на их наличие. Другие расширения трогать нельзя, только DDS!

Если нужно использовать, к примеру, один Multiplier несколько раз, то пользуемся кнопкой Browse, чтобы постоянно не загружать одну и ту же текстуру и не занимать ею место:

Удалив лишнее, вписываем оригинальное название и сохраняем. Проверяем в игре:

Наша работа успешно завершена. Удачи с мешингом!

Спасибо за помощь с информацией Sintiklia и за фотографирование платья в игре Misti.