Перейти к содержанию
Авторизация  
Howli

Редактирвоание анимации - какие будут идеи?

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

В общем застрял на редактировании анимации. Опишу что у меня выходит на данный момент:

Выгружаю скелетал в psk - загружаю в blender - проблем нет. Скелет правильный, кости работают.

Разбираю пакет например FFighter_anim.MeshAnimation.Moves.walk_1HS_FFighter
Получаю последовательность

struct Track{
float4 Orientation;
float3 Position;
float Time;
}

четко по элементу на каждую кость на каждый фрейм анимации.

Выходит структура psa - файла,  выгружаю его.
И тут вылазит проблема -  Blender  загружаю скелетал - нормально,  загружаю анимацию - каша.

Поэкспериментировав, например, создаем в Блендер кость на чистом листе, делаем простую анимацию поворота - выгружаем - загружаем - каша. Похоже проблема именно в блендере, он неправильно воспринимает анимацию psa.

Решил пойти другим путем, взял формат collada, по документации имеем блок анимации

    <animation id="{name}_pose_matrix">
      <source id="{name}_pose_matrix-input">
        <float_array id="{name}_pose_matrix-input-array" count="{frames}">{times}</float_array>
        <technique_common>
          <accessor source="#{name}_pose_matrix-input-array" count="{frames}" stride="1">
            <param name="TIME" type="float"/>
          </accessor>
        </technique_common>
      </source>
      <source id="{name}_pose_matrix-output">
        <float_array id="{name}_pose_matrix-output-array" count="{ntransform}">{transform}</float_array>
        <technique_common>
          <accessor source="#{name}_pose_matrix-output-array" count="{frames}" stride="16">
            <param name="TRANSFORM" type="float4x4"/>
          </accessor>
        </technique_common>
      </source>
      <source id="{name}_pose_matrix-interpolation">
        <Name_array id="{name}_pose_matrix-interpolation-array" count="{frames}">{interpolation}</Name_array>
        <technique_common>
          <accessor source="#{name}_pose_matrix-interpolation-array" count="{frames}" stride="1">
            <param name="INTERPOLATION" type="name"/>
          </accessor>
        </technique_common>
      </source>
      <sampler id="{name}_pose_matrix-sampler">
        <input semantic="INPUT" source="#{name}_pose_matrix-input"/>
        <input semantic="OUTPUT" source="#{name}_pose_matrix-output"/>
        <input semantic="INTERPOLATION" source="#{name}_pose_matrix-interpolation"/>
      </sampler>
      <channel source="#{name}_pose_matrix-sampler" target="{name}/transform"/>
    </animation>

по 1 блоку на каждую кость, внутри в float_array нужно разместить все матрицы трансформации данной кости по всем феймам.

Но непонятно какие именно матрицы? 
Относительно системы? или общая трансформация кости в данный момент времени? или может относительно чего-то.... непонятно....

Попытался по аналогии с форматом psa - полная ориентация кости в данным момент времени - конвертнул кватернион в матрицу и создал collada файл.

Его открываю в Блендер,  вижу скелет нормальный, но только включаю анимацию  - кости начинают плясать кашу.

Пробовал вариант перестановки матрицы к виду OpengGl  ( когда строки и столбцы меняются) - та же самая каша при анимации.

 

Может у вас будут идеи как выполнить редактирование анимации?

Либо может кто знает какие это матрицы в коладе...
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...