О движке Размер: 5091 символов. Изменена 03:00:00 01.01.3000. Метки: хакеры

Об именовании текстур


Префиксы:
  • B_ - brows, атлас бровей, 128х128
  • C_ - clothes, атлас одежды, 256х256
  • E_ - eyes, атлас глаз, 256х256
  • H_ - hair, атлас волос, 256х256
  • M_ - mouths, атлас ртов, 256х256
  • P_ - pupil, зрачок, 64х64
  • S_ - skin, атлас кожи, 256х256
  • W_ - white, белки глаз, 128х128

  • Затем идет имя или идентификатор персонажа, которому принадлежит текстура.
    Затем идет маркер текстуры. Пока у них у всех маркер Standart, что символизирует, что это обыкновенное состояние персонажа. Для ртов точно будет Happy, Sad и Angry плюс произвольное количество атласов, хранящих разные нестандартные рты - поджатые губы там или свист или что-то еще.
    Затем опционально может идти указатель стороны для парных органов. R для правого, L для левого, U (universal) для общего.

    Теория определения визем


    Попробуем отбросить транскрипцию (так как полноценного инструмента, учитывающего произношение, все равно нет) и разбиение по слогам (потому что хуле толку?).
  • Разбиваем аудиофайл на отдельные слова, спасибо Whisper.
  • Определяется ударная буква слова.
  • Если перед словом стоит предлог или другая часть речи, состоящая из согласных, пришиваем ее к слову.
  • Унижаем слово, проводя изменение безударных гласных, редукцию гласных и слияние согласных. Получаем что-то приближенное к транскрипции.
  • Транскрипция разбивается на группы согласных и единичные гласные. Это практически готовая карточка для подбора визем.
  • Будем считать, что ударный слог имеет 1.5х от базовой длительности, первый предударный 1х, остальные безударные: 0.7х. Согласно этим коэффициентам делим общую продолжительность слова на промежутки и расставляем тайм-коды гласных (идти должны в начале слога).
  • Между ними добавляем тайм-коды согласных и промежуточные положения по алгоритму, который еще предстоит написать (ставятся перед гласными и сдвигают их к концу).
    • На этом этапе можно расставить разные маркеры для изменения настроения говорящего, чтобы переключать атласы ртов.
  • Производим смещение относительно позиции слова в предложении, сшиваем все в единую последовательность визем для всего аудиофайла.
  • Экспортируем данные, которые позже подсовываются алгоритму в Blender, где уже будет происходить автоматическая анимация.

  • Много анимации придется делать вручную - вообще всё, что не является речью. Но иначе никак.

    Как улучшить итоговую программу

  • Присобачить GUI, хотя бы простой.
  • Пусть при запуске обрабатывает все wav-файлы в директории и создает для каждой экспортный файл. Или один большой файл - тут уже встает вопрос о скрипте в блендере, как будет работать он.
  • Сделать возможность замены слова с сохранением его границ (если неправильно распознает). Несколько конфликтует с предыдущим пунктом, будет довольно заёбно подтверждать каждый файл.
    • Отделить распознавание от разбиения. Отдельный скрипт, распознающий речь, отдельный, разбивающий ее.
    Вернуться