Статья предназначена в основном для начинающих, рассматриваются моменты, связанные с 3д-моделированием, скиннинг, создание развертки, виды текстур, анимация
Автор: Pavlinho
Дата: 02 июл 2020, 15:03 · Просмотров: 3 202
Дата: 02 июл 2020, 15:03 · Просмотров: 3 202
ВНИМАНИЕ! ВО ВРЕМЯ ИЗУЧЕНИЯ СТАТЬИ ОБЯЗАТЕЛЬНО ЧИТАЕМ КОММЕНТАРИИ ВНИЗУ ПОСЛЕ СТАТЬИ, ГДЕ Я БУДУ УКАЗЫВАТЬ НА НЕТОЧНОСТИ И ОШИБКИ, ДОПУЩЕННЫЕ В САМОЙ СТАТЬЕ, ПО МЕРЕ РАСШИРЕНИЯ СВОИХ ЗНАНИЙ.
В этой статье я хочу остановить НЕ на точной последовательности моих действий по 3д-моделингу головы, а на основных моментах, ошибках, нюансах. Статья поможет и мне - не забыть то, что я уже проделал, но в силу неопытности легко могу позабыть, и другим людям, которые хотят 3д-моделировать для АТВ и не только. Думаю, опытные, профессиональные 3д-моделисты с легкой улыбкой закроют данную статью и займутся своими профессиональными делами))) - но начинающему человеку(кстати, к которым отношусь и я), считаю, будет полезным почитать написанное здесь.
Вначале, как всегда, хочу выразить благодарность всем людям, которые создавали необходимые программы, помогали мне советами и идеями - поименно перечислять не буду, думаю, если они когда и прочтут эту статью, сразу поймут, что речь о них))).
Что ж, теперь можно и приступать.
Некоторые моменты 3д-моделирования для АТВ, создания развертки, текстуры и анимация.
Итак, в предыдущей статье мы научились экспортировать нужные нам дефолтные РИГИД_модели из игры. Какая была моя цель - из понравившейся мне женской головы ригид_модели nordic_seeress_01 сделать полноценную, тк базовая обладала лишь передней половиной головы - это объясняется тем, что модель в игре - жрец, с разными платками/косынками, которые заднюю часть - дырку просто закрывали.
Первое, на чем остановлюсь, настройки МАСШТАБИРОВАНИЯ в 3дмакс (у меня версия 2014).
Важный момент, тк у меня был казус, когда все в 3дмаксе сделал правильно, экспортировал удачно, в Аките их не видно - оказалось, что модели были просто раз в 100 меньше обычных!!!!
Итак, что нужно сделать, смотрим картинку:
Customize - Units Setup - System Unit Setup значения выставляем, как на рисунке, можно увидеть, что используются ДЮЙМЫ (inches)
Далее, когда мы, например, загружаем файл ДАЕ, при открытии в 3дмакс, настройки будут такими, как на картинке (раздел Units - Scale factor):
Еще один момент, связанный с масштабированием, иногда мы при открытии файла (как правило стороннего, не из игры) можем увидеть следующее окно
Так вот, чтобы не сбить нашу настройку масштаба в 3дмаксе(она нужна для АттилыТВ), выбираем ВЕРХНИЙ ответ Rescale the File Objects to the System Unit Scale?, что означает, привести масштаб нового файла к масштабу в настройках 3дмакс. Нижний же вариант автоматически изменит настройку масштаба в 3дмакс.
Так, с масштабом, кажется, все.
Второе, что мы изучим. Открываем полноценную модель женской головы из игры. Можно подкрасить ее для удобства
Импортируем переднюю часть головы , удаляем ненужные части МЕШа (просто выделить МЕШ, нажать DELETE), и опять же для удобства подкрасим переднюю часть другим цветом.
Немного терминологии - ВЕРТЕКС (vertex) - точка (представьте квадрат , у него четыре вершины, так вот они и есть ВЕРТЕКСы), ребра (edge) - стороны того же квадрата, полигоны - плоскость квадрата (четырехугольники в случае квадрата).
Теперь будем с задней части (зеленый МЕШ) удалять ненужное, чтобы потом склеить с передней частью (фиолетовый МЕШ). Нажимаем правой кнопкой мыши на зеленом МЕШе и выбираем Object Properties, затем в окошке ставим галочку напротив See-Through, тем самым сделав зеленый меш прозрачным, так удобнее, но затем в работе, можно будет переключаться между прозрачным/непрозрачным видами.
Затем выбираем модификатор Editable Mesh справа вверху, и выбираем красный квадратик - ПОЛИГОНы.
Теперь с зажатым CTRL левой кнопкой мыши мы щелкаем по полигонам модели и выбираем их (как файлы в обычной папке), они становятся красными.
По сути нам надо выделить ту часть прозрачного МЕШа, которая приблизительно совпадает с фиолетовым мешем, если нечаянно выделили не тот полигон, нужно зажать ALT и нажать по нему левой кнопкой мыши. Можно также выделять протягиванием с зажатой левой кнопкой мыши.
Получаем приблизительно такую вещь
Важная информация для удобства выделения, в выделенном списке на картинке вверху слева можно выбирать то, что хотите выделять - либо ВСЕ (ALL), либо только МЕШ (Geometry), либо только кости (Bone).
Далее выделяем половину задней - зеленой части, удаляем ее, так проще, изменим только другую - оставшуюся половину, а потом отзеркалим, и будет полноценная задняя часть))).
Далее, можно увидеть, что задняя часть состоит из большего числа полигонов - так модель выглядит ровнее/красивее, но тк передняя часть имеет другое строение, и я не хочу ее менять, мы заднюю часть приведем к виду передней части
Посмотрите на зеленый меш, в области синих треугольников мы видим 4 полигона, мы их выделим и удалим, а на их место создадим два полигона по контуру синих линий. Для этого, когда выбран справа красный квадратик в разделе Edit Geometry нажимаем кнопку Create (когда закончим, нужно отжать эту кнопку) и левой кнопкой мыши создаем полигоны.
Понаблюдайте за КУРСОРОМ мыши, когда вы соединяете его с уже созданной точкой (ВЕРТЕКС) полигона, он меняет форму, что означает, что ваш будущий полигон соединиться с уже существующим, если вы нажмете левой кнопкой мыши в данном месте. Если вы нарисовали треугольник и полигон никак не образуется, а курсор "хочет" продолжать рисовать фигуру, нажмите правую кнопку мыши и рисование закончится, а полигон создается. Таким образом проходимся по всей модели задней части (зеленый МЕШ).
Затем по контуру фиолетовой части двигаем соответствующие точки зеленого меша, выбираем вертексы и двигаем как можно ближе:
Здесь уже проявляем творческую смекалку, это долго, местами нудно, приходится часто сохранять, отменять, переделывать по-другому, тк на внешний вид модели влияет, как будут располагаться полигоны (смотри картинку), повторюсь, здесь уже творчество:
Поверьте, зеленое расположение полигонов и синее на картинке сверху по разному влияют на внешний вид модели, какой выбирать - надо исходить из конкретного случая в процессе моделирования.
Дальше, напишу некоторые истины 3дмакса.
Чтобы менять вид, можно нажать на строчку, показанную на картинке
Там как бы три кнопки - "плюсик", "orthographic", "smooth+highlights" с выпадающими контекстными меню. Разберем их.
"+" меню нам нужно для просмотра наличия "открытых ребер" - "+" - xView - Open Edges
Это штука нужна для проверки, когда сделали модель, посмотрели на наличие открытых ребер - может забыли где соединить, пропустили...Они на модели подсвечиваются зеленым цветом.
Вторая кнопка "orthographic" - выбор вида, перспектива, фронтальная проекция, вид сбоку и тд, там на английском названия, но кто учил язык легко разберется.
Ну и наконец, "smooth+highlights" - в ней можно выбрать Wireframe, иногда необходимый вид при редактировании модели - смотри картинку ниже
Дальше, еще нужные кнопки, смотри картинку
Здесь 1 - просто выбор объекта, 2 - выбор с перемещением, можно двигать произвольно, а можно навести на появляющееся отображение любой из трех осей и двигать только вдоль выбранной оси, 3 - выбор и вращение, 4 - как раз "отзеркаливание".
Если у нас выбран любой меш, зажимаем ALT и потом зажав колесико мыши, мы можем поворачивать/вращать модель, соответственно колесико еще масштабирует вид на модель.
Кнопки для работы с мешем (которые справа под модификатором Editable Mesh), при выбранном модификаторе Editable Mesh, Create- создать вертекс/ребро/полигон, смотря что выбрано, Attach - присоединение (нужно, когда зеленый меш будем присоединять к фиолетовому, пока у нас как бы две разных модели), weld - сварка, она для соединения вертексов, как бы сваривает два/три/четыре вертекса в один, причем они должны располагаться как можно ближе друг к другу, иначе сварка просто не состоится.
Продолжаем работать с моделью, я упомянул, что нужно зеленый меш придвинуть к фиолетовому, как можно ближе. Можно вручную двигать соответствующие вертексы, можно пустоту между двумя мешами дорисовать полигонами, создавая их на зеленом меше. Главное, чтобы задняя часть была логичным продолжением передней части и сочеталась с ней, посмотрите на картинке:
Обратите внимание, что точки расположены напротив друг друга у обоих мешей, чтобы мы могли без проблем потом их "сварить".
Также помимо ручного варианта передвижения точек, можно сделать следующее (очень долгий вариант):
выбрать на фиолетовом меше (при выбранном модификаторе Editable Mesh) вертекс, нажать правой кнопкой мыши и в появляющемся контекстном меню напротив слова Move нажать на квадратик, чтобы вылезла табличка с координатами этой точки по трем осям.
На верхней картинке смотрите только на оператор Move и квадратик, чтобы понять как открыть меню, показанное на нижней картинке
Запомните эти числа, и проставьте их в табличку координат для соответствующего вертекса на зеленом меше. Нажав Enter вы увидите, как точка зеленого меша подвинется с большой точностью к соответствующей ей точке на фиолетовом меше.
Когда таким образом вы подгоните половину (как мы помним, работаем именно с половиной, так легче!!!) задней части головы к передней части, выделяем заднюю часть и жмем на кнопку Mirror (чтобы отзеркалить половину).
В открывшемся контекстном меню ставим галочку напротив Copy и жмем ОК.
Теперь у нас две половины задней части головы, но они пока являются двумя разными моделями, чтобы их объединить, нажимаем на одну из половин, потом кнопку Attach, и щелкаем по другой половине, отжимаем кнопку Attach. Теперь у нас полноценная задняя часть головы.
Но давайте включим OPEN Edges для проверки неспаянных ребер, естественно по краям модели если будут открытые_ребра - это нормально, если внутри модели - их надо будет спаять:
На рисунке видно, что в месте соединения двух половинок задней части головы, у нас есть открытые_ребра, выделяем вертексы по-очереди вдоль этих ребер и жмем кнопку Selected в разделе оператора WELD справа.
Мы увидим, как открытые_ребра вдоль центра задней части головы исчезают))).
Теперь, думаю, можно соединить обе части - переднюю и заднюю - вместе тем же способом, что и половинки задней части головы, причем К ПЕРЕДНЕЙ мы крепим ЗАДНЮЮ часть. Затем свариваем соответствующие вертексы между задней и передней частью уже одной модели головы. Контролируем себя с помощью открытых_ребер. Можно аккуратно выделить несколько вертексов и сварить, это допустимо, если вы очень точно, максимально близко расположили соответствующие вертексы друг к другу, тк обратите внимание на число напротив кнопки Selected, оно как бы задает расстояние сварки, те если оно 0,003, то на таком расстоянии точки сварятся, а на большем - нет.
Соответственно внешние ребра останутся открытыми.
Далее выделяем модель на модификаторе Editable Mesh на уровне полигонов полностью, в правом меню немного прокручиваем вниз, чтобы увидеть такую строчку AUTO SMOOTH с базовым значением у меня 45,0. Ставим сначала значение 0 и жмем auto smooth, увидим как модель вся станет грубой, потом ставим значение 45 и снова жмем auto smooth, теперь модель вся станет равномерно гладкой.
Двигаемся дальше. Присваиваем модели модификатор Edit Normals, он будет выше модификатора Editable Mesh. У меня на предыдущих скриншотах уже есть разные модификаторы, не обращайте внимания, тк картинки делаю уже с готовой модели, и все нужные модификаторы у меня уже присвоены.
Нажимаем ctrl+A, чтобы выделить все нормали модели, потом жмем сначала на кнопку Break справа под модификаторами, а потом на кнопку Unify.
Вещь несложная, но мне подсказали - полезная, для улучшения модели, поэтому лучше сделать))).
Идем дальше. Вообще, при открытии готовых моделей из игры, у них уже есть присвоенный модификатор SKIN, его суть заключается в том, чтобы МЕШ - кожа (skin) присоединить к соответствующим костям правильно. Те допустим верхняя часть головы НЕ должна быть присоединена к кости ноги, тк кость ноги будет двигаться в процессе анимации, а за ней все точки МЕШа, которые присоединили к этой кости. Тк передняя часть головы у нас была отдельной моделью, у нее уже был готовый СКИН, причем более чем адекватный, для того чтобы его сохранить, мы именно к ПЕРЕДНЕЙ части присоединяли заднюю часть, а не наоборот (тогда СКИН передней части просто не сохраняется)
Как проходит процесс СКИНинга, справа в меню под модификаторами нужно нажать Edit Envelopes (или жмем плюсик у модификатора SKIN и потом Envelope), мы увидим как окрасится в разные цвета часть модели, также справа мы видим список костей, к которым крепится кожа - наш с вами МЕШ (модель). Тк у нас модель головы, костей ног мы там не увидим, тк модель головы к ним крепится НЕ должна. Чтобы сделать правильный СКИНинг задней части, откроем готовую модель полноценной женской головы из игры (ту, от которой отрезали заднюю часть), хоть мы немного меняли заднюю часть, приводя ее в соответствие с передней, все равно, стараемся выставить такие же цвета и в том же месте, как и на готовой модели. Как выставляются цвета, а точнее ВЕСа вертексов (weight) - каждому весу свой цвет соответствует, например весу 1 - цвет красный, что значит, что данная кость полностью влияет на данный вертекс, если желтый - средняя степень влияния, синий - очень слабое влияние. Мы выбираем справа одну и ту же кость (на примерочной модели и на нашей), под разделом Select ставим галочку Vertices и выбираем какой-то вертекс
Затем справа на панели модификатора прокручиваем вниз пока не увидим иконку гаечного ключа, рядом кнопку Weight Table...Жмем на "гаечный ключ" и видим открывшееся контекстное меню Weight Tool.
Там мы видим, какой вес у нашего вертекса для разных костей - может одной, может двух и тд...Такой же вес ставим на нашей модели.
Щелкаем на цифирки в меню - 0, 0.1, 0.25 и тд, тем самым назначая нужный вес..Цвет будет меняться в зависимости от значения. Можно выставить очень точное значение, например не 0.5, а 0.526, это значение вводим в меню напротив Set Weight и жмем саму кнопку Set Weight. Максимальное значение, напоминаю, 1. Минимальное - 0, те кость не будет влиять на вертекс со значением веса = 0. Хочу сразу успокоить вас, когда вы столкнетесь с ситуацией, что пытаетесь изменить вес вертекса для кости, а он не меняется, ничего страшного, вы будете заниматься и другими костями, и если этот вертекс связан должен быть с двумя костями, выставив какое-то значение веса для второй кости, вы увидите, как у той самой первой он изменится по формуле "1 – вес второй кости". Таким образом нужно добиться сходства весов задней части вашей модели и весов ванильной - примерочной модели. Если мы нажмем кнопку Weight Table, увидим таблицу, где можно видеть все вертексы, кости и значения весов, в таблице также можно вводить значения весов и менять их. Здесь долгая, утомительная работа, требующая внимательности, чтобы выставить правильные веса.
Если вы делаете новую модель, например, той же головы, вы добавляйте к ней через импорт модель головы из игры и удаляйте ванильный меш, чтобы остались лишь кости и ваша новая модель, присвойте ей модификатор SKIN, вы можете видеть, что справа в списке костей никаких костей нет, для этого жмем на кнопку ADD напротив раздела Bones, появляется меню, где выбираем нужные вам кости или все кости, и жмем Select. Вы увидите, как эти добавятся в список справа под модификатором.
Что еще необходимо сказать про модификатор SKIN...Если по каким-то причинам вам после СКИНинга необходимо передвинуть/повернуть модель, сначала убираем галочки с пунктов Paint Blend Weights и Always Deform...
Потом выбираем уже назначенный модификатор Editable Mesh, двигаем/вращаем ее, затем переходим снова в SKIN и снова ставим те же галочки.
В конце статьи я еще немного добавлю про СКИНинг, только там на примере другой модели, мы рассмотрим очень полезный модификатор Skin Wrap.
Двигаемся дальше - чем дальше, тем интереснее)))..Модель наша готова, но теперь надо ее раскрасить текстурами, а для этого нужно выполнить развертку нашей модели – причем сделать постараться ее так, чтобы сохранить элементы развертки передней части модели nordic_seeress_01, той самой, помните, которую мы брали из игры без изменений...Чтобы не рисовать заново уже нарисованное разработчиками на высоком уровне женское лицо)))..Развертка по сути - это отображение нашей 3д-модели на 2д-поверхности, чтобы ее выполнить, нужно нашу модель разрезать с помощью швов, надо стараться выполнять швы в тех местах модели, которые находятся как можно меньше/реже на виду...
Давайте обратимся к картинкам с трех сторон уже готовых швов для нашей модели -
Мы видим зеленые линии - это и есть швы, те разрезы нашей модели...Сначала я подробнее остановлюсь на местах разреза...Первое, это конечно, внешние грани модели - подчеркнул красным
Дальше, отдельно швы по периметру глаз и рта (губы) -
Следующий шов (один из самых неудобных для рисования, тк он внутри модели, надо ее делать прозрачной, аккуратно вращать и не запутаться в линиях) - это как бы рот изнутри, эта часть модели, как я понимаю, реализована, чтобы видеть при анимации открывания рта горло, язык - те для реалистичности...
На рисунке красным цветом выделены внутренности рта - горло/язык...Синим цветом я показал наружную часть рта (губы) для сравнения...Вид изнутри модели, модель прозрачная...
Последний шов мы делаем по центру головы сзади (немного заходим на макушку), тк эта часть по сути будет прикрыта волосами, шлемом, может какой шкурой, и это будет не сильно заметно на текстуре.
Вот такие швы будем делать, на верхних картинках уже готовые швы просто для наглядности.
Как делать швы, развертку - сначала назначаем модификатор Unwrap UVW, он будет в списке наших модификаторов самым верхним.
После назначения модификатора мы увидим, как на модели появятся зеленые линии - это АВТОшвы, те швы автоматически выполненные модификатором. Видно, что они сделаны и в других местах модели, ничего страшного.
Чтобы убрать зеленые линии - автошвы, листаем меню модификатора (которое справа), и убираем галочку с Map Seams, который находится в разделе Configure-Display, чтобы включить автошвы снова, ставим галочку...
Как рисовать швы вручную (они будут отображаться СИНИМ цветом) -
В разделе Peel - Seams выбираем иконку "зеленой пунктирной линии с белой стрелкой", которая называется Edit Seams и начинаем левой кнопкой мыши щелкать по тем ребрам, которые будут необходимым нам разрезом.
Если выбрали случайно лишнее ребро, зажимаем ALT и щелкаем по этому лишнему ребру. Когда закончили разрезы, отжимаем иконку Edit Seams...Видимость ручных швов регулируется галочкой напротив Peel Seams.
На данном этапе лично я долго мучился, чтобы получить хорошую развертку, с элементами частей развертки ванильной модели nordic_seeress_01 из игры...
Делаем следующее...Делаем с АВТОшвами, рисовать вручную не нужно, тк все равно дорабатывать придется в окне развертки...Но это только конкретно для нашей модели, для других - делать по-другому, только теми же способами...
Выбираем значок полигонов и нажимаем ctrl+A, чтобы выбрать всю модель (она покраснеет ))) )
Затем справа щелкаем кнопку Open UV Editor для открытия окна развертки
В окне развертки (далее ОР) мы увидим возможно абракадабру, ничего страшного, исправим)))..
Для начала давайте отделим соединение (на рисунке обозначена 3) между разверткой лица (на рисунке обозначена 1) и частью головы (на рисунке обозначена 2):
Щелкнем левой кнопкой мыши где-нибудь вне ОР, чтобы сбросить общее выделение. Далее, общие принципы работы с разверткой - выделять можно на уровне точек, ребер, полигонов - это выбирается справа под модификатором
Выделять можно как в окне развертки, так и на модели - ОР и модель связаны между собой визуально...Более того вы можете увидеть, например, нужный полигон на развертке и его же на модели, так легче понять, что у вас в этом месте - щека или шея)))...С зажатым ctrl можно выделять несколько объектов, с зажатым ALT - убирать ненужное выделение, можно выделять протягиванием, те зажатой левой кнопкой мыши...Продолжим, выделяем то самое соединение (которое на рисунке обозначено 3), щелкаем по нему правой кнопкой мыши и нажимаем Break
Передвинем этот кусок вниз, чтобы не мешал.
Как перемещать/вращать/масштабировать куски развертки - с помощью иконок слева вверху ОР:
Дальше, давайте передвинем сразу куски - глаза и рот(внутренний),чтобы не мешались, можно даже временно за пределы шахматного поля (главное в конце не забыть вернуть их на свободное место на шахматном поле):
Давайте покажу, что лицо развертки мне удалось сохранить согласно текстуре ванильной модели, для этого сначала поменяем размер поля развертки (у ванильной модели оно 1024 на 512), щелкаем на иконку "Brings Up the Options Dialog" справа вверху ОР и меняем разрешение 256-256 на 1024-512 и ОК
Видим, что размер шахматного поля изменился...Теперь сделаем фон развертки в виде текстуры ванильной модели, а не шахматного поля(фон можно менять когда угодно), для этого щелкаем справа вверху на CheckerPattern (Checker), выбираем в выпадающем списке Pick Texture
В открывшемся окне выбираем Bitmap
И далее загружаем нашу текстуру, вместо шахматного поля появится фон текстуры ванильной модели, можно видеть как лицо развертки совпадает с лицом на ванильной текстуре, это хорошо (опять же, напоминаю, это для НАШЕГО конкретного случая):
Теперь, убедившись, можно переключиться обратно на шахматную доску)))..
Теперь отделим кусок, соединяющий шею и половинку задней части головы (красное выделение на картинке)
Синим цветом на картинке сверху я обозначил половинку задней части головы, на самом деле это ДВЕ половинки задней части головы, наложенные друг на друга, давайте передвинем одну из половинок на свободное место:
Для чего выделим всю заднюю часть на ОР и затем на модели через ALT уберем половину выделения
Дальше, смотрим на следующую картинку, я немного передвинул куски развертки для удобства и выделил один кусок (красный на картинке), вы помимо этого видите СИНИЕ линии (ребра) на других кусках, так вот, эти СИНИЕ ребра обозначают место соединения с ребрами выделенного куска, ведь когда мы РЕЗАЛИ модель, ребра, по которым резали, стали принадлежать обоим получившимся кускам
Чтобы поточнее определить, какое ребро одного куска соотносится с ребром другого куска, давайте выберем "выделение по ребру" и выберем какое-нибудь ребро на одном куске, увидим на другом куске СИНЕЕ ребро
Таким образом мы можем соединить обратно эти два ребра, которые показаны на предыдущем рисунке, сделаем это с помощью команды Stitch Selected (нажимаем правой кнопкой мыши, появляется контекстное меню и там выбираем Stitch Selected)
Красиво?))) Ничего страшного, мы нажмем отмену действия (ctrl+z) и отменим изменение, просто нужно обратить ваше внимание, что в результате каких-то действий, можно получить подобные картинки, когда два куска пересекаются друг с другом, это будет ошибка в развертке, и их надо исправлять...Еще из этого примера вы можете увидеть, что тот кусок, ребро которого мы выделили, остался на месте, а другой кусок (у которого соответствующее ребро было синим) передвинулся и склеился по выделенному ребру с первым куском...а если бы мы выбрали ребро на куске-лице и нажали Stitch Selected, то этот кусок-лицо остается на месте, а другой кусок перелетит к нему для соединения, смотрите на картинке:
Давайте отразим по горизонтали кусок, который у нас слева от куска-лица, для чего мы его выделяем на уровне полигонов и нажимаем Tools - Flip Horizontal (там рядом есть еще кнопка Mirror Horizontal, если честно, я до конца не понимаю, в чем между ними разница)
Сейчас, на предыдущей картинке, я просто показал способ отражения куска развертки...Продолжаем работу с моделью...Давайте выделим несколько кусков развертки, каких, посмотрите на рисунке и нажмем кнопку Reset Peel (иконка загнутой белой стрелки в разделе Peel в ОР)
Получим нашу с вами заднюю часть головы
Давайте уменьшим масштаб этой части развертки для удобства и кусок лица отодвинем временно в сторону.
Теперь наш выделенный кусок мы разрежем на полигоны, сначала жмем Mapping, потом жмем Flatten Mapping
Мы увидим окошко этого оператора Flatten Mapping, в нем есть параметр Polygon Angle Threshold со значением 45...
Так вот, если мы увеличим этот параметр, кусок распадется на меньшее число кусочков: например, 90
Если мы поставим для этого параметра маленькое число, кусков будет много, например при =1 видим следующее
Вот этот вариант мы и оставим)))) передвинем эти куски вниз, слегка уменьшив масштаб, а кусок-лицо расположим в центре ОР
Теперь к нашему лицу будем по-очереди приклеивать все маленькие кусочки, часть этих кусков приклеится слева, другая часть - справа...Если мы просто выделим нужное ребро на лице и нажмем Stitch Selected, необходимый кусок подлетит к лицу и приклеится, но вы увидите, как кусок-лицо остается на месте, однако выделенное ребро (и смежные с ним вершины) слегка передвинется – попробуйте это сделать, приблизив камеру к ребру и убедитесь сами...Это не критично, но мы же хотели оставить кусок-лицо без изменений, причем, эти изменения могут быть НЕсимметричными с левой и правой сторон, а значит, когда будем рисовать текстуру, нам будет рисовать ГОРАЗДО сложнее, хотя бы тем, что уже не получится нарисовать одну половину в фотошопе и, скопировав, отразить по горизонтали/вертикали на другую половину развертки...Значит, нам кусок-лицо необходимо "железно" закрепить...Подобной кнопки я не нашел, зато у оператора Stitch Selected есть необходимая настройка, когда мы выбираем ребро, нажимаем правой кнопкой мыши для вызова меню, НЕ нажимайте сразу на Stitch Selected, а нажмите на квадратик напротив Stitch Selected для вызова дополнительного меню Stitch Tool:
В этом меню Stitch Tool мы видим параметр Bias, равный изначально 0,5
Так вот, если мы это значение ОБНУЛИМ (те Bias = 0), то наш кусок-лицо остается полностью неизменным...
Проделав описанную операцию, вы увидите, что присоединившийся кусок залезает на наше лицо.., на уровне выделения точек выберем точку, залезшую на лицо и отодвинем в сторону:
Вот здесь "шахматная доска" как фон окна развертки нам очень в помощь, посмотрите, что я не произвольно отодвинул точку(вертекс), а в угол белой ячейки - тогда нам проще будет двигать симметричный вертекс на правой стороне лица на такое же расстояние и под тем же углом, чтобы сохранить симметричность развертки:
Таким образом добавляем, передвигаем, сохраняя симметричность, все кусочки ))))
Также мы разрежем на кусочки оставшийся кусок-шея и потом добавим его к куску-лицу
Действия все аналогичные, поэтому покажу сразу конечный вариант развертки
Один момент, на котором надо остановиться, связан с тем, что мы присоединяем к лицу слева и справа кусочки, поэтому они будут просто нарастать слева и справа, никак не соединяясь друг с другом, типа такого:
На этом рисунке я просто показал, что нам надо будет соединить левую и правую части, не обращайте внимания, что там все криво, у меня не осталось сохранений в 3дмаксе на данной стадии, поэтому я тупо разрезал произвольно конечный вариант и отодвинул в сторону, чтобы заново не склеивать все куски до этого самого момента...Здесь нам снова поможет параметр Bias в меню Stitch Tool, только значение будем ставить не ноль, а другое, такое, чтобы две части - левая и правая- сдвигались равномерно и симметрично друг к другу, попробуйте это сделать, вы увидите наглядно, что части сдвигаются равномерно...ОБЯЗАТЕЛЬНО еще снимаем галочку в меню Stitch Tool с параметра Align Clusters (типа автоматического выравнивания развертки, нам в данном случае это не нужно, тк искажается лицо, попробуйте проделать с галочкой и без для сравнения и наглядности)!!!
При Bias = 0
Меняем Bias на значение, например, 0.5
А при значении Bias=0.42 получим нормальное расположение
Не забываем регулярно сохранять ваш 3дмакс-файл))))
Когда развертка готова, проверьте, что нет нигде пересечений элементов развертки, наложений, что все части развертки расположены в шахматной зоне - те в поле развертки, а не за пределами, когда во всем убедились, сохраним нашу развертку для фотошопа...Жмем Tools, потом Render UVW Template
Появится окошко с названием Render UVs
Давайте разберем, что здесь к чему...Width и Height это ширина-высота будущей текстуры, для нашей нынешней модели это 1024 на 512...Дальше, Show Overlap - я не знаю, для чего это нужно, где-то прочитал совет снимать галочку, так что снимаем...MODE - это вид текстуры, те NONE - текстура будет прозрачной на черном фоне, SOLID - текстура на черном фоне, но закрашенная серым цветом, NORMAL - текстура нормалей, нам пригодится, я свою текстуру нормал как раз делал из 3дмакса...Галочка напротив Visible Edges - показывает на текстуре все ребра, если снята, то ребра мы не увидим, только текстуру...Оба режима нам будут полезны..
Давайте выберем любой вид текстуры и нажмем Render UV Template в этом окошке:
Появится изображение нашей текстуры, жмем на дискету и сохраняем нашу текстуру...Лучше в формате TGA, тк нам в 3д максе и BOBе все равно надо будет экспортировать в этом формате текстуры...Думаю, с разверткой на этом закончим, теперь будем рисовать текстуры в фотошопе, используя максимально ванильную текстуру модели nordic_seeress_01...
Для начала откроем эту текстуру-помощницу nordic_seeress_01_diffuse в фотошопе, необходимо выделить лицо, глаза и рот-внутренний, самый лучший способ в этом случае, я считаю, это выделение по маске, для чего мы жмем на значок в левой части окна "редактирование в режиме БЫСТРАЯ МАСКА", обозначен на рисунке:
Инструментом "КИСТЬ" с жесткостью, непрозрачностью, нажимом 100% начинаем закрашивать необходимые части, я для быстроты, обычно рисую по контуру, а потом применяю заливку, на рисунке вы видите закрашенную часть КРАСНЫМ цветом, это справедливо для быстрой маски
Если мы отожмем значок БЫСТРОЙ МАСКИ, то увидим выделение
Когда выделили все, что вам нужно, сохраним выделение на новый слой для удобства, чтобы можно было всегда пользоваться этим выделением и не рисовать его заново, для чего жмем правой кнопкой мыши и "сохранить выделенную область", получим новый слой, где фон черный, а наше выделение белое:
Теперь, чтобы вызвать наше выделение, жмем "выделение" - "цветовой диапазон", в появляющемся окошке ставим разброс 200 и ОК
Затем переключаемся на наш фон, те саму картинку и видим наше выделение
Затем копируем выделение на нашу с вами новую текстуру, располагая ее правильно
Далее, можно придумать разные варианты заполнения оставшейся части текстуры, но это кожа, она не может быть только, грубо говоря красной или зеленой, посмотритесь в зеркало, тут светлее, тут темнее, тут немного красноватый оттенок, тут немного беловатый и тд....Здесь уже вступает в дело талант/нюх художника)))) Я не художник, тем более в компьютерной графике, поэтому я делал следующее:
- копируем слой лица на другой, чтобы если испортим, у нас останется первоначальный слой лица, и можем делать попытку номер 2
- с копией слоя начинаем действие: растягиваем во все стороны не спеша краски лица инструментом ПАЛЕЦ
Параметры инструмента подбираются индивидуально (сила нажима, интенсивность)...То, что у меня краска залезает за границы текстуры - это даже хорошо, тк эти части потом будут соединяться в шов на модели и если вы хоть немного (пару пикселей) пропустите, сделаете, как вам будет казаться, четко по линии текстуры, на модели будут белые или черные пиксели, которые вы не докрасили, и будет некрасиво....ОЧень далеко выходит за пределы текстуры смысла нет...Вот таким образом получаем нашу с вами диффуз-текстуру...
Посмотрите, зеленым цветом на картинке я выделил место спереди на шее, горле, его рисовал вручную, взяв цвет чуть темнее/светлее основного фона, нарисовал на другом слое, и потом ставил наложение слоя другое (по-умолчанию ОБЫЧНЫЕ) - можно "мягкий свет", можно еще какое, надо смотреть, какое больше подходит в конкретном случае
Это основные способы создания диффуз-текстуры, которые применял я....Во вкладке ИЗОБРАЖЕНИЕ-КОРРЕКЦИЯ есть разные операторы, которые позволяют менять тон, насыщенность и тд, пользуйтесь ими также, если хотите, например, сделать кожу более светлого оттенка и тд...
Обратите внимание на уши, у ванильной текстуры не было детализации, вручную рисовать ее тяжело, я просто скачал текстуру человека в хорошем разрешении, вырезал ухо (конечно с текстуры, я не кровожаден!!!))) ), скопировал его на мою текстуру и опять же перечисленными инструментами добился единства с остальной текстурой, по-моему получилось неплохо, цельно...
Почаще сохраняйте файл и проверяйте периодически в 3дмакс, как текстура смотрится на модели...
Дальше, сразу из нашей диффуз-текстуры делаем текстуру level.tga, просто обесцветив нашу диффуз-текстуру и сохраним...
Далее, текстура normal, в этот раз я ее сделал, взяв основу прямо из 3дмакс, чуть выше писал об этом...Откроем ее в фотошоп, она немного отличается от подобных текстур-normal в игре, я покажу как это исправить:
Посмотрите справа каналы, выбираем синий и закрашиваем полностью черным:
Затем выбираем красный канал и закрашиваем белым цветом:
Текстура normal приобретает схожий с игровыми вид:
На ней желтый цвет обозначает "впадины", а красный цвет - "вершины"...Те конечно, не настоящие впадины/вершины, а только ВИЗУАЛЬНОЕ отображение...
Опять же, назначили совместно с диффуз-текстурой на модель в 3дмаксе и проверили, устраивает ли вас данная текстура, или что-то нужно поменять....
Далее текстура gloss_map, опять же чтобы привести ее в вид подобно игровым, нужно открыть свою диффуз-текстуру и обесцветить, а потом в синем канале закрасить все черным...
Дальше, пользуясь правилом "СВЕТЛЫЙ тон дает блики, глянцевость, ТЕМНЫЙ тон дает матовость", отрегулировать вашу глосс-текстуру, сохраняя и проверяя ее в 3дмакс на модели...
Текстура Specular, делаем опять же из диффуз-текстуры, опять же можно обесцветить и пользоваться правилом "белые тона дают блеск, черные тона дают матовость"....
В текстурах level, specular, gloss_map альфа-канал не требуется...
Напоминаю, что это способы, с помощью которых я сделал себе модель и текстуры, вполне возможно, существуют способы более грамотные и правильные для создания текстур, буду рад услышать их от вас в комментариях...
С текстурами, думаю, все, давайте поговорим немного об анимации...
Вообще, в АТВ с анимацией по большому счету все в порядке, набор файлов анимации - те разных движений модели - предостаточно, и выполнены на высоком идейно-художественном уровне)))) Но, меня эта тема заинтересовала потому, что допустим игровые ЛЬВЫ, ВОЛКИ не имеют боевой анимации - удара, прыжка с укусом и тп....И если мы создадим отряд с боевыми львами вместо собак, все будет работать, но, приблизив камеру в бою, увидим как львы стоят между рядов противника, и противник периодически умирает, иногда умирают львы - это происходит потому, что в таблицах мы прописали цифры, а визуального отображения нет....(как например есть у собак, мы видим - собака прыгает на воина, тот от этого удара погибает, все видно и понятно)....Можно в боевую анимацию записать например файл "бег_льва", тогда мы увидим, что при беге льва среди врагов, те будут погибать, тк происходит в таблицах боевая анимация и происходит расчет урона и гибели воинов, он опять же - это некрасиво, нужна видимость атаки, например, просто удар лапой и тогда все понятно, лев ударил лапой, воин погиб от этого...
Прекрасный инструмент BOB, однако, не позволит вам сделать новую анимацию для ванильных скелетов, точнее вы сделаете, но в игре будет работать либо ваша новая анимация, либо ванильная, вместе соединенные они вам отобразят белиберду!!!! Я лично проверил это несколькими способами, плюс создатель RMe - Phazer сообщил мне то же самое, он с другими мододелами тоже пытались проделать эту операцию в BOB...Поэтому в своей программе RMe он реализовал замечательный экспорт из формата 3дмакса FBX в игровой ANIM, но пока эта версия RMe находится на тестировании, есть еще проблемы, если например, программа экспортирует все анимации волков без проблем, то с моделями собак - проблема, там скелет и скин модели смотрят в разные стороны и вручную вряд ли вы сможете соединить их правильно...
Теоретически, вы можете создать новый скелет и новые анимации для моделей игры, но лично я это НЕ проверял, тк помимо создания и экспорта, полагаю, надо заполнить несколько таблиц в ПФМ...Мной проверено лично замена ванильного скелета волка на ОДНОИМЕННЫЙ другой скелет (визуально он выглядит таким же, но только для вас, а не для BOB) с созданием для этого скелета анимации, минус этого способа, что все другие ванильные анимации волка будут в игре работать неправильно (волк будет расползаться, летать и тп) и по сути, я должен пересоздать все ванильные анимации волка с новым скелетом, тогда будет полноценная модель в игре...
Сложного ничего нет, я вам покажу простейший способ создания анимации в 3дмакс, экспорт в BOB...
Откроем файл wolf.anim.DAE (те файл скелета модели - базовый, с помощью которого я в первой своей статье описывал экспорт модели!!!) в 3дмакс:
СЕйчас поясню, что я обозначил на рисунке цифрами, цифра 1 указывает нам на панель кадров анимации от 0 до 100, цифра 4 - это панель воспроизведения анимации, когда она создана, принцип как у любого проигрывателя типа ВИНАМП, нажали PLAY и увидите как ползунок кадров 1 поползет по панели кадров, а модель будет двигаться....Цифра 2 указывает на кнопку TOGGLE SET KEY MODE, нажав на которую вы попадете в режим ручного создания анимации, вы увидите красную рамку при нажатии на эту кнопку, кнопка 3 SET KEYS (в виде ключа) - при нажатии на нее на панели кадров создастся ключ, он действует по типу сохранения скелета, скина модели в определенной позиции..
Давайте сделаем простейшую анимацию:
Сначала жмем SET KEY, появилась красная рамка, напоминающая нам о режиме создания анимации:
Затем, выделив ВСЮ модель и скелет, жмем кнопку со значком ключа SET KEYS, чтобы зафиксировать на нулевом кадре наше ванильное расположение модели:
Слева нарисованная мной зеленая стрелка указывает на нулевой кадр, если присмотреться, вы увидите, что там появится зелено-красно-синий значок, означающий КЛЮЧ на этом кадре...
Дальше передвинем ползунок кадров, например на 30 кадр
Далее мы должны двигать КОСТИ, ведь скин (те шкура модели) соединен с костями и будет двигаться вслед за ними...Для этого вспомним в начале статьи мои комментарии о способах выделения (all, geometry, bone), пользуясь этим выделим какую-нибудь кость и передвинем (если скин мешает, выбрали кость, временно скрыли скин или выбрали скин, скрыли, а потом выбрали кость):
Я передвинул чуть вперед и вверх левую ногу, затем снова выделяем ВСЕ (и скелет, и скин модели) и жмем на значок ключа:
Видим, что на 30 кадре появился значок, это правильно (для удобства вида отодвинул ползунок в сторону)...
Теперь можем нажать кнопку TOGGLE SET KEY MODE, чтобы выйти из режима создания анимации и нажать PLAY, посмотреть, что получилось, можно вручную двигать ползунок медленно, внимательно просматривая свою анимацию)))) Сохраним 3дмакс-файл...Дальше экспортируем в CS2 (я назвал primerchik.CS2)...
Еще раз загрузим файл wolf.anim.DAE, удалим весь скин и , как я описывал в своей первой статье, повернем скелет на 180 по оси Z и назначим значению координаты Y минусовое значение, сохраним как wolf.CS2...
Затем копируем файл wolf.CS2 в Акиту (Total War Attila\assembly_kit\raw_data\animations\skeletons), а файл primerchik.CS2 помещаем по адресу (Total War Attila\assembly_kit\raw_data\animations\ROME2\animals\ wolf)...
Необходимо также сделать несколько правил для BOB, сейчас покажу текст и куда помещать:
rules.bob (Total War Attila\assembly_kit\raw_data\animations\ROME2\animals) должен содержать текст
[Animation]
AnimationType = wolf
rules.bob (Total War Attila\assembly_kit\raw_data\animations\ROME2\animals\ wolf) должен содержать текст
[Animation]
AnimationType = wolf
CoreTranslations = false
FaceTranslations = false
FaceRotations = false
LeftHandTranslations = false
LeftHandRotations = false
RightHandTranslations = false
RightHandRotations = false
IgnoreMetadata = true
FPS=15
Еще в папку Total War Attila\assembly_kit\raw_data\animations\skeletons помещаем файл wolf.bone_table, в котором должен быть текст
Выполним экспорт скелета и файла анимации в BOB и полученные файлы помещаем в пак, прописываем в таблицах анимацию (есть отдельные туториалы по этому делу, поэтому останавливаться на этом не буду), запускаем игру с модом и видим нашу анимацию:
А вот что происходит с ванильной анимацией (которая к сожалению в паре с нашей новой анимацией работать будет неправильно)
Для полного понимания происходящего, удалите файлы скелетона (wolf.anim и wolf.bone_inv_trans_mats) из вашего пака, вы увидите:
ваша созданная анимация
ванильная анимация
Вот так)))))
Очень хочется, чтобы программист Phazer полностью доделал свою замечательную программу RMe и тогда экспортировать анимацию будет гораздо легче и появится возможность сочетать свою созданную анимацию и ванильную вместе в игре...
С анимацией все, а мы в завершении статьи рассмотрим модификатор в 3д макс - SKIN WRAP
Суть этого модификатора такова - упрощение процесса скиннинга для модели, не имеющей скиннинга с помощью ПОХОЖЕЙ модели со скиннингом...
Откроем файл (или сделаем) без скелета и скининга, у меня это ванильная модель из игры - женские руки:
Импортируем к ней модель других женских рук из игры со скиннингом (при этом нашей модели дадим желтый цвет, а модели со скиннингом синий для удобства):
Затем нашей модели присваиваем модификатор skin wrap
Жмем кнопочку ADD и после нажимаем на синюю модель (со скиннингом), у нас появится в окошке над кнопкой ADD название синей модели
Прокручиваем вниз до кнопки Convert to Skin и нажимаем ее
Мы увидим как у нашей желтой модели появится модификатор SKIN
Конечно, нужно проверить весь скиннинг, может немного уточнить веса, но в целом, процесс очень удовлетворительный (зависит от схожести двух моделей и то, как они расположены относительно друг друга - должны быть близко и точно как на картинках)...
На этом, думаю, можно завершить статью...Описанные в ней способы - не панацея, наверняка существуют и другие более качественные способы, но это те, которыми пользовался я, и результаты мне понравились, поэтому делюсь ими с вами...Буду рад в комментариях обсуждениям, вопросам, уточнениям, замечаниям...Удачного всем модостроения!!!
В этой статье я хочу остановить НЕ на точной последовательности моих действий по 3д-моделингу головы, а на основных моментах, ошибках, нюансах. Статья поможет и мне - не забыть то, что я уже проделал, но в силу неопытности легко могу позабыть, и другим людям, которые хотят 3д-моделировать для АТВ и не только. Думаю, опытные, профессиональные 3д-моделисты с легкой улыбкой закроют данную статью и займутся своими профессиональными делами))) - но начинающему человеку(кстати, к которым отношусь и я), считаю, будет полезным почитать написанное здесь.
Вначале, как всегда, хочу выразить благодарность всем людям, которые создавали необходимые программы, помогали мне советами и идеями - поименно перечислять не буду, думаю, если они когда и прочтут эту статью, сразу поймут, что речь о них))).
Что ж, теперь можно и приступать.
Некоторые моменты 3д-моделирования для АТВ, создания развертки, текстуры и анимация.
Итак, в предыдущей статье мы научились экспортировать нужные нам дефолтные РИГИД_модели из игры. Какая была моя цель - из понравившейся мне женской головы ригид_модели nordic_seeress_01 сделать полноценную, тк базовая обладала лишь передней половиной головы - это объясняется тем, что модель в игре - жрец, с разными платками/косынками, которые заднюю часть - дырку просто закрывали.
Первое, на чем остановлюсь, настройки МАСШТАБИРОВАНИЯ в 3дмакс (у меня версия 2014).
Важный момент, тк у меня был казус, когда все в 3дмаксе сделал правильно, экспортировал удачно, в Аките их не видно - оказалось, что модели были просто раз в 100 меньше обычных!!!!
Итак, что нужно сделать, смотрим картинку:
Customize - Units Setup - System Unit Setup значения выставляем, как на рисунке, можно увидеть, что используются ДЮЙМЫ (inches)
Далее, когда мы, например, загружаем файл ДАЕ, при открытии в 3дмакс, настройки будут такими, как на картинке (раздел Units - Scale factor):
Еще один момент, связанный с масштабированием, иногда мы при открытии файла (как правило стороннего, не из игры) можем увидеть следующее окно
Так вот, чтобы не сбить нашу настройку масштаба в 3дмаксе(она нужна для АттилыТВ), выбираем ВЕРХНИЙ ответ Rescale the File Objects to the System Unit Scale?, что означает, привести масштаб нового файла к масштабу в настройках 3дмакс. Нижний же вариант автоматически изменит настройку масштаба в 3дмакс.
Так, с масштабом, кажется, все.
Второе, что мы изучим. Открываем полноценную модель женской головы из игры. Можно подкрасить ее для удобства
Импортируем переднюю часть головы , удаляем ненужные части МЕШа (просто выделить МЕШ, нажать DELETE), и опять же для удобства подкрасим переднюю часть другим цветом.
Немного терминологии - ВЕРТЕКС (vertex) - точка (представьте квадрат , у него четыре вершины, так вот они и есть ВЕРТЕКСы), ребра (edge) - стороны того же квадрата, полигоны - плоскость квадрата (четырехугольники в случае квадрата).
Теперь будем с задней части (зеленый МЕШ) удалять ненужное, чтобы потом склеить с передней частью (фиолетовый МЕШ). Нажимаем правой кнопкой мыши на зеленом МЕШе и выбираем Object Properties, затем в окошке ставим галочку напротив See-Through, тем самым сделав зеленый меш прозрачным, так удобнее, но затем в работе, можно будет переключаться между прозрачным/непрозрачным видами.
Затем выбираем модификатор Editable Mesh справа вверху, и выбираем красный квадратик - ПОЛИГОНы.
Теперь с зажатым CTRL левой кнопкой мыши мы щелкаем по полигонам модели и выбираем их (как файлы в обычной папке), они становятся красными.
По сути нам надо выделить ту часть прозрачного МЕШа, которая приблизительно совпадает с фиолетовым мешем, если нечаянно выделили не тот полигон, нужно зажать ALT и нажать по нему левой кнопкой мыши. Можно также выделять протягиванием с зажатой левой кнопкой мыши.
Получаем приблизительно такую вещь
Важная информация для удобства выделения, в выделенном списке на картинке вверху слева можно выбирать то, что хотите выделять - либо ВСЕ (ALL), либо только МЕШ (Geometry), либо только кости (Bone).
Далее выделяем половину задней - зеленой части, удаляем ее, так проще, изменим только другую - оставшуюся половину, а потом отзеркалим, и будет полноценная задняя часть))).
Далее, можно увидеть, что задняя часть состоит из большего числа полигонов - так модель выглядит ровнее/красивее, но тк передняя часть имеет другое строение, и я не хочу ее менять, мы заднюю часть приведем к виду передней части
Посмотрите на зеленый меш, в области синих треугольников мы видим 4 полигона, мы их выделим и удалим, а на их место создадим два полигона по контуру синих линий. Для этого, когда выбран справа красный квадратик в разделе Edit Geometry нажимаем кнопку Create (когда закончим, нужно отжать эту кнопку) и левой кнопкой мыши создаем полигоны.
Понаблюдайте за КУРСОРОМ мыши, когда вы соединяете его с уже созданной точкой (ВЕРТЕКС) полигона, он меняет форму, что означает, что ваш будущий полигон соединиться с уже существующим, если вы нажмете левой кнопкой мыши в данном месте. Если вы нарисовали треугольник и полигон никак не образуется, а курсор "хочет" продолжать рисовать фигуру, нажмите правую кнопку мыши и рисование закончится, а полигон создается. Таким образом проходимся по всей модели задней части (зеленый МЕШ).
Затем по контуру фиолетовой части двигаем соответствующие точки зеленого меша, выбираем вертексы и двигаем как можно ближе:
Здесь уже проявляем творческую смекалку, это долго, местами нудно, приходится часто сохранять, отменять, переделывать по-другому, тк на внешний вид модели влияет, как будут располагаться полигоны (смотри картинку), повторюсь, здесь уже творчество:
Поверьте, зеленое расположение полигонов и синее на картинке сверху по разному влияют на внешний вид модели, какой выбирать - надо исходить из конкретного случая в процессе моделирования.
Дальше, напишу некоторые истины 3дмакса.
Чтобы менять вид, можно нажать на строчку, показанную на картинке
Там как бы три кнопки - "плюсик", "orthographic", "smooth+highlights" с выпадающими контекстными меню. Разберем их.
"+" меню нам нужно для просмотра наличия "открытых ребер" - "+" - xView - Open Edges
Это штука нужна для проверки, когда сделали модель, посмотрели на наличие открытых ребер - может забыли где соединить, пропустили...Они на модели подсвечиваются зеленым цветом.
Вторая кнопка "orthographic" - выбор вида, перспектива, фронтальная проекция, вид сбоку и тд, там на английском названия, но кто учил язык легко разберется.
Ну и наконец, "smooth+highlights" - в ней можно выбрать Wireframe, иногда необходимый вид при редактировании модели - смотри картинку ниже
Дальше, еще нужные кнопки, смотри картинку
Здесь 1 - просто выбор объекта, 2 - выбор с перемещением, можно двигать произвольно, а можно навести на появляющееся отображение любой из трех осей и двигать только вдоль выбранной оси, 3 - выбор и вращение, 4 - как раз "отзеркаливание".
Если у нас выбран любой меш, зажимаем ALT и потом зажав колесико мыши, мы можем поворачивать/вращать модель, соответственно колесико еще масштабирует вид на модель.
Кнопки для работы с мешем (которые справа под модификатором Editable Mesh), при выбранном модификаторе Editable Mesh, Create- создать вертекс/ребро/полигон, смотря что выбрано, Attach - присоединение (нужно, когда зеленый меш будем присоединять к фиолетовому, пока у нас как бы две разных модели), weld - сварка, она для соединения вертексов, как бы сваривает два/три/четыре вертекса в один, причем они должны располагаться как можно ближе друг к другу, иначе сварка просто не состоится.
Продолжаем работать с моделью, я упомянул, что нужно зеленый меш придвинуть к фиолетовому, как можно ближе. Можно вручную двигать соответствующие вертексы, можно пустоту между двумя мешами дорисовать полигонами, создавая их на зеленом меше. Главное, чтобы задняя часть была логичным продолжением передней части и сочеталась с ней, посмотрите на картинке:
Обратите внимание, что точки расположены напротив друг друга у обоих мешей, чтобы мы могли без проблем потом их "сварить".
Также помимо ручного варианта передвижения точек, можно сделать следующее (очень долгий вариант):
выбрать на фиолетовом меше (при выбранном модификаторе Editable Mesh) вертекс, нажать правой кнопкой мыши и в появляющемся контекстном меню напротив слова Move нажать на квадратик, чтобы вылезла табличка с координатами этой точки по трем осям.
На верхней картинке смотрите только на оператор Move и квадратик, чтобы понять как открыть меню, показанное на нижней картинке
Запомните эти числа, и проставьте их в табличку координат для соответствующего вертекса на зеленом меше. Нажав Enter вы увидите, как точка зеленого меша подвинется с большой точностью к соответствующей ей точке на фиолетовом меше.
Когда таким образом вы подгоните половину (как мы помним, работаем именно с половиной, так легче!!!) задней части головы к передней части, выделяем заднюю часть и жмем на кнопку Mirror (чтобы отзеркалить половину).
В открывшемся контекстном меню ставим галочку напротив Copy и жмем ОК.
Теперь у нас две половины задней части головы, но они пока являются двумя разными моделями, чтобы их объединить, нажимаем на одну из половин, потом кнопку Attach, и щелкаем по другой половине, отжимаем кнопку Attach. Теперь у нас полноценная задняя часть головы.
Но давайте включим OPEN Edges для проверки неспаянных ребер, естественно по краям модели если будут открытые_ребра - это нормально, если внутри модели - их надо будет спаять:
На рисунке видно, что в месте соединения двух половинок задней части головы, у нас есть открытые_ребра, выделяем вертексы по-очереди вдоль этих ребер и жмем кнопку Selected в разделе оператора WELD справа.
Мы увидим, как открытые_ребра вдоль центра задней части головы исчезают))).
Теперь, думаю, можно соединить обе части - переднюю и заднюю - вместе тем же способом, что и половинки задней части головы, причем К ПЕРЕДНЕЙ мы крепим ЗАДНЮЮ часть. Затем свариваем соответствующие вертексы между задней и передней частью уже одной модели головы. Контролируем себя с помощью открытых_ребер. Можно аккуратно выделить несколько вертексов и сварить, это допустимо, если вы очень точно, максимально близко расположили соответствующие вертексы друг к другу, тк обратите внимание на число напротив кнопки Selected, оно как бы задает расстояние сварки, те если оно 0,003, то на таком расстоянии точки сварятся, а на большем - нет.
Соответственно внешние ребра останутся открытыми.
Далее выделяем модель на модификаторе Editable Mesh на уровне полигонов полностью, в правом меню немного прокручиваем вниз, чтобы увидеть такую строчку AUTO SMOOTH с базовым значением у меня 45,0. Ставим сначала значение 0 и жмем auto smooth, увидим как модель вся станет грубой, потом ставим значение 45 и снова жмем auto smooth, теперь модель вся станет равномерно гладкой.
Двигаемся дальше. Присваиваем модели модификатор Edit Normals, он будет выше модификатора Editable Mesh. У меня на предыдущих скриншотах уже есть разные модификаторы, не обращайте внимания, тк картинки делаю уже с готовой модели, и все нужные модификаторы у меня уже присвоены.
Нажимаем ctrl+A, чтобы выделить все нормали модели, потом жмем сначала на кнопку Break справа под модификаторами, а потом на кнопку Unify.
Вещь несложная, но мне подсказали - полезная, для улучшения модели, поэтому лучше сделать))).
Идем дальше. Вообще, при открытии готовых моделей из игры, у них уже есть присвоенный модификатор SKIN, его суть заключается в том, чтобы МЕШ - кожа (skin) присоединить к соответствующим костям правильно. Те допустим верхняя часть головы НЕ должна быть присоединена к кости ноги, тк кость ноги будет двигаться в процессе анимации, а за ней все точки МЕШа, которые присоединили к этой кости. Тк передняя часть головы у нас была отдельной моделью, у нее уже был готовый СКИН, причем более чем адекватный, для того чтобы его сохранить, мы именно к ПЕРЕДНЕЙ части присоединяли заднюю часть, а не наоборот (тогда СКИН передней части просто не сохраняется)
Как проходит процесс СКИНинга, справа в меню под модификаторами нужно нажать Edit Envelopes (или жмем плюсик у модификатора SKIN и потом Envelope), мы увидим как окрасится в разные цвета часть модели, также справа мы видим список костей, к которым крепится кожа - наш с вами МЕШ (модель). Тк у нас модель головы, костей ног мы там не увидим, тк модель головы к ним крепится НЕ должна. Чтобы сделать правильный СКИНинг задней части, откроем готовую модель полноценной женской головы из игры (ту, от которой отрезали заднюю часть), хоть мы немного меняли заднюю часть, приводя ее в соответствие с передней, все равно, стараемся выставить такие же цвета и в том же месте, как и на готовой модели. Как выставляются цвета, а точнее ВЕСа вертексов (weight) - каждому весу свой цвет соответствует, например весу 1 - цвет красный, что значит, что данная кость полностью влияет на данный вертекс, если желтый - средняя степень влияния, синий - очень слабое влияние. Мы выбираем справа одну и ту же кость (на примерочной модели и на нашей), под разделом Select ставим галочку Vertices и выбираем какой-то вертекс
Затем справа на панели модификатора прокручиваем вниз пока не увидим иконку гаечного ключа, рядом кнопку Weight Table...Жмем на "гаечный ключ" и видим открывшееся контекстное меню Weight Tool.
Там мы видим, какой вес у нашего вертекса для разных костей - может одной, может двух и тд...Такой же вес ставим на нашей модели.
Щелкаем на цифирки в меню - 0, 0.1, 0.25 и тд, тем самым назначая нужный вес..Цвет будет меняться в зависимости от значения. Можно выставить очень точное значение, например не 0.5, а 0.526, это значение вводим в меню напротив Set Weight и жмем саму кнопку Set Weight. Максимальное значение, напоминаю, 1. Минимальное - 0, те кость не будет влиять на вертекс со значением веса = 0. Хочу сразу успокоить вас, когда вы столкнетесь с ситуацией, что пытаетесь изменить вес вертекса для кости, а он не меняется, ничего страшного, вы будете заниматься и другими костями, и если этот вертекс связан должен быть с двумя костями, выставив какое-то значение веса для второй кости, вы увидите, как у той самой первой он изменится по формуле "1 – вес второй кости". Таким образом нужно добиться сходства весов задней части вашей модели и весов ванильной - примерочной модели. Если мы нажмем кнопку Weight Table, увидим таблицу, где можно видеть все вертексы, кости и значения весов, в таблице также можно вводить значения весов и менять их. Здесь долгая, утомительная работа, требующая внимательности, чтобы выставить правильные веса.
Если вы делаете новую модель, например, той же головы, вы добавляйте к ней через импорт модель головы из игры и удаляйте ванильный меш, чтобы остались лишь кости и ваша новая модель, присвойте ей модификатор SKIN, вы можете видеть, что справа в списке костей никаких костей нет, для этого жмем на кнопку ADD напротив раздела Bones, появляется меню, где выбираем нужные вам кости или все кости, и жмем Select. Вы увидите, как эти добавятся в список справа под модификатором.
Что еще необходимо сказать про модификатор SKIN...Если по каким-то причинам вам после СКИНинга необходимо передвинуть/повернуть модель, сначала убираем галочки с пунктов Paint Blend Weights и Always Deform...
Потом выбираем уже назначенный модификатор Editable Mesh, двигаем/вращаем ее, затем переходим снова в SKIN и снова ставим те же галочки.
В конце статьи я еще немного добавлю про СКИНинг, только там на примере другой модели, мы рассмотрим очень полезный модификатор Skin Wrap.
Двигаемся дальше - чем дальше, тем интереснее)))..Модель наша готова, но теперь надо ее раскрасить текстурами, а для этого нужно выполнить развертку нашей модели – причем сделать постараться ее так, чтобы сохранить элементы развертки передней части модели nordic_seeress_01, той самой, помните, которую мы брали из игры без изменений...Чтобы не рисовать заново уже нарисованное разработчиками на высоком уровне женское лицо)))..Развертка по сути - это отображение нашей 3д-модели на 2д-поверхности, чтобы ее выполнить, нужно нашу модель разрезать с помощью швов, надо стараться выполнять швы в тех местах модели, которые находятся как можно меньше/реже на виду...
Давайте обратимся к картинкам с трех сторон уже готовых швов для нашей модели -
Мы видим зеленые линии - это и есть швы, те разрезы нашей модели...Сначала я подробнее остановлюсь на местах разреза...Первое, это конечно, внешние грани модели - подчеркнул красным
Дальше, отдельно швы по периметру глаз и рта (губы) -
Следующий шов (один из самых неудобных для рисования, тк он внутри модели, надо ее делать прозрачной, аккуратно вращать и не запутаться в линиях) - это как бы рот изнутри, эта часть модели, как я понимаю, реализована, чтобы видеть при анимации открывания рта горло, язык - те для реалистичности...
На рисунке красным цветом выделены внутренности рта - горло/язык...Синим цветом я показал наружную часть рта (губы) для сравнения...Вид изнутри модели, модель прозрачная...
Последний шов мы делаем по центру головы сзади (немного заходим на макушку), тк эта часть по сути будет прикрыта волосами, шлемом, может какой шкурой, и это будет не сильно заметно на текстуре.
Вот такие швы будем делать, на верхних картинках уже готовые швы просто для наглядности.
Как делать швы, развертку - сначала назначаем модификатор Unwrap UVW, он будет в списке наших модификаторов самым верхним.
После назначения модификатора мы увидим, как на модели появятся зеленые линии - это АВТОшвы, те швы автоматически выполненные модификатором. Видно, что они сделаны и в других местах модели, ничего страшного.
Чтобы убрать зеленые линии - автошвы, листаем меню модификатора (которое справа), и убираем галочку с Map Seams, который находится в разделе Configure-Display, чтобы включить автошвы снова, ставим галочку...
Как рисовать швы вручную (они будут отображаться СИНИМ цветом) -
В разделе Peel - Seams выбираем иконку "зеленой пунктирной линии с белой стрелкой", которая называется Edit Seams и начинаем левой кнопкой мыши щелкать по тем ребрам, которые будут необходимым нам разрезом.
Если выбрали случайно лишнее ребро, зажимаем ALT и щелкаем по этому лишнему ребру. Когда закончили разрезы, отжимаем иконку Edit Seams...Видимость ручных швов регулируется галочкой напротив Peel Seams.
На данном этапе лично я долго мучился, чтобы получить хорошую развертку, с элементами частей развертки ванильной модели nordic_seeress_01 из игры...
Делаем следующее...Делаем с АВТОшвами, рисовать вручную не нужно, тк все равно дорабатывать придется в окне развертки...Но это только конкретно для нашей модели, для других - делать по-другому, только теми же способами...
Выбираем значок полигонов и нажимаем ctrl+A, чтобы выбрать всю модель (она покраснеет ))) )
Затем справа щелкаем кнопку Open UV Editor для открытия окна развертки
В окне развертки (далее ОР) мы увидим возможно абракадабру, ничего страшного, исправим)))..
Для начала давайте отделим соединение (на рисунке обозначена 3) между разверткой лица (на рисунке обозначена 1) и частью головы (на рисунке обозначена 2):
Щелкнем левой кнопкой мыши где-нибудь вне ОР, чтобы сбросить общее выделение. Далее, общие принципы работы с разверткой - выделять можно на уровне точек, ребер, полигонов - это выбирается справа под модификатором
Выделять можно как в окне развертки, так и на модели - ОР и модель связаны между собой визуально...Более того вы можете увидеть, например, нужный полигон на развертке и его же на модели, так легче понять, что у вас в этом месте - щека или шея)))...С зажатым ctrl можно выделять несколько объектов, с зажатым ALT - убирать ненужное выделение, можно выделять протягиванием, те зажатой левой кнопкой мыши...Продолжим, выделяем то самое соединение (которое на рисунке обозначено 3), щелкаем по нему правой кнопкой мыши и нажимаем Break
Передвинем этот кусок вниз, чтобы не мешал.
Как перемещать/вращать/масштабировать куски развертки - с помощью иконок слева вверху ОР:
Дальше, давайте передвинем сразу куски - глаза и рот(внутренний),чтобы не мешались, можно даже временно за пределы шахматного поля (главное в конце не забыть вернуть их на свободное место на шахматном поле):
Давайте покажу, что лицо развертки мне удалось сохранить согласно текстуре ванильной модели, для этого сначала поменяем размер поля развертки (у ванильной модели оно 1024 на 512), щелкаем на иконку "Brings Up the Options Dialog" справа вверху ОР и меняем разрешение 256-256 на 1024-512 и ОК
Видим, что размер шахматного поля изменился...Теперь сделаем фон развертки в виде текстуры ванильной модели, а не шахматного поля(фон можно менять когда угодно), для этого щелкаем справа вверху на CheckerPattern (Checker), выбираем в выпадающем списке Pick Texture
В открывшемся окне выбираем Bitmap
И далее загружаем нашу текстуру, вместо шахматного поля появится фон текстуры ванильной модели, можно видеть как лицо развертки совпадает с лицом на ванильной текстуре, это хорошо (опять же, напоминаю, это для НАШЕГО конкретного случая):
Теперь, убедившись, можно переключиться обратно на шахматную доску)))..
Теперь отделим кусок, соединяющий шею и половинку задней части головы (красное выделение на картинке)
Синим цветом на картинке сверху я обозначил половинку задней части головы, на самом деле это ДВЕ половинки задней части головы, наложенные друг на друга, давайте передвинем одну из половинок на свободное место:
Для чего выделим всю заднюю часть на ОР и затем на модели через ALT уберем половину выделения
Дальше, смотрим на следующую картинку, я немного передвинул куски развертки для удобства и выделил один кусок (красный на картинке), вы помимо этого видите СИНИЕ линии (ребра) на других кусках, так вот, эти СИНИЕ ребра обозначают место соединения с ребрами выделенного куска, ведь когда мы РЕЗАЛИ модель, ребра, по которым резали, стали принадлежать обоим получившимся кускам
Чтобы поточнее определить, какое ребро одного куска соотносится с ребром другого куска, давайте выберем "выделение по ребру" и выберем какое-нибудь ребро на одном куске, увидим на другом куске СИНЕЕ ребро
Таким образом мы можем соединить обратно эти два ребра, которые показаны на предыдущем рисунке, сделаем это с помощью команды Stitch Selected (нажимаем правой кнопкой мыши, появляется контекстное меню и там выбираем Stitch Selected)
Красиво?))) Ничего страшного, мы нажмем отмену действия (ctrl+z) и отменим изменение, просто нужно обратить ваше внимание, что в результате каких-то действий, можно получить подобные картинки, когда два куска пересекаются друг с другом, это будет ошибка в развертке, и их надо исправлять...Еще из этого примера вы можете увидеть, что тот кусок, ребро которого мы выделили, остался на месте, а другой кусок (у которого соответствующее ребро было синим) передвинулся и склеился по выделенному ребру с первым куском...а если бы мы выбрали ребро на куске-лице и нажали Stitch Selected, то этот кусок-лицо остается на месте, а другой кусок перелетит к нему для соединения, смотрите на картинке:
Давайте отразим по горизонтали кусок, который у нас слева от куска-лица, для чего мы его выделяем на уровне полигонов и нажимаем Tools - Flip Horizontal (там рядом есть еще кнопка Mirror Horizontal, если честно, я до конца не понимаю, в чем между ними разница)
Сейчас, на предыдущей картинке, я просто показал способ отражения куска развертки...Продолжаем работу с моделью...Давайте выделим несколько кусков развертки, каких, посмотрите на рисунке и нажмем кнопку Reset Peel (иконка загнутой белой стрелки в разделе Peel в ОР)
Получим нашу с вами заднюю часть головы
Давайте уменьшим масштаб этой части развертки для удобства и кусок лица отодвинем временно в сторону.
Теперь наш выделенный кусок мы разрежем на полигоны, сначала жмем Mapping, потом жмем Flatten Mapping
Мы увидим окошко этого оператора Flatten Mapping, в нем есть параметр Polygon Angle Threshold со значением 45...
Так вот, если мы увеличим этот параметр, кусок распадется на меньшее число кусочков: например, 90
Если мы поставим для этого параметра маленькое число, кусков будет много, например при =1 видим следующее
Вот этот вариант мы и оставим)))) передвинем эти куски вниз, слегка уменьшив масштаб, а кусок-лицо расположим в центре ОР
Теперь к нашему лицу будем по-очереди приклеивать все маленькие кусочки, часть этих кусков приклеится слева, другая часть - справа...Если мы просто выделим нужное ребро на лице и нажмем Stitch Selected, необходимый кусок подлетит к лицу и приклеится, но вы увидите, как кусок-лицо остается на месте, однако выделенное ребро (и смежные с ним вершины) слегка передвинется – попробуйте это сделать, приблизив камеру к ребру и убедитесь сами...Это не критично, но мы же хотели оставить кусок-лицо без изменений, причем, эти изменения могут быть НЕсимметричными с левой и правой сторон, а значит, когда будем рисовать текстуру, нам будет рисовать ГОРАЗДО сложнее, хотя бы тем, что уже не получится нарисовать одну половину в фотошопе и, скопировав, отразить по горизонтали/вертикали на другую половину развертки...Значит, нам кусок-лицо необходимо "железно" закрепить...Подобной кнопки я не нашел, зато у оператора Stitch Selected есть необходимая настройка, когда мы выбираем ребро, нажимаем правой кнопкой мыши для вызова меню, НЕ нажимайте сразу на Stitch Selected, а нажмите на квадратик напротив Stitch Selected для вызова дополнительного меню Stitch Tool:
В этом меню Stitch Tool мы видим параметр Bias, равный изначально 0,5
Так вот, если мы это значение ОБНУЛИМ (те Bias = 0), то наш кусок-лицо остается полностью неизменным...
Проделав описанную операцию, вы увидите, что присоединившийся кусок залезает на наше лицо.., на уровне выделения точек выберем точку, залезшую на лицо и отодвинем в сторону:
Вот здесь "шахматная доска" как фон окна развертки нам очень в помощь, посмотрите, что я не произвольно отодвинул точку(вертекс), а в угол белой ячейки - тогда нам проще будет двигать симметричный вертекс на правой стороне лица на такое же расстояние и под тем же углом, чтобы сохранить симметричность развертки:
Таким образом добавляем, передвигаем, сохраняя симметричность, все кусочки ))))
Также мы разрежем на кусочки оставшийся кусок-шея и потом добавим его к куску-лицу
Действия все аналогичные, поэтому покажу сразу конечный вариант развертки
Один момент, на котором надо остановиться, связан с тем, что мы присоединяем к лицу слева и справа кусочки, поэтому они будут просто нарастать слева и справа, никак не соединяясь друг с другом, типа такого:
На этом рисунке я просто показал, что нам надо будет соединить левую и правую части, не обращайте внимания, что там все криво, у меня не осталось сохранений в 3дмаксе на данной стадии, поэтому я тупо разрезал произвольно конечный вариант и отодвинул в сторону, чтобы заново не склеивать все куски до этого самого момента...Здесь нам снова поможет параметр Bias в меню Stitch Tool, только значение будем ставить не ноль, а другое, такое, чтобы две части - левая и правая- сдвигались равномерно и симметрично друг к другу, попробуйте это сделать, вы увидите наглядно, что части сдвигаются равномерно...ОБЯЗАТЕЛЬНО еще снимаем галочку в меню Stitch Tool с параметра Align Clusters (типа автоматического выравнивания развертки, нам в данном случае это не нужно, тк искажается лицо, попробуйте проделать с галочкой и без для сравнения и наглядности)!!!
При Bias = 0
Меняем Bias на значение, например, 0.5
А при значении Bias=0.42 получим нормальное расположение
Не забываем регулярно сохранять ваш 3дмакс-файл))))
Когда развертка готова, проверьте, что нет нигде пересечений элементов развертки, наложений, что все части развертки расположены в шахматной зоне - те в поле развертки, а не за пределами, когда во всем убедились, сохраним нашу развертку для фотошопа...Жмем Tools, потом Render UVW Template
Появится окошко с названием Render UVs
Давайте разберем, что здесь к чему...Width и Height это ширина-высота будущей текстуры, для нашей нынешней модели это 1024 на 512...Дальше, Show Overlap - я не знаю, для чего это нужно, где-то прочитал совет снимать галочку, так что снимаем...MODE - это вид текстуры, те NONE - текстура будет прозрачной на черном фоне, SOLID - текстура на черном фоне, но закрашенная серым цветом, NORMAL - текстура нормалей, нам пригодится, я свою текстуру нормал как раз делал из 3дмакса...Галочка напротив Visible Edges - показывает на текстуре все ребра, если снята, то ребра мы не увидим, только текстуру...Оба режима нам будут полезны..
Давайте выберем любой вид текстуры и нажмем Render UV Template в этом окошке:
Появится изображение нашей текстуры, жмем на дискету и сохраняем нашу текстуру...Лучше в формате TGA, тк нам в 3д максе и BOBе все равно надо будет экспортировать в этом формате текстуры...Думаю, с разверткой на этом закончим, теперь будем рисовать текстуры в фотошопе, используя максимально ванильную текстуру модели nordic_seeress_01...
Для начала откроем эту текстуру-помощницу nordic_seeress_01_diffuse в фотошопе, необходимо выделить лицо, глаза и рот-внутренний, самый лучший способ в этом случае, я считаю, это выделение по маске, для чего мы жмем на значок в левой части окна "редактирование в режиме БЫСТРАЯ МАСКА", обозначен на рисунке:
Инструментом "КИСТЬ" с жесткостью, непрозрачностью, нажимом 100% начинаем закрашивать необходимые части, я для быстроты, обычно рисую по контуру, а потом применяю заливку, на рисунке вы видите закрашенную часть КРАСНЫМ цветом, это справедливо для быстрой маски
Если мы отожмем значок БЫСТРОЙ МАСКИ, то увидим выделение
Когда выделили все, что вам нужно, сохраним выделение на новый слой для удобства, чтобы можно было всегда пользоваться этим выделением и не рисовать его заново, для чего жмем правой кнопкой мыши и "сохранить выделенную область", получим новый слой, где фон черный, а наше выделение белое:
Теперь, чтобы вызвать наше выделение, жмем "выделение" - "цветовой диапазон", в появляющемся окошке ставим разброс 200 и ОК
Затем переключаемся на наш фон, те саму картинку и видим наше выделение
Затем копируем выделение на нашу с вами новую текстуру, располагая ее правильно
Далее, можно придумать разные варианты заполнения оставшейся части текстуры, но это кожа, она не может быть только, грубо говоря красной или зеленой, посмотритесь в зеркало, тут светлее, тут темнее, тут немного красноватый оттенок, тут немного беловатый и тд....Здесь уже вступает в дело талант/нюх художника)))) Я не художник, тем более в компьютерной графике, поэтому я делал следующее:
- копируем слой лица на другой, чтобы если испортим, у нас останется первоначальный слой лица, и можем делать попытку номер 2
- с копией слоя начинаем действие: растягиваем во все стороны не спеша краски лица инструментом ПАЛЕЦ
Параметры инструмента подбираются индивидуально (сила нажима, интенсивность)...То, что у меня краска залезает за границы текстуры - это даже хорошо, тк эти части потом будут соединяться в шов на модели и если вы хоть немного (пару пикселей) пропустите, сделаете, как вам будет казаться, четко по линии текстуры, на модели будут белые или черные пиксели, которые вы не докрасили, и будет некрасиво....ОЧень далеко выходит за пределы текстуры смысла нет...Вот таким образом получаем нашу с вами диффуз-текстуру...
Посмотрите, зеленым цветом на картинке я выделил место спереди на шее, горле, его рисовал вручную, взяв цвет чуть темнее/светлее основного фона, нарисовал на другом слое, и потом ставил наложение слоя другое (по-умолчанию ОБЫЧНЫЕ) - можно "мягкий свет", можно еще какое, надо смотреть, какое больше подходит в конкретном случае
Это основные способы создания диффуз-текстуры, которые применял я....Во вкладке ИЗОБРАЖЕНИЕ-КОРРЕКЦИЯ есть разные операторы, которые позволяют менять тон, насыщенность и тд, пользуйтесь ими также, если хотите, например, сделать кожу более светлого оттенка и тд...
Обратите внимание на уши, у ванильной текстуры не было детализации, вручную рисовать ее тяжело, я просто скачал текстуру человека в хорошем разрешении, вырезал ухо (конечно с текстуры, я не кровожаден!!!))) ), скопировал его на мою текстуру и опять же перечисленными инструментами добился единства с остальной текстурой, по-моему получилось неплохо, цельно...
Почаще сохраняйте файл и проверяйте периодически в 3дмакс, как текстура смотрится на модели...
Дальше, сразу из нашей диффуз-текстуры делаем текстуру level.tga, просто обесцветив нашу диффуз-текстуру и сохраним...
Далее, текстура normal, в этот раз я ее сделал, взяв основу прямо из 3дмакс, чуть выше писал об этом...Откроем ее в фотошоп, она немного отличается от подобных текстур-normal в игре, я покажу как это исправить:
Посмотрите справа каналы, выбираем синий и закрашиваем полностью черным:
Затем выбираем красный канал и закрашиваем белым цветом:
Текстура normal приобретает схожий с игровыми вид:
На ней желтый цвет обозначает "впадины", а красный цвет - "вершины"...Те конечно, не настоящие впадины/вершины, а только ВИЗУАЛЬНОЕ отображение...
Опять же, назначили совместно с диффуз-текстурой на модель в 3дмаксе и проверили, устраивает ли вас данная текстура, или что-то нужно поменять....
Далее текстура gloss_map, опять же чтобы привести ее в вид подобно игровым, нужно открыть свою диффуз-текстуру и обесцветить, а потом в синем канале закрасить все черным...
Дальше, пользуясь правилом "СВЕТЛЫЙ тон дает блики, глянцевость, ТЕМНЫЙ тон дает матовость", отрегулировать вашу глосс-текстуру, сохраняя и проверяя ее в 3дмакс на модели...
Текстура Specular, делаем опять же из диффуз-текстуры, опять же можно обесцветить и пользоваться правилом "белые тона дают блеск, черные тона дают матовость"....
В текстурах level, specular, gloss_map альфа-канал не требуется...
Напоминаю, что это способы, с помощью которых я сделал себе модель и текстуры, вполне возможно, существуют способы более грамотные и правильные для создания текстур, буду рад услышать их от вас в комментариях...
С текстурами, думаю, все, давайте поговорим немного об анимации...
Вообще, в АТВ с анимацией по большому счету все в порядке, набор файлов анимации - те разных движений модели - предостаточно, и выполнены на высоком идейно-художественном уровне)))) Но, меня эта тема заинтересовала потому, что допустим игровые ЛЬВЫ, ВОЛКИ не имеют боевой анимации - удара, прыжка с укусом и тп....И если мы создадим отряд с боевыми львами вместо собак, все будет работать, но, приблизив камеру в бою, увидим как львы стоят между рядов противника, и противник периодически умирает, иногда умирают львы - это происходит потому, что в таблицах мы прописали цифры, а визуального отображения нет....(как например есть у собак, мы видим - собака прыгает на воина, тот от этого удара погибает, все видно и понятно)....Можно в боевую анимацию записать например файл "бег_льва", тогда мы увидим, что при беге льва среди врагов, те будут погибать, тк происходит в таблицах боевая анимация и происходит расчет урона и гибели воинов, он опять же - это некрасиво, нужна видимость атаки, например, просто удар лапой и тогда все понятно, лев ударил лапой, воин погиб от этого...
Прекрасный инструмент BOB, однако, не позволит вам сделать новую анимацию для ванильных скелетов, точнее вы сделаете, но в игре будет работать либо ваша новая анимация, либо ванильная, вместе соединенные они вам отобразят белиберду!!!! Я лично проверил это несколькими способами, плюс создатель RMe - Phazer сообщил мне то же самое, он с другими мододелами тоже пытались проделать эту операцию в BOB...Поэтому в своей программе RMe он реализовал замечательный экспорт из формата 3дмакса FBX в игровой ANIM, но пока эта версия RMe находится на тестировании, есть еще проблемы, если например, программа экспортирует все анимации волков без проблем, то с моделями собак - проблема, там скелет и скин модели смотрят в разные стороны и вручную вряд ли вы сможете соединить их правильно...
Теоретически, вы можете создать новый скелет и новые анимации для моделей игры, но лично я это НЕ проверял, тк помимо создания и экспорта, полагаю, надо заполнить несколько таблиц в ПФМ...Мной проверено лично замена ванильного скелета волка на ОДНОИМЕННЫЙ другой скелет (визуально он выглядит таким же, но только для вас, а не для BOB) с созданием для этого скелета анимации, минус этого способа, что все другие ванильные анимации волка будут в игре работать неправильно (волк будет расползаться, летать и тп) и по сути, я должен пересоздать все ванильные анимации волка с новым скелетом, тогда будет полноценная модель в игре...
Сложного ничего нет, я вам покажу простейший способ создания анимации в 3дмакс, экспорт в BOB...
Откроем файл wolf.anim.DAE (те файл скелета модели - базовый, с помощью которого я в первой своей статье описывал экспорт модели!!!) в 3дмакс:
СЕйчас поясню, что я обозначил на рисунке цифрами, цифра 1 указывает нам на панель кадров анимации от 0 до 100, цифра 4 - это панель воспроизведения анимации, когда она создана, принцип как у любого проигрывателя типа ВИНАМП, нажали PLAY и увидите как ползунок кадров 1 поползет по панели кадров, а модель будет двигаться....Цифра 2 указывает на кнопку TOGGLE SET KEY MODE, нажав на которую вы попадете в режим ручного создания анимации, вы увидите красную рамку при нажатии на эту кнопку, кнопка 3 SET KEYS (в виде ключа) - при нажатии на нее на панели кадров создастся ключ, он действует по типу сохранения скелета, скина модели в определенной позиции..
Давайте сделаем простейшую анимацию:
Сначала жмем SET KEY, появилась красная рамка, напоминающая нам о режиме создания анимации:
Затем, выделив ВСЮ модель и скелет, жмем кнопку со значком ключа SET KEYS, чтобы зафиксировать на нулевом кадре наше ванильное расположение модели:
Слева нарисованная мной зеленая стрелка указывает на нулевой кадр, если присмотреться, вы увидите, что там появится зелено-красно-синий значок, означающий КЛЮЧ на этом кадре...
Дальше передвинем ползунок кадров, например на 30 кадр
Далее мы должны двигать КОСТИ, ведь скин (те шкура модели) соединен с костями и будет двигаться вслед за ними...Для этого вспомним в начале статьи мои комментарии о способах выделения (all, geometry, bone), пользуясь этим выделим какую-нибудь кость и передвинем (если скин мешает, выбрали кость, временно скрыли скин или выбрали скин, скрыли, а потом выбрали кость):
Я передвинул чуть вперед и вверх левую ногу, затем снова выделяем ВСЕ (и скелет, и скин модели) и жмем на значок ключа:
Видим, что на 30 кадре появился значок, это правильно (для удобства вида отодвинул ползунок в сторону)...
Теперь можем нажать кнопку TOGGLE SET KEY MODE, чтобы выйти из режима создания анимации и нажать PLAY, посмотреть, что получилось, можно вручную двигать ползунок медленно, внимательно просматривая свою анимацию)))) Сохраним 3дмакс-файл...Дальше экспортируем в CS2 (я назвал primerchik.CS2)...
Еще раз загрузим файл wolf.anim.DAE, удалим весь скин и , как я описывал в своей первой статье, повернем скелет на 180 по оси Z и назначим значению координаты Y минусовое значение, сохраним как wolf.CS2...
Затем копируем файл wolf.CS2 в Акиту (Total War Attila\assembly_kit\raw_data\animations\skeletons), а файл primerchik.CS2 помещаем по адресу (Total War Attila\assembly_kit\raw_data\animations\ROME2\animals\ wolf)...
Необходимо также сделать несколько правил для BOB, сейчас покажу текст и куда помещать:
rules.bob (Total War Attila\assembly_kit\raw_data\animations\ROME2\animals) должен содержать текст
[Animation]
AnimationType = wolf
rules.bob (Total War Attila\assembly_kit\raw_data\animations\ROME2\animals\ wolf) должен содержать текст
[Animation]
AnimationType = wolf
CoreTranslations = false
FaceTranslations = false
FaceRotations = false
LeftHandTranslations = false
LeftHandRotations = false
RightHandTranslations = false
RightHandRotations = false
IgnoreMetadata = true
FPS=15
Еще в папку Total War Attila\assembly_kit\raw_data\animations\skeletons помещаем файл wolf.bone_table, в котором должен быть текст
Выполним экспорт скелета и файла анимации в BOB и полученные файлы помещаем в пак, прописываем в таблицах анимацию (есть отдельные туториалы по этому делу, поэтому останавливаться на этом не буду), запускаем игру с модом и видим нашу анимацию:
А вот что происходит с ванильной анимацией (которая к сожалению в паре с нашей новой анимацией работать будет неправильно)
Для полного понимания происходящего, удалите файлы скелетона (wolf.anim и wolf.bone_inv_trans_mats) из вашего пака, вы увидите:
ваша созданная анимация
ванильная анимация
Вот так)))))
Очень хочется, чтобы программист Phazer полностью доделал свою замечательную программу RMe и тогда экспортировать анимацию будет гораздо легче и появится возможность сочетать свою созданную анимацию и ванильную вместе в игре...
С анимацией все, а мы в завершении статьи рассмотрим модификатор в 3д макс - SKIN WRAP
Суть этого модификатора такова - упрощение процесса скиннинга для модели, не имеющей скиннинга с помощью ПОХОЖЕЙ модели со скиннингом...
Откроем файл (или сделаем) без скелета и скининга, у меня это ванильная модель из игры - женские руки:
Импортируем к ней модель других женских рук из игры со скиннингом (при этом нашей модели дадим желтый цвет, а модели со скиннингом синий для удобства):
Затем нашей модели присваиваем модификатор skin wrap
Жмем кнопочку ADD и после нажимаем на синюю модель (со скиннингом), у нас появится в окошке над кнопкой ADD название синей модели
Прокручиваем вниз до кнопки Convert to Skin и нажимаем ее
Мы увидим как у нашей желтой модели появится модификатор SKIN
Конечно, нужно проверить весь скиннинг, может немного уточнить веса, но в целом, процесс очень удовлетворительный (зависит от схожести двух моделей и то, как они расположены относительно друг друга - должны быть близко и точно как на картинках)...
На этом, думаю, можно завершить статью...Описанные в ней способы - не панацея, наверняка существуют и другие более качественные способы, но это те, которыми пользовался я, и результаты мне понравились, поэтому делюсь ими с вами...Буду рад в комментариях обсуждениям, вопросам, уточнениям, замечаниям...Удачного всем модостроения!!!