Render.ru
Поддержать
Mariia Kotonaeva (Wertolotik)
ПОДПИСАТЬСЯ
  • ПРЕДЛОЖИТЬ ПРОЕКТ
  • ДОБАВИТЬ В КОНТАКТЫ
1Записей
2Следят
0Читает
10.3 KЗаходов
Mariia Kotonaeva (Wertolotik)

Перья для маски жрицы Деркето

Мысли Autodesk Maya Marmoset Toolbag

Поделюсь своим способом создания перьев для маски жрицы Деркето. Это не обучающая статья, а просто заметки о персональном проекте. Уверена, что многие из Вас придумали бы способ лучше, проще и быстрее. Никогда до этого не было необходимости делать перья. И не просто перья, а огромные яркие пушистые перья, которых в реальной жизни возможно и не существует. Поэтому весь процесс был максимально интуитивный и творческий. Для меня перья - это волосы птицы, А волосы - это добро пожаловать в Maya XGen.
И так, во-первых, я создала очень узкий плэйн (скрин 1.), из которого планировала направить будущие волоски в сторону имитируя половину пера. Генерировала волоски через Interactive Groom Splines (скрин 2.) Идея была создать не очень длинные, тонкие и довольно гнущиеся волосинки (скрин 3.), которые легко бы направлялись и пушились. Всего перьев было 4, показываю на одном. Сгенерированные волоски модифицировала (скрин 4.). Зачесала в одну сторону. Верхнюю часть чуть наверх, среднюю часть просто вбок. А нижнюю скруглила вниз (это был один sculpt layer скрин 5.). На следующем sculpt layer я заморозила самые близкие волоски к стержню пера, инвертнула заморозку и аккуратно приподняла у основания (скрин 6.), чтобы перо не было очень плоским. Дальше применила чуть-чуть Clump и Noise. Вот половина пера и готова.feathers.png

feathers_2.png

Далее я повторила все тоже самое, но уже в другую сторону. Полученные половинки сдвинула (скрин 7.) ближе друг к другу и в середине добавила узкий плейн для сердцевины пера, чуть более широкий у основания и сужающийся к концу (скрин 8.). И сразу, на будущее продублировала сердцевину и добавила ей толщину (скрин 9.). Получилось целое перо. Второй этап - это преобразование сгенерированных волосков пера в самостоятельный объект для экспорта и дальнейших модификаций. Для начала сделала конверсию (скрин 10.) и получились такие серые плашечки. Так как я хотела чтобы каждая волосинка пера запеклась адекватно, нужно было направить все UV в одном направлении. Для этого я просто открыла UV editor (скрин 11.) Разложила Layout Along по U (скрин 12.) Все волоски упали в одну стопку, что не хорошо – поэтому далее модифицировала через Normalize (скрины 13-14.). Это позволило разложить каждую волосинку пера в правильном направлении сверху вниз, максимально плотно в один UV квадрат. Именно этот этап позволит сделать такие карты как Root, AO, Flow уникальными и рабочими. feathers_3.png

На этом этапе я продублировала меш пера. Исходный меш переименовала по номеру пера, а копии добавила толщину (скрин 15.) и назвала соответственно - перо с толщиной. Это необходимо для адекватной Normal map и Thickness. Далее создала плашки (скрин 16.) которые и будут перьями. Волоски пера и сердцевина располагается строго над лоупольной версией пера. Делала в режиме просмотра сверху, чтобы максимально эффективно использовать пространство LOW. После этого сделала UV LOW перьев (скрин 17.). Тут все обычно. Напоминаю, что у меня было 4 пера и соответственно вышло 4 UV шелла. Проверила чекером, чтобы не было потягов. После того, как готова UV для LOW перьев продублировала LOW плашки и сделала из копии LOW на которых буду запекать карту высот. Назвала соответственно – LOW_High. Эти LOW разместила так, чтобы они были в середине соответствующего пера (скрин 18.). feathers_4.png

Следующий этап - это разделение каждого пера (с толщиной) внутри на группы, чтобы каждая волосинка была рандомизирована по цвету. Это актуально при создании Color map. Обычно волосы делят на 4-5 таких групп. Это зависит от густоты пряди и художественных потребностей. Чем больше групп – тем больше разнообразия. Но не стоит увлекаться, чтобы результат не выглядел сумасшедшим. Для моих потребностей было достаточно 3 группы. Группа 50% содержит половину всех волосков, вторую половину я еще раз поделила пополам, соответственно по 25% от общего числа. Полученные группы назвала: Group_50, group_25 и group_25.2. Возможно существуют специальные аддоны, позволяющие разделить все волоски рандомно по группа, но я пошла по пути страдания и использовала кастомный код:

feathers_code.png

import maya.cmds as cmds
import random
def create_subgroups_by_percentage(percentage):
"""
Create subgroups from selected objects based on the given percentage.
Args:
percentage (float): The percentage of objects to include in each subgroup.
Should be between 0 and 100.
"""
# Validate percentage
if percentage <= 0 or percentage > 100:
cmds.error("Percentage must be greater than 0 and less than or equal
to 100.")
return
# Get selected objects
selected_objects = cmds.ls(selection=True)
if not selected_objects:
cmds.error("No objects selected.")
return
# Calculate the number of objects per subgroup
total_objects = len(selected_objects)
num_in_subgroup = int(total_objects * (percentage / 100.0))
if num_in_subgroup == 0:
cmds.warning("Percentage too small to create a subgroup. No subgroups
created.")
return
# Shuffle the objects for randomness
random.shuffle(selected_objects)
# Create subgroups
remaining_objects = selected_objects[:]
group_count = 1
while remaining_objects:
# Extract a subgroup
subgroup = remaining_objects[:num_in_subgroup]
remaining_objects = remaining_objects[num_in_subgroup:]
# Create a new group for the subgroup
group_name = f"subgroup_{group_count}"
cmds.group(subgroup, name=group_name)
group_count += 1
cmds.confirmDialog(title="Subgroups Created",
message=f"Subgroups successfully created with ~{percentage}% of
objects each.")
# Example usage: Set the percentage and run the function
# You can call this function interactively in Maya with a percentage of
your choice
create_subgroups_by_percentage(50) # Example:
Creates subgroups with 30% of objects in each

feathers_4.png

Таким образом к экспорту у меня были готовы: 4 пера хайполи; 4 пера хайполи с толщиной; 3 группы рандомизированные по 50%, 25% и 25%; группа лоуполи перьев; группа лоуполи перьев для запекания высот (скрин 19.). Запекала карты в XNormal. Для запекания Alfa я загрузила хайполи и лоуполи в разделе High definition meshes. Для базовых текстур использовала абсолютно белый фон для хайполи файлов, и абсолютно черный - для лоуполи (скрин 21.). В Low definition meshes загрузила ту же самую лоуполи. А также увеличила Ray distance до 50 (скрин 22.). В Baking options (скрин 23.) назначила Output. Для каждой отдельной текстуры надо было менять название. Выставила желаемый размер будущей текстуры и выбрала какой тип текстуры мне необходим из списка.

feathers_5.png

Таким же образом я запекла карту Root. Но удалила из High definition meshes лоуполи перьев и заменила базовые текстуры на карту gradient_root. Я уже не первый раз использовала XNormal для запекания карт волос, поэтому у меня уже есть набор базовых текстур для запекания (скрин 20.). Я радовалась как ребенок, когда увидела, что карта Root запеклась так, как хотелось. Темнее у стержня пера и светлее на кончиках для каждого волоска. Поэтому и был важен этап подготовки UV каждого волоска.feathers_7.png

Далее запекала карту для уникального цвета по группам. Для этого в High definition meshes удалила все мешки и загрузила мешки по группа 50-25-25% и в базовые текстуры им добавила серые карты со скрина 20: 50, 25, 15. Лоуполи оставила ту же.
Для запекания карты Flow я использовала тот же сет хайполи, но заменила вариативные серые базовые текстуры на базовую текстуру для Flow со
скрина 20. Для корректного отображения ивертнула красный канал в фотошопе (скрин 25.).
Для High map использовала так же предыдущий сет хайполи. Но в настройках экспорта карт выбрала запекание Hight map. После запекания всплывает такое окошко, где можно подвигать ползунки для настройки максимально вариативного результата. Чтобы задний план не был сильно темным, а передний слишком светлым.

feathers_8.png
Normal map и AO запекала в Marmoset c использованием хайполи меша перьев с толщиной.
Дальше была креативная работа в фотошоп по созданию уже финальных текстур для рендера в Marmoset. Часть запеченных текстур, таких как Normal map, Flow использовались в оригинале. А Color map, Specular – собирались из разных комбинаций запеченных карт

790
Комментарии:0
по поступлению