среда, 26 июня 2013 г.

In-place to Root Motion через NLA

Когда передо мной встала задача создать Root Motion анимацию, то я уже тогда пытался делать через In-place. В декабре прошлого года (тогда я занимался экспериментами с Mecanim) мне удавалось делать это только если небыло никаких IK системы.
Собственно оно и сейчас так, однако что делать если главная кость все таки немного движется? поворачивается, незначительно меняет положение? Или у неё есть множество ключевых кадров?

вторник, 25 июня 2013 г.

Итоги июня... о черт!

Мне особо нечего рассказать/показать!
Тяжелый месяц! На работе заколебали инструкциями, у сестры экзамен, у меня болит башка от C++, сроки горят, модели горят, анимация горит, я горю,... OH SH--! И вечно хочу спать.
Все что я могу сказать - следующий месяц будет лучше. Инструкции уже почти готовы, сестра и родители уедут на отдых и я останусь дома один.

Все еще изучаю WinAPI, хотя частично залез в дебри ассемблера. Пока ничего конкретного, но понятие о регистрах процессора, стеке и разделения блоков данных и инструкции уже знаю. В голове окончательная каша, но это, как говорит мой друг, "значит она варит!" :D.
Узнал страшную тайну "слова" и "двойного слова" (WORD, DWORD). Узнал почему именно они, и как они применяются (при 16 разрядных системах int был WORD, при 32 DWORD).
Значительно разъяснилась ситуация с указателями и ссылками. Фактически уже понимаю главную задумку С++. Нужно еще узнать инфу про DLL, и больше про WinAPI, затем можно доучить DirectX API. А дальше я думаю уже смогу что-то замутить.
Ассемблер - сложная штука. Но пару функции в нем намутить нужно. Все таки прямая работа с регистрами процессора и кэшем - это вам не фиг знает что!

Новая идея для генерации! Теперь я планирую создавать модели комнат и коридоров прямо с кода (без статик моделей, ясен пень, они генерятся по 3D указателям). Сначала располагаем прямоугольные блоки (они пока существуют лишь в коде).Создаем блоки (сначала блоки этажей, затем блоки корридоров, затем блоки комнат, затем блоки специальных объектов), затем присваиваем блокам биом (согласна сгенерированой 2D карте на каждый этаж). if pixelofMap == RGB (20, 20, 20) {block -> biome = BiomeIndex.Classic;) Как то так.
Финальная стадия - создание полигонов на основе этих блоков. Присвоение каждому из них текстуре, согласно биому. Генерация 3D указателей статик моделей для каждого блока. Генерация 3D указателей для entity тригеров и источников света. Презентация всего этого добра пользователю.
Следующие слова лучше не читать, если вы любите картинки, а не кучу текста. Примерно через недельку нарисую кучу схем где наглядно видно весь процесс.
Вот смена биома еще ладно. Всем пропам говорим "Сдохни с анимацией", текстурам играть анимацию смены. Смена блоков немного затруднительно, однако все равно понятна. Для каждого старого блока нужно проверить на наличие идентичного по размером нового блока, который находится в определенном радиусе. Далее выбор: 1) Вся комната с "треском и шумом" сдвигается на новую позицию, где определен новый блок. Если размеры чуть чуть отличаются, то сдвигаются и стены. Комната может сдвинутся с одного этажа на другой, таки да. Кроме случаев с подвалом, но там своя атмосфера, да... 2) Комната тпшится на новое место, правда тоже с треском и шумом. Точнее с спецэффектами. А может и без них, тогда для игрока будет "SURPRISE MATHAFACKA".

Настоящий пздц происходит если коллапсирует корридор и лестница (лестница - отдельный спец. блок). Тогда проверяются все старые блоки которые связаны с ним, и далее происходит то что описано выше. Но может случится пиздец. Это когда комнаты коллапсирует БЕЗ смещения или телепортирования. Тогда все что находится в них - дохнет, кроме случаев с некоторыми анимациями (некоторые анимации разрушают стены или пол/потолок, позволяя перебраться в другую комнату пока не поздно).

Я вчера целый день думал над одной дилемой. Описаную выше систему можно сделать совместимой с сетевой сериализацией. Говоря человеческим языком - можно сделать мультиплеер с такой вот системой генерацией. Но надо закладывать такую систему изначально, а это дополнительный геморрой. Но потом будет весело. Или все таки не стоит?

Ориентировочная дата начала написания системы генерации: середина августа. Возможно раньше, а возможно гораздо позже. Я склоняюсь ко второму варианту, увы...
Только есть один момент. Я её напишу. Это точно. ТОЧНО! Рано.... ну или поздно.

суббота, 8 июня 2013 г.

Одна из тупость Блендера

Меня Блендер как 3D пакет устраивает, но как анимационный........
Нет, сам по себе процесс творения анимации нарекания не вызывает, проблема кроется в завершении. В чем именно? В запекании....