Приветствую Читателей и Пикабу! С вами снова Хейн!
Как вы могли понять из названия поста - мне дали хороший подзатыльник. Но максимально справедливый. За что отдельное спасибо @JasonDoe.
JasonDoe: Смотри как надо Хейн!
Если коротко я подошел к разработке игры вообще не с того конца.
Примерно таким должен был быть мой подход. Ну хотя бы меня одёрнули на максимально раннем этапе, за что спасибо!
1. Склепать минимально рабочий прототип в котором кор механики игры. 2. На это ядро начать наращивать "мясо" в виде сопутствующего кода. 3. Потом уже готовому мясу натянуть кожу в виде моделек. 4. Музыка, звуки, освещение.
Что по развитию: начал освежать основы С#. И искал как реализовать мои идеи в коде.
Практики было 0 так как AnyDesk почти всю мою смену рабочую не фурычил.
И снова привет Читатели и Пикабу. С вами снова тот странный чел, что пилит околобезполезные посты по 3д и про юнити.
Сегодня я начинаю пилить свою первую игру. Приступим.
Начал я с поиска шаблона дизайн документа (диздок).
Но я был удивлён с сайтов! Не приятно удивлён
Вместо того что бы дать шаблон (Я в поиске как раз таки и задал запрос "шаблон диздока") они лили воду. Насколько это важный документ, примерную структуру и тонну воды! (Мем с запросом как варить гречку заиграл свежими красками).
Кто понял, тот понял.
Только на третьей странице поиска нашел вполне приличный и краткий диздок. Ну и комментарий человека, что он тоже недоумевает почему шаблоны этого дока найти трудно.
Моё понимание зачем оно нам надо: (если ты одиноко одинокий одиночка)
Улучшит понимание твоей будущей игры;
Ты распишешь все механики разбив их на базисы, что бы реализовывать кусками и ты имеешь готовый чек-лист того что тебе надо реализовать;
Поможет немного предотвратить от того "О у меня появилась новая крутая задумка, запихну ка я её в игру". Перечитав диздок - ты можешь как отказаться, но записать идею где либо. Или добавить, но внести в документ что ты внёс изменение и почему (Об этом сказано в том шаблоне в конце в разделе с советами);
Если твоя команда увеличится - ты можешь дать новичку его изучить и у него появится базовое представление о том что ты хочешь сделать.
Тут раздел что я заполнял документ, но скринов не будет, ибо тайна пока я не сделаю рабочую игру и не выложу хотя бы на Itch или GameJolt. И то не факт что раскрою эти доки, хотя как знать.
Запонялся документ достаточно долго, хотя это просто идея для игры, что можно пройти минут за 10-15, если не за 5! Но хотя бы появилось чёткое понимание что делать.
Но начать придётся с моделек и текстур (много моделек потребуется так как нет своей личной библиотеки этих вещей). Стулья, столы, кухонные принадлежности ванна... На что я подписался?
Начать нужно с сбора всех необходимых референсов. Это займет какое-то время.
Частично подсобрал мне необходимое и уже начал делать локацию игры.
Тут пока только каркас + примерное понимание того, что и где будет
Благо чертежи домов можно найти в интернете.
Забыл про окна, но я их вырежу впроцессе (в Блендере точно есть функция вырезания)
Чтож на этом на сегодня всё. Может ещё помоделю немного перед сном, но не много.
Далее идёт покраска всех моделек, что я делал ранее по курсу
Песок: полностью матовый с максимальным светоотражением + желтый цвет.
Стенка за дверью: почти чёрный цвет + максим матовости, что бы не бликовала.
После покраска колон.
Аддон OCD создал два новых материала на все покоцанные элементы.
Outside - изначальная поверхность колоны.
Inside - сколы.
С колоннами была проблема так как нужна была нода Musgrave, но её в новых версиях спаяли с нодой шума, над которой я долго бился и получил примерно то что нужно было в уроке.
Выкрученные цвета пятен для контрастности
После готовый материал накинул на те вещи, что остались без покраса: Стены, Потолки и Перила моста
Ну и покраска моей слиз лягушки.
Итог того что мы получили на конец 24/29 уроков.
Далее идут уроки по работе со светом. Освещать их я не буду, так как свет мне настраивать потом придётся в Юнити.
Но кое что скажу. В актуалке убрали Contact shadows информацию чем её заменили я не нашел. И потратил уйму времени на это. Может не так гуглил или ещё что то, но решил забить. Завтра я закончу настройки света и предоставлю вам рендер готовой сцены со светом, ну а теперь спать и только спать.
И снова привет Читатели и Пикабу! С вами снова Хейн!
Итак сегодня затронем ту часть текстурирования, что зовётся нодами.
Приступим:
Создаём материал и переходим в шейдер эдитор (Shift+F3)
Там мы видим первые две ноды.
Material Output (Правая) - отвечает за отображение всего чего мы наворотим с нодами на нашем объекте.
P. BSDF - Нода, что полностью повторяет менюшку из прошлой части и они взаимозависимые.
Напоминаю: я рассказываю о том что изучил и понял, не более.
Хотим добавить два цвета? Нам тут поможет нода Mix Color
Которая в своём базисе позволяет варьировать цвет между двумя цветами через Factor.
0 - Синий цвет, 1 - Зелёный
Про другие настройки этой ноды не расскажу, уже не знаю.
Но что знаю, что подключая другие ноды текстур в фактор мы можем сказать как должна вести себя покраска. И ноды текстур идут в градиенте Белого и Чёрного.
Тут можно найти текстуру, что бы потом подсоединить её к фактору предыдущей ноды.
Возмём текстуру шума (Noise Texture)
И сразу подсоединяем.
Видим что куб пошел пятнами.
Scale - отвечает за величину шума. Чем меньше значение тем больше шум.
1/2
Detail - отвечает за детализацию.
0 - относительно ровные отдельные капли цвета.
1~15 рваные края в итоге
1/2
Тут мы получили ровные и понятные переходы, но нужны чёткие капли? Нужна ещё нода!
Нода Градиента или же Color Ramp
И запихать между Шумом и Миксом цветов после свести чёрный и белый как можно ближе друг к другу.
И как итог мы получили текстурку планеты (Сменил куб на шар)
Если свести градиент максимально плотно то получим:
Чисто ровные края переходов.
А почему работает: потому что текстура шума - чёрно белая маска, и мы просто отсекаем число серого.
Далее может возникнуть проблема что текстура коряво растягивается, при увеличении объекта.
Тут нам в помощь нода Texture Coordinate
Самая верхняя опция по умолчанию влияет на Вектор в текстуре шума.
Так что что бы не было фигни как в фото выше - нужно Обжект запихать в Вектор.
Если нужна нам возможность редактировать текстуру: то есть нода Mapping. Она и предыдущая легко создаются при комбинации Ctrl+T (при выделенной ноде, скажем шума) при включенном аддоне Нод Вранглер.
Сама нода выглядит так:
И как итог, тут редактировать саму маску шума. Сдвигать её, вращать и вытягивать
Как итог базовая связка нодов:
На этом посту моё базовое знакомство с нодами закончилось. Очень и Очень мало, но в то же время очень много информации и мыслей. Но это в другой раз.
Не прощаюсь, увидимся ещё вечером, всем хорошего дня!
Сегодня в курсе дошел до материалов. Часть информации уже знаю, но может чего интересного ещё узнаю.
Так как некоторые читатели просили подробнее осветить эту тему буду максимально, насколько возможно подробен.
Итак начнём.
Как вы все уже знаете - применённые материалы едины для всех предметов к которым они применены. Тоесть если есть одинаковый материал на 2х кубах и на одном мы решим немного его подкоректировать - на втором он тоже изменится.
Допустим мы долго создавали материал и нам нужно на каком то предмете чуть поправить цвет, не затронув другие объекты. Нужно просто нажать тут на цифру(которое зависит от числа объектов на которых есть этот материал).
(Цифра 3 правее Сгиу_001)
Как итог создастся копия материала, которую мы можем редактировать как хотим, не потеряв старых настроек.
Пройдёмся по части опций о которых рассказали.
В связи что у меня стоит актуальная версия мне пришлось немного труднее всё изучать. Так как в старой и новой версии они разные, хотя суть таже.
Roughness - Варьируется от 0 до 1.
При 0 - получаем зеркальную поверхность.
При 1 - получаем не отражающую матовую поверхность
1/2
Specular - Варьируется от 0 до 1.
Отвечает за интенсивность отражаемого от предмета света.
При 0 - Несмотря на то что объект зеркальный - ничего отражать не будет.
При 1 - Отражает более чётко, но не будет влиять на объект никак, если он матовый
Этот аспект я не знал сам, в отличии от Roughness.
1/2
Metallic - делает объект более металлическим.
0 - Пластик
1 - Металлическая поверхность
Если выкрутить Roughness в 0 при максимальном металлике - получаем полноценное зеркало
Subsurface Scattering - максимально странная шляпа на мой взгляд.
Отвечает за то насколько свет может распространяться внутри объекта. Пример воск свечи.
Тут я методом тыка нашел 2 ползунка, что позволяют работать с этой опцией
Weight - 0 - нет рассеивания, 1 - максимально возможное рассеивание.
Scale - Глубина проникновения (как я понял).
//Работает только в режиме Рендера с источником света рядом. На картинке точка света мощностью в 100.
Красноватое свечение и есть та фигня
После должны были пойти настройки свечения и создания простой стекляшки.
Но на версии 4.5.2 в отличии от 3.2.2 - эти фокусы - попаболь и уже упираются в ноды.
Чтобы включить bloom с версии 4.2 и далее нужно сделать следующие: зайдите во вкладку compositing , вверху нажмите на галчу Use Nodes, появятся базовые ноды, между ними создайте ноду Glare и выберите режим Bloom, параметры Threshold и Size для регулировки свечения. После перейдите в вкладку Layout и выберите во Viewport Shading внизу Always. Видно будет только в режиме материал превью и рендера.
Это комментарий к уроку курса, то что нужно сделать, что бы вернуть свечение объекта, против простого прожатия одной галочки в настройке рендера. Может это лучше и будет объект светиться и при переносе в тот же юнити, но пока не понятно позже потыкаюсь
По поводу стекла дали такой совет:
И настроек скрин спейс рефлекшена тоже больше нет. Теперь иви поддерживает рейтрейсинг. И что бы настроить материл стекла в иви теперь нужно в настройках движка включить рейтрейсинг и в настройках материала во вкладке settings включить галочку рендер метод - рейтрейсинг трансмишен. Ну и с IOR (преломление) поиграться в материале для получения желаемой картинки
Хотя нашел видео-урок как всё провернуть без рейтрейсинга, но он на английском. И упирается также в Ноды.
На сегодня это всё. Поработал бы с нодами, но тут такое дело, что по удалённому подключению я текста почти не вижу и на такой мазохизм я не пойду. И так работаю в лагающей программе (которая фризит из-за того что также работаю удалённо)
Выполнив все операции по оптимизации сбросил число полигонов до 2306
После расставляли кирпичи в широкой колонне. Муторно немного, но заняло не так много времени.
Просто копировать, повернуть, разместить, повторить. Ну и для обрубка широкой колонны тоже. Итог что получилось:
1/3
Ну а дальше просто стройка из уже подготовленных моделек. Состоящая из трёх частей видео.
Промежуточный результат
Результат на конец первого из трёх уроков по сборке окружения
1/2
Результат на конец второго из трёх уроков по сборке окружения
Не знал что можно производить частичное сокрытие выделенных полигонов.
А научили этому при умышленном или не очень косяку лектора.
Суть: нужна кирпичная кладка для моста. А он её уже сплавил с колонной. Нужно оттуда вырезать кладку, что бы ручками не пришлось.
Пошаговый гайд:
Выделить колону с кирпичами и перейти в локальный вид (на нумпаде "/" );
Режим редактирования;
Работа с вершинами, наведение мышки на на любую вершину изначальной колонны и прожатие L;
Сокрытие колонны Н;
Тут у нас осталась колонна квадратная из кирпичей поэтому вид ссверху (7);
Выделить 3 стороны из 4 (в режиме Х-ray);
Нажать Ctrl+L - что бы довыделить оставшиеся прилегающие вершины к уже выделенным кирпичам;
Сокрыть лишние кирпичи Н;
Ну а дальше скопировать оставшиеся кирпичики и отсечь от модели с помощью Р;
О чём не сказали в уроке сразу, но я сам нашел: что бы вернуть сокрытое из сумрака - в режиме редактирования просто прожми Alt+H.
1/4
Картиночки - пояснения
После эти кирпичи раставляются по мосту.
Тут интерееснее Нужно было "раскидать" нанесённый временем песок по мосту. Что мы делаем: берём плоскость нашего моста, подробили его на более-менее квадратные полигоны и начали по краю моста поднимать. Нажав клавишу О. У меня в итоге вышла такая гармошка:
Хочу заметить что редактировалось всё вместе с элементами моста. Нужно просто кликать в ту сторону, где предположительно есть вершина и она выделяется, а дальше дело техники.
"Песок" с мостом.
Результат на конец третьего из трёх уроков по сборке окружения
Дальше была черновая моделька кубической коровы... Нуууу.... Я решил в отсебятину и сделал что то похожее с пьяну на Лягушку.
Да всратенько, но я старался. Крайнекубические игры пока не по мне. Но в будущем посмотрим.
То что должно было быть по курсу
Сейчас пересматриваю последнюю модельку - скорее получился слизняк.
Но ничего главное нужно больше практики.
Чтож, за сегодня я сделал многое, как говорю почти в каждом посте - мог бы и больше, но не сложилось.
Не буду тянуть. Спокойной ночи Пикабу и мои читатели, Удачи!
Как заметил один мой постоянный читатель - я пропустил вчерашний день блога. НО я не пропустил день практики. Хоть за эти 2 дня мог сделать и побольше, но я в целом доволен тем что я делал. О чём поподробнее:
Нормальная практика началась с того, что мне нужно было расставить чертежи основных элементов будущей сцены - 3 колоны, Большая дверь, Жаровня, Стена и Кирпичи разных мастей. Чертежи в трёх проекциях. У кого было черчение - поймут.
Плюсы чертежей - тебе проще моделить. Минусы - их нет для всего, кроме как для курса.
Далее было создание простых элементов - кирпичей. Тут надолго останавливаться не буду. Тупо подгонка под размеры чертежа и всё.
Далее была стена, сделанная из плоскости с выдавленным рельефом.
Тут уже стало интереснее: я не знал что после того как создал разрез с помощью Ctrl+R, его можно раздвоить с помощью инструмента Бевел (Ctrl+B).
Пример применения фокуса
Нужно, что бы ручками не делать кучу разрезов (хотя как по мне это не сложно, но не буду спорить)
Далее была дверь. Тут ничего особенного на мой взгляд не произошло. Просто вылепили куб по форме будущей двери, сделали 2 разреза и оставили только четверть от куба и применили зеркало по двум осям. Далее просто разрезы, выдавливание и удаление граней. (В конце того что я изучил вскрылся один косяк, но о нём позже)
Далее были 2 простые колоны.
Единственная потенциальная трудность: вдавливание внутрь на большой колонне.
Но тут всё обошлось просто: много петель/разрезов. После выделение со всех сторон и вдавливание внутрь.
После условно сложной моделькой была жаровня.
Основу было сделать просто, просто на основе колон по аналогии.
После пошел кругляш в центре. Тут немного интереснее. Что бы не ставить его на глаз пришлось пойти на хитрость: переместить курсор в центр каменной колонны (Shift+S+T). Таким образом мы можем создавать объекты в центре другого объекта. Тут же узнал про примагничивание к поверхностям. Просто в режиме редактирования нужно выделить нижнюю грань объекта, нажимаешь G и нужную ось и зажимаешь Ctrl и мышкой ведёшь к нужной грани того объекта к которому нужно примагнититься.
Ну а перья - это просто плоскость нужной высоты, согнутая и с модификатором солидфай. Размноженная на нужное число частей.
+ обод в центре "перьев" - цилиндр с отверстием в центре.
1/2
Примерно на этом этапе я узнал про "/" на нумпаде - есть коротко скрывает с вьюпорта все объекты кроме выделенных.
Далее пошла самая геморная деталь - широкая колона.
Вид сверху у неё таков:
И как поступил лектор: чем работать над четвертинкой проще работать над 1/8 фигуры .
Тут пришлось изгаляться с модификатором зеркала.
Для начала была создана квадратная колонна от которой оставили четверть. Которую добавлением двух новых граней сократили до одной восьмой квадратной колонны
1/3
Ну а далее начинаются фокусы!
Нажимаем Shift+S+T, и создаём пустой объект. После накидываем на обрезок зеркало.
Получаем не то что мы хотели, но мы не закончили. После в Миррор Обжект указываем нашу пустышку. И крутим пустышку на 45 градусов. Не забываем на мирроре включить клипинг.
1/2
А после накидываем ешё зеркало на огрызок с Y и X.
А дальше просто новые разрезы, увеличение и уже пройденные операции. (Иногда при увеличении из-за такого фокуса точки не до конца расплываются и их нужно ручками довести до нужной позиции)
Итог работы:
После показывали аддон OCD (One Click Damage) - разрушения за один клик. Курс прилагал бесплатную и люто устаревшую версию этого аддона. Актуалка платная. конечно я мог спиратить но не сегодня.
Что скажу про старую версию. Работает, но с лагами и приколами. Например слетают все названия объектов что ты создал.
А что бы начать с ним работать - нужно нажать на правой стороне OCD_Lite и выйдет окошко с кнопкой и жмём её!
(Интенсивность урона может зависить от размера объекта так что имейте ввиду - больше модель - меньше проблем от аддона)
Так что мы имеем (сверху вниз):
Отмена
Величина осколков
Сила нанесёного урона
Шум, который взят за основу урона. Тут Масгрейв используется по умолчанию, но и облака тоже хороши.
Так появились сколы и видно што колонна повидала и лучшие времена. Тут просто методом тыка ищешь что тебе понравится. Всё прекрасно кроме 3343 поверхностей на этой модели нужно исправлять!
Далее накидываем на колонну модификатор Decimate. Что бы сократить число полигонов. Иначе если колон будет много - комп почувствует БОЛЬ!
1/2
До и после
Вроде мало что изменилось но число полигонов упало до 665. Так что мы упростили вашей машине жизнь. Такое повторить для всех моделек и будет профит.