Unity и публикация для Flash-плеера

Экспорт из Unity во FlashЯ не спешу переходить на Unity 4. Причиной тому служит полученная по акции прошлой весной лицензия на Unity 3.5 с возможностью публикации под Android и iOS, а также превью-версия экспорта во Flash. Думаю, нет необходимости рассказывать, зачем нужно игру на Unity публиковать под Flash-плеер. Все мы знаем о существовании просто немыслимого количества порталов с бесплатными Flash-играми. Грех не воспользоваться такой широкой сетью для дистрибуции своей игры.

Но, к сожалению, при попытке публикации во Flash из Unity часто вылезают совершенно неожиданные ошибки. Здесь я опишу некоторые из них, а также способы их устранения.


( Читать дальше )
  • 0
  • 02 января 2013, 13:47
  • dimanjy
  • 1

Гравитация в Unity

Гравитация в Unity

В большинстве игр для реализации перемещений игрового персонажа в пространстве уровня физические движки не применяются. Это обычно и не требуется, ведь гораздо проще просто переместить персонажа на 1 метр вперед, чем прикладывать к нему определенную силу с учетом его массы, которая преодолеет трение поверхности и позволит совершить поступательное движение на заданное расстояние, да еще и побороть инерцию, вовремя остановившись дабы не соскользнуть с обрыва.

В Unity для управления персонажем создан специальный упрощенный контроллер Character Controller, который представляет собой капсулу с заданной высотой и радиусом. Эта капсула позволяет персонажу перемещаться в пространстве, отслеживая столкновения с другими объектами, к которым присоединен какой-либо Collider. Благодаря этому наш персонаж не проваливается в стены и под пол. Но вся проблема в том, что о гравитации в данном случае приходится заботиться самому, т.к. Character Controller ничего о ней не знает. На то он и упрощенный компонент.

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


( Читать дальше )

Программная генерация Mesh в Unity

Программная генерация Mesh в Unity

Что ни говори, а все-таки приятно в Unity программировать. Документация самая полная и хорошо структурирована. Практически на каждый метод и свойство класса есть свой небольшой пример. И даже если вы задумали генерировать модели объектов программно (т.е. работать напрямую с объектом Mesh и его вершинами), то и здесь можно разобраться самому при помощи одной только документации. Помнится, первый опыт программной работы с Mesh в Unity у меня был, когда я разбирался с созданием разрушаемого окружения в Unity. Тогда, правда, сам код я так и не дописал.

Но вот теперь снова столкнулся с необходимостью программной генерации Mesh в Unity. На сей раз мне это понадобилось для отрисовки отладочных объектов (кубиков). При помощи этих кубиков я разбиваю игровое пространство на кластеры, создавая таким способом BSP-дерево. Что получается, видно на рисунке в начале статьи. А сам код идет далее…


( Читать дальше )

Редактор шейдеров Strumpy Shader Editor в Unity

Редактор шейдеров Strumpy для UnityВ движке Unity 3D версии 3.5 нет встроенного редактора материалов, такого, как, например, в UDK. Но на помощь игроделам пришли коллеги по цеху и создали бесплатный инструмент, который позволяет в визуальном редакторе создавать свои собственные шейдеры (shaders) для Unity без необходимости разбираться с языком написания шейдеров. Инструмент этот называется Strumpy Shader Editor (редактор шейдеров Strumpy), который доступен бесплатно в Unity Asset Store.

Однако хороших примеров и документации по Strumpy, к сожалению, нету. Есть одна огромная ветка на форуме Unity, но там чаще всего выкладывают шейдеры с вопросом «Подскажите, где у меня тут ошибка?», поэтому приходится разбираться самому.

Тут я постараюсь немного осветить самые часто задаваемые (мною) вопросы по созданию шейдеров в Strumpy Shader Editor. Это и создание эффекта свечения (Light Shafts — такие красивые лучики), и имитация объемного локализованного тумана (Fog Volume). А начнем мы, пожалуй, с самого простого — создания прозрачного материала.


( Читать дальше )

Экспорт из Blender в Unity: расположение осей

При экспорте персонажа из Blender в Unity обнаружил, что когда я это делал в прошлый раз, то мне просто повезло с правильным расположением осей, и этого вопроса не возникало. Теперь же повторил процесс снова и наткнулся на грабли: импортировал модель из Blender в Unity, повесил на нее стандартный скрипт Third Person Controller, и обнаружил, что персонаж идет задом наперед.

Правильное расположение осей показано на картинке: при этом стандартный контроллер направляет персонажа в нужную сторону (идет лицом вперед).

Экспорт из Blender в Unity

Как видно из рисунка, +Z в Unity соответствует -Y в Blender'е; +X в Unity соответствует -X в Blender'е; и Y в Unity соответствует Z в Blender'е.
Речь идет о прямом использовании .blend-файлов в Unity, т.к. Unity отлично их поддерживает без какой-либо необходимости в экспорте из Blender.

По поводу единиц измерения — они в Blender и Unity совпадают.

Нормали вершин и рендеринг в 3D играх

Швы при освещении модульных конструкций
Занявшись модульным моделированием игровых локаций, я еще в Unity столкнулся с проблемой наложения освещения на блочные конструкции. Проблема в том, что при рендере блоки отчетливо видны, хотя в теории должны образовывать единую конструкцию. Это отчетливо видно на рисунке в верхней части кирпичной стенки.

Все, на что у меня хватило ума в тот раз — это отказаться от использования освещения в Unity и применять Unlit-шейдеры, да и вообще, отказаться от Unity и перейти на UDK:), в котором на первый взгляд таких проблем с модульными конструкциями не наблюдалось. Потом, правда, оказалось, что и в UDK эта проблема имеет место быть, в частности при создании травы. Теперь же хочу поделиться решением этой проблемы, да и вообще, немного погрузиться в теорию нормалей вершин в рендере 3D движков.


( Читать дальше )

Создаем Locomotion систему в UDK

Locomotion системаПродолжая работать над постановкой стоп персонажа в UDK через инверсную кинематику (IK), мы плавно переходим к созданию так называемой Locomotion-системы для UDK. Вечно меня тянет в те области, в которых я вообще не разбираюсь! ;)

В чем же заключаются недостатки обычной IK-системы для постановки стоп?

Во-первых, она работает пост-фактум. Т.е. корректировка стопы осуществляется уже после того, как в анимации стопа поставлена на землю. А учитывая неровность поверхности — поставлена изначально неправильно. Стопа проваливается в землю и только после получения сигнала из анимации корректируется IK-контроллером. Смотрится это, честно говоря, не айс!

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

А в чем же заключается отличие Locomotion-системы от постановки стоп при помощи IK-контроллеров?


( Читать дальше )
  • +1
  • 05 ноября 2012, 14:20
  • dimanjy
  • 1

Текстурирование: Specular Map и Normal Map

В этой небольшой заметке хочу рассказать о важности Specular Map и Normal Map при текстурировании игровых моделей. Specular Map задает карту отражения объектом света. Она показывает, какое количество света и какого цвета будет отражено в каждой точке поверхности. Именно Specular Map придает объектам более реалистичный вид.

Обратите внимание на рисунок ниже. Первая картинка слева получена с использованием обычной диффузной текстуры, а картинка справа помимо диффузной использует также Specular Map. Почувствуйте разницу: на первой картинке кирпичная кладка отражает свет неестественно сильно и равномерно, вторая же картинка отражает гораздо меньше и неравномерно. Например, в местах стыков кирпичей свет вообще не отражается.

Использование Specular и Normal Map


( Читать дальше )

Модульное моделирование строений

На майских праздниках решил обзавестись недвижимостью. Не настоящей, конечно, а игровой. Причем даже не столько самой недвижимостью, сколько набором стандартных блоков для дальнейшего конструирования зданий из этого набора.
 
Модульная модель здания


( Читать дальше )

Алгоритм поиска пути в Unity [3]

Простая карта игровой локации

Доделал алгоритм формирования графа путей между укрытиями на игровой карте. Теперь нужно посмотреть его в действии. На картинке выше представлен примерный игровой уровень. Посмотрим, как отработает алгоритм на таком небольшом тестовом полигоне…

( Читать дальше )