.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Sigel
Олег, насчёт общего скелета, как ты привёл пример - это слишком, ладно общий скелет для всех птиц, с разной геометрией, или для всех разных гномов - это да.
Я понимаю, ты клонишь к идее загрузки анимации отдельным частям/группам_костей? Я считаю это наоборот муторности в некотором роде, да и файл анимации это не каждый фрейм, поэтому тут не много места.
Насчёт анимирования костей, и их наследников соответственно, я в самом начале сказал, но могу немного дополнить.
У меня в голове 2 идеи, вторая требует дополнительной туулзы, но и результат в несколько раз лучше, правдо это и посложнее в разы.
Начну с первой идеи, всё просто: когда указываешь отдельно кости другую анимацию, все её дети тоже наследуют это, но от кости можно получить по индексу, какой секьюэнс (анимацаия) играется на ней, и сколько их наложено, всегда будет минимум одна - та что всей модели (если не стоп стоит на всю модель), накладывая дополнительную анимацию, будет уже 2 анимации, при этом изначально, коэфицент применения 100%, поэтому и просчитывать будет только эту наложенную (оптимизация, ну это и так понятно), но тут главная мысль в чём. Кости можно указать силу применения 0.0-1.0 на любой индекс наложенной анимации, К примеру первая анимация (ну та что на всю модель), как и все наложенные 1.0, а наложив вторую, мы некоторым костям указываем ниже 1.0, к примеру одной из кости 0.5, таким образом на эту кость будет применено 50% изначальной и 50% новой анимации. Таким образом плавный переход. Скажи это технически возможно (думаю да, но не совсем просто), и второе, не будет ли это сильно потреблять ресурсы?
Вторая идея, исходит из первой, но более продвинута и удобна. Заключается она в том, что группы для анимации, мы указываем в специальной туулзе заранее. К примеру представь, мы загружаем только сделанную модель со скелетом, предположим простой конь, далее в туулзе мы видим список, в котором одна группа - весь скелет, создаём новую группу, и выделяем кости для головы, и тем что на шее, указываем уже коэффиценты пониже, визуально очень удобно отобразить по цвету вершин: зелёные - те что пренадлежат группе; крастные - те что не пренадлижат; и частичные переходы от коэффицента. Далее в коде будет только возможность получения этих групп сделанных в этой туулзе, которую кстати под 3д макс написать это по сути не слишком сложно, просто новый параметр классу кости, визуализирование, и использование этого для экспортинга (макс скрипт такой уровень доступа думаю потдерживает). Получая в коде группы (нулевая по дефолту - весь скелет), мы можем применять анимацию чисто группам. Этот варриант меня привлекает, т.к. даст реальную динамику в анимации, и очень неплохую при этом, к примеру анимирование рук по отдельности, и головы, рта (речь, хотя тут если речь, то программно юзая функции звуковых движков, для динамики), и запястий с пальцами, короче говоря это даст неслабый функционал анимации в движке. jimon, по сути это и есть морфинг, так?
Что думаете?
|