Дневник разработки первой игры
3 поста
3 поста
22 поста
Привет Читатели и Пикабу! С вами снова Хейн!
Нууу прочитав один из коментариев предыдущего поста - начну вставлять ссылки на серию, к которой принадлежит пост и на предыдущий пост.
По поводу практики с работы - последнее время AnyDesk работает со сбоями, что не приятно очень. Из-за чего остаётся надежда только на теоретическое углубление в вопрос.
Да и если работает - работа с кодом почти не возможна. Из-за значительной разницы в размере экранов рабочего ноутбука и домашнего монитора. Так что на работе, вероятнее всего буду заниматься только поиском нужных мне гайдов для разработки и созданием моделек, хотя @JasonDoe такой подход не особо одобряет. Но и я выжигать глаза больше вынужденного тоже не хочу.
Так что в те дни, что я работаю - теория + 3д, а в выходные - кодинг и сама разработка.
Теперь о практической части.
Как говорил один мой любимы ютубер: "Если вы внимательные, то вы заметили что мы делаем, когда не хотим делать что то сами? Правильно! МЫ ВОРУЕМ!"
Так что большое спасибо ассет стору, за вполне адекватный контроллер персонажа. Из которого я в итоге вырезал всё то что мне не нужно: Красться, Спринт, Прицел (хотя возможно и верну), Прыжок.
+ с помощью нейронки упростил код. Что бы на работе иметь возможность разбить его на блоки и полноценно изучить.
Ну как вы заметили я так же сменил скайбокс. Но это мелочи
Так же что я узнал в юнити есть простой аналог "." из блендера - просто дабл клик в иерархии на тот объект на котором хочешь сфокусироваться. Ибо прямой полёт камеры иногда вызывает баги и при приближении вся сцена исчезает.
Также полезная комбинация клавиш - Ctrl+9.
В ней можно настроить освещённость сцены. С тусклого дня до вполне адекватной ночи.
Ну а после реализовал (с помощью урока с ютуба) как запилить взаимодействие с объектом. В моём случае с выключателем.
После приступил к настройке взаимодействия с дверью.
Если коротко: делается анимация в две стороны как в блендере. После вешается скрипт и к нему прикрепляется аниматор.
Тут столкнулся с проблемой что, нужно сместить точку пивот, дабы дверь вращалась относительно её, но был немного неприятно удивлён, что для этого нужно было использовать костыль в виде создания пустого объекта который станет новой пивот точкой. Что как по мне весьма страненько, но окэээй.
Только нужно будет ограничить "длину руки" ибо выходит как то жостко.
Но это дело лекго поправимое.
Что нужно обдумать получше: систему флагов/триггеров. Так как по сюжету нужно будет провзаимодействовать с объектами и, условно, нажать кнопку покажи концовку. Если собраны все нужные тригеры - концовка хорошая. Не все - плохая.
Так вопрос вам: нужно ли вас перенагружать кодом, что я креплю на объекты или нет?
Ибо я сейчас иду путём типа разработчика который все свои проблемы гуглит/отдаёт на создание ИИ. Хотя и пытаюсь понять как работает код.
Также число постов возможно снизится с ежедневных до.... ну в неделю точно будет 1-2 поста. Связано с тем что за день я могу сделать одну одинокую модельку, скажем холодильника и всё (ну если этот день я был на работе).
На этом сегодня всё. Возможно поищу как реализовать систему триггеров, но не более.
Спокойной ночи Читатели и Пикабу, Удачи!
Приветствую Читателей и Пикабу! С вами снова Хейн!
Как вы могли понять из названия поста - мне дали хороший подзатыльник. Но максимально справедливый. За что отдельное спасибо @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 - отвечает за величину шума. Чем меньше значение тем больше шум.


Detail - отвечает за детализацию.
0 - относительно ровные отдельные капли цвета.
1~15 рваные края в итоге


Тут мы получили ровные и понятные переходы, но нужны чёткие капли? Нужна ещё нода!
Нода Градиента или же Color Ramp
И запихать между Шумом и Миксом цветов после свести чёрный и белый как можно ближе друг к другу.
И как итог мы получили текстурку планеты (Сменил куб на шар)
Если свести градиент максимально плотно то получим:
Чисто ровные края переходов.
А почему работает: потому что текстура шума - чёрно белая маска, и мы просто отсекаем число серого.
Далее может возникнуть проблема что текстура коряво растягивается, при увеличении объекта.
Тут нам в помощь нода Texture Coordinate
Самая верхняя опция по умолчанию влияет на Вектор в текстуре шума.
Так что что бы не было фигни как в фото выше - нужно Обжект запихать в Вектор.
Если нужна нам возможность редактировать текстуру: то есть нода Mapping. Она и предыдущая легко создаются при комбинации Ctrl+T (при выделенной ноде, скажем шума) при включенном аддоне Нод Вранглер.
Сама нода выглядит так:
И как итог, тут редактировать саму маску шума. Сдвигать её, вращать и вытягивать
Как итог базовая связка нодов:
На этом посту моё базовое знакомство с нодами закончилось. Очень и Очень мало, но в то же время очень много информации и мыслей. Но это в другой раз.
Не прощаюсь, увидимся ещё вечером, всем хорошего дня!
Доброй ночи Пикабу! С вами снова Хейн!
Сегодня в курсе дошел до материалов. Часть информации уже знаю, но может чего интересного ещё узнаю.
Так как некоторые читатели просили подробнее осветить эту тему буду максимально, насколько возможно подробен.
Итак начнём.
Как вы все уже знаете - применённые материалы едины для всех предметов к которым они применены. Тоесть если есть одинаковый материал на 2х кубах и на одном мы решим немного его подкоректировать - на втором он тоже изменится.
Допустим мы долго создавали материал и нам нужно на каком то предмете чуть поправить цвет, не затронув другие объекты. Нужно просто нажать тут на цифру(которое зависит от числа объектов на которых есть этот материал).
Как итог создастся копия материала, которую мы можем редактировать как хотим, не потеряв старых настроек.
Пройдёмся по части опций о которых рассказали.
В связи что у меня стоит актуальная версия мне пришлось немного труднее всё изучать.
Так как в старой и новой версии они разные, хотя суть таже.
Roughness - Варьируется от 0 до 1.
При 0 - получаем зеркальную поверхность.
При 1 - получаем не отражающую матовую поверхность


Specular - Варьируется от 0 до 1.
Отвечает за интенсивность отражаемого от предмета света.
При 0 - Несмотря на то что объект зеркальный - ничего отражать не будет.
При 1 - Отражает более чётко, но не будет влиять на объект никак, если он матовый
Этот аспект я не знал сам, в отличии от Roughness.


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
После расставляли кирпичи в широкой колонне. Муторно немного, но заняло не так много времени.
Просто копировать, повернуть, разместить, повторить. Ну и для обрубка широкой колонны тоже. Итог что получилось:



Ну а дальше просто стройка из уже подготовленных моделек. Состоящая из трёх частей видео.


Результат на конец второго из трёх уроков по сборке окружения
Не знал что можно производить частичное сокрытие выделенных полигонов.
А научили этому при умышленном или не очень косяку лектора.
Суть: нужна кирпичная кладка для моста. А он её уже сплавил с колонной. Нужно оттуда вырезать кладку, что бы ручками не пришлось.
Пошаговый гайд:
Выделить колону с кирпичами и перейти в локальный вид (на нумпаде "/" );
Режим редактирования;
Работа с вершинами, наведение мышки на на любую вершину изначальной колонны и прожатие L;
Сокрытие колонны Н;
Тут у нас осталась колонна квадратная из кирпичей поэтому вид ссверху (7);
Выделить 3 стороны из 4 (в режиме Х-ray);
Нажать Ctrl+L - что бы довыделить оставшиеся прилегающие вершины к уже выделенным кирпичам;
Сокрыть лишние кирпичи Н;
Ну а дальше скопировать оставшиеся кирпичики и отсечь от модели с помощью Р;
О чём не сказали в уроке сразу, но я сам нашел: что бы вернуть сокрытое из сумрака - в режиме редактирования просто прожми Alt+H.




Картиночки - пояснения
После эти кирпичи раставляются по мосту.
Тут интерееснее Нужно было "раскидать" нанесённый временем песок по мосту. Что мы делаем: берём плоскость нашего моста, подробили его на более-менее квадратные полигоны и начали по краю моста поднимать. Нажав клавишу О. У меня в итоге вышла такая гармошка:
Хочу заметить что редактировалось всё вместе с элементами моста. Нужно просто кликать в ту сторону, где предположительно есть вершина и она выделяется, а дальше дело техники.
Дальше была черновая моделька кубической коровы... Нуууу.... Я решил в отсебятину и сделал что то похожее с пьяну на Лягушку.
Да всратенько, но я старался. Крайнекубические игры пока не по мне. Но в будущем посмотрим.
Сейчас пересматриваю последнюю модельку - скорее получился слизняк.
Но ничего главное нужно больше практики.
Чтож, за сегодня я сделал многое, как говорю почти в каждом посте - мог бы и больше, но не сложилось.
Не буду тянуть. Спокойной ночи Пикабу и мои читатели, Удачи!
