содержание | {PAGES} | Бизнес в России

RENDER.RU / Уроки /MAX


RENDER.RU / Уроки /MAX
Уроки \ MAX
О прoекте
Нoвости
Стaтьи
Обзоры
Kниги
Галерeя
Урoки
Su.Render
реAнимация
Фoрум
Сoфт
Обучение
Линки
Поиск
Реклама:
Mаx (18)
Mаya (9)
LightWаve (7)
Rhino (2)
Bryce (3)
Пример использования технологии "Speech Animator"
Александр Охота
Подготовка.
Для начала скачаем и инсталлируем
программу - speechanimator_zip.exe.
Нужно предварительно войти в курс
дела - почитать на досуге страничку
помощи программы - "Описание
технологии".
Также нам понадобится тестовая
модель чайника - teapot.zip.
Для "чистоты эксперимента"
создадим файл "Азбука.wav"
без карты звуков. Для этого
сдублируем файл из комплекта
поставки "SpeechAnimator.wav" как
"Азбука.wav". После этого
удалим карту звуков - меню
программы "SpeechAnimator.exe" -
сервис - удалить карту звуков из
файла... Выбираем файл "Азбука.wav".
Получаем сообщение программы - Звуки
успешно удалены из файла "Азбука.wav".
Этап 1. Транскрибирование.
Откроем в программе
"SpeechAnimator.exe" файл "Азбука.wav".
Будет выдано сообщение - "Файл
Азбука.wav не имеет таблицы
звуков! Транскрибировать?"
Ответим - Да. Далее увидим нечто
подобное следующему - Рис.1
Рис.1
Судя по всему,
придётся вручную немного подправить
работу транскрайбера. Выбирая
мышкой звуки по очереди и
изменяя их, приводим таблицу
морфем приблизительно к
следующему виду:
Рис.2
При этом можно выбирать
несколько звуков подряд -
мышкой в области колонки
звуков, либо при помощи клавиши
"Shift".
Прослушать
выбранные звуки можно, щёлкнув
на кнопке .
Просмотреть результат
синхронно со звуком - кнопка . По ней
воспроизведение начинается с
текущей выбранной позиции.
Будем рендерить при 30 кадрах в секунду. Время между морфемами при глубине 1 - 0,0464
сек, а между кадрами - 0,0333 сек.
Поэтому увеличиваем глубину
разбиения до 2 (0,0232 сек) -
нажимаем кнопочку . Подтверждаем
наше намерение увеличить
глубину разбиения.
Ну вот, при проигрывании
картинка стала заметно лучше!
Заметим, что дальнейшее
увеличение глубины разбиения в
данном случае смысла не имеет,
т.к. кадры будут следовать
гораздо реже морфем.
На этом
транскрибирование можно
считать законченным. Жмём
кнопку
и выходим из программы "SpeechAnimator.exe".
Пока спасибо и на этом.
Этап 2. Привязка базовой модели.
Привязка осуществляется в среде
"3D Studio MAX R3.X".
Вообще-то подходит любая версия,
был бы модификатор "Skin".
В "3D Studio MAX R2.Х",
как мы знаем, такого и не увидишь. А
"Skin" для нашего дела -
САМОЕ ТО! Для начала загрузим
тестовую модель. Чего-то кривовато
выглядит... Ну да ладно. И такая
сойдёт.
Нажимаем File-Merge... Ищем наш
злосчастный "model.max". Он
должен быть в папке инсталляции
программы "SpeechAnimator".
Далее выбираем загрузку всех
объектов - на всякий случай.
Проверяем настройку - "Use
Selection Center" и "World"
в списке "Reference Coordinate System"
- .
Подгоняем всё это
дело поближе к "ротику"
чайника, простите за выражение.
Разворачиваем на 180 градусов
относительно оси OZ (World) и
градусов на (-20) относительно
оси OX (World). Ну, как кому нравится,
так и лучше. Самое главное пока,
чтобы передняя часть "губ"
базовой модели находилась как
раз посередине "губ"
чайника:
Рис.3
В нашем
случае не будем масштабировать
базовую модель.
Скроем объекты - "Bottom
Mouth" и "Tongue
Line" - они нам не
понадобятся.
Переходим к по-точечному
редактированию линий. Здесь
есть очень важный момент. Вся
работа программы опирается на
тот факт, что положение и
ориентация базовых точек всех
объектов базовой модели
совпадают! Поэтому при
операциях с объектами базовой
модели нужно за этим следить.
Выберем объект "Static Line".
В режиме "Sub-Object"(и
только в нём) перемещаем точки
и приводим его примерно к
такому состоянию:
Рис.4
Примерно то же самое
проделаем и с объектом "Mouth
Line"
Рис.5
Только
в этом случае сдвигаем только
точки 1 и 5 "Mouth Line"
Теперь поработаем с
"Lips LineTop" и
"Lips LineBot".
Сдвигаем, как и прежде, только
точки 1 и 5. В процессе сдвига
точек парами (а так удобнее) 3D MAX
спрашивает, не хотите-ли эти
самые точки совместить. Так вот:
кто очень хочет, пусть так и
делает; а мы - не будем! Их ещё
даже нужно немного раздвинуть:
Рис.6
Здесь нужно заметить, что точки
1-1 и 5-5 "Lips LineTop"
и "Lips LineBot"
желательно разместить как
можно ближе друг к другу.
Вроде-бы
всё. Выглядит неплохо. С "по-точечным"
редактированием линий
закончили. Переходим к
модификатору "Skin".
Назначим "Skin"
чайнику. Добавим кости "Lips
LineTop", "Lips
LineBot", "Mouth Line",
"Static Line".
Посмотрим, что получилось.
Выберем кость "Static Line".
Перейдём в режим "Sub-Object"
модификатора. Включим флажок
"Color VerticesWeights".
Рис.7
По моему мнению,
некоторые точки не стоят
такого внимания этой косточки.
Они ограничены жёлтой линией.
Включим флажок Filters "Vertices",
выберем эти лишние точки и
назначим им вес "0".
Примерно такого же эффекта
можно достичь, изменяя диаметр
"Envelopes".
Переключимся на кость
"Mouth Line".
Здесь тоже не всё в порядке:
Рис.8
Обнулим вес точек внутри
области, ограниченной жёлтой
линией
Теперь перейдём к
кости "Lips LineTop":
Рис.9
И здесь придётся
обнулить вес всех точек в
области, ограниченной жёлтой
линией. Не нужно пока трогать
только часть точек на верхней
"челюсти" чайника.
Примерно такая же
ситуация с "Lips LineBot":
Рис.10
Нужно обнулить вес
всех точек в области,
ограниченной жёлтой линией.
Ну,
для начала вроде достаточно.
Этап 3. Генерация анимирующего
скрипта.
Вернёмся к программе "SpeecAnimator.exe".
Откроем нашу "Азбуку".
Нажимаем кнопочку .
Рис. 11
Выберем кнопкой , куда будем
сохранять итоговые файлы. Пока
пропорции челюсти изменять не
будем. Нажимаем . Вроде, с этим покончено.
Этап 4. Выполнение скрипта и
доводка модели.
В "3DMAX"
выполняем наш скрипт "SpeechAnimator.ms".
Много времени это не займёт.
Установим 6 кадр - звук "А".
Вроде, всё неплохо выглядит.
Только рот можно было и
посильнее открыть. Но это мы
потом исправим.
Установим 13 кадр - звук "У".
Вес точек в прищёчных ямочках
должен распределяться
примерно так - 50% - "Mouth
Line", 25% - "Lips
LineTop", 25% - "Lips
LineBot".
Если некоторые точки вылезают
в неподходящие места, вес их
можно назначать прямо в
текущем кадре. Выбираем нужную
кость, режим "Sub-Object",
и т.д..
В итоге у нас должно неплохо
получиться. Вот только рот
слабовато открывается... Можно идти
двумя путями - увеличить "коэффициент
влияния" параметра "Открытие
челюсти" - , либо изменить
пропорции челюсти при генерации
скрипта.
Пойдём вторым путём. Сгенерируем
новый скрипт с такой пропорцией (см. рис.). Может
показаться, что нужно было
увеличивать длину челюсти, но это
не так. Если мы увеличим длину
челюсти, в результате рот будет
открываться меньше. Это происходит
потому, что для достижения заданных
пропорций фронтальной проекции рта
его и нужно меньше открывать.
После выполнения нового скрипта
подключим "Азбуку" к
сцене и сделаем превью для
просмотра.
Получили привязанную модель
чайника 3DMAX. Сейчас можно заставить
его сказать не только "Азбука",
а кое-что посолиднее, например,
пусть споёт "Город" Б.Г.!
На страничке поддержки http://www.chat.ru/~speechanimator/index.htm
есть эта песня с картой звуков.
Только для работы придётся
конвертировать файл в формат PCM - 22050
Гц. Для этого можно использовать
встроенный конвертер программы.
Желаю успехов в
использовании данной технологии!
С уважением, разработчик,
Александр Охота.
hunt@perm.raid.ru
Trademarks, articles, translates, images belong to their respective owners.
Статьи, переводы и изображения принадлежат их авторам.
Copyright (c) render.ru , 1999-2000.
project by ArtLogic
содержание | Бизнес в России
Hosted by uCoz