Перейти к контенту

Рекомендуемые сообщения

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

Ссылка на комментарий
5 часов назад, Pavel_Blend сказал(а):

ты не тот формат level импортируешь. Вот здесь описано, какой поддерживается (скриншот из сдк посмотри):

https://ap-pro.ru/forums/topic/87-blender/page/5/?tab=comments#comment-62380

Указал папку, где находятся object файлы в настройках аддона. При импорте .level тоже самое пишет. Кстати, ты нашел решение, как можно ogf импортировать? И почему нельзя взять решение из аддонов для других программ? Всяко есть хоть один такой, который ogf напрямую импортирует

Ссылка на комментарий
31 минуту назад, Марка демченков сказал(а):

Указал папку, где находятся object файлы в настройках аддона.

но этого недостаточно. Нужно ещё в сдк сохранить этот самый *.level. Я на скриншоте на ap-pro показал, как создавать *.level файлы. Нужно в сдк выделить объекты и сохранить с помощью File>Save Selection As.

 

34 минуты назад, Марка демченков сказал(а):

Кстати, ты нашел решение, как можно ogf импортировать?

нужно в аддон внедрять поддержку, но я пока не буду её писать, так как я ещё кучу вещей не доделал. И с ogf есть проблемы. Вообще, ogf легко превратить в object/skls с помощью одного клика мыши. Можно всю папку gamedata\meshes сконвертировать с помощью скрипта batch_converter:

https://github.com/PavelBlend/stalker_batch_converter

Но если не хочется возиться с установкой питона, то можно файлы перетащить на converter.exe. Чтобы всю папку gamedata\meshes сконвертировать, можно в проводнике винды в поиск ввести ogf, и все найденные файлы за раз перетащить.

 

Поддержка ogf облегчит жизнь, но без неё можно обойтись. Поэтому я не спешу её внедрять.

41 минуту назад, Марка демченков сказал(а):

Всяко есть хоть один такой, который ogf напрямую импортирует

я знаю, как ogf устроен, поэтому мне не нужно изучать сторонние плагины. Я уже писал импорт ogf, но он глючный и медленный.

 

Просто если и писать поддержку ogf, то поддержку всех версий из ТЧ, ЗП, ЧН, билдов. Если писать поддержку из билдов, то много времени займёт, как это случилось с импортом уровней из gamedata\levels. А потом ещё доделывать экспорт ogf.

@Fenix1397 понял ошибку. Есть микро-дрожание. На самом деле такие микро-отличия не будут видны в игровой анимации, которые будут в omf файл записаны. Но всё равно нужно выяснить, почему это происходит. Я skls экспорт не писал, поэтому не знаю, почему так анимация сохраняется. Вот кривая в блендере до экспорта в skls:

mN92dyZ.jpg

А вот после экспорта в skls и обратно импорт в блендер:

pCKOWyx.jpg

Амплитуда этого участка кривой меньше 0.0005. Это вращение в радианах.

 

Сейчас буду изучать код экспорта и смотреть что к чему.

Ссылка на комментарий

@Fenix1397 нашёл причину. Оказывается это не ошибка. В окне Dope Sheet в режиме Action Editor нужно выбрать анимацию. В N панели будут свойства активной анимации. Там есть параметр Auto Bake:

jx0SsDg.jpg

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

 

В той же панеле есть параметр Custom Threshold:

Xddwfpl.jpg

Его нужно включить, чтобы указать свои значения пороговых значений. По-умолчанию они равны 0.001 (0.001 радиан в градусах будет 0.057):

NKUY4dO.jpg

Параметр L - пороговое значение epsilon для location кости

Параметр R - пороговое значение epsilon для rotation кости

 

Нужно эти значения уменьшить. Я добавил пару нулей и анимация сохранилась точнее:

0ffJV43.jpg

 

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

  • Нравится 1
Ссылка на комментарий

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

 

Ссылка на комментарий
22 минуты назад, Fenix1397 сказал(а):

в той же анимации перезарядки

сейчас экспортировал анимации перезарядки со значениями Custom Threshold L=0.00001 R=0.00057 и отличий нет. Я запёк исходную анимацию в блендере и сравнил ключи, которые получили от импорта skls. Отличий нет.

Ссылка на комментарий

@Fenix1397 сегодня опять изучал проблему с экспортом анимаций в skls. Вот что получается, если импортировать их обратно:

pCKOWyx.jpg

А вот что было изначально:

mN92dyZ.jpg

 

Это скорее всего ошибка. Я до конца не понял, так как мало времени изучал код экспорта. Чтобы избежать эту ошибку, нужно ставить нули в параметрах L и R у анимаций. Вот эти параметры:

0ffJV43.jpg

Аддон экспортирует все ключи как STEPPED. Но аддон удаляет лишние ключи, которые имеют слишком маленькое различие с соседними ключами. В итоге эти удалённые ключи образуют дыры в кривой, а при интерполяции STEPPED эти дыры будут создавать дёргание. Нужно сохранять ключи как LINEAR, а не STEPPED. Так как STEPPED создаёт скачки (как ступенька на кривой), а LINEAR по прямой соединяет. Вот как сохраняет ключи аддон сейчас:

 

bL0lz1g.jpg

А должен примерно так сохранять:

mO9P63m.jpg

В общем буду разбираться. Быстро эту ошибку не исправить. Пока временное решение: установить L и R на ноль. Правда размер skls будет больше. Так как будут сохранены абсолютно все кадры.

Ссылка на комментарий

Доброго времени. Такой "типичный вопрос новичка" хочу задать: допустим, у меня есть импортированная из другой игры модель оружия без анимаций, но с родным скелетом. Реально ли в блендере прикрепить пушку к рукам (сделать худ), пересадить такой модели анимации стандартного оружия из ТЧ (например,  винтовке м-16 из CS GO пересадить анимации от сталкеровской lr-300)? Можно ли (и стоит ли) удалить родной скелет модели, и пересадить скелет от LR-300 с родными анимациями лр-ки и руками? Можно где-то вообще почитать (посмотреть) про весь процесс с нуля до готового результата добавление стороннего оружия в игру, cо всеми нюансами, подводными камнями и т.д.? Сколько не искал, всё только работа со стандартными пушками из ТЧ/ЗП (хотя я и их ещё не освоил:biggrin:). 

Ссылка на комментарий

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

https://github.com/igelbox/blender-retarget

На ютубе есть видео, в котором показан процесс переноса анимаций с помощью этого аддона.

  • Спасибо 1
Ссылка на комментарий
15.07.2021 в 23:30, Pavel_Blend сказал:

В общем буду разбираться. Быстро эту ошибку не исправить. Пока временное решение: установить L и R на ноль. Правда размер skls будет больше. Так как будут сохранены абсолютно все кадры.

Ну я пока так и делаю, не думаю, что увеличение размера skls это что-то критичное

Ссылка на комментарий

@Pavel_Blend ну да, я это и имел введу. Чтоб взять модельку импортнутую пушки, и просто на неё пересадить руки и анимации пушки из ТЧ дефолтные, сделав HUD. За плагин спасибо, уже установил. Пойду почекаю видео.

Попытался импортировать в блендер 2.93 hud в формате skls, получил ошибку Active is no armature при нажатии на import >X Ray Skeletal Animation.

С чем это может быть связано?

Дополнение к предыдущему посту: такая же ошибка выдаётся при нажатии на .bones. 

Ссылка на комментарий
8 часов назад, Fly сказал:

Active is no armature

активный объект не является арматурой/скелетом. При импорте анимаций и bones нужно выделять не 3д модель, а скелет.

  • Спасибо 1
Ссылка на комментарий

Вышла новая версия аддона blender-xray.

Более подробно об изменениях здесь:

https://github.com/PavelBlend/blender-xray/releases/tag/v1.9.0

Были исправлены ошибки в экспорте анимаций. Точнее это всё таки была не ошибка. Просто анимация грубо запекалась. Я писал, что нужно сохранять ключи не в виде STEPPED, а в виде LINEAR.

Но это не нужно делать, так как LINEAR гораздо больше байтов занимает. Нецелесообразно через один-два ключа добавлять LINEAR, так как это наоборот увеличит размер skls файла, вместо его уменьшения.

  • Полезно 2
Ссылка на комментарий

Не получается импортировать hud модель рпг из зп. Импортируется только скелет, без меша, и возникает такая вот ошибка:

Скрытый текст

Python: Traceback (most recent call last):
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\utils.py", line 425, in wrapper
    return method(self, context)
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\utils.py", line 446, in wrapper
    return method(self, context)
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\obj\imp\ops.py", line 67, in execute
    imp.import_file(file_path, import_context)
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\log.py", line 13, in wrap
    return func(*args, **kwargs)
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\obj\imp\__init__.py", line 21, in import_file
    bpy_obj = _import(fpath, context, xray_io.ChunkedReader(memoryview(file.read())))
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\obj\imp\__init__.py", line 11, in _import
    bpy_obj = main.import_main(fpath, context, xray_io.ChunkedReader(data))
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\obj\imp\main.py", line 340, in import_main
    mesh_ = mesh.import_mesh(
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\log.py", line 13, in wrap
    return func(*args, **kwargs)
  File "C:\Users\Пользователь\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_xray\obj\imp\mesh.py", line 355, in import_mesh
    props.PropObjectMeshSplitByMaterials()[1].get('name')
TypeError: '_PropertyDeferred' object is not subscriptable

location: <unknown location>:-1

При этом остальное все импортируется нормально

Ссылка на комментарий

@Марка демченков а какая у тебя версия блендера и версия аддона? Я эту ошибку уже исправил. Она может возникнуть в блендере 2.93 и в аддоне ранее версии 1.8.1. Сейчас последняя версия 1.10.0.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...