Fallout3 Експорт та заміна анімації руху персонажа

У посібнику розглядається експорт з 3dsMax та заміна анімації руху персонажів у грі Fallout 3.

Зміст

той, що біжить по лезу

fallout3

fallout3

Насамперед, поговоримо про інструментарій, для цього необхідний. В принципі, люди роблять все і через Blender, але я з ним не бум-бум, тому - 3Dmax, але з максом свої складності.

Чудовий NifTools MaxPlugins експорт анімації хоч і підтримує (в Облівіон, Фоллаут3 - все одно треба допилювати до кондиції), але у нього є одна дуже "похабна" тонкість. Він експортує ключі анімації лише з лінійною інтерполяцією між ними, а кінематика руху людини та тварин – це суцільні криві.

Тому плавна зміна швидкості обертання кісточки з позиції А в позицію Б експортером розбивається на кількість сегментів з лінійною інтерполяцією. Що видає у фіналі запис ключів зі швидкістю 160 FPS, тобто замість 2 ключів на початку та в кінці анімації тривалістю в 1 секунду буде записано 160 ключів, та ще й помножити це на 64 кістки скелета. В результаті, вага анімаційногоkf-файлу збільшується в 25-30 разів.

Як видно з назви, він розрахований на 7 версію 3Dmax, а також в силу сумісності працює з 8 версією. Але, на жаль, новіші не підтримуються і навряд чи вже колись будуть.

Update.В принципі, якщо "прокеїти" анімацію на кожному кадрі та поставити лінійну інтерполяцію на ключі, то можна буде обійтися іniftools-max-pluginsекспортером. Найпростіше таку штуку провернути, експортувавши сцену вFBX-формат, у нього в налаштуваннях експорту є параметр "запікання"анімації у кожному кадрі. І потім імпортувати FBX назад для подальшого експорту в nif.

Потрібно пам'ятати тільки, що особа актора та напрямок руху "вперед" спрямовані по+Yосі. Хоча в 3Dmax за умовчанням біпед ставиться в напрямку Y осі, тому його треба розвертати на 180 градусів. Не знаю, можливо експорт буде і коректним із положення за умовчанням, від впливу ключів з інформацією з Note-треку, не перевіряв, мені простіше розгорнути.

Підготовка до експорту

Тепер підготуємо біпед до експорту.

  • Кістки біпеда повинні бути перейменовані відповідно до імен кісток скелета з файлу\meshes\characters\_male\skeleton.nif
  • Цевеликі пальці рукіUpperArmTwist-и на руках.
  • І, природно, до біпеда варто примудрити кістки від оригінального скелета:
  • HeadAnimsна кісткуBip01 Head,
  • Weaponна кісткуBip01 R Hand,
  • Bip01 LPauldronіBip01 RPauldronна кісткуBip01 Spine2,
  • Bip01 R ForeTwistDriverна кісткуBip01 R UpperArm.
  • Призначення останньої особисто мені незрозуміле. Зрозуміло, перелінковувати з оригінального скелета на біпед треба вТ-позі, в якій біпед підганяється під розміри оригінального скелета.

заміна

заміна

  • Слід відразу замінити контролер обертання дляBip01 R ForeTwistDriverзейлеранаOrientation Constraint, про всяк випадок, щоб він автоматично обертався разом з рукою.

Далі треба виправити баг із поясом.

  • У мережі я знайшов лише пораду видалити вNifSkopeконтролер руху для кістки "Bip01 Spine".
  • Але це, по-перше, жахливо виглядає і, по-друге, не по-джедайськи.

Рішення знайшлося таке:

  • потрібно створити пустушку (Dummy);
  • перейменувати її в "Bip01 NonAccum";
  • вирівняти поBip01;
  • повернути у глобальній системі координат на 90 градусів по осіZ;
  • після цього слід змінити стандартну схему ієрархії скелетаBip01на ієрархію, як у фолі;
  • для цього потрібно перекинути зв'язки "Bip01 Pelvis" та "Bip01 Spine" на пустушку "Bip01 NonAccum";
  • її, у свою чергу, прив'язати до рутової кістки "Bip01".

експорт

fallout3

заміна

  • До речі, після введення в ієрархію пустушки "Bip01 NonAccum" у біпеді перестає працювати автоматичний скріншот пози при їх створенні (вкладка Copy/Paste в управлінні біпедом), що дещо незручно при створенні анімації. Під час роботи треба відновити стандартну ієрархію, прибравши пустушку.
  • Після ієрархії потрібно додати дляBip01спеціальний трекNotesдля створення ключів з описом параметрів анімації.
  • Ключі редагуються на правому кліку на них.

fallout3

  • На початку анімації створюється ключ, в який вписується рядок:

start -name Forward -loop -at y

  • Тут:
  • start- вказує початку сегмента анімації. В принципі, в одному файлі їх може бути скільки завгодно, та працювати з таким масивом буде незручно. У Морровінді, пам'ятаю, був єдиний kf-файл анімацій на шість із половиною тисяч кадрів, замінити щось було просто жерсть.
  • -name Forward- це, власне, ім'яанімації; при створенні реплейсера ставити ім'я анімації, яку реплейсер буде змінювати, подивитися в оригінальному kf-файлі через NifSkope.
  • -loop- вказує движку, що циклічна анімація.
  • -at y- вказує, що відбувається облік фізичного зміщення по осі Y. Або слід використовувати параметр-at xy, щоб враховувати і бічне зміщення.
  • Тобто, якщо об'єкт за час анімації зрушив з нульових координат (ходьба, як приклад), наступний цикл анімації почнеться з нових координат.

Якщо ж цього параметра не буде, то програвання почнеться з тих координат, що були на початку, так:

експорт

  • За наявності команди-atвідбувається розрахунок колізії з перешкодами при русі персонажа, а за відсутності команди-atперсонаж при програванні анімації може легко пройти крізь стінку, тому що фізично його колліжен-бокс не рухається. Без параметра-atможна виконувати постановочні сценічні анімації, наприклад.
  • Наприкінці анімації ставиться ключ із текстом:end.
  • Також існують ключі для вказівки будь-яких моментів під час відтворення анімації, наприклад, для звуків при кроці.
  • В оригінальному файліmtforward.kfу моменти зіткнення ступні із землею стоять ключі:
  • 7 кадр-Enum: Left
  • 8 кадр-m:L
  • 21 кадр-Enum: Right
  • 22 кадр-m:R
  • Звуки це чи щось інше, я ще не зрозумів, але нехай будуть.
  • До речі, всі ці проблеми з налаштуваннями вNotesможна зробити і засобамиCivilizationIV-MaxTools:)

fallout3

Експорт біпеда

  • Про інсталяцію експортераCivilizationIV-MaxToolsчитайте тут.
  • Тепер про причину вибору як експортераCivilizationIV-MaxTools.
  • Цей експортер під час експорту може зберігати ключі так само, як вони стоять на біпеді, а не якniftools-max-plugins, який "фігачить" все поспіль.
  • Правда,CivilizationIV-MaxToolsтеж експортує з лінійною інтерполяцією, а оскільки ключів мало - то будуть ривки.
  • Як вихід із становища - перед самим експортом анімацію слід "запекти":

експорт

  • Після виконання цієї дії будуть створені ключі для всіх кісток скелета в кожному кадрі, цим буде прихована лінійна інтерполяція між ключами через малий відрізок часу - анімація робиться зазвичай зі швидкістю 30FPS, і це набагато краще 160 FPS запису ключів відniftools-max -plugins.

Експорт вkfз налаштуваннями експортера

  • Експортуємо у файл *.kf:

експорт

  • Проте отриманий kf-файл ще готовий для фолла, оскільки версія в нього розрахована під цивілізацію, і його потрібно оновити.
  • Для цього застосовується утиліта kfupdater
  • Автор все в Рідмі розписав, що і як, так що скажу тільки, що він зробив bat-файл із рядком:
  • Цей файл слід кинути в папку зkfupdater, туди копіюється отриманийmtforward.kf.
  • Батник виконується, створюючи новийmtforward-out.kf, який вже можна використовувати у Фоллауті (не забувши його назад перейменувати наmtforward.kf, ім'я реплейсера має збігатися з оригіналом ;).
  • Переглянути результат можна в NifSkope, якщо захочеться.
  • Для цього зmtforward-out.kfтреба попередньо видалити бранчNiStringPalette.
  • Для чого він потрібен - неясно, фолл його їсть нормально, втім, як і його відсутність, а ось NifSkope не може підвантажити анімацію зkfна файл\meshes\characters\_male\skeleton.nif, якщо цей бранч присутній уkf-файлі.

Той, що біжить по лезу
Заміна анімації жіночої ходи для гри Fallout 3

"Код да Вінчі"

Тут будуть просто перераховані зрозумілі коди для трекуNotesдля рутової кісткиBip01, якими шифрується всяка всячина для движка.

Список доповнюватиметься, як тільки стане ясно, що для чого. ^_^.

В принципі теги однакові для ігор Oblivion, Fallout3, Fallout3: New Vegas.

-at y (або -at xy)

Enum: Left та Enum: Right