Автор Тема: Одежда для персонажа с shapekeys  (Прочитано 11168 раз)

Оффлайн lexpartizan

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #30 : 07 Июнь 2019, 00:04:58 »
В идеале, хорошо бы перенести МН в игру и подключить как отдельный модуль, что бы можно было не просто создавать перса, но и редактировать уже готового из игры (типа как в Симсах), но опасаюсь, что это слишком смелые мечты…

Ну, мне кажется я их исполнил.
А в чём проблема? Кто мешает крутить значения шейпкеев в том же годоте? Можно точно также сделать крутилку и привязать к шейпкею. Не проблема вообще.

Меня больше напрягает другое. Один персонаж - 100 мбайт видеопамяти. 20 - 2Гб и вот вся видеопамять занята.
Было бы круто сохранять с установленными шейпкеями в отдельный меш. Тогда он бы весил полтора мегабайта, а не 100. В блендере так можно. В годоте - не знаю.

Оффлайн Samovar

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #31 : 07 Июнь 2019, 01:58:16 »
Не вкурсе, как вы сможете реализовать такое в Godot программно, или на ином движке, но подобное давно было реализовано отдельным приложением (всего 3 Мб !!!), правда, без скелета и одежды:


https://gcup.ru/load/utilities/4-1-0-131

Думаю, что больше всего у вас места сожру текстуры, а не сами 3D-модели...

Оффлайн tomcat

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #32 : 07 Июнь 2019, 02:16:52 »
А в чём проблема? Кто мешает крутить значения шейпкеев в том же годоте? Можно точно также сделать крутилку и привязать к шейпкею. Не проблема вообще.
Гм… если можно в годо крутилку привязать к шейпкею, да ещё сократить количество ползунков для связанных данных (один толстый-тонкий, а не два отдельных)… заманчиво… проблема одна — пошёл учить программирование ;D

кстати, так не получается:
Цитировать
тонкий персонаж – 0, толстый – 1, тогда 0,5 по логике, будет нормальным.
у МН идёт через базовую модель. То есть:
молодой [-1] <– база [ 0 ] –> старый [1]
на возрасте это хорошо видно, там посередине (0,5) не будет базовой формы.

Цитировать
Меня больше напрягает другое. Один персонаж - 100 мбайт видеопамяти. 20 - 2Гб и вот вся видеопамять занята.
Было бы круто сохранять с установленными шейпкеями в отдельный меш. Тогда он бы весил полтора мегабайта, а не 100. В блендере так можно. В годоте - не знаю.
То есть что-то типа экспорта, в облегчённом формате, без лишних данных? С ходу такой возможности не нашёл, но надо иметь в виду: годо — развивающийся движок, пока "звёздными болезнями" не болеют. Пользователей у них ещё не так что бы очень много и к вопросам, и пожеланиям прислушиваются, как я понял. Особенно, если им предложить какой-то интересный проект, на котором они могут слегка попиариться. Короче, можно к разработчикам обратиться напрямую и шанс ответа достаточно велик.

Интересно, а как сделано в Симс (особенно 3-м, с открытым миром)? Там же персонажей около тысячи и больше, и каждого можно в любой момент изменить. Наверное, самое большое количество настраиваемых персонажей. Хотя настроек у них, конечно, поменьше, чем 200.

Не вкурсе, как вы сможете реализовать такое в Godot программно, или на ином движке, но подобное давно было реализовано отдельным приложением (всего 3 Мб !!!), правда, без скелета и одежды:
таки именно — "без скелета и одежды", а MakeHuman — бесплатная программа, позволяющая и скелет, и одежду 8) Для игр нужна же анимация.

Цитировать
Думаю, что больше всего у вас места сожру текстуры, а не сами 3D-модели...
Да, с текстурами есть проблема… но можно взять какую-то базовую только для фактуры и назначать цвет.
Curiosity killed the cat, but satisfaction brought it back

Оффлайн Samovar

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #33 : 07 Июнь 2019, 02:20:24 »
Вот тут полно бесплатных моделей и готовых анимаций для игр: https://www.mixamo.com
Можно загрузить свою модель и там автоматом заригить... для инди-игр этого более чем достаточно :)

Генераторы - это конечно круто, но по моему мнению, лучше думать про генерацию мира, чем персонажей, в первую очередь, как это сделано, допустим, в Don't Starve...
А для этого придётся фигачить мир тайлами текстур и тайлами (кирпичиками 3D-объектов): http://blender-3d.ru/forum/index.php/topic,1949.0.html
Цитировать
проблема одна — пошёл учить программирование ;D
Да, совершенносогласен. Без этого знания, генерацию контента в игре из базовых элементов, никак не реализовать...
Мне это видится так:
  • При запуске нового игрока , генерится 3D-мир (+ 3D модели, его наполняющие) в формате годот, или ином другом, который может прочесть годот. Не обязательно он должен генерится именно с помощью годот, это может быть любая прога-загрузчик.
  • Вся эта генерированная байда сохраняется на  ЖД,  а далее запускается сама игруля в этом мире с помощью движка годот... ну и естественно, все изменения в мире сохраняются на ЖД в контрольных точках или через интервал времени, чтобы можно было позже продолжить игру
Тогда всё будет работать, особо не засерая видеопамять... вам просто нужно вовремя освобождаться от ненужного и подгружать мир с ЖД в годот, по мере его прохождения игроком...
« Последнее редактирование: 07 Июнь 2019, 02:50:59 от Samovar »

Оффлайн tomcat

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #34 : 07 Июнь 2019, 02:56:36 »
Наверное, должно здесь быть, но я не нашёл:
CMU Graphics Lab Motion Capture Database
возможно самая большая база бесплатных .bvh файлов.

И ссылки, где можно ещё посмотреть:
Where to find BVH files

Цитировать
Генераторы - это конечно круто, но по моему мнению, лучше думать про генерацию мира, чем персонажей
Генератор мира, конечно нужен, но персонажи чуть важнее  :) Мир довольно статичен и ручками сделать пару-тройку карт можно, а вот сотни персонажей — сложнее.

Кстати, обещают сделать бесплатным L3DT, пока можно ознакомительную версию на 3 месяца скачать, надо письмо отправить. Но есть и полностью бесплатная.

Цитировать
Можно загрузить свою модель и там автоматом заригить... для инди-игр этого более чем достаточно
к сожалению, проект который задуман, требует роста (взросления) всех персонажей. Отвечает этим требованиям только MakeHuman.

Цитировать
естественно, все изменения в мире сохраняются на ЖД в контрольных точках или через интервал времени
если есть знакомые девушки играющие в Симс, можно поинтересоваться сколько места на жёском диске у них занимает игра (закачки контента и сохранения)… если нервы, конечно, крепкие. :o но в общем, я именно так представляю.
Curiosity killed the cat, but satisfaction brought it back

Оффлайн Samovar

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #35 : 07 Июнь 2019, 03:06:25 »
Не понятно, зачем хранить все  ключевые формы в оперативной и видеопамяти? Я так понял, вам нужна одна базовая модель и куча её модифицированных экземпляров. Для этого вам нужно хранить в памяти для каждого экземпляра, только его параметры + базовую модель с группами вершин для ключевых форм и её скелетные анимации, а сами ключевые формы, как и разные варианты текстур, можно хранить и на жестком диске, и периодически к ним обращаться для "взросления" модели в зависимости от её параметров ...
Я не вкурсе на сколько это может Godot, но вот тут инфа об этом:
https://docs.godotengine.org/en/3.0/getting_started/step_by_step/instancing.html
https://docs.godotengine.org/en/3.0/getting_started/step_by_step/instancing_continued.html
« Последнее редактирование: 07 Июнь 2019, 03:30:16 от Samovar »

Оффлайн tomcat

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #36 : 07 Июнь 2019, 03:37:09 »
Я так понял, вам нужна одна базовая модель и куча её модифицированных экземпляров.
Видимо так.

Цитировать
Для этого вам нужно хранить в памяти для каждого экземпляра, только его параметры + базовую модель с группами вершин для ключевых форм и её скелетные анимации, а сами ключевые формы, как и разные варианты текстур, можно хранить и на жестком диске, и периодически к ним обращаться для "взросления" модели в зависимости от её параметров ...
Вот я и пытаюсь изучить годо, что бы понять как это сделать. По крайней мере, мне здесь объяснили, что реализовать плавное взросление вполне возможно: таймер из годо нужно привязать к шейпкею возраста персонажа. Выяснить, как именно это сделать и сколько это будет жрать ресурсов, мне задача на ближайшее время.

Цитировать
Я не вкурсе на сколько это может Godot, но вот тут инфа об этом:
Именно это я сейчас читаю  :)
Curiosity killed the cat, but satisfaction brought it back

Оффлайн lexpartizan

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #37 : 07 Июнь 2019, 08:59:55 »
Цитировать
Не понятно, зачем хранить все  ключевые формы в оперативной и видеопамяти? Я так понял, вам нужна одна базовая модель и куча её модифицированных экземпляров.

Можно хранить только значения шейпкеев и одну базовую модель. И это работает. Пока у тебя на экране только один персонаж.
Но если их два, то они будут одинаковыми с глючным переключением между собой. Подходишь к двум мужикам и они в какой-то момент становятся двумя тётками. А по задумке тётка с мужиком. Я это показывал у себя на ютубе в уроке по импорту персонажа в годот. Так что инстансинг тут не аллё. Только делать ресурс локальным для каждой сцены, а это означает, что каждый персонаж будет жрать 100 Мб видеопамяти.  Только сетка, без текстур. О чём и сообщает профайлер. На диске же хранится всего один базовый файл. Но в видеопамяти для каждого персонажа он разный. И единственный выход, который я вижу - генерация меша из базового. Например, в блендере это делается так: создаётся ключ формы mix (то есть форма со всеми настройками текущего вида), устанавливается в 1, делается базовым, удаляются все ключи формы. И получаем меш с применёнными ключами весом в 2,5 Мб. Другой вопрос возможно ли это сделать в годот, ибо и в блендере не очень тривиально. Например, раньше, если не ошибаюсь, срабатывала Ctrl+a ->apply visual to mesh. Сейчас при этом действии появляется копия в которой есть все ключи формы.

Цитировать
Думаю, что больше всего у вас места сожру текстуры, а не сами 3D-модели...
Не в этом случае. Текстуры уже есть из мейкхуман и идут вместе с моделями. Текстура диффуз (к сожалению, есть только она, не pbr) занимает 4 Мб в формате png. Качество тоже только одно , 2К (маловато будет, меньше-то всегда можно сделать).

Цитировать
Генераторы - это конечно круто, но по моему мнению, лучше думать про генерацию мира, чем персонажей
Это другая задача. И Вы подходите утилитарно, как бы Вы сделали в своей игре. А здесь обсуждается не конкретная игра, а создание инструмента, который позволит решить определённую задачу для многих людей и многих игр.
« Последнее редактирование: 07 Июнь 2019, 10:00:04 от lexpartizan »

Оффлайн lexpartizan

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #38 : 07 Июнь 2019, 10:45:23 »
Вообще в API для  Mesh и ArrayMesh есть работа с шейпкеями.
По крайней мере там есть команда удалить все шейпкеи.
Шейпкеи там называются, кстати, блендами.
Надо бы поковырять. Не нашёл как назначить шейпкей базовым. Не понял, как добавлять шейпкей (команда есть, но в параметрах только имя шейпкея, а не меш). Не понял, как миксовать шейпкеи в один шейпкей.

Ещё надо будет поковырять галочку relative. Насколько я понял, это делает шейпкеи зависимыми от базовой формы. Возможно, сняв её и удалив все шейпкеи получим то, что нужно.
Но пока я совершенно не знаю годот, для начала надо перенести свой клон марио на него для ознакомления. Так что в лучшем случае в следующем году.

Оффлайн Samovar

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #39 : 07 Июнь 2019, 11:35:59 »
Цитировать
Шейпкеи там называются, кстати, блендами.
Надо бы поковырять. Не нашёл как назначить шейпкей базовым. Не понял, как добавлять шейпкей (команда есть, но в параметрах только имя шейпкея, а не меш). Не понял, как миксовать шейпкеи в один шейпкей.
Сейчас открыл GoDot 2.1. Походу, бленды - это смешивание анимаций, а ключевые формы (шейпкеи) называются морфами: https://godotengine.org/qa/14708/shape-keys-export-using-better-collada

Оффлайн lexpartizan

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #40 : 07 Июнь 2019, 12:15:47 »
Точнее блендшейпами.

void clear_blend_shapes ( )
Remove all blend shapes from this ArrayMesh.

surface_get_blend_shape_arrays ( int surf_idx ) const

Морфы, как по мне, более логичное название, но...

Цитировать
Вот тут полно бесплатных моделей и готовых анимаций для игр:
Анимации с миксамо годятся для моего генератора. Достаточно перевести их в формат bvh.

Оффлайн Samovar

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #41 : 07 Июнь 2019, 12:34:50 »
Цитировать
Анимации с миксамо годятся для моего генератора. Достаточно перевести их в формат bvh.
Зачем, если они формате FBX, и всё равно, все из Блендера только с помощью Collada в Godot заливаются?

Оффлайн lexpartizan

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #42 : 07 Июнь 2019, 12:50:11 »
С экспортом в годот шейпкеев через колладу, как мне помнится, были у меня некоторые проблемы. Уже не помню, в чём беда была, возможно просто файл весил 500 Мб, что ни в какие ворота. Уже не помню, что конкретно. Возможно были какие-то глюки впоследствии с анимацией.
Я экспортирую в gltf. Единственный его недостаток - он триангулирует сетку, то есть потом неудобно редактировать. Зато вес очень приятный.

Кроме того, ретаргет на мой скелет работает только с bvh. Так что fbx в топку. К тому же это закрытый формат аутодеск и с ним вечные проблемы. Опять же, так проще будет собрать все анимации в один файл, исправить их и отредактировать.

obj для неанимированных простых моделей и gltf для анимированных с шейпкеями. Это мой выбор))

Оффлайн Samovar

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #43 : 07 Июнь 2019, 12:58:48 »

Цитировать
Компания Autodesk предоставляет C++ FBX SDK, с помощью которого можно считывать, записывать и конвертировать FBX файлы.
Формат FBX является собственностью компании, однако FBX Extensions SDK обеспечивает файл правами, которые позволяют читать и изменять его пользователю.
На данный момент существует две версии FBX SDK от Autodesk: для C++ и для Python. Blender имеет дополнение для импорта и экспорта FBX, написанное без использования FBX SDK.
Autodesk FBX Converter https://www.autodesk.com/developer-network/platform-technologies/fbx-converter-archives

C BVH возни тоже немало...
bvhacker
http://www.bvhacker.com

Оффлайн lexpartizan

  • Житель
Re: Одежда для персонажа с shapekeys
« Ответ #44 : 07 Июнь 2019, 13:03:41 »
С bvh работает аддон MakeWalk. Повторюсь, кости имеют разное название и их надо ретаргетить.

Так что импортирую в fbx и экспортирую в bvh.

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 68
Автор: LEXA ANЭGROWND
blender.png
Скачано: 78
Автор: ipv2007
4.png
Скачано: 100
Автор: hiroyukiss
2.png
Скачано: 122
Автор: hiroyukiss

Скачано: 112
Автор: Dilifa12