суббота, 5 января 2013 г.

Набор аниматора №1

Набор аниматора №1


На этой страничке я хочу выложить набор файлов, которые могут пригодится аниматорам, знающим Blender 2.62+.
С его помощью можно с лёгкостью создавать разнообразные позы или простые движения персонажей для игры Skyrim.


Ссылка на мод: "КЛИК"



В состав набора входит скрипт-экспортёр для Blender 2.62+ (сохранён в файле примера), консольная программка "KFmaker.exe" создающая KF файлы, файл "skeleton_female.txt" описания скелета модели для которой создаётся анимация и файл "Examlpe.blend" с рабочим примером. В примере уже импортирован стандартный игровой скелет и тело, установлены параметры сцены для создания позы. В архиве так же имеется небольшая инструкция, описывающая основные шаги.

Всё что нужно чтобы начать работу - это распаковать содержимое архива в любимую папку и запустить файл примера "Examlpe.blend".

В общем процесс работы можно разделить на 4 части: создание анимации в Блендере, экспорт её в текстовый файл, преобразование текстового файла в KF формат и наконец преобразование KF файла в HKX.


Вот общая блок-схема работы с утилитами:

Это сделано так, чтобы упростить процесс написания и отладки скрипта в Blender. Все преобразования в НИФ файл и обратно я написал на Microsoft Visual C++ Express 2010. Вообще все мои утилиты написаны именно для импорта/экспорта данных в НИФ формат, ибо так экспорт происходит намного быстрее, скрипт не вырастает до бешенных размеров, да и искать ошибки в Си намного проще чем в Блендере.
Я старался разделить работу на наиболее оптимальные части. Всякие трёхмерные преобразования, то что быстрее и проще сделать в скриптах Блендера я делал в нём. Операции ввода/вывода, создание и заполнение НИФ блоков, а так же преобразования типов данных были возложены на Си.

Импортированный скелет имеет следующий вид:


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

После создания позы/анимации необходимо экспортировать данные в текстовый файл запустив скрипт нажатием на кнопку, показанную на картинке:


Теперь остаётся только выполнить команду "Сonvert.bat" чтобы создать HKX файл, пригодный для добавления в игру.
(для окончательного преобразования в HKX фромат используется утилита "hkxcmd.exe" от пользователя "TheFigment" которую, при желании, можно найти на Нексусе по ссылке "КЛИК" и которая включена в этот набор)

Пару слов о скрипте:

Работать скрипт будет только в версии Blender 2.62 и выше ибо в более ранних версиях Блендера не реализованы некоторые команды используемые в скрипте. Cкрипт не отличается особой функциональностью и интерфейсом, но зато он очень маленький и достаточно простой. Всё что он делает - преобразует анимационные координаты косточек из системы координат Блендера в систему координат НИФа, и сохраняет их в текстовом виде, для последующего преобразования в KF файл с помощью специально созданной для этого утилитки "KFmaker.exe".
В скрипте есть функция "ConvertAxes()" в которой по сути используется ручная подгонка осей коордитат косточек. Причём преобразуются только основные косточки скелета, всякие дополнительные (типа "...Twist...", "Weapon...", "MagicEffectNodes") остаются как есть и анимироваться будут скорее всего не правильно (но будет ли кто то вообще их анимировать, большой вопрос...). Решение конечно не очень, сам такие жутко не люблю, но зато оно работает. А для создания универсального метода преобразования у меня уже фантазии не хватает. Так что буду рад любому совету по улучшению работы этого кода ...

Выложил я именно этот набор, потому что мне показалось что он наиболее прост в освоении. Тут сразу виден результат, который необходимо получить, и используется минимальное количество действий для его достижения (особенно в сравнении с другими программками, которые я наделал :) )
Если будет интересно, я позже выложу второй набор утилит, с помощью которых создавались "Личинка" и "Танцовщица" (а также создавалась анимационная "болванка" для этого набора).

6 комментариев:

  1. Антон, приветствую. Увидел ваш ответ на форуме anvilbay.ru в теме «[Skyrim] Проблема при экспорте моделей». Не могли бы вы подробнее описать ваш способ экспорта моделей из блендера в skyrim. Это было бы очень полезно многим, в том числе и мне.. давно ищу способ.:) Заранее благодарен за ответ.

    ОтветитьУдалить
  2. P.S. На всякий случай ссылка на тему:
    http://forum.anvilbay.ru/index.php?topic=24802.0

    ОтветитьУдалить
  3. Добрый день, Максим.
    Мой способ достаточно прост: я вставляю в НИФ файл модель из OBJ формата с помощью Нифскопа (этот шаг в принципе не обязателен). При этом практически всегда портятся UV и нормали (такой уж этот Нифскоповский импортёр).
    Но меня это мало волнует т.к. я написал спец программку которая фактически и делает импорт всех данных в правильном виде + ещё и VertexColor может туда добавить. Просто для работы программки нужно чтобы имя NiShape блока и имя модели в OBJ файле совпадали (это чтобы руками индексы блоков не указывать).

    Но самой утилитой я пока ещё не делился. Не был уверен что оно кому то надо, да и инструкции к ней писать желания не было.

    ОтветитьУдалить
  4. Методом тыка, и дополнительной шлифовкой в нифскопе мне удалось добавить статику в игру, но без коллизии. С этим у меня сейчас и проблема. Если не против, мог бы я связаться с вами в скайпе? На анвилбэе он вроде записан. Буду признателен если окажете помощь. :)

    ОтветитьУдалить
  5. Можно конечно, для этого я его и завёл :)
    Но только я смогу ответить где то в районе 20:00 (по моему времени :) )

    Правда по коллизиям я много не помогу, давно этим не занимался. Делал в основном квадратную, ну и пару раз - как в ссылке в том посте написано.

    ОтветитьУдалить
  6. Помог импорт OBJ. Дело двинулось с мертвой точки. :) Скоро, надеюсь, и за анимацию возьмусь!

    ОтветитьУдалить