Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 3 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago
3d-моделирование — это один из многих навыков, к которым открывает путь маломальское умение рисовать. Основной навык, который переносится из 2d в 3d — это возможность критически посмотреть на результат, осознать что именно в нём выглядит отвратительно и как это можно исправить. Ещё в целом помогает умение обращаться с графическим планшетом. А рисование текстур — это почти полностью 2d-навык.
Обычно все 3d-модели состоят из точек в трёхмерном пространстве, на которые натянуты полигоны (3, 4, ... -угольники) Если полигоны не бросаются в глаза, значит они очень маленькие и, соответственно, их очень много. Так устроены не только реалистичные модели, но и стилизованные модели, которые должны выглядеть округло — гладкий силуэт невозможно получить без дополнительной геометрии. Но есть стили, которые нарочито выставляют свои полигоны напоказ — их традиционно называют лоуполи.
В разных стилях используются разные подходы к моделированию, разные инструменты, трюки и даже разные названия вакансий. Я в последнее время сделал довольно много моделей в стиле, комбинирующем лоуполи и большие острые пиксели, даже выпустил одну игру, с такими модельками (про кибер-кролика по имени Бнуи, сделана в одиночку за двадня без использования ассетов — поиграйте). Все модели я делаю в блендере (он бесплатный и опенсорсный) но процессы в другом софте практически точно такие же.
Чтобы сделать модель, сначала надо взять набор стандартных геометрических фигур (чаще всего кубов и цилиндров, но иногда пригождается и специальный чайник, в обязательном порядке встроенный в каждую программу для 3d-моделирования). Их затем можно резать несколькими способами: нож просто добавляет новые точки в произвольных местах полигона, лупкат (циклический разрез) пытается сделать разрез вдоль всей модели, сабдивайд делит полигон на много маленьких полигончиков. Ещё можно вытягивать полигоны из существующих и соединять полигонами одинокие точки.
Всю эту геометрию надо аккуратно привести к желаемому виду. Можно руками аккуратно двигать вершины и целые многоугольники, и этим придётся как следует позаниматься (есть отдельная кнопка, включающая симметрию, так что задача упрощается в два раза). Ещё можно скульптить — жамкать модельку как пластилиновую фигурку, добавляя и убирая объёмы. Это особенно полезно, когда хочется получить органически выглядящий внешний вид. Про скульптинг и приколы связанные с ним я расскажу подробнее, когда напишу про свои эксперименты с более реалистичными стилями, а для лоуполи просто достаточно аккуратно повозюкать кисточкой тут и там.
Когда готова сама модель, пайплайн разделяется на два основных пути: надо сделать текстуры и анимации.
Для текстур необходимо разрезать модель на кусочки специальными красными линиями, каждый кусочек затем расположить на плоскости так, чтобы он искажался как можно слабее. Для многих моделей в пиксельном стиле удобно сначала нарисовать текстуру, а потом аккуратно положить на неё вершины. Для органических моделей, правда, такой подход работает плохо и придётся сначала разложить, а потом уже красить. Блендер позволяет рисовать прямо на 3д-модели, но инструментарий и кисти у него, конечно, победнее криты, так что я использую это только для того, чтобы разметить где какая деталь реально будет находиться.
Для создания анимации нужно сначала сделать скелет — набор виртуальных костей, которые будут двигаться между позами. Вся модель будет привязана к скелету и изменяться вслед за ним, каждая вершина относится к каким-то косточкам и ими управляется. После привязки модели к скелету, выставляем кости в необходимую позу или делаем анимацию. Такая хитрая схема позволяет использовать одни и те же анимации для разных моделей с одним скелетом и в целом экономить ресурсы на их хранение и отображение.
Теперь, когда всё готово (шаги выше надо повторять 100500 раз, пока модель не станет выглядеть прилично) можно либо выставить свет, камеру, фон и отрендерить сцену прямо в блендере, либо экспортировать её в игровой движок и использовать в игре.
Есть такие навыки, которые ощущаются как суперспособности, например для меня таким когда-то стало программирование. Ещё одним таким умением мне кажется рисование: это буквально возможность материализовать визуальные образы напрямую из своей головы. Я всегда бессистемно пытался рисовать что-то, но получалось, откровенно говоря, сомнительно.
Новую жизнь моё желание научится рисовать обрело когда мы стали активно делать игры: двухмерным играм нужны спрайты, трёхмерным текстуры и модели, всё это требует умения рисовать. Я купил себе графический планшет и стал пытаться им пользоваться. Сделал даже весь 2d-арт в недавней нашей игре Oversummoned, вышли довольно таки милые черти. Но с менее стилизованными персонажами получалось, правда, так себе — особенно плохо дело обстояло с лицами.
И в какой-то момент лица меня настолько выбесили, я что я решил прямо научиться их рисовать. Вот прямо брать и рисовать специально лицо, смотреть видео про построение, пытаться повторить референсы. Внезапно, первое время получалось всё ещё ужасно, но я уже сформулировал план: нарисовать 25 женских голов и посмотреть что получится. Головы 1, 2 и 25 я рисовал без референса, а 3 и 24 с одним и тем же референсом, чтобы посмотреть на прогресс.
План был в том, чтобы научиться понимать пропорции, изображать реалистичное затенение, и при этом попробовать разные лица, выражения и ракурсы, чтобы не выработать у себя случайно синдром одинакового лица. Так что я брал разнообразные референсы из интернетов и пытался повторить их.
Довольно быстро стало понятно, что человеческий глаз очень хорошо определяет, что с лицом что-то не так. Проблема в том, что он не может просто так определять что именно с лицом не так. Ну вот получилось оно не похоже и всё тут. И вот если ты понимаешь, что именно не так с рисунком, поправить это остаётся чисто технической проблемой. Круто, наверно, уметь рисовать идеальные линии с первой попытки, но это и не обязательно.
Я рисую в крите, она опенсорсная и довольно приятная. И стабильно раз в несколько недель открываю в ней для себя какую-нибудь новую фичу, которую применяю и становится прикольнее. Сейчас мой процесс выглядит так: рисую скетч яркими цветами, потом аккуратную чёрную линию, под ней монотонный слой (как бы грунтовка), поверх которого отдельно слои с затемнением и высветлением разных участков, постепенно с помощью них я формирую форму и стираю ненужные контуры.
Вообще, возникло понимание, что (как бы очевидно это ни звучало) всё, что ты рисуешь — это свет. И даже контуры, которые, вообще-то, не встречаются в реальности — это просто условное обозначения линий, вдоль которых соединяются объекты с сильно разным освещением. С тенями довольно таки сильно помог опыт в компьютерной графике: я заранее знал математические формулы, описывающие поведение света, надо было только научиться на деле их применять.
Обратил, кстати, внимание на то, что в туториалах обычно неправильно описывают то, что такое блик. Говорят: "это место, куда попадает больше всего света", но на самом-то деле это место, откуда свет отражается в глаз зрителю. Если бы объект был зеркальным — на месте блика было бы отражение лампочки.
Планирую дальше разобраться с анатомией тела, построением перспективы, интерьерами, экстерьерами, теорией цвета, материалами. Иногда буду держать в курсе!
Игры классно умеют погружать нас в свой мир. Думаю, даже лучше, чем книги и фильмы — потому что они дают нам быть в этом мире, иногда даже смотреть глазами его жителя. Но есть непоправимая проблема — игровые условности. Да, приходится смириться с технологическим несовершенством в виде очков здоровья, упрощённых систем перемещения и ограниченного разума NPC.
Но иногда геймдизайнер хочет, чтобы я использовал реалистичную логику из мира игры. И когда это срабатывает — это срабатывает отлично. Хочешь понять куда идти — спроси у прохожего, хочешь купить редкую книгу — отправляйся в город побольше. Во многих играх такой подход предпочитают подкреплять или даже заменять слоем игровой условности: Хочешь понять куда идти — открой интерактивную 3d-карту, хочешь купить редкую книгу — телепортируйся к квестовому маркеру.
Одни из самый приятных игровых моментов для меня связаны с реалистичным подходом: поиски локаций по текстовому описанию в Morrowind, незабываемое первое знакомство с Ревашолем в Disco Elysium. Есть соблазн объявить это единственно верным способом, а всё остальное — ленью и бездарностью. Но есть один ужасный нюанс (и я сейчас даже не про доступность игры — хотя это тоже очень важно!)
Самые ужасные моменты в играх возникают, когда тщательно выстроенный мир разрушается из-за бага, который заставляет меня лезть в гугл и разбираться: это я сделал что-то неправильно или игра просто рандомно решила, что я не заслужил найти свой пистолет, хотя условия для квеста выполнены. И я лезу на какие-то форумы и читаю, что действительно это довольно распространённый баг, но у меня нет удачных сохранений и желания переигрывать кучу часов. Я смиряюсь со своей судьбой. А игра потом несколько раз ехидно издевается над тем, что я не справился с поисками пистолета!
Если бы в игре был маркер — я бы гораздо раньше понял в чём подвох и не был бы так сильно вытянут из повествования в момент, когда пришлось гуглить. Но это, к сожалению, была бы уже совсем другая игра — не та, которая очаровала меня ощущением глубокого неизведанного мира.
Я привык к тому, что игры не могут работать нормально, что в них всегда что-то ломается (а ещё я игры разрабатываю, так что надежд на отсутствие багов у меня ещё меньше). И это разрушает игровой опыт не только с теми играми, что сломались. Это подрывает моё доверие к геймдизайнерам в целом. Они хотят что-то спрятать от меня, а я подозреваю, что оно просто не появляется. Починить это, разумеется, невозможно. Можно просто жить с этим и пытаться минимизировать такие проблемы в моих собственных играх.
Последние несколько лет я преподаю в университете. И тут я понял, что всё это время занимался геймдизайном! Я обратился к определениям: Джесси Шелл в книге "Геймдизайн" (хорошая книга, кстати, почитайте) определяет процесс игры как "манипуляцию, удовлетворяющую любопытство". Можно сказать, что обучение — это игра по определению! Хорошие преподаватели чувствуют это интуитивно и создают хорошие курсы, но зачастую удовлетворение любопытства уходит на второй план, и игра превращается в пытку.
Определения это, конечно, хорошо. Но какие непосредственные параллели можно провести между игрой и университетским курсом? И там и там игрока (или иными словами студента) сначала учат чему-то, а потом проверяют, научился ли он.
В игре обычно есть туториал, который учит основным механикам. Но на самом деле, туториал растягивается на всё прохождение игры — потому что игрок мгновенно заскучает в тот момент, когда игра прекратит подсовывать ему что-то новенькое. А после того, как что-то новенькое игроку показали в контролируемых условиях — надо бросить его в пекло и проверить, усвоил ли он урок.
Рассмотрим это на примере Sekiro и курса по компьютерной графике:
?Сначала игрокам показывают базовые механики: учат ходить, атаковать, убивать из стелса, создавать оконные приложения и рисовать на экран пиксели
?Первая проверка, простенький босс: неуклюжий самурай, требующий изобразить на экране график функции, лёгкая добыча для шиноби
?Снова обучение новому: элегантно парировать удары мечом и векторной алгебре на плоскости
?Экзамен: всадник с копьём, разбивающий многоугольники на треугольники
?Дальше игра таким же образом постепенно учит нас всему, что она знает сама: отражать молнии, работать с видеокартой, метать сюрикены и строить перспективную проекцию, каждый раз проверяя, что урок усвоен
?В конце нас ждёт финальная проверка. Боссы, которые требуют глубокого просветления: Кэнсэй Иссин и трассировка лучей (и не менее сложные необязательные боссы)
Если бы на игрока просто вывалили все обучающие сообщения, а потом потребовали убивать сильнейших самураев — он бы не получил никакого удовольствия. В образовательной программе все то же самое. Необходимо следить за кривой интенсивности курса, чаще отсылаться к тем самым базовым механикам, о которых договорились ещё в туториале, стараться интересно комбинировать механики. И часто убеждаться, что студенты усваивают урок
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 3 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago