Какие аспекты я должен принять во внимание при создании анимации персонажей и классов рендеринга, если я хочу иметь возможность отрывать конечности? Я разработал детальную систему тела, в которой можно определить все, вплоть до нервной системы. Я стремлюсь к чему-то похожему на уровень детализации урона, найденный в Dwarf Fortress. Например, когда персонаж получает повреждение своей верхней руки, есть вероятность повреждения нерва, которое может отключить всю руку. Или они могут полностью потерять руку.
У меня есть система, написанная для обработки части данных этого. У каждого персонажа есть ствол, который имеет придатки и внутренние части. Каждый придаток также может иметь дочерние придатки и внутренние части. Дочерние придатки отключены / удалены, если родительский придаток отключен / удален. Если какой-либо из отключенных / удаленных придатков или внутренних частей потребуется для жизни, персонаж скоро умрет.
То, над чем я сейчас работаю, это рисование / анимация. Как определить анимации, чтобы узнать, какие из них разрешены с учетом текущего состояния тела (отсутствие рук / ног и т. Д.)? Как настроить систему рисования, чтобы не рисовать недостающие конечности? Должна ли каждая конечность / придаток быть своей собственной моделью (я хотел бы нарисовать отрезанные отростки на земле)?
Простая система, из которой я перехожу (я только что написал ее для тестирования), импортирует все ключевые кадры анимации в виде полных моделей в VBO (вместе с количеством вершин, где ключевые кадры начинаются / останавливаются). Он не импортирует и не использует кости, определенные в Blender, и не интерполирует между кадрами.
Вероятно, это довольно большой вопрос, поэтому я также ищу ресурсы, которые помогут мне добраться туда, куда мне нужно идти.
РЕДАКТИРОВАТЬ
Я спрашиваю об анимации, зная, какие конечности она анимирует, потому что я хотел бы настроить ее на выполнение альтернативной анимации, если требуемая конечность отсутствует. Подумав об этом, я предполагаю, что выполнил бы эту проверку перед активацией анимации и активировал бы соответствующую анимацию в это время.
Лучший вариант - отрезать конечности и использовать несколько подмоделей в зависимости от текущего состояния ран. Ваш подход к использованию VBO для каждого ключевого кадра просто излишний; использовать систему скелетной анимации и воспроизводить различные анимации в зависимости от полученного урона (хромать одной ногой, ползать без двух ног и т. д.).
Valve опубликовала хороший набор слайдов о ранах и расчленении в L4D2. Мне очень нравится подход использования модели для органов и костей, а также обрезка модели «кожа» на основе текстурных проекций порезов, выстрелов и т. Д.
источник