SlideShare a Scribd company logo
1 of 122
Download to read offline
Пайплайн создания
персонажей
Даниил Козловский
Антон Ивичев
Дмитрий Лебедев
Cкетч Highpoly
Lowpoly
Текстурирование
Rigging
Анимация
Сборка в
Unity
VFX Программинг
• Новая игровая вселенная
• Эпичные герои с уникальными
способностями
• ААА графика на мобильной платформе
• Unity 3D
• Сжатые сроки разработки
• Небольшая команда
70 персонажей
Концепт арт
3D sketch Decimation Master ZRemesher
Normal Map
Color Map
Финальная 2D версия3D скетч
3D скетч Финальная 2D версия
3D скетч Финальная 2D версия
3D скетч
• Быстрые итерации
• Визуальная достоверность
• Прототипирование сложных
персонажей и анимаций
• Снижение рисков при работе с
аутсорсерами
3D production
История
Описание
Скетч
3D скетч
Финализация
VFX скетч
BaseMesh
HighPoly
LowPoly
UV mapping
Cage & BakeMaps
Текстурирование
Rigging
Skinning
Блокинг
Анимация
Сборка в
Unity
VFX
Озвучка
UI
Shaders
Logic
Программинг
…
История
Описание
Скетч
3D скетч
Финализация
VFX скетч
BaseMesh
HighPoly
LowPoly
UV mapping
Cage & BakeMaps
Текстурирование
Rigging
Skinning
Блокинг
Анимация
Сборка в
Unity
VFX
Озвучка
UI
Shaders
Logic
Программинг
…
Финальный 3D скульпт
критерии качества
За техническими требованиями
не должны теряться
художественные ценности.
Многое, что продумывается
на стадии скетча, полезно
знать во время скульптинга
• Соответствие скетчу. Пластика, стилизация - форм.
Сохранить характер персонажа
• Отсутствие мелкого шума. Продуманная симметрия
• Узнаваемый силуэт
3 уровня детализации
• Большие, узнаваемые.
3 уровня детализации
3 уровня детализации
• Большие, узнаваемые.
• Средние детали.
3 уровня детализации
• Большие, узнаваемые.
• Средние детали.
• Мелкие детали.
Из чего состоит
• 20+ миллионов полигонов
• 50+ SubTools
• 5 дней работы
Что помогает
• Outsource
• Используем заготовки
• Настройка Zbrush под себя
Настройка Zbrush под себя
ускорит в два раза
Zscene manager
организует сабтулы
• Удобная иерархия
• Быстрый ренейминг
• Drag&Drop групп сабтулов
• Hide&Show групп сабтулов
Zscene manager
Low Poly
Максимальная оптимизация с сохранением визуального качества
От 4т. до 6.5т. треугольников
на персонажа
Каждая грань должна нести пользу
или она не нужна
Классические приёмы оптимизации
Примеры сечений под анимацию
Особенности оптимизации проекта
Материал без прозрачности
моделируются:
Усы
Волосы
Дыры в ткани
Перья
Односторонний шейдер
Все плашки сдублированы
с вывернутыми нормалями
Персонаж состоит из
единого меша,
включая оружие
Запекание
Карты получаемые в результате запекания
Куда эти карты идут после
Процесс запекания
Текстурирование
Исходные текстуры 4к.
Что учитываем под анимацию уже на стадии хайполи
Руки, ноги
должны быть согнуты в локте,
но быть абсолютно ровными
на фронтальном виде.
Риггинг
• ~100 костей на персонажа
• Единое наименование костей
для разных ригов
• Файл с ригом отдельно от
анимаций
• Python, вспомогательные
скрипты для построения рига
• и экспорта
Знание Python в Maya очень помогает, азы программирования это просто.
Skinning - процесс привязывания модели к костям
ngSkinTools
Анимация
6-7 анимаций
на персонажа
• Айдл
• Получение урона
• Смерть
• Базовая атака
• 2-3 способности
• Разница в дистанции х2
• Не линейная скорость перемещения
• Нужны быстрые атаки
Атаки прыжком, причины:
Оверпеинт + текст Правка сразу в Maya
Варианты обратной связи для удалённых аниматоров.
Unity + Camtasia + EpicPen
Записать себя,
кого-нибудь
на видео
Анимация
Неправильно выбранный
масштаб 3D на старте.
Maya – сантиметры
Unity - метры
Смена стилистики текстур
Проблема скиннинга
Для оптимизации выбрано
влияние 2 костей на вертекс.
Хорошо на всех, кроме...
Первая проблема
в случае с крыльями.
Будем тестировать 4 кости
на производительность,
или обойдём другим способом.
Не умалчивать ошибки, оперативно их решать, не всегда напрямую.
• Точно настроенные процессы.
• Мнения принимаются от всех,
но в принятии этапа работы
участвуют только люди, ответственные за него.
• Не пытаться сразу достичь безграничного качества,
в ущерб срокам.
Программинг
персонажа
Подготовка
персонажа к сборке
Размер – неизбежное зло
Пересылка текстурных данных по шине при
рендеринге – это энергозатратная операция
(для мобильных GPU)
• Быстро разряжается устройство
Больше размер скачиваемого и
устанавливаемого
• Не все готовы устанавливать большие игры
• Сложнее обновлять
Дольше загрузка
Исходные данные персонажа:
Текстуры персонажа 2К RGB: Diffuse, Specular,
Normal map, Emission
• 48 Mb
Атлас для эффектов 1К ARGB
• 4 Mb
Звуки
• 10 Mb
Модель и скелет
• 1 Mb
Итого: 73 Mb
Анимации ~ 90 фреймов (3 атаки, урон, смерть, айдл)
• 10 Mb
Компрессия текстур: iOS
Для непрозрачных
• PVRTC – хорошая компрессия и качество
Текстуры с альфой
• iPhone 6 и выше – ASTC (от 4х4 до 8х8)
• Младшие модели
• ARGB и меньше разрешение
• Отдельно упаковывать альфа канал, а цвет в PVRTC + шейдер
• ARGB PVRTC
Компрессия текстур: Android
Скрипт для сборки, который будет запускать
сборку с разными настройками:
• DXT  PVRTC  ATC  ASTC  ADRENO
Настройка в Unity/Build – Texture Compression
• Настройка манифеста для apk автоматом подставит
Unity
• Специальный Version Code для каждой платформы
0000Nxxxxx
Подготовка к фильтру в Google Play
• N == 1 – для самой простой компрессии доступной везде (ETC)
• …
• N == 6 (например) – наименее поддерживаемая
• xxxxx – версия игры
MipMap’ы
iPhone 6 iPad Pro
*Mipmap Visualization – plugin из Unity Asset Store
Col mipMaps 1024
Col mipMaps 512
Col mipMaps 256
Настройки MipMap и размера текстур
MipMap увеличивает размер текстуры ~ на 33%,
но, для 3D объектов, которые меняют положение
относительно камеры:
• Уменьшают объём данных по GPU
• Убирают шумящие текстуры
Размер текстур:
• iPhone 6 – 512 x 512
• iPad Pro – 1K x 1K
Анимации:
Keyframe Reduction хорошо работает для
большинства анимаций
Звуки:
• Vorbis  MP3 для эффектов
• Stream для музыки
Готовый персонаж настроенный для iPhone 6:
Текстуры персонажа 2К RGB: Diffuse, Specular,
Normal map, Emission
• 0.7 Mb (было 48 Mb)
Атлас для эффектов 1К ARGB
• 0.6 Mb (было 4 Mb)
Звуки
• 1 Mb (было 10 Mb)
Модель и скелет
• 1 Mb
Итого: ~5 Mb (было 73)
Анимации ~ 90 фреймов (3 атаки, урон, смерть, айдл)
• 1.5 Mb (было 10 Mb)
Game Design данные
Игровые данные нужно уметь отделять от сборки, иметь
возможность обновлять их в уже работающем приложении.
Unity components
• Удобен только на старте, не справляется с большим объёмом данных
Excel xml таблицы
• Просто делать локальные версии
• Можно *.xml сразу «закидывать» в проект
• Сложно делать Merge и конфликты при pull, когда файл открыт в Excel
Google drive таблицы
• Простая совместная работа
• Для локальных тестов нужно создавать копию всего документа
• Версионирование сохраняется, но оно отдельно от системы контроля версий
• Утилиты для загрузки и сохранения в бинарный формат (быстро открывать в runtime)
Загрузка данных
персонажа в игре
Загружаем общие данные на старте приложения
• Не создавать прямых ссылок, грузим из Resources
• Разделить на части и грузить через Async
• Сперва загружать данные, нужные в первую очередь
Избегаем долгих фреймов
Создаём необходимый минимальный набор данных
• Для персонажа в меню прокачки нет смысла грузить
VFX  Sound FX
• HighRes без MipMaps для меню и в два раза меньшие
для боя, но с MipMaps
При переходе между меню и игрой
• Не выгружать нужные данные персонажей, которых
загрузили в экране сбора отряда
Shading
Скорость Вижуал Универсальность
Unity Mobile Да Нет Да
Unity Standard Нет Да Да
AoM Shader Да Да Нет
Динамический ShadowMap с персонажами и всеми объектами на
арене – отбрасывание теней на себя и соседних персонажей
Shadow Map - OFF Shadow Map - ON
Статический ShadowMap или
LightMap для неподвижных
объектов
Источник освещения для эффектов (не отбрасывает тень сам,
но взаимодействует с тенью)
Вариация на тему «Global Illumination»
(смягчаем тени псевдо отраженным
светом от арены)
Color Grading + настройки освещения для
различных «погодных условий»
Упрощения (для более слабых платформ):
• Меньше размерность ShadowMap,
отключение сглаживающей фильтрации
• Вычисление освещённости на
вершинном шейдере вместо
фрагментарного
• …
Система способностей
Нужна система – берём и делаем
• Простота старта и быстрые первые работающие версии
• Но при развитии дизайна приходится переписывать много
методов, есть шанс забыть что-нибудь
Ретроспектива
«Наивная» система: каждая способность – это отдельная
функция, реализующая её логику:
Параметризуемая модель с универсальным («убер»)
методом:
• Все взаимодействия локализованы, удобно вносить
небольшие исправления
• Но некоторые изменения вынуждают вносить очень
сильные модификации в универсальный метод
«Взял и сделал» не работает – что дальше?
Игра коллекционная, т.е. надо сделать всё возможное, чтобы
игроку хотелось открывать и развивать новых персонажей:
Персонажи – главная ценность
• Интересно играть, т.к. каждый персонаж чем-то уникален
• Отрядное взаимодействие – синергия персонажей
• Возможность внесения правок в баланс (настройки и
способности)
• Развитие персонажа даёт не только количественное, но и
качественное улучшение
• Новые персонажи после выхода игры
Вырабатываем требования
на сейчас и «впрок»
• Не ограничиваем мысль дизайнера (расширяемая система, в
разумных пределах)
• Логика способности «стабильна» (не нужно много переделок при
добавлении новых свойств)
• «Программировать» способности в терминах близких к предметной
области (описанию)
• Механика персонажа не зашита в сборку
• Возможность обновлять «на лету»
• Можно выполнять вне игры (проверка на сервере, утилиты для
проверки баланса)
• Интегрируется с игровыми подсистемами (анимация, VFX)
• Нет возможности создавать уникальных персонажей
(нужно заранее предусмотреть все варианты)
Выбор основы
Табличные данные с параметрами
Описание способностей на С#
• Нет возможности обновлять и добавлять персонажей без
скачивания версии
Интерпретируемый DSL
• Нужно разработать
Табличные
данные
из GoogleDocs
Виртуальная
Машина
Скрипты,
описывающие
способности
Парсер
Дерево
внутреннего
представления
Программная модель
персонажей и
способностей в c#
Математические,
вспомогательные функции,
перечисления и т.д.
Основной
цикл Арены
Данные
Арены
Внешняя среда
В коде оперируем терминами
целевой платформы:
• Target
• Hitpoints
• Level
• …
Длительные эффекты описываем в терминах
«корутин», действующих в течение:
• Хода персонажа
• Раунда
• Условной секунды и т.д.
Свойства характеристик описываем при
помощи фильтров
Транслируем события анимационных кривых и события системы
эффектов в систему способностей:
Язык способностей и Виртуальная машина
• 2 рабочие недели
Временные затраты
Игровая модель (декораторы, модификаторы,
внешние события…)
• 8 недель
Логика для 35 персонажей (+ новая система
взаимодействия)
• 4 недели + to be continued
Система прогона боёв для проверки результатов
и баланса персонажей
• 2 недели
Спасибо!
Даниил Козловский
kozlovsky@playkot.com
Антон Ивичев
ivichev@playkot.com
Дмитрий Лебедев
lebedev@playkot.com
playkot.com

More Related Content

Similar to Character creation pipeline for Age of Magic (3D mobile)

Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияАрхитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияRoman_Lut
 
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019corehard_by
 
Rocket Jump: Рецепты игровой графики Rocket Jump
 Rocket Jump: Рецепты игровой графики Rocket Jump Rocket Jump: Рецепты игровой графики Rocket Jump
Rocket Jump: Рецепты игровой графики Rocket JumpDevGAMM Conference
 
Rendering and synchronization of 4000 units in Mushroom Wars 2
Rendering and synchronization of  4000 units in Mushroom Wars 2Rendering and synchronization of  4000 units in Mushroom Wars 2
Rendering and synchronization of 4000 units in Mushroom Wars 2DevGAMM Conference
 
Zillion Whales: как отрисовать 12 000 спрайтов в Unity
Zillion Whales: как отрисовать 12 000 спрайтов в UnityZillion Whales: как отрисовать 12 000 спрайтов в Unity
Zillion Whales: как отрисовать 12 000 спрайтов в UnitySasha Semenov
 
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...DevGAMM Conference
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON
 
Vizor Interactive: Технологии успеха
Vizor Interactive: Технологии успехаVizor Interactive: Технологии успеха
Vizor Interactive: Технологии успехаDevGAMM Conference
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesWhite Nights Conference
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesDevGAMM Conference
 
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest
 
Внедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокВнедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокRoman_Lut
 
Unity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiUnity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiRoman Chehowski
 
Tanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browserTanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browserAnton Volkov
 
Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"
Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"
Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"Lviv Startup Club
 
Иструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойИструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойakimovpro
 
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)Ontico
 

Similar to Character creation pipeline for Age of Magic (3D mobile) (20)

Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипенияАрхитектура современного 3 d движка: Разработка Xenus: Точка кипения
Архитектура современного 3 d движка: Разработка Xenus: Точка кипения
 
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
Многопоточность в играх. Игорь Лобанчиков. CoreHard Spring 2019
 
Rocket Jump: Рецепты игровой графики Rocket Jump
 Rocket Jump: Рецепты игровой графики Rocket Jump Rocket Jump: Рецепты игровой графики Rocket Jump
Rocket Jump: Рецепты игровой графики Rocket Jump
 
Rendering and synchronization of 4000 units in Mushroom Wars 2
Rendering and synchronization of  4000 units in Mushroom Wars 2Rendering and synchronization of  4000 units in Mushroom Wars 2
Rendering and synchronization of 4000 units in Mushroom Wars 2
 
Zillion Whales: как отрисовать 12 000 спрайтов в Unity
Zillion Whales: как отрисовать 12 000 спрайтов в UnityZillion Whales: как отрисовать 12 000 спрайтов в Unity
Zillion Whales: как отрисовать 12 000 спрайтов в Unity
 
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Vizor Interactive: Технологии успеха
Vizor Interactive: Технологии успехаVizor Interactive: Технологии успеха
Vizor Interactive: Технологии успеха
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent Showcases
 
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
 
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
 
Внедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокВнедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движок
 
Unity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman ChehowskiUnity_ Handmade graphics optimizations by Roman Chehowski
Unity_ Handmade graphics optimizations by Roman Chehowski
 
Tanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browserTanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browser
 
Kirill Zolovkin, OctoBox Interactive
Kirill Zolovkin, OctoBox InteractiveKirill Zolovkin, OctoBox Interactive
Kirill Zolovkin, OctoBox Interactive
 
Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"
Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"
Yuriy Sherstobitov "Optimization of mobile games in Unity3d and ESC"
 
Иструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикойИструментарий для быстрой разработки игр с 2 d физикой
Иструментарий для быстрой разработки игр с 2 d физикой
 
1k speedup
1k speedup1k speedup
1k speedup
 
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)
 

More from DevGAMM Conference

The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...DevGAMM Conference
 
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...DevGAMM Conference
 
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...DevGAMM Conference
 
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...DevGAMM Conference
 
AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)DevGAMM Conference
 
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...DevGAMM Conference
 
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...DevGAMM Conference
 
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...DevGAMM Conference
 
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...DevGAMM Conference
 
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)DevGAMM Conference
 
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)DevGAMM Conference
 
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...DevGAMM Conference
 
How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...DevGAMM Conference
 
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)DevGAMM Conference
 
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...DevGAMM Conference
 
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...DevGAMM Conference
 
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...DevGAMM Conference
 
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...DevGAMM Conference
 
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...DevGAMM Conference
 
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...DevGAMM Conference
 

More from DevGAMM Conference (20)

The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...
 
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
 
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
 
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
 
AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)
 
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
 
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
 
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
 
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
 
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
 
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
 
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
 
How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...
 
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
 
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
 
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
 
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
 
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
 
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
 
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
 

Character creation pipeline for Age of Magic (3D mobile)

  • 2.
  • 3.
  • 5. • Новая игровая вселенная • Эпичные герои с уникальными способностями • ААА графика на мобильной платформе • Unity 3D • Сжатые сроки разработки • Небольшая команда
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. 3D sketch Decimation Master ZRemesher
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 35.
  • 36. 3D скетч • Быстрые итерации • Визуальная достоверность • Прототипирование сложных персонажей и анимаций • Снижение рисков при работе с аутсорсерами
  • 38. История Описание Скетч 3D скетч Финализация VFX скетч BaseMesh HighPoly LowPoly UV mapping Cage & BakeMaps Текстурирование Rigging Skinning Блокинг Анимация Сборка в Unity VFX Озвучка UI Shaders Logic Программинг …
  • 39. История Описание Скетч 3D скетч Финализация VFX скетч BaseMesh HighPoly LowPoly UV mapping Cage & BakeMaps Текстурирование Rigging Skinning Блокинг Анимация Сборка в Unity VFX Озвучка UI Shaders Logic Программинг …
  • 40. Финальный 3D скульпт критерии качества За техническими требованиями не должны теряться художественные ценности. Многое, что продумывается на стадии скетча, полезно знать во время скульптинга
  • 41. • Соответствие скетчу. Пластика, стилизация - форм.
  • 43. • Отсутствие мелкого шума. Продуманная симметрия
  • 46. • Большие, узнаваемые. 3 уровня детализации
  • 47. 3 уровня детализации • Большие, узнаваемые. • Средние детали.
  • 48. 3 уровня детализации • Большие, узнаваемые. • Средние детали. • Мелкие детали.
  • 49.
  • 50. Из чего состоит • 20+ миллионов полигонов • 50+ SubTools • 5 дней работы Что помогает • Outsource • Используем заготовки • Настройка Zbrush под себя
  • 51. Настройка Zbrush под себя ускорит в два раза Zscene manager организует сабтулы • Удобная иерархия • Быстрый ренейминг • Drag&Drop групп сабтулов • Hide&Show групп сабтулов Zscene manager
  • 52. Low Poly Максимальная оптимизация с сохранением визуального качества От 4т. до 6.5т. треугольников на персонажа Каждая грань должна нести пользу или она не нужна
  • 53.
  • 56. Особенности оптимизации проекта Материал без прозрачности моделируются: Усы Волосы Дыры в ткани Перья Односторонний шейдер Все плашки сдублированы с вывернутыми нормалями Персонаж состоит из единого меша, включая оружие
  • 58. Карты получаемые в результате запекания
  • 59. Куда эти карты идут после
  • 63.
  • 64. Что учитываем под анимацию уже на стадии хайполи
  • 65. Руки, ноги должны быть согнуты в локте, но быть абсолютно ровными на фронтальном виде.
  • 66. Риггинг • ~100 костей на персонажа • Единое наименование костей для разных ригов • Файл с ригом отдельно от анимаций • Python, вспомогательные скрипты для построения рига • и экспорта Знание Python в Maya очень помогает, азы программирования это просто.
  • 67. Skinning - процесс привязывания модели к костям ngSkinTools
  • 68. Анимация 6-7 анимаций на персонажа • Айдл • Получение урона • Смерть • Базовая атака • 2-3 способности
  • 69.
  • 70. • Разница в дистанции х2 • Не линейная скорость перемещения • Нужны быстрые атаки Атаки прыжком, причины:
  • 71.
  • 72.
  • 73. Оверпеинт + текст Правка сразу в Maya Варианты обратной связи для удалённых аниматоров. Unity + Camtasia + EpicPen Записать себя, кого-нибудь на видео
  • 74.
  • 75.
  • 76.
  • 77.
  • 79.
  • 80.
  • 81. Неправильно выбранный масштаб 3D на старте. Maya – сантиметры Unity - метры
  • 83. Проблема скиннинга Для оптимизации выбрано влияние 2 костей на вертекс. Хорошо на всех, кроме... Первая проблема в случае с крыльями. Будем тестировать 4 кости на производительность, или обойдём другим способом.
  • 84. Не умалчивать ошибки, оперативно их решать, не всегда напрямую.
  • 85. • Точно настроенные процессы. • Мнения принимаются от всех, но в принятии этапа работы участвуют только люди, ответственные за него. • Не пытаться сразу достичь безграничного качества, в ущерб срокам.
  • 87.
  • 89. Размер – неизбежное зло Пересылка текстурных данных по шине при рендеринге – это энергозатратная операция (для мобильных GPU) • Быстро разряжается устройство Больше размер скачиваемого и устанавливаемого • Не все готовы устанавливать большие игры • Сложнее обновлять Дольше загрузка
  • 90. Исходные данные персонажа: Текстуры персонажа 2К RGB: Diffuse, Specular, Normal map, Emission • 48 Mb Атлас для эффектов 1К ARGB • 4 Mb Звуки • 10 Mb Модель и скелет • 1 Mb Итого: 73 Mb Анимации ~ 90 фреймов (3 атаки, урон, смерть, айдл) • 10 Mb
  • 91. Компрессия текстур: iOS Для непрозрачных • PVRTC – хорошая компрессия и качество Текстуры с альфой • iPhone 6 и выше – ASTC (от 4х4 до 8х8) • Младшие модели • ARGB и меньше разрешение • Отдельно упаковывать альфа канал, а цвет в PVRTC + шейдер • ARGB PVRTC
  • 92. Компрессия текстур: Android Скрипт для сборки, который будет запускать сборку с разными настройками: • DXT PVRTC ATC ASTC ADRENO Настройка в Unity/Build – Texture Compression • Настройка манифеста для apk автоматом подставит Unity • Специальный Version Code для каждой платформы 0000Nxxxxx Подготовка к фильтру в Google Play • N == 1 – для самой простой компрессии доступной везде (ETC) • … • N == 6 (например) – наименее поддерживаемая • xxxxx – версия игры
  • 93. MipMap’ы iPhone 6 iPad Pro *Mipmap Visualization – plugin из Unity Asset Store Col mipMaps 1024 Col mipMaps 512 Col mipMaps 256
  • 94. Настройки MipMap и размера текстур MipMap увеличивает размер текстуры ~ на 33%, но, для 3D объектов, которые меняют положение относительно камеры: • Уменьшают объём данных по GPU • Убирают шумящие текстуры Размер текстур: • iPhone 6 – 512 x 512 • iPad Pro – 1K x 1K
  • 95. Анимации: Keyframe Reduction хорошо работает для большинства анимаций Звуки: • Vorbis MP3 для эффектов • Stream для музыки
  • 96. Готовый персонаж настроенный для iPhone 6: Текстуры персонажа 2К RGB: Diffuse, Specular, Normal map, Emission • 0.7 Mb (было 48 Mb) Атлас для эффектов 1К ARGB • 0.6 Mb (было 4 Mb) Звуки • 1 Mb (было 10 Mb) Модель и скелет • 1 Mb Итого: ~5 Mb (было 73) Анимации ~ 90 фреймов (3 атаки, урон, смерть, айдл) • 1.5 Mb (было 10 Mb)
  • 98.
  • 99. Игровые данные нужно уметь отделять от сборки, иметь возможность обновлять их в уже работающем приложении. Unity components • Удобен только на старте, не справляется с большим объёмом данных Excel xml таблицы • Просто делать локальные версии • Можно *.xml сразу «закидывать» в проект • Сложно делать Merge и конфликты при pull, когда файл открыт в Excel Google drive таблицы • Простая совместная работа • Для локальных тестов нужно создавать копию всего документа • Версионирование сохраняется, но оно отдельно от системы контроля версий • Утилиты для загрузки и сохранения в бинарный формат (быстро открывать в runtime)
  • 101. Загружаем общие данные на старте приложения • Не создавать прямых ссылок, грузим из Resources • Разделить на части и грузить через Async • Сперва загружать данные, нужные в первую очередь Избегаем долгих фреймов Создаём необходимый минимальный набор данных • Для персонажа в меню прокачки нет смысла грузить VFX Sound FX • HighRes без MipMaps для меню и в два раза меньшие для боя, но с MipMaps При переходе между меню и игрой • Не выгружать нужные данные персонажей, которых загрузили в экране сбора отряда
  • 103. Скорость Вижуал Универсальность Unity Mobile Да Нет Да Unity Standard Нет Да Да AoM Shader Да Да Нет
  • 104. Динамический ShadowMap с персонажами и всеми объектами на арене – отбрасывание теней на себя и соседних персонажей Shadow Map - OFF Shadow Map - ON
  • 105. Статический ShadowMap или LightMap для неподвижных объектов
  • 106. Источник освещения для эффектов (не отбрасывает тень сам, но взаимодействует с тенью)
  • 107. Вариация на тему «Global Illumination» (смягчаем тени псевдо отраженным светом от арены)
  • 108. Color Grading + настройки освещения для различных «погодных условий»
  • 109. Упрощения (для более слабых платформ): • Меньше размерность ShadowMap, отключение сглаживающей фильтрации • Вычисление освещённости на вершинном шейдере вместо фрагментарного • …
  • 111. Нужна система – берём и делаем • Простота старта и быстрые первые работающие версии • Но при развитии дизайна приходится переписывать много методов, есть шанс забыть что-нибудь Ретроспектива «Наивная» система: каждая способность – это отдельная функция, реализующая её логику: Параметризуемая модель с универсальным («убер») методом: • Все взаимодействия локализованы, удобно вносить небольшие исправления • Но некоторые изменения вынуждают вносить очень сильные модификации в универсальный метод «Взял и сделал» не работает – что дальше?
  • 112. Игра коллекционная, т.е. надо сделать всё возможное, чтобы игроку хотелось открывать и развивать новых персонажей: Персонажи – главная ценность • Интересно играть, т.к. каждый персонаж чем-то уникален • Отрядное взаимодействие – синергия персонажей • Возможность внесения правок в баланс (настройки и способности) • Развитие персонажа даёт не только количественное, но и качественное улучшение • Новые персонажи после выхода игры
  • 113. Вырабатываем требования на сейчас и «впрок» • Не ограничиваем мысль дизайнера (расширяемая система, в разумных пределах) • Логика способности «стабильна» (не нужно много переделок при добавлении новых свойств) • «Программировать» способности в терминах близких к предметной области (описанию) • Механика персонажа не зашита в сборку • Возможность обновлять «на лету» • Можно выполнять вне игры (проверка на сервере, утилиты для проверки баланса) • Интегрируется с игровыми подсистемами (анимация, VFX)
  • 114. • Нет возможности создавать уникальных персонажей (нужно заранее предусмотреть все варианты) Выбор основы Табличные данные с параметрами Описание способностей на С# • Нет возможности обновлять и добавлять персонажей без скачивания версии Интерпретируемый DSL • Нужно разработать
  • 115. Табличные данные из GoogleDocs Виртуальная Машина Скрипты, описывающие способности Парсер Дерево внутреннего представления Программная модель персонажей и способностей в c# Математические, вспомогательные функции, перечисления и т.д. Основной цикл Арены Данные Арены Внешняя среда
  • 116. В коде оперируем терминами целевой платформы: • Target • Hitpoints • Level • … Длительные эффекты описываем в терминах «корутин», действующих в течение: • Хода персонажа • Раунда • Условной секунды и т.д. Свойства характеристик описываем при помощи фильтров
  • 117. Транслируем события анимационных кривых и события системы эффектов в систему способностей:
  • 118.
  • 119.
  • 120. Язык способностей и Виртуальная машина • 2 рабочие недели Временные затраты Игровая модель (декораторы, модификаторы, внешние события…) • 8 недель Логика для 35 персонажей (+ новая система взаимодействия) • 4 недели + to be continued Система прогона боёв для проверки результатов и баланса персонажей • 2 недели