В общем два дня занимался понятное дело чем с нифскоупом, блендером, тридэмаксом, всякими экспортерами и прочей фигней...
Результаты обрадовали.
Цель была заставить актера встать в определенную позу. Насмотревшись на всякие JOJO, EFG, OSRPose и другие, принялся изготавливать.
Есть Blender 2.46, Nifscope, Blender Nif Script 2.3.3, PyFFI 0.10.9. Последние версии Nif Scriptов и PyFFI что-то как-то криво импортируют-экспортируют анимацию. Есть еще какой-то из позмодов, типа JOJO =)
1. Запускаем Blender, импортируем туда части тела, скелет удаляем. Получается вот что:
2. Удаляем лишние объекты, типа кубика, лампочки, камеры. Выделяем всё (<A>).
3. Импортируем skeleton.nif (который можно Oblivion Mod Managerом вытащить из Oblivion - Meshes.bsa)
В Keyframe file загружаем kf из поземода, либо какой-нибудь idle или что еще, не важно. Жмем Ok
4. После этого модель привяжется к скелету и примет указанную позу:
5. Открываем в Outliner'е Scene Root и выделяем Pose:
6. Модифицируем позу (вращаем по косточкам <R>), как нам душа, голова и другие части тела желают =) Если вдруг нажали <Ctrl>+<Z> - увы, все наши достижения сбросятся и придется повторять заново. Это потому, что ничего не зафиксировано. Поэтому <A> -> <I> -> LocRot - наше все =)
7. Открываем Outliner, выделяем кость Bip01 Pelvis и выравниваем наше тело, чтобы голова смотрела в стандартном направлении (назад на оси Y) по всем проекциям.
8. Выделяем кость Bip01 NonAccum и располагаем позу правильно, относительно кости Bip01:
Вращаем (<R>):
И перемещаем (<G>):
Выровнять по всем проекциям.
9. Фиксируем во временной области кадр: выделяем все и жмем Pose -> Insert Keyframe -> LocRot (или <I> -> LocRot).
10. В Outliner'е выделяем все наше тело (меши) и удаляем. Остается скелет =)
11. Выделяем все, жмем File -> Export -> NetImmerse/Gamebryo (.nif, .kf). В настройках экспорта щелкаем на кнопке Oblivion и Export Animation Only (.kf):
Экспортируем.
12. Открываем экспортированный .kf файл Нифскоупом, открываем Block Details (жмем F3), выделяем NiControllerSequence, изменяем имя на SpecialIdle:
13. Ищем в этом же блоке Cylce Type и изменяем его значение на CYCLE_LOOP:
14. (вроде необязательно) Прокручиваем скисок нодов вниз, ищем NiTextKeyExtraData. В Block Details раскрываем Text Keys. Появятся еще два. Раскрываем второй Text Keys (там, где end написано) и изменяем Time на 0.0000:
15. Сохраняем, запихиваем куда-нибудь в игру (http://www.wiki.rumor.ru/index.php?title=O..._animation_mods, http://cs.elderscrolls.com/constwiki/index...Idle_Animations, либо как-то еще)
16. Наслаждаемся.
Судя по всему, таким же образом делаются и динамичные анимации, только надо фиксировать движения костей в Timeline. Сам не пробовал, ибо лень =)