Technical Artist
Уровень зарплаты: от 60 000 руб.
Местоположение: Россия
Резюме: Technical Artist
ABOUT MEИнженер-программист с 10-летним опытом работы над корпоративным программным обеспечением в сфере бюджетирования и финансового управления. Имею опыт разработки и оптимизации печатных форм, работы с SQL и обработки данных для формирования документов.
В настоящее время самостоятельно разрабатываю игровой проект на Unity, применяя C# и осваивая современные технологии разработки и компьютерной графики. В рамках проекта занимаюсь созданием 3D-ассетов, разработкой процедурной генерации, внутренних инструментов и графических подсистем, работой с HLSL, Shader Graph, Compute Shaders и GPU Instancing, а также реализацией игрового процесса и оптимизацией проекта.
KEY SKILLS
• Programming: JavaScript, C#, SQL, HTML, XML
• Game Development: Unity, Shader Graph, Compute Shaders, GPU Instancing, HLSL
• 3D: Blender, Environment & Character Modelling, Animation
• Documentation & Workflow: Git, Technical Documentation, AI-assisted Development
EXPERIENCE
Самостоятельная разработка игрового проекта
Май 2024 — настоящее время
• Самостоятельная разработка игрового проекта на Unity: создание 3D-ассетов в Blender, реализация игрового процесса, технических инструментов и графических подсистем.
• Освоение и применение Blender, Unity, C#, Shader Graph, HLSL, Compute Shaders и GPU Instancing, а также основных этапов создания и подготовки 3D-ассетов.
• Создание стилизованного game-ready персонажа с полным циклом подготовки: скульптинг, ретопология, текстурирование, Shape Keys, риггинг и анимация. Время разработки — 1,5 месяца при средних сроках 2–8 месяцев в зависимости от сложности и реалистичности графики.
• Разработка инструмента процедурной генерации парящих островов по заданному контуру с использованием распределения Пуассона и триангуляции Делоне, с возможностью дальнейшей настройки поверхности.
• Разработка системы генерации и отображения нескольких миллионов экземпляров растительности с использованием GPU Indirect Instancing, Compute Shaders, GraphicsBuffer и HLSL, включая генерацию позиций вычислительным шейдером чанками.
• Разработка шейдеров с использованием custom functions для grass, water, clouds, skybox, planet, planet atmosphere и cel shader персонажа.
• Разработка вспомогательных инструментов для рисования масок и текстур на различных поверхностях, а также отображения очень больших объектов с использованием второй камеры и anchor control script.
• Реализация тестовой версии character controller и нескольких элементов окружения; дальнейшая работа над LOD, взаимодействием объектов с grass, gameplay, level design, дополнительными шейдерами, освещением и оптимизацией проекта.
Tech Stack: Unity, C#, Blender, Shader Graph, HLSL, Compute Shaders, GPU Instancing, GraphicsBuffer
Более подробно о моем проекте в соответствующем блоке ниже.
2D / 3D Художник (фриланс)
Февраль 2023 — Апрель 2024
• Выполнение коммерческих заказов по созданию 2D-иллюстраций и стилизованных 3D-моделей.
• Создание 2D-иллюстраций, преимущественно персонажей, с учётом требований заказчика к стилю и визуальному оформлению.
• Создание стилизованных 3D-моделей и подготовка финальных 3D-рендеров.
• Работа с полным процессом создания 3D-моделей в Blender и последующей подготовкой визуального результата.
• Часть выполненных работ доступна для просмотра в моём профиле на ArtStation. Исходные материалы коммерческих заказов не публикуются в связи с ограничениями авторских прав.
Software: Blender, Krita, SAI2, Clip Studio Paint, MediBang Paint, Photoshop
Инженер-программист
НПО «Криста»
Август 2013 — Январь 2023
Работа над долгосрочными программными проектами в сфере бюджетирования и финансового управления.
Основные обязанности и задачи
• Анализ требований к реализации печатных форм и определение способа их реализации.
• Разработка печатных форм с использованием BIRT: создание внешнего представления документа, формирование выборки данных и обработка данных с помощью скриптов.
• Разработка и сопровождение печатных форм различной сложности.
• Разработка и изменение SQL-запросов для получения необходимых данных.
• Реализация и изменение функциональности на JavaScript.
• Поиск и устранение ошибок в существующем функционале.
• Оптимизация производительности при формировании документов.
• Взаимодействие с другими участниками разработки при реализации и доработке функционала.
Ключевой результат
• Разработано и реализовано более 1000 печатных форм различной сложности.
• Оптимизировано формирование нескольких печатных документов: например, время построения одного из печатных документов сокращено с 1 минуты 20 секунд до 0,03 секунды за счёт переноса выборки данных с клиентской части на серверную и изменения SQL-запроса.
• Разрабатывались универсальные и повторно используемые решения для печатных форм, что позволяло использовать уже реализованный функционал при создании новых документов.
• Выполнялись сложные доработки существующего функционала в рамках долгосрочного корпоративного продукта, включая изменение логики получения и обработки данных.
• За период работы в компании участвовала в развитии и сопровождении продукта в течение 10 лет.
Tech Stack: JavaScript, SQL, BIRT, HTML, XML
PROJECTS
Самостоятельная разработка игрового проекта
Май 2024 — настоящее время
Цель — реализовать собственный игровой проект со стилизованным графическим оформлением.
Разработка включает в себя создание 3D-ассетов в Blender, разработку и подготовку вспомогательных инструментов для процедурной генерации и оптимизации, а также реализацию игрового процесса. Помимо технических аспектов немаловажную роль играет атмосфера и настроение игры, здесь же я перечислю ряд технических аспектов.
Основная концепция игры – приключения при управлении персонажем от 3его лица, локации из себя представляют различные большие острова, висящие в воздухе, а отличительной особенностью их является густая трава, прокрывающая их целиком.
Первой задачей стало освоение необходимых технологий и инструментов: Blender, Unity, C#, Shader Graph, HLSL, Compute Shaders, GPU Instancing, а также основных этапов создания и подготовки 3D-ассетов.
После освоения скульптинга, ретопологии, текстурирования, Shape Keys, риггинга и анимации создала собственного стилизованного персонажа с использованием современных подходов к созданию игровых моделей. Время разработки персонажа удалось сократить до полутора месяцев (1,5 мес) по сравнению со средними показателями в этой сфере - от двух месяцев до восьми месяцев (2-8 мес) в зависимости от сложности и реалистичности графики, при этом в профессиональной разработке отдельные этапы обычно распределяются между несколькими специалистами.
Персонаж полностью подготовлен для использования в игре: выполнена необходимая для корректной анимации топология, разработана стилизация в соответствии с визуальным направлением проекта, настроены риг и анимация. Персонаж готов к импорту в игровой движок.
Ознакомиться с топологией и ригом персонажа можно в моём профиле на ArtStation. Исходные файлы проекта не предоставляются, поскольку их распространение до выпуска коммерческого проекта может негативно повлиять на его дальнейшую реализацию.
После изучения основ Unity, которое заняло около месяца (1мес), с учётом предыдущего опыта программирования, позволившего ускорить освоение новых инструментов, приступила к проектированию проекта и геймдизайну. Подробные детали игровой концепции и механик до выпуска проекта не раскрываю.
Следующим этапом стало решение ускорить и автоматизировать создание уровней. Для этого начала проектировать и разрабатывать собственные инструменты.
Согласно концепции проекта, двумя основными инструментами для создания уровней должны были стать:
1. Процедурная генерация островов
Разработала инструмент, позволяющий генерировать остров по заданному контуру с использованием распределения Пуассона и триангуляции Делоне. Полученная поверхность может дополнительно редактироваться с помощью пользовательских параметров, включая создание возвышенностей и углублений, без необходимости заново создавать модель.
Такой подход позволяет автоматизировать создание большого количества островов и значительно сократить объём ручной работы при создании уровней.
2. GPU-система генерации и отображения растительности
Для создания густой поверхности из травы необходимо отображать несколько миллионов экземпляров объектов. Стандартный механизм Unity с ограничением в 1023 экземпляра на один draw call для поставленной задачи не подходил.
Для решения задачи реализовала собственную систему с использованием GPU Indirect Instancing, Compute Shaders, GraphicsBuffer и HLSL.
Позиции экземпляров распределяются и записываются в буфер, после чего их обработка и отображение выполняются преимущественно на GPU без необходимости постоянно передавать данные через CPU. Для работы с большим количеством экземпляров предусмотрена генерация позиций вычислительным шейдером чанками, что позволяет масштабировать систему в зависимости от доступного объёма памяти GPU.
В настоящее время система продолжает развиваться: реализуется взаимодействие объектов с травой и дальнейшая работа с чанками.
Поскольку проект разрабатывается в одиночку и имеет значительный запланированный объём, его реализация может занять пять лет и более (5+ лет). Помимо описанных выше систем, уже реализован ряд других функций, часть которых находится в стадии дальнейшего развития.
Основной реализованный и планируемый функционал проекта:
Реализовано:
• Стилизованный game-ready персонаж с кастомным ригом и анимациями.
• Несколько шейдеров с использованием custom functions и широкими возможностями настройки: grass, water, clouds, skybox, planet и planet atmosphere, cel shader для персонажа.
• Indirect Instancing для травы с использованием Compute Shader.
• Инструмент для настраиваемой генерации парящих островов.
• Простой character controller (тестовая версия).
• Вспомогательные инструменты для рисования масок и текстур на различных поверхностях.
• Отображение очень больших объектов (например, планеты) с использованием второй камеры и anchor control script для этих объектов.
• Несколько простых моделей окружения.
Запланировано:
• Доработка текущей системы генерации инстансов: изменение LOD, генерация нескольких типов объектов с использованием различных масок, улучшение взаимодействия объектов с grass.
• Создание дополнительной системы генерации инстансов с использованием подхода Shell Texturing, она позволяет создать эффект «пушистости», например для генерации мха.
• Inverse Kinematic для ног персонажа - система находится в тестовом состоянии и пока работает непредсказуемо.
• Доработка геймплея и дизайна уровней.
• Создание дополнительных элементов окружения в Blender.
• Создание нескольких дополнительных шейдеров и доработка существующих.
• Настройка освещения.
• Финальная оптимизация проекта.
GitHub
В настоящее время на GitHub представлен только один репозиторий. Это сделано намеренно: основные наработки проекта не публикую до его выпуска.
Для самостоятельной разработки игры публикация отдельных частей проекта требует регулярно подготавливать и собирать промежуточные версии, что существенно увеличивает затраты времени при разработке в одиночку. Подходы к разработке в команде и при самостоятельной разработке значительно различаются, поэтому процессы, эффективные при работе в крупной команде, в данном случае могут негативно влиять на скорость реализации проекта. Кроме того, ассеты и другие материалы проекта являются частью коммерческого ресурса будущей игры, поэтому не планирую распространять их до релиза.
В качестве публичного портфолио использую изображения и видео результатов разработки, которые считаю возможным демонстрировать до выпуска проекта.
С демонстрациями реализованных решений можно ознакомиться в моём профиле на ArtStation. Реализованная система генерации инстансов для Unity опубликована в репозитории на GitHub, где в README подробно описаны принцип работы системы и инструкция по её использованию.
EDUCATION
Инженер, Вычислительные машины, комплексы и компьютерные сети
РГАТУ имени П.А.Соловьева, Сентябрь 2009 – Июнь 2013
Посмотрите похожие резюме
Level Designer/ Technical Artist/ Unity Developer
Зарплата: 90 000 руб.
Зарплата: 90 000 руб.
Unreal Engine 5 Developer
Зарплата: 200 000 руб.
Зарплата: 200 000 руб.
3D Artist / Technical Artist (Unity/ue)
Зарплата: 120 000 руб.
Зарплата: 120 000 руб.
Удаленный консультант продавец
Зарплата: 30 000 руб.
Зарплата: 30 000 руб.
