PDA

Просмотр полной версии : Игровое моделирование


daeworn
08.05.2007, 23:05
Если тема не нужна - удаляйте. Хочу поделиться тем небольшим опытом, что имею. Моделирование для игр имеет свои особенности. Прошу тех, кто может что-то добавить - высказываться.
Во-первых, всегда требуйте чертеж. Одного эскиза мало, а если вы сделаете чертеж по эскизу сами, то ваша модель может не совпасть с видением дизайнера (в 99% случаев). Тогда вас ждут многочисленные переделки и возвраты на несколько шагов назад.

Что из себя представляет модель для игры? Это объект, имеющий малое количество полигонов (зависит от возможностей двига), карты diffuse, normal & specular (последняя не всегда). Модель в идеале должна представлять из себя один объект, плюс те части, которые в течение игры могут меняться (водлосы-шлем, одежда-броня). Возможно разбиение объекта на элементы, это облегчит создание текстурной развертки в разы, но при скелетной анимации возможно возникновение интересных артефактов. (В Сталкере, кстати, имеется в одном из роликов подбный артефакт, когда из пальца доктора, помоему, торчит этакий кол, но это из-за плохой настройки Skin или Physic, не знаю, что там применяли).
Примеры того, что из себя представляет современная игровая модель, можно брать из игр, доступных для потрошения. Например, Дум 3 и Квейк 4 дают прекрасное представление, как делать низкополигональную модель, которая в игре выглядит на 2000000 поликов:) Еще интересней нифы Обливиона, там в одном файле содержится модель, текстура и анимация вместе с коллижн (не знаю, как по-русски сказать, но это то, что отвечает за то, чтобы объекты в игре не пересекались).
Далее. Моделируя лоу-пол, не детализируйте области колен, бедер, предплечий и торса. Все это вы сделаете в хай-пол. Детализируйте суставы, сочленения, так как анимация скажется на реальной лоу-пол, а не на проецируемом мэппинге. Моделируя голову, не увлекайтесь детализацией. Помните, что кол-во точек шеи у головы и тела должны примерно совпасть (если делаете голову отдельно). У вытягивания головы из шеи, т.е. моделирования вместе с телом есть свои плюсы ( последующая работа с моделью) и минусы (низкая детализация).
Теперь о том, как сделать карту нормалей. Это главное для того, чтобы лоу-пол выглядела как хай-пол. Я знаю два способа, причем пользовался только одним из них. Способ первый: сделать высокополигональную модель со всеми прибамбасами и с нее прожечь карту нормалей. Способ второй (его я только пробовал, в конечных результатах не использовал): нарисовать подробную текстуру, до мелочей, потом с нее сделать карту нормалей с помощью утилиты TGA2DOT3 или программы TextureMaker. Если же воспользоваться первым способом, а потом в TextureMaker наложить полученную карту нормалей на Diffuse с Emboss, то получится вообще классно:) А потом еще с этого прожечь в TMaker карту нормалей заново.
Как сделать хай-пол. Куча способов. Дело в том, что хай-пол и лоу-пол должны максимально возможно совпадать в пространстве, в идеале хай-пол должна перекрывать лоу-пол (почему-то не получается:)) Можно сделать сплайновую модель по тому же чертежу (долго и не факт, что удачно). Можно конвертнуть лоу-пол в обж и поработать с ней в Z-Brush. Проблема в том, что ЗБраш требует больших мощностей компа. Все-таки под Mac делалось. Самый реальный способ - применить в максе сначала модификатор Push с небольшим значением (0.1), затем MeshSmooth или TurboSmooth с одной итерацией. Затем при помощи экструд и бивел усложняем модель, добавляем итерацию, усложняем, добавляем - до полного удовлетворения, или пока машина не откажет:) С этой модели прожигаем нормал мэп при помощи Render2Texture.

ТимофейЕцков
09.05.2007, 01:10
коллижн
Модель столкновений/соприкосновений, часто оболочка, имеющая гораздо меньше полигонов, чем в основной модели, почти всегда повторяющая её очертания, которая используется при просчёте столкновений. Например, гораздо проще с точки зрения математики создать цикл, который будет искать соприкосновения среди 1000 полигонов, чем среди 4000 полигонов полной модели.потом в TextureMaker наложить полученную карту нормалей на Diffuse с Emboss
Подробнее - что такое emboss

Ещё. Опиши процесс создания нормалей через РендерВТекстуру - у меня времени на это нет, а большинству моделлеров будет нужно.

Скелетную анимацию так же опиши - нужно, чтобы мы все умели делать модели, которые легко анимировать. А то вот я пытался сделать два раза скелет, но из-за огрехов модели и слабости компа только на третий раз что-то вышло.

daeworn
09.05.2007, 16:00
Подробнее - что такое emboss


Emboss - один из способов наложения одной текстуры на другую. Структура накладывается, создавая рельеф.

Создание карты нормалей в максе.
Имеем две модели - высокополигональную и низкополигональную. К лоу-пол не стоит применять модификаторы MeshSmooth или TurboSmooth, они увеличивают кол-во полигонов. Две модели нужно выровнять относительно друг друга, лоу пол в идеале должна помещаться внутри хай-пол, но на практике этого трудно добиться. Так что достаточно выровнять их по центрам. Если хай-пол очень сложна, начнутся тормоза во вьюпорте. Чтобы этого избежать, в свойствах обьекта нужно отметить птичкой пункт Display as Box. Выделяем лоу-пол и давим клавишу 0. Появится окно Render to Texture. В этом окне обращаемся к разделу Projection Mapping. Отмечаем птичкой Enabled, убираем птичку с Sub-Object Level, давим Pick, в появившемся окне выбираем хай-пол модель. В этот момент Макс может ненадолго задуматься, не пугайтесь, он не завис:) Во вьюпорте появится стренная синяя решетчатая конструкция. А мы вернемся к окну Render to Texture. Надеюсь, ваша лоу-пол модель уже имеет текстурную развертку? Если нет, быстренько делайте. Что мне понравилось в восьмой версии макса (раньше шестерку юзал), так это UnwrapUVW. Все делает сам! Почти. В шестой версии приходилось часами глаза ломать об монитор, а сейчас только немного поправить результат.
Но предположим, что развертка есть. В разделе Mapping Coordinates отмечайте пункт Use Existing Channal. Если выберите Use Automatic Unwrap, получите такое чудо, что очень удивитесь. Это все было во вкладке Objects to Bake. ПЕреходим к вкладке Output. Жмем кнопку Add, выбираем Normals Map, определяем ее размер (чем больше - тем лучше), указываем имя файла, его целевой слот. Путь к полученным изображениям можно поменять во вкладке General Settings.
Все готово. Жмем Render. Глядя на полученный результат, вы удивляетесь - а где же сине-розовая карта нормалей? Не пугайтесь, на самом деле вы ее и получили, откройте файл и убедитесь. В окне рендерера возможно появление ярко-красных пятен. В этих местах несовпадение двух моделей слишком большое. Если пятна небольшие и находятся на незначимых местах (в складках, на сгибах и т.д.) - ничего страшного. Если пятен нет вообще - поздравляю, вы добились почти невозможного. Если же их много - переходим к самой нудной части нашего действа.
В стеке модификаторов выбираем уровень Cage модификатора Projection. Открываем вкладку Cage. Жмем Reset и начинаем раздувать сетку счетчиком Amount. Периодически рендерим в Render to Texture, проверяя результат. Если не помогает, начинаем двигать отдельные точки сетки (это вообще труба!) Чтобы видеть изменения во вьюпорте, назначте полученную карту в слот Diffuse стандартного материала и назначте материал модели. Включите отображение текстуры во вьюпорте.
Наконец, все позади, полученная карта вас удовлетворяет. Закрывайте окно Render to Texture, убирайте Projection из стека модификаторов. В редакторе материалов в слот Diffuse кладем тот растр, который предназначен для вашей модели, или ничего не кладем, если карты еще нет. Переходим к вкладке Maps. В слот Bump кладем Normal Bump, а уже в первый слот этой процедурной карты кладе молученную нами карту нормалей. Назначаем материал модели, рендерим - вуаля! Ваш низкополигональный обрубок выглядит на сто баксов.
Желаю всем успехов в начинаниях:))

daeworn
08.06.2007, 19:46
Придумал способ, как в некоторых случаях обойтись без виртуальной студии. Удобно, если нет чертежа, неохота его делать самому, или нет технических возможностей. У меня вот нет дома ни сканера, ни принтера, тем более графического планшета, а мышкой рисовать - сами знаете. Способ для моделирования антропоидных персонажей мужескаго полу (две руки, две ноги, одна голова).
В Zbrush 3 имеется стандартный инструмент, представляющий собои модель "среднестатистического" мужчины, состоит из 6956 поликов. Я его конвертнул в .obj, открыл в максе, конвертнул в .3ds. Можно взять здесь:http://ifolder.ru/2280795
Далее: импортируем модель, масштабируем по вкусу, снимаем выделение с нее, создаем бокс и тянем модель как обычно. Делаем как бы одежду или броню, или что там запланированно. Конечно, в голове должен быть четкий образ конечной модели. Плюс в том, что мы видим готовую сетку шаблона, т.е. можно замоделить перса в броне, не превышая лимита в 7000 поликов. Кроме того, можно отделить у шаблона голову и кисти рук и приаттачить к своей модели, здорово экономит время. Насчет плагиата можно не беспокоиться, модель входит в стандартную комплектацию Zbrush 3.
Просьба к тем, кто воспользуется этим способом: отпишитесь, как он вам в деле. Желаю всем успехов:))

Dr.Agon
28.11.2007, 16:58
daeworn,

А есть ли какие-нибудь примитивные инструменты для быстрого создания 3D-моделей для последующей обработки в фотошопе?
Допустим, мне нужно создать картинку локации в изометрии, т.е.нарисовать лес, здания и проч. Или сделать "куклу" для игрока. В принципе, такого рода мелкихзадач бывет много. И Все эти пуговицы ваять на лазерном станке 3D-Макса кажется мне излишним.

И еще, а могли бы Вы сделать краткий обзор известных вам инструментов 3D- и 2D- графики?

daeworn
07.12.2007, 23:38
Dr.Agon,
Постараюсь подготовить обзор того, что я знаю, хотя это очень немного. Инструментов для быстрого создания моделей я не знаю, хотя они, мне кажется , должны быть. Есть узкоспециализированные проги, Брайс , например, делает ландшафты, т.е открытые локации можно делать в нем. В общем, покопаюсь в своих материалах, и отвечу:)

Dr.Agon
09.12.2007, 00:08
daeworn,
спасибо!

Будет ли Вам интересно, если в созданной Вами теме поднимутся вопросы сюжетостроения и проч., имеющие отношение к игровому моделированию, но не со стороны визуализации, а со стороны сюжетно-смыслового устройства и игротехники?