автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.18, диссертация на тему:Моделирование сложного движения персонажа по высокоуровневому описанию

кандидата технических наук
Семакин, Михаил Михайлович
город
Ижевск
год
2004
специальность ВАК РФ
05.13.18
Диссертация по информатике, вычислительной технике и управлению на тему «Моделирование сложного движения персонажа по высокоуровневому описанию»

Автореферат диссертации по теме "Моделирование сложного движения персонажа по высокоуровневому описанию"

На правах рукописи

СЕМАКИН Михаил Михайлович

МОДЕЛИРОВАНИЕ СЛОЖНОГО ДВИЖЕНИЯ ПЕРСОНАЖА ПО ВЫСОКОУРОВНЕВОМУ ОПИСАНИЮ

Специальность: 05.13.18 — Математическое моделирование, численныеметоды и комплексы программ

Автореферат

диссертации на соискание ученой степени кандидата технических наук

Ижевск 2004

Работа выполнена в Государственном образовательном учреждении высшего профессионального образования «Ижевский государственный технический университет» (ГОУ ВПО «ИжГТУ»).

Научный руководитель: доктор технических наук,

профессор Кучуганов В.Н.

Официальные оппоненты: доктор технических наук,

заведующий отделом ИПМ УрО РАН Кутергин ВЛ. доктор технических наук, профессор Храмов СН.

Ведущая организация: Нижегородский государственный архитектурно-

строительный университет (ННГАСУ)

Защита состоится 25 июня 2004 года в 14 часов на заседании диссертационного совета Д 212.065.04 в ГОУ ВПО «ИжГТУ» по адресу: 426069, г. Ижевск, ул. Студенческая, 7, корп. 1.

С диссертацией можно ознакомиться в библиотеке ГОУ ВПО «ИжГТУ».

Автореферат разослан "¿5"" 200 4 года.

Ученый секретарь диссертационного совета, доктор технических наук, профессор

Бендерский Б.Я.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность работы. Трехмерная компьютерная анимация персонажа во многом напоминает кукольную мультипликацию, но в сравнении с «кукольной» технологией обладает огромными возможностями в создании реалистичных персонажей и спецэффектов, используя достижения в компьютерной графике, а программные системы позволяют автоматизировать немалую часть рутинной работы аниматора: Обладая такими большими возможностями, имея практически безграничное поле для экспериментов с визуальным эффектом и динамикой движений, персонажная компьютерная анимация надежно утвердилась в таких профессиональных областях как: кино и видео индустрия (спецэффекты, замена живых актеров), художественная мультипликация, телевидение, игровая индустрия. Компьютерная анимация стала активно использоваться для анализа эргономики различных изделий. В последнее время успешно начали создаваться системы, использующие трехмерную анимацию как удобное и универсальное средство проверки правильности и демонстрации сборочных и ремонтных работ со сложными техническими устройствами. Таким образом, современные системы трехмерной компьютерной анимации становятся все более востребованными и уже достигли того уровня, когда группе профессионалов подсилу создать практически любой визуальный эффект, придать характер поведения персонажу или же создать целый виртуальный мир со своими законами.

Эффективность работы профессиональных студий анимации и доступность современных технологий компьютерной анимации для отдельных пользователей в целом существенно зависят от трудоёмкости, времени и затрат, требуемых для моделирования движений персонажей. Основная сложность анимации компьютерного персонажа заключается в том, что, во-первых, необходимо задать достаточно большое множество пространственно-временных параметров для получения движения, а во-вторых, требуется глубокое понимание динамики естественных движений моделируемых персонажей (людей, животных, пр.) для создания правдоподобной анимации.

Несмотря на разнообразие методов создания движения персонажа большинство из них представляют собой лишь дополнительные инструменты, позволяющие упростить процесс работы над анимацией для отдельных видов задач. В процессе описания движения по-прежнему приходится иметь дело с множеством параметров, а также комбинировать различные методы для того, чтобы добиться желаемого результата.

Методы работы с ранее созданными движениями не используют высокоуровневые модели описания сложного движения, а пользователю предлагается вручную выбирать моменты времени и способы совмещения (комбинирования) нескольких движений, подбирать движения для переноса на другого персонажа.

В связи с этим возникает необходимость в разработке методов автоматического синтеза движений, где задачей ставится генерация сложного движения на основе высокоуровневой модели описания требуемого движения или множества движений. Задача компьютера - доработать все низкоуровневые детали, такие как движение каждой части тела персонажа и время этих движений.

Объектом исследования является движение трехмерной компьютерной модели персонажа, способы высокоуровневого описания движения и персонажа, а также мето-

РОС. НАЦИОНАЛЬНАЯ БИБЛИОТЕКА

ды и алгоритмы комбинирования и преобразования моделей движений, позволяющие повысить эффективность использования ранее созданных движений.

Предметом исследования является метод синтеза сложного движения персонажа ho высокоуровневому описанию, математическое описание алгоритмов и методов комбинирования, преобразования и заимствования движений для повышения эффективности использования высокоуровневого описания и базы ранее созданных движений, разработка моделей знаний для представления персонажей, движений и связей между ними.

Цель работы - исследование и разработка формализованных методов и алгоритмов описания и моделирования движения на основе ранее созданных моделей движений для решения задачи минимизации количества параметров и времени создания сложных движений и персонажей их совершающих, внедрение которых позволит существенно повысить эффективность использования ранее созданных движений при создании трехмерной компьютерной анимации персонажа.

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

— определение моделей высокоуровневого описания сложных движений персонажа;

— выбор и обоснование методов комбинирования и преобразования движений, необходимых для синтеза движения персонажа по высокоуровневому описанию;

— исследование методов комбинирования движений;

— формализация задачи качественного преобразования движения по заданным логическим правилам и пространственно-временным ограничениям;

— определение моделей представления персонажа и движений;

— разработка алгоритма последовательного объединения двух движений;

— разработка алгоритма наложения двух движений;

— разработка алгоритма заимствования движения;

— разработка алгоритма синтеза оптимальной комбинации движений по высокоуровневой модели описания движения на основе структуры отношений между ранее созданными движениями;

— реализация модулей создания движения по ключевым кадрам, комбинирования, заимствования и синтеза движения персонажа по высокоуровневому описанию.

Методы исследования. Теоретические исследования выполнены с использованием теории множеств, теории графов, векторной и матричной алгебры, математической логики, математического моделирования, теории сплайнов, теории кватернионов.

Экспериментальные исследования выполнены с помощью разработанной программной системы и известных программных пакетов компьютерной анимации: 3D Studio MAX, Character Studio.

Достоверность и обоснованность полученных в работе результатов и выводов подтверждается корректностью разработанных математических моделей, их адекватностью по известным критериям оценки в рассматриваемой предметной области, использованием известных положений фундаментальных наук, положительными результатами проведенных экспериментальных исследований и опытом практической эксплуатации разработанной программной системы.

На защиту выносятся результаты исследования применения методов комбинирования и заимствования ранее созданных движений для синтеза сложного движения

персонажа по высокоуровневому описанию:

- результаты системного поиска путей решения задачи автоматического синтеза сложной анимации персонажа по высокоуровневому описанию, полученные на основе анализа предметной области анимации и функциональных возможностей методов комбинирования и переноса движений персонажа;

- метод оценки сложности и генерации переходного движения для решения задачи комбинирования двух моделей движений путем их последовательного или одновременного выполнения;

- новый метод преобразования и заимствования модели движения по заданным логическим правилам и пространственно-временным ограничениям;

- модель знаний о движениях персонажа, включающая в себя высокоуровневые описания на основе ранее созданных движений, отношения между движениями и операции их преобразования;

- формализация и решение задачи синтеза оптимальной комбинации движений по высокоуровневой модели описания движения на основе структуры отношений между ранее созданными движениями;

- разработка программно-инструментальных средств системы создания трехмерной компьютерной анимации персонажа;

- результаты экспериментальных исследований и достижение преимуществ применения разработанного метода синтеза движения для увеличения эффективности работы по созданию сложной анимации персонажа;

- реализация разработанных автором алгоритмических средств и программной системы для практического использования при создании анимационных роликов с трехмерными компьютерными персонажами, а также при разработке компьютерных игр.

Научная новизна полученных результатов определяется проведенными комплексными исследованиями, в ходе которых:

- предложен новый подход к созданию сложного движения на основе высокоуровневого описания по заданной неполной последовательности требуемых движений или по заданной последовательности положений персонажа, базы знаний и структуры отношений между ранее созданными движениями и методов комбинирования и заимствования движений;

- эмпирическим путем получена формула расчета коэффициента для оценки сложности переходного движения, что позволяет по заданным пороговым значениям определять, какие объединения движений возможны с помощью кубической интерполяции переходов между движениями;

- предложен новый метод заимствования движения путем выполнения последовательности преобразований по заданным логическим правилам и пространственно-временным ограничениям, позволяющий расширить пространство поиска движений персонажа;

- разработана модель знаний о движениях персонажа, включающая в себя высокоуровневые описания на основе ранее созданных движений, отношения между движениями и операции их преобразования;

- предложено решение задачи синтеза оптимальной комбинации движений по высокоуровневой модели описания движения на основе представленных в базе знаний отношений между ранее созданными движениями;

- создана программная система, позволяющая с помощью значительно упрощенного по сравнению с другими системами диалога с пользователем эффективно создавать сложную анимацию персонажа на основе разработанных моделей описания и генерации движений;

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

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

Разработанные алгоритмы комбинирования, заимствования и преобразования движений, модели представления персонажа и движений, а также разработанный метод синтеза движения положены в основу программной системы MotSyn.

Система создания анимации MotSyn может быть внедрена в учебный процесс ВУЗов, средних и средне-специальных образовательных учреждений для ознакомления с приемами создания персонажной анимации, подготовки презентаций и учебно-методических материалов.

Предлагаемое решение задачи синтеза сложных движений в большей степени подходит для реализации в упрощенных, полупрофессиональных системах создания компьютерной анимации персонажа, которые могут использоваться для быстрого создания анимационного ролика в небольших студиях и на дому, а также для отработки окончательного варианта сценария ролика, создаваемого сложными и дорогими профессиональными средствами компьютерной анимации. Кроме того, разработанные модели и методы могут быть использованы:

1) при написании новых инструментов для профессиональных пакетов программ компьютерной анимации;

2) как основа при разработке «домашних студий анимации», т.е. «облегченных» программ для непрофессиональной работы с персонажной анимацией;

3) как метод генерации сложных движений в компьютерных играх, где требуется много трехмерных персонажей, которые могут совершать большое количество различных движений.

Реализация результатов работы. Результаты диссертационной работы внедрены в учебный процесс на кафедре «Основы машиноведения и робототехники» Ижевского государственного технического университета.

Разработанная программная система MotSyn внедрена в дизайнерских фирмах ООО «Е.Такота» (г. Нижний Новгород) и 0 0 0 «Народное творчество» (г. Чайковский, Пермская область) для создания движений персонажей при производстве рекламных

видеороликов с использованием трехмерной компьютерной анимации.

Апробация работы. Основные положения диссертационной работы докладывались на 4-х международных конференциях: на 8-ой международной конференции по компьютерной графике и визуализации ГРАФИКОН-98; на 11-ой международной конференции по компьютерной графике и визуализации ГРАФИКОН-2002; на международной научно-технической конференции «Информационные технологии в инновационных проектах» (29-30 мая 2003 г.); на международной научно-технической конференции IEEE AIS'03 (3-10 сентября 2003г.).

Публикации. Результаты работы отражены в 7 научных публикациях, в том числе: 5 статей в журналах и сборниках, 2 доклада на научно-технических конференциях.

Структура и объем работы. Диссертационная работа состоит из введения, четырех глав, заключения и приложений. Основной текст изложен на 136 машинописных страницах с таблицами и иллюстрациями. Список литературы включает 87 наименований.

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность работы, сформулированы цель и решаемые задачи. Кратко изложено содержание работы, сформулированы научная новизна и практическая полезность.

В первой главе проанализированы существующие на данный момент методы работы с движениями в трехмерной компьютерной анимации персонажа: технологии создания отдельных движений (ключевая анимация, процедурная анимация, физическое моделирование, захват (запись) движения), методы преобразования и переноса движения на нового персонажа, комбинирование движений.

Во второй главе описывается последовательность разработки метода синтеза сложного движения, основывающегося на использовании ранее созданных отдельных движений и матрицы смежности движений, описывающей возможные способы переходов от одного движения к другому (способы комбинирования). Для расширения множества возможных движений персонажа, решается задача заимствования движения, т.е. перенос движения (retargeting motion) с одного персонажа на другой.

Обычно рассматривают два способа комбинирования движений:

1) наложение (одновременное выполнение) двух движений;

2) последовательное выполнение (стыковка) двух движений.

Для исключения «скачков» при анимации, в обоих случаях требуется подготовить переход к выполнению другого движения - генерировать переходное движение, чтобы осуществить плавный и как можно более правдоподобный переход от момента окончания первого движения к моменту начала второго.

Задачу комбинирования движений можно решать на основе методов моделирования физики и биомеханики, но это означает, что потребуется большое количество параметров, описывающих динамическую схему персонажа.

Для того чтобы сократить количество дополнительных параметров и не зависеть от видов движений, можно генерировать переходное движение на основе метода интерполяции.

Будем считать, что движение персонажа описывается семейством функций изменения относительных поворотов звеньев: <71(01 9г(0> •■•» Чп(1)> ГДС <7<{0 — возвращает кватернион поворота 1-го звена, 1=1,.и; п - количество звеньев персонажа; t е [0, 7];

Т—

период выполнения движения.

Выбор време 0<1>(/с<1>).0<г)'(*с(2)) определить условием:

где: 1с , (с - моменты времени стыковки для первого и второго движений, соответственно; Ег — максимальный косинус угла между двумя поворот - функция изменения относительного поворота /-го звена в первом д в и ж е - функция изменения относительного поворота /-го звена во втором движении; п - количество звеньев персонажа.

Будем считать, что условие (1) выполняется при Т*1' И Л:® = 0, т.е. стыку-

ются окончание первого и начало второго движений. Теперь, необходимо сгладить скачок (1) для всех параметров.

Для того чтобы сгладить разницу между двумя функциями, потребуется некоторое переходное время

причем необходимо найти не только величину этого периода, но и его положение в структуре движения, т.е. определить точки начала и окончания Р^ этого периода. На рисунке 1 показаны три варианта определения области для переходного движения.

Рис. 1. Определение области переходного движения

В первом варианте (рис. 1 ,а) производится своего рода «захват» области окончания первого и области начала второго движений. Во втором варианте (рис. 1,6) график второго движения как бы «наезжает» на область окончания первого. Третий вариант (рис. 1,в) - это вставка необходимой «буферной» области для построения переходного графика движения.

В варианте со «вставкой» (см. рис. 1,в) значения в буферной области можно определить, используя кубический сплайн Эрмита:

(2)

где д/1>(Г)

функция изменения ьго звена в первом движении; 7*" - период выполнения первого д в и ж е н (¡РХО — функция изменения »-го звена во втором движении; /'V2' - моменты времени начала и окончания переходного периода; - скорость

...г. изменения1-к

начале второго движения; минимальный период, необходимый для определения

скорости - минимальный период, необходимый для определения скорости

(21

gl ; п -- количество звеньев персонажа.

В варианте «пересечение» (см. рис. 1,6) производится интерполяция между значениями функций ттвижений в пепиотт пепехоття:

сгОи(^<(|),/<2>)=5/егр(9<|»(0,?,<2)('-'<1>),'). (3)

П1 ' ^ = (2> (1) * /<\

где д? (/) — функция изменения /-го з^гнтб первом движении; 7* ' — период выполнения первого движения; д®(<) - функция изменения /-го звена во втором движении; //' - моменты времени начала и окончания переходного периода; п - количество звеньев персонажа.

- Аналогичным образом в варианте «захват» (см. рис. 1,а) можно добиться постепенного сближения ДВУХ функций, получается два «сшитых» сегмента:

(4)

Проблема адаптации движения, при переносе его с одной геометрической структуры на другую, определяется как проблема переноса движения {Motion Retargeting Problem). Сама проблема заключается в необходимости сохранения целостности и схожести получаемого и исходного движений.

Причины, которые наиболее часто приводят к потере целостности и схожести заимствованного движения:

• несоответствие масштаба поступательного движения изменившимся пропорциям некоторых частей тела персонажа, что приводит к возникновению следующих эффектов: «проскальзывание», «буксование», «подбрасывание» и «проваливание»;

• значительное изменение (ужесточение) относительных ограничений в соединениях звеньев персонажа-приемника, отсюда искажение основных фаз (например, шаг становится короче, но скорость поступательного движения та же, и, как следствие, возникновение эффекта «проскальзывания»);

• изменение размеров конечностей может привести к искажению цели (целей) движения, в основном при выполнении движения-работы или при групповом движении нескольких персонажей.

Процессом заимствования движения называется перенос движения на заданную кинематическую схему персонажа (приемника) из множества движений персонажа-аналога (источника).

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

Искажение основных фаз движения при переносе на нового персонажа может быть вызвано значительным изменением относительных ограничений в соединениях звеньев персонажа-приемника. Влияние коэффициента ОМПД будет недостаточным, поскольку время завершения фазы движения окажется разным для персонажа-источника и персонажа-приемника. В этом случае предлагается решение в три этапа:

1) использование степеней свободы других звеньев цепочки (метод инверсной кинематики);

2) «вписывание» функций относительных изменений звеньев в рамки новых ограничений персонажа-приемника (рис. 2);

3) компенсация остаточного смещения за счет дополнительного масштабирования (сжатия) поступательного движения на данной фазе.

а) без корректировки графика б) «вписывание» графика

в пределы ограничений

Рис. 2. Влияние относительных ограничений на деформацию движения

В том случае, когда информации об изменившихся пропорциях отдельных частей тела персонажа недостаточно основным способом поддержания целостности заимствованного движения может служить задание дополнительных параметров — пространственно-временных ограничений движения (ПВОД), определяющих характерные зависимости и требования на определенных фазах исходного движения.

Требования и пространственно-временные ограничения должны задаваться пользователем и определять характерные зависимости на определенных фазах движения.

Условия требований и ограничений задаются в виде последовательности логических функций, параметрами которых являются кинематическая схема и семейство

функций изменения звеньев кинематической схемы. Задача выполнения этих условий сводится к логическому выводу последовательности операций преобразования исходного движения, которая дает решение, удовлетворяющее максимальному количеству условий.

Наиболее общим ограничением для всех видов движений может служить условие не пересечения объектов в пространстве сцены, которое обеспечивается методом определения коллизий в пространстве {collision detection). В виде исключения не определяются коллизии между парами объектов, которые входят в некоторую кинематическую схему и образуют между собой соединение (в данном случае ограничения взаимного расположения должны определяться относительными ограничениями соединения).

В качестве высокоуровневых описаний сложного движения рассматриваются два варианта:

1)по заданной последовательности действий, которые необходимо выполнить указанному персонажу;

2) по заданному начальному и конечному состояниям трехмерной модели персонажа.

В обоих случаях должна быть определена и оптимизирована вся цепочка действий, удовлетворяющая исходным данным и синтезирующая плавную анимацию персонажа, состоящую из комбинации ранее созданных движений этого или другого персонажа.

Для определения последовательности промежуточных движений, которые должны быть подставлены в общую цепочку действий, используется матрица смежности движений.

Матрица смежности движений определяет пары движений, которые некоторым образом могут быть объединены, т.е. выполнены последовательно или одновременно. На основе описываемого данной матрицей графа можно определить цепочку действий (путь на графе) для перехода из одного состояния персонажа в другое, или детализировать последовательность требуемых действий, заданных пользователем (например, последовательность «лечь -> встать» может быть преобразована в цепочку «присесть -» лечь —> присесть -> встать»).

Цепочки возможных комбинаций движений персонажа X образуют направленный граф и представляются в виде матрицы смежности:

где к — общее количество ранее созданных движений персонажа X. Элементы тсц определяют возможность и параметры комбинирования /-го движения с/-м движением: если то переход от движения к не определен, иначе представля-

ет собой множество, элементы которого определяют параметры комбинирования 1-го движения Су'-м движением. Матрица смежности может быть расширена за счет заимствования движений других персонажей.

МСМ{Х)

(5)

тс\

В первом варианте описания сложного движения задается последовательность А = {а\02, „,апа), па ¿к,

где ау - идентификатор некоторого движения из множества возможных движений персонажа X; па - количество заданных д в и ж е к = |Л/'*)| - общее количество движений персонажа.

Формально задачу синтеза сложного движения можно определить так: необходимо найти функцию Хгл\0, при чем эта функция должна быть непрерывна на всем периоде времени Непрерывность функции обусловлена тем, что анимация персонажа должна быть плавной, т.е. персонаж не должен совершать скачков в пространстве.

Пусть все движения А/^ персонажа и переходные движения, определяемые матрицей

МСЛ/-0, являются непрерывными функциями. Тогда функцию можно вы-

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

Таким образом, задача сводится к определению оптимального пути В = на графе, представленном матрицей смежности, где

""С*,*0. ¿/-«А е В, У - 2..пЬ.

Если граф (5) не является связным, то не для всех исходных А можно определить простую цепь В, следовательно, и найти функцию}6А\{).

Решение по второму варианту исходных данных, когда задано начальное и конечное состояния персонажа, можно также свести к поиску оптимального пути на графе, заданного с помощью матрицы смежности движений (5). Для этого, необходимо определить каким двум ранее созданным движениям А - {аьЛг}» а точнее их ключевым состояниям, соответствуют исходные заданные состояния персонажа. В дальнейшем, задачу можно решать аналогично первому варианту (см. выше) для заданной последовательности А = {аиаг}.

Для каждого движения могут быть определены требования и пространственно-временные ограничения подобные тем, что задаются для переноса движения. Эти требования и ограничения будут определять преобразование результирующего движения в соответствии с направлением, характерными особенностями и целями, которые пользователь формулирует как простое перечисление условных функций с простыми и понятными параметрами. Задача системы состоит в том, чтобы найти и выполнить последовательность операций преобразования движения, при которой выполняются все или хотя бы максимум из перечисленных пользователем условий.

В третьей главе дается определение структур представления персонажа и движений, а также более подробно рассматриваются некоторые алгоритмы, используемые для решения задачи синтеза движения.

Геометрическую модель персонажа удобно представить в виде отдельной структуры:

lGKí=<id, tid,pos,q¿cl, {attru...,attrna}, {comph...,compM)>, (6)

где id — идентификатор объекта; tid— идентификатор mwpos — вектор относительного смещения в пространстве; q — кватернион, определяющий относительный поворот; scl - коэффициент масштаба; {attm...jxttrtJ - атрибуты объекта; па - количество атрибутов; {сотр\,...,сотр11} ~ состав объекта; пс — количество подобъектов состава. Вектор смещения pos, поворот q и коэффициент масштаба scl задают ортогональный базис объекта, однозначно определяющий его положение в пространстве, т.к. независимо от типа, заданного идентификатором tid, геометрической информации, представленной при помощи атрибутов из множества {аиг|,...,дИгЛ0} и состава объекта {сотри...,сотр„с}, все точки данного объекта будут выводиться относительно его базиса.

Для отображения персонажа в основном используются трехмерные примитивы (параллелепипеды, сферы и пр., в качестве вспомогательных объектов) и кусочно-поверхностные геометрические модели.

Состав объекта предназначен для конструирования составных геометрических моделей, путем перечисления идентификаторов других геометрических моделей и корректировки их относительных положений.

Анимируемые объекты помимо сложной геометрической формы могут иметь достаточно сложную систему связей между составными частями. Эти связи определяют ограничения на относительное движение частей персонажа. Особенно это касается моделей людей, животных, сказочных персонажей, движения которых ограничены соединениями костей в их скелете.

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

RtekiF«h£

Рис. 3. Пример представления скелета человека

Звенья кинематической схемы (скелета) персонажа представляются отдельной структурой, которая служит надстройкой над геометрическим описанием (6) для представления отношений иерархической подчиненности и относительных ограничений частей персонажа:

lMetaGM= <id, tid, pid, pos,q^cl, pivot, {attr.....................{compx.....сотрж}>, (7)

где id - идентификатор звена; tid - идентификатор типа звена; pid — идентификатор звена-предка; pos,qjcl — смещение, поворот и масштаб базиса звена относительно звена-предка (если звено-предок не задан, то относительно глобальной системы координат); pivot - вектор смещения базиса звена для звеньев-потомков, для удобства задается относительно локальной системы координат самого звена; (attr\...,attrj — последовательность атрибутов; {сотри...,сотрж) — геометрическое описание звена, состоящее из объектов типа ЮМ.

Кортеж (7) в явном виде определяет только отношение подчинения положения звена относительно его предка в иерархии. Способ ограничения подвижности звена относительно его предка определяется типом tid данного звена и значениями определенных атрибутов из множества {attr\,...jxttrnJ.

Условия относительных ограничений звеньев необходимы для следующих задач: в режиме диалога связанного с заданием положений звеньев; инверсная кинематика; синтез движения.

Чтобы абстрагировать тип относительных ограничений звена от перечисленных задач, достаточно для каждого типа определить две функции:

Г1, если выполняются условия ограничений

1) constr check? (meta) = \ ,

~ [0, если не выполняются условия ограничений

2) constr_correcfldí(meta) = metaCOrrtcieJ,

где constr - логическая функция, значение которой равно 1, если для

звена meta, имеющего тип tid выполняются все условия, ограничивающие его относи-

тельное движение относительно звена-предка, иначе 0; constr_correcf'\meta) — функция, которая позволяет получить новое состояние metac^^d звена meta, удовлетворяющее условию constr check'(meta) =l и являющееся наиболее близким к состоянию meta (если constrjzheckr^meta)^], то meta¿orrtcted = meta).

При необходимости в параметры функций constrcheck и contrcorrect можно добавить время, чтобы иметь возможность моделировать сложные неголономные связи.

Во многих алгоритмах требуется выполнять выборку (автоматически или вручную) звеньев из заданной структуры персонажа. Для выполнения выборки звеньев из заданной структуры (7) персонажа был разработан механизм мета групп звеньев. Точно также как в практике баз данных используются представления (view), мета группа звеньев отображает подмножество звеньев, получаемое на основе совокупности логических правил, декларативно описывающих требуемый результат. Таким образом, достаточно подставить структуру-источник и система автоматически выберет из нее все элементы, которые отвечают совокупности логических правил.

В данной главе также приводится описание разработанного итерационного алгоритма инверсной кинематики. Каждый шаг алгоритма приближает конечную точку ведущего звена в - заданную точку, соответственно уменьшая остаточное смещение Дро<Ж) ДЛЯ следующего. l^A+JJ-ra шага, итерации. Условие выхода ИЗ цикла:

(Др0(М> ¿ П) V (Vott+U " 4РО№ £ 0), (8)

определяет решение задачи с заданной точностью (первая часть условия) и позволяет избежать зацикливания, если хотя бы одно (не ведущее) звено в цепочке имеет коэффициент подвижности (вторая часть условия); - коэффициент подвижности /-го звена, величина обратно пропорциональная массе, при чем 0 - соответствует абсолютно неподвижному звену (стойка), а 1 - абсолютно подвижное звено (движение без всякого сопротивления)

Алгоритм заимствования/преобразования движений. Исходное движение представляется в виде последовательности ключевых кадров mkfm. Однако для выполнения всех преобразований необходимо учитывать состояние персонажа и в промежуточные (между ключевыми) моменты времени, чтобы не пропустить нежелательные, с точки зрения параметров заимствования, изменения персонажа.

Для аппроксимации пфиодов между ключевыми кадрами исходного движения введем параметр: 0 < Atap¡n¡x¡m < 1> определяющий шаг по времени для аппроксимации периодов между ключевыми кадрами. Для пользователя, параметр удобнее

выразить через другой параметр:

Atapprmí* = 1 / nApproxim, где nApproxim — определяет максимальное количество ключевых кадров для представления результата заимствования. Желательно, чтобы выполнялось условие: nApproxim mkflrc.nkt, где mkfsrc.nki — количество ключевых кадров исходного движения. При помощи параметра можно влиять на качество преобразования исходного движения (чем больше nApproxim, тем выше запрашиваемое качество), заранее определяя требуемый уровень анализа и корректировки исходного движения.

Внутри основного цикла преобразования исходного движения осуществляется перебор ключевых состояний исходного движения, а также промежуточных состояний, если выполняется условие:

deltaj < 1 / mkf_src.nkt,

где deltaJ - шаг по времени для аппроксимации периодов между ключевыми кадрами; mkf src.nkt - количество ключевых кадров исходного движения. Состояние персонажа-источника для текущего времени / определяется с помощью функции make_meta(cur_meta_src, mkfjsrc, t), где curmetasrc — предыдущее состояние персонажа; mkf src - таблица ключевых кадров движения; t - приведенный момент времени для определения нового состояния заданного персонажа по ключевым кадрам mkfjsrc. Сами методы заимствования/преобразования движения программируются через функцию adoptjnetaQ, которая возвращает состояние для персонажа-приемника в соответствии со всеми параметрами заимствования/преобразования. После определения очередного состояния для персонажа-приемника, оно заносится в таблицу ключевых кадров нового движения через функцию ins_kf{mkf_dsty curmetadst, t), где mkfjist — таблица ключевых кадров; cur meta dst - состояние персонажа; / - приведенный момент времени.

Для описания характерных зависимостей заимствуемого движения или требований и ПВОД для преобразования исходного движения используется последовательность параметров заимствования/преобразования.

Интерпретация параметров заимствования/преобразования движения заключается в определении последовательности операций изменения состояний указанного персонажа mid, относительно состояний задаваемых исходным движением mot, для всех ключевых моментов времени, и создании на основе полученной последовательности новых состояний персонажа таблицы ключевых кадров mkf— результата интерпрета-ццц. Операцию изменения состояния персонажа можно представить в виде функции:

new_meta- modify_mela(cur_meta, {modparam„„p}), (9)

где newjneta — измененное состояние персонажа; curjneta — текущее состояние персонажа; {modparamnnp} — множество дополнительных параметров функции; птр - количество дополнительных параметров функции. Параметры задаются следующей

modparam = <name,tid,value>, (10)

где пате - имя параметра; tid - идентификатор типа значения параметра; value - значение параметра (определяется по идентификатору tid). В системе должно быть определено множество таких функций (библиотека функций преобразования движения).

Для оптимизации поиска конечной последовательности преобразований, параметры заимствования/преобразования разделяются на классы, каждый из которых определяет подмножество функций преобразования (из общей библиотеки функций) наиболее подходящих для данного требования или ПВОД:

stc_class = <лате, tid, {fmrnjiescr^}, {i/c_рагатт1срагат}>, (Ц)

где пате - имя класса; tid - идентификатор типа; {fmmjdescr^H,} - последовательность описаний наиболее предпочтительных функций преобразования и их параметров; п/тт - количество функций преобразования для данного класса;

{stc_parammllpurum} ~ дополнительные параметры для конкретизации условия требования; nstcparam - количество дополнительных параметров. Структура для описания используемой функции:

fmmjdescr = <fmm_name, {rnp_descr„mp\>, (12)

гд&/тт_пате - имя (идентификатор) функции; {mp_descrnm} - множество описаний дополнительных параметров функции; птр - количество параметров в функции. Структура для описания дополнительного параметра функции:

mp_descr = <тр_рате, lid, mp_scale>, (13)

где mpjname - имя (идентификатор) параметра; tid - тип значения параметра; mpjscale - шкала значений параметра для данного класса требования.

Структура представления шкалы значений mpscale параметра определяется типом значений параметра. Для выполнения перебора значений по градациям шкалы достаточно определить следующий набор функций:

- возвращает количество делений указанной шкалы

mpjscale.'.

- возвращает значение типа tid (13) указанной шкалы mpscale, соответствующее порядковому номеру деления valnum = \..get_mps_count(mp_scale). Деление с порядковым номером 1 {yaljium = 1) должно соответствовать наиболее оптимальному значению для данного класса требования.

Для каждого класса требования необходимо определить функцию checkstcQ для проверки выполнения условия данного требования. Пусть данная функция определяет коэффициент отклонения текущего состояния персонажа от требуемого:

err_coef = check_stc(stc_class, curjstate), (14)

где err coef- возвращаемый функцией коэффициент отклонения, при чем: 0 <stc_coef <Л> чем; stc class — структура класса требования; curjstate - текущее состояние персонажа. В основном, функция checkjstcQ выполняет оценочную проверку соответствия указанного состояния cur_state персонажа и дополнительных параметров {stcjyarantnstcparam} класса stc_class.

Описание класса требования (11) не связано с моментами времени движения, периоды времени, на которых будет действовать требование, определяется при его задании в структуре параметров заимствования/преобразования. Периоды времени, на которых будет действовать требование, будем называть периодами актуальности. Чтобы обеспечить гибкость при задании периодов актуальности структура для их описания абстрагируется от общего алгоритма с помощью функции: is _stc_ period (stc _ period ,0 = 1»

время t соответствует периодам актуальности, is_stc_period(stc_period,t) = 0, . (15)

время t не соответствует периодам актуальности /е[0,1],

stc_period=<ptid,{pparam„ppare„}>, (16)

где ptid - идентификатор типа (класса) для описания периодов актуальности; {ррагатпррй!йт} - множество параметров для задания периодов актуальности; пррагат

- количество параметров для задания периодов актуальности; t - текущий момент времени.

Таким образом, структура для описания требования или пространственно-временного ограничения для заимствования/преобразования движения будет выглядеть так:

stc_descr = <спате, stc_period>, (17)

где спате - имя класса требования или ПВОД (11); stc_period - определение периодов актуальности (16).

Параметры заимствования/преобразования (17) задаются как атрибуты определенного типа в структуре описания заимствованных/преобразованных движений.

В настоящей работе рассматриваются два способа высокоуровневого описания сложного движения:

1) по заданной неполной последовательности действий персонажа;

2) по заданному начальному и конечному положениям персонажа.

Неполная последовательность действий может быть отражена в следующей структуре:

IMotSynJSeq = <mid,seqjexpression, mkf, tid, (attrn}> (18)

где mid - идентификатор персонажа; seqexpression — строка, описывающая неполную последовательность действий персонажа; mkf- структура, хранящая результат последней интерпретации в виде отдельного движения; tid — определяет способ синтеза движения; (attrna} - набор дополнительных атрибутов, необходимых для управления процессом синтеза движения; па — количество дополнительных атрибутов.

В структуре (18) строка seq expression представляет собой выражение, состоящее из идентификаторов требуемых движений и операций последовательного выполнения и наложения этих движений. Пример описания сложного движения в строке seqexpression:

seq_expression » "бег* -> ("красться" | "достать оружие") -> "лечь" -> ("идти" | "убрать оружие")

Графически данный пример представлен на рисунке 4.

Рис.4. Пример сложного движения

За счет простых и строгих правил задания строки seq_expression ее содержание может быть однозначно переведено в графическую форму (как на рис. 4) или, наоборот, из более удобного для пользователя визуального представления в строку seq_expression. Для пользователя описание сложного движения персонажа представляется таблицей, в которой последовательность столбцов определяет последовательно выполняемые действия, а в строках перечисляются одновременно выполняемые действия для данного столбца.

В четвертой главе приводится описание программной системы MotSyn, реализующей следующие методы создания движений персонажа: ключевая анимация; последовательное выполнение двух движений; наложение (одновременное выполнение) двух движений; заимствование/преобразование движения; синтез движения по заданной неполной последовательности требуемых действий (по сценарию). Описана архитектура используемой базы знаний и приведены результаты экспериментальных исследований.

Экспериментальная программа MotSyn была реализована на базе системы KG, разработка которой также ведется на нашей кафедре.

Система MotSyn реализует следующие диалоги с пользователем:

• Конструктор персонажа - предназначен для создания скелета и построения геометрической модели персонажа. Созданный персонаж записывается в базу KG.

• Ключевая анимация - диалог, предназначенный для создания и редактирования отдельных движений с использованием технологии ключевых кадров. Здесь также реализуются функции импорта и экспорта движений в формате BVH. Созданные или отредактированные движения сохраняются в базу KG.

• Простое комбинирование двух движений. Здесь реализуется достаточно простой диалог, в котором пользователь должен выбрать два движения из базы ранее созданных движений, указать способ (последовательное или одновременное выполнение) и задать параметры комбинирования. Результат записывается в базу KG.

• Заимствование/преобразование движения. Здесь выбирается одно из ранее созданных движений и задается персонаж (в случае заимствования выбирается персонаж, отличный от исходного для данного движения), выбирается один из экспериментальных алгоритмов заимствования/преобразования движения и задаются параметры выполнения операции. Результат записывается в базу KG.

• Синтез движения по сценарию. Данный диалог предназначен для высокоуровневого описания сложного движения персонажа по неполной последовательности требуемых действий. Здесь реализуется два способа задания сценария: 1) набор текста seqjexpression в специальном текстовом редакторе с возможностью выбора и подстановки движений из базы; 2) пользователь редактирует таблицу (напоминающую таблицу программы Excel), где последовательность столбцов определяет требуемую последовательность выполнения, а строки каждого столбца содержат одновременно выполняемые движения. Результат записывается в базу KG.

Для отработки алгоритмов, используемых для синтеза движения, были выполнены ряд экспериментов.

На рисунке S представлен один из примеров выполнения преобразования движения. В качестве исходного движения было выбрано движение «ходьба», но созданное без какого-либо поступательного движения. Параметры пространственно-временных ограничений движения были подобраны таким образом, чтобы система сама добавила к исходному движению поступательное движение по поверхности.

Рис. 5. Пример преобразования движения Полученное поступательное движение «ходьба» было заимствовано для двух отличающихся по пропорциям персонажей. В данном случае, определения дополнительных параметров характеризующих исходное движение не потребовалось, т.к. система сама определила общий масштаб поступательного движения и компенсировала различия ограничений в соединениях звеньев персонажей-приемников. Результаты заимствования показаны на рисунке 6. В таблице 1 приведен сравнительный анализ результатов заимствования движения по данному примеру.

Рис. 6. Примеры заимствованных движений

Таблица 1

Сравнительный анализ результатов заимствования движения в системе MotSyn

Метод I ■cinMMytHW ПО

Кол-во N вид параметров

Среднее время

Комментарий

Ключевая анимация (ЗР5 МАХ)

корректировка 10-20 ключевых кадров

15-20 мин

В каждом ключевом кадре выполняется «подгонка» смещения корневого звена_

Footplants (Character Studio)

корректировка 4-х позиций ступней ног

2-5 мин

Следы ступней корректируются таким образом, чтобы увеличить или уменьшить длину шага

Заимствование движения (MotSyn)

ввод 4-х параметров

0,2-0,3 мнн

В эксперименте с последовательным объединением двух движений был использован разработанный алгоритм генерации переходного движения для осуществления плавного перехода от движения «ходьба» к положению «стойка». На рисунке 7 показан диалог системы MotSyn и результат работы системы. В таблице 2 приведен сравнительный анализ результата работы по данному примеру.

Задание параметров

Результат

2 |сЗСГ"

Рис. 7. Пример генерации переходного движения

Таблица 2

Сравнительный анализ результата генерации переходного движения в системе

МОЗуп

Метод и Непаль-ntM« ПО Кол-во н внд парачет- ров Среднее врем* Комментарий

Ключевая анимации (3DS МАХ) 10-20 ключевых кадров 3<М0 мин В каждом ключевом кадре задастся 12-16 поворотов звеньев и смешение корневого звена

Fooiptams (Character Studio) 6 позиций ступней и корректировка движения рук 5-10 мин В пространстве сцены указываются следы ступней ног и задаются параметры генерации движения

Генерация переходного движения (MotSyn) ввод 5 параметров(см. рис.7) 0,2-0,3 мин. Предполагается, что исходные движения уже были ранее созданы н записаны а базу.

В системе Мс18уп реализован разработанный метод синтеза сложного движения по заданной последовательности требуемых действий (сценарию движения). Диалог для создания сценария (и сам сценарий), результат работы и таблица сравнительного анализа результата работы системы приведены на рисунке 8.

Задание параметров (описание движения)

II III I I I I ———I . ■ л

Г

if*

Метод н используемое ПО Кол-во и внд параметров Среди« время

Ключевая анимация (3DS МАХ) 40-60 ключевых кадров 60-90 мин

Footplants (Character Studio) 22 позиции ступней, корректировка движения рук и туловища 25-40 мин.

Синтез по сценарию (MotSyn) написание сценария, т с. указание порядка выполнения 6 движений (см Задание параметров) 0,6-1,0 мин.

Результат

м т

Рис. 8. Пример синтеза сложного движения по сценарию

Полученные в результате экспериментов данные сравнительного анализа системы MotSyn с двумя другими системами (3D Studio MAX и Character Studio) показывают очевидные преимущества в удобстве использования и существенный рост эффективности (сокращение времени в несколько десятков раз) труда аниматора при создании сложных движений персонажа. Высокая эффективность объясняется использованием ранее созданных движений, т.е. нет необходимости с нуля создавать сложное движение от начала и до конца, а также значительным сокращением параметров и предельным упрощением самого пользовательского интерфейса за счет использования разработанных методов комбинирования, преобразования, заимствования и синтеза движений по высокоуровневым описаниям. Следует также отметить, что автору не удалось найти подобных программных систем, реализующих автоматические методы синтеза движений по высокоуровневым описаниям, не зависящих от определенных видов движений персонажа и пригодных для адекватного сравнения, поэтому для сравнительного анализа использовались ставшие стандартом методы и достаточно известные и популярные программные продукты.

ЗАКЛЮЧЕНИЕ

В работе получены следующие основные выводы и результаты:

1. К одной из основных трудностей создания трехмерной анимации персонажа относиться наличие большого количества пространственно-временных параметров, которые требуется определить для получения на экране качественных движений персонажей. Одним из способов значительного упрощения процесса описания движений может служить метод, основывающийся на автоматическом построении комбинаций движений персонажа из базы ранее созданных движений.

2. В рамках данного подхода разработан формализованный метод описания и синтеза сложного движения персонажа. Предлагаемый метод синтеза движения основывается на использовании ранее созданных движений и матрицы смежности движений, описывающей возможные способы переходов от одного движения к другому (способы комбинирования).

3. Матрица смежности может быть задана экспертом, с использованием весовых коэффициентов, позволяющих повысить качество конечного результата.

4. Разработан алгоритм автоматического получения матрицы смежности на основе указанных численных порогов генерации переходного движения. Автоматическое заполнение матрицы смежности для указанного подмножества движений может использоваться для упрощения работы эксперта, а также для динамического подбора решения без участия эксперта.

5. Для расширения множества возможных движений персонажа разработан метод заимствования движения, т.е. перенос движения с одного персонажа на другой.

6. Разработан метод преобразования движений на основе требований и пространственно-временных ограничений движения.

7. Разработан алгоритм комбинирования движений путем последовательного выполнения (стыковки) и наложения (одновременного выполнения) двух движений. Данный алгоритм позволяет генерировать переходное движение без непосредственно-

го участия пользователя, т.е. без задания параметров настройки для каждой комбинации, что, в свою очередь, является немаловажной характеристикой, т.к. данный алгоритм лежит в основе метода синтеза сложного движения.

8. Разработан метод моделирования движения, позволяющий синтезировать сложное движение, где в качестве исходных данных выступает достаточно высокоуровневая модель сценария, в которой с низкой степенью детализации просто перечисляется некоторый набор требуемых действий персонажа и порядок их выполнения.

9. В работе показано, что на основе разработанного метода синтеза можно значительно сократить количество кадров, требуемых для задания движения, по сравнению с методом сплайновой интерполяции ключевых кадров. В данном случае, в качестве исходных данных используются начальные и конечные состояния персонажа на соседних кадрах.

10. Разработана модель знаний о движениях персонажа, включающая в себя высокоуровневые описания ранее созданных движений, отношения между движениями.и операции преобразования, и позволяющая получить из ранее созданных движений новые движения по заданному сценарию.

11. Достоверность и обоснованность полученных в работе результатов подтверждается данными экспериментальных исследований, показывающих значительное повышение эффективности, а также преимущества применения разработанного метода синтеза движения при создании сложной анимации персонажа по сравнению с другими методами.

12.На основе разработанных методов и алгоритмов создана программная система MotSyn, позволяющая с помощью значительно упрощенного по сравнению с другими системами диалога с пользователем эффективно создавать сложную анимацию персонажа по ключевым кадрам, путем последовательного или одновременного выполнения двух движений, преобразования, заимствования и синтеза сложного движения по сценарию.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ ИЗЛОЖЕНЫ В СЛЕДУЮЩИХ ПУБЛИКАЦИЯХ

1. Кучуганов В.Н., Семакин М.М., Шубин Д.С. Логический синтез сложных движений в задачах анимации // Труды 8-й международн. научн.-техн. конф. по компьютерной графике и визуализации ГРАФИКОН-98 (Москва, 7-11 сентября 1998 г.). -М.: Изд-во Диалог-МГУ, 1998. -С. 144-145.

2. Кучуганов В.Н., Семакин М.М., Чикуров В.В., Шадрин А.Ю., Шарапов ВА., Шутов Е.А. KG — система для разработки информационных технологий и интеграции CAD/CAM/CAE-приложений // Вестник ИжГТУ. - Ижевск: Изд-во ИжГТУ, 1999. -Вып. 1.-С. 10-11.

3. Кучуганов В.Н., Семакин М.М., Чикуров В.В., Шарапов' ВА., Шутов ЕЛ. АРМ проектировщика Информационных технологий // Информационные технологии в инновационных проектах: Тр. междунар. научн.-техн. конф. (19-20 апреля 2000 г.) -Ижевск: Изд-во ИжГТУ, 2000. - С. 158-160.

4. Семакин М.М. Метод синтеза движений в задачах трехмерной компьютерной анимации // Инновационные технологии в машиностроении и приборостроении: Мат-

24

Р 1 38 0 9

лы междунар. науч.-техн. конф., посвящ. 50-летию ИжГТУ (Ижевск, 19-22 февраля 2002 г.). - В 5 ч. - Ч. 2. - Ижевск: Изд-во ИжГТУ, 2002. - С. 344-346.

5. Семакин М.М. Метод синтеза движений в задачах трехмерной компьютерной анимации // Труды 11 -й международн. конф. по компьютерной графике и визуализации ГРАФИК0Н-2002 (Н.Новгород, 16-21 сентября 2002 г.). - С. 111-117.

6. Семакин М.М. Синтез сложного движения персонажа по высокоуровневому описанию и на основе ранее созданных движений // Информационные технологии в инновационных проектах: Тр. IV междунар. науч.-техн. конф. (Ижевск, 29-30 мая 2003 г.). - В 4 ч. - Ч. 2. - Ижевск: Изд-во ИжГТУ, 2003. - С. 73-76.

7. В.Н. Кучуганов, М.М. Семакин. Синтез движений в задачах трехмерной компьютерной анимации персонажа // IEEE: AIS' 0 3, CAD -2003: Мат-лы междунар. научно -техн. конф. (Дивноморское, 3-10 сентября 2003 г.). - В 2 т. - Т. 2. - М.: Изд-во Физмат-лит, 2003.-С. 229-235.

М.М. Семакин

В авторской редакции

Подписано в печать /А 05" .2004. Бумага офсетная. Формат 60x84/16. Усл. печ. л. 4аТираж 400 экз. Заказ № 124

Типография Издательства ИжГТУ. 426069, г. Ижевск, Студенческая, 7

Оглавление автор диссертации — кандидата технических наук Семакин, Михаил Михайлович

ВВЕДЕНИЕ.

1. МЕТОДЫ СОЗДАНИЯ ТРЕХМЕРНОЙ КОМПЬЮТЕРНОЙ АНИМАЦИИ ПЕРСОНАЖА.

1.1. Технологии создания отдельных движений.

1.1.1. Ключевая анимация.

1.1.2. Задача инверсной кинематики.

1.1.3. Процедурная анимация.

1.1.4. Физическое моделирование.

1.1.5. Захват движения.

1.2. Трансформация графиков движения.

1.3. Перенос движения на нового персонажа.

1.4. Комбинирование отдельных движений.

1.5. Выводы по первой главе и постановка задачи исследования.

2. СИНТЕЗ СЛОЖНОГО ДВИЖЕНИЯ ПЕРСОНАЖА.

2.1. Комбинирование движений.

2.1.1. Последовательное выполнение движений.

2.1.2. Наложение движений.

2.2. Заимствование движений.

2.2.1. Общий масштаб поступательного движения.

2.2.2. Компенсация движения.

2.2.3. Требования и пространственно-временные ограничения движения.

2.2.4. Определение коллизий в пространстве.

2.3. Матрица смежности движений.

2.4. Представление и параметризация движений.

2.5. Выводы по второй главе.

3. РАЗРАБОТКА МОДЕЛЕЙ ПРЕДСТАВЛЕНИЯ И АЛГОРИТМОВ

СИНТЕЗА ДВИЖЕНИЙ.

3.1. Модель персонажа.

3.1.1. Геометрическая модель.

3.1.2. Скелет персонажа.

3.1.3. Сцена, камера, источник света.

3.1.4. Выборка звеньев. Мета группы звеньев.

3.1.5. Определение положений звеньев.

3.2. Алгоритм инверсной кинематики.

3.3. Модель представления движения.

3.3.1. Модель отдельного движения.

3.3.2. Импортированные движения.

3.3.3. Комбинации движений.

3.3.4. Заимствованные и преобразованные движения.

3.3.5. Модели высокоуровневого описания движений.

3.4. Алгоритм заимствования движения.

3.4.1. Основной цикл преобразования исходного движения.

3.4.2. Параметры заимствования/преобразования движения.

3.4.3. Алгоритм определения последовательности преобразований.

3.5. Автоматическое заполнение матрицы смежности.

3.6. Модель знаний о движениях персонажа.

3.7. Выводы по третьей главе.

4. РЕАЛИЗАЦИЯ МЕТОДА СИНТЕЗА ДВИЖЕНИЙ В СИСТЕМЕ «MOTSYN».

4.1. Реализация принципа открытой архитектуры.

4.1.1. Компонентная модель.

4.1.2. Требования к программному компоненту.

4.2. Описание основных компонентов системы.

4.3. Краткое описание пользовательского интерфейса.

4.4. Представление движений в базе знаний.

4.5. Эксперимент с генерацией переходного движения.

4.6. Эксперимент с преобразованием движения.

4.7. Эксперимент с заимствованием движения.

4.8. Эксперимент с синтезом сложного движения по сценарию.

4.9. Выводы по четвертой главе.

Введение 2004 год, диссертация по информатике, вычислительной технике и управлению, Семакин, Михаил Михайлович

Тема данной диссертации относится к задачам трехмерной компьютерной анимации персонажа, которая во многом напоминает кукольную мультипликацию, только в качестве «кукол» выступают трехмерные компьютерные модели персонажей, и обладает огромными возможностями в плане реалистичности персонажей и спецэффектов, используя достижения в компьютерной графике, а также предоставляет множество способов автоматизации рутинной работы аниматора. Обладая такими большими возможностями (существующими и потенциальными), имея практически безграничное поле для экспериментов с визуальным эффектом и динамикой движений, персонажная компьютерная анимация надежно утвердилась в таких профессиональных областях как: кино и видео индустрия (спецэффекты, замена живых актеров), художественная мультипликация (как полностью трехмерные фильмы, так и смешанное использование двумерной и трехмерной анимации), телевидение (рекламные ролики, виртуальные ведущие и пр.), игровая индустрия. Компьютерная анимация стала активно использоваться для анализа эргономики различных изделий. В последнее время успешно начали создаваться системы, использующие трехмерную анимацию как удобное и универсальное средство проверки правильности и демонстрации сборочных и ремонтных работ со сложными техническими устройствами. Таким образом, современные системы трехмерной компьютерной анимации являются востребованными и уже достигли того уровня, когда группе профессионалов подсилу создать практически любой визуальный эффект, придать характер поведения персонажу или же создать целый виртуальный мир со своими законами.

Несмотря на все выдающиеся достижения, создание качественной компьютерной анимации по-прежнему остается очень трудоемким и специфичным процессом, и очень важным направлением развития программных систем является поиск методов упрощения этого технологического процесса.

Можно выделить две основные сложности создания трехмерной компьютерной анимации персонажа:

1) необходимо задать достаточно большое множество пространственно-временных параметров для создания анимации (получения движения);

2) требуется глубокое понимание динамики естественных движений моделируемых персонажей (людей, животных, пр.) для создания правдоподобной анимации.

Обозначенные проблемы можно определить как два пути развития инструментальных программных средств в системах персонажной анимации. С одной стороны, упрощение пользовательского интерфейса (уменьшение количества задаваемых параметров и производимых манипуляций) может привести к потере качества и реалистичности создаваемого движения. А с другой стороны, для моделирования динамики и биомеханики естественных движений также требуется задавать достаточно много параметров, как при описании персонажа, так и при описании действующих на него сил. Еще одним недостатком физического моделирования является тот факт, что при создании художественного образа персонажа, довольно часто прибегают к искажениям физических законов его движений.

Одним из направлений развития технологии создания анимации является автоматический синтез движений, где задачей ставится генерация сложного движения на основе высокоуровневой модели описания требуемого движения или множества движений. Задача компьютера - доработать все низкоуровневые детали, такие как движение каждой части тела персонажа и время этих движений.

Объектом исследования является движение трехмерной компьютерной модели персонажа, способы высокоуровневого описания движения и персонажа, а также методы и алгоритмы комбинирования и преобразования моделей движений, позволяющие повысить эффективность использования ранее созданных движений.

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

Цель работы — исследование и разработка формализованных методов и алгоритмов описания и моделирования движения на основе ранее созданных моделей движений для решения задачи минимизации количества параметров и времени создания сложных движений и персонажей их совершающих, внедрение которых позволит существенно повысить эффективность использования ранее созданных движений при создании трехмерной компьютерной анимации персонажа.

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

- определение моделей высокоуровневого описания сложных движений персонажа;

- выбор и обоснование методов комбинирования и преобразования движений, необходимых для синтеза движения персонажа по высокоуровневому описанию;

- исследование методов комбинирования движений;

- формализация задачи качественного преобразования движения по заданным логическим правилам и пространственно-временным ограничениям;

- определение моделей представления персонажа и движений;

- разработка алгоритма последовательного объединения двух движений;

- разработка алгоритма наложения двух движений; разработка алгоритма заимствования движения;

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

Методы исследования. Теоретические исследования выполнены с использованием теории множеств, теории графов, векторной и матричной алгебры, математической логики, математического моделирования, теории сплайнов, теории кватернионов.

Экспериментальные исследования выполнены с помощью разработанной программной системы и известных программных пакетов компьютерной анимации: 3D Studio MAX, Character Studio.

Достоверность и обоснованность полученных в работе результатов и выводов подтверждается корректностью разработанных математических моделей, их адекватностью по известным критериям оценки в рассматриваемой предметной области, использованием известных положений фундаментальных наук, положительными результатами проведенных экспериментальных исследований и опытом практической эксплуатации разработанной программной системы.

На защиту выносятся результаты исследования применения методов комбинирования и заимствования ранее созданных движений для синтеза сложного движения персонажа по высокоуровневому описанию:

- результаты системного поиска путей решения задачи автоматического синтеза сложной анимации персонажа по высокоуровневому описанию, полученные на основе анализа предметной области анимации и функциональных возможностей методов комбинирования и переноса движений персонажа;

- метод оценки сложности и генерации переходного движения для решения задачи комбинирования двух моделей движений путем их последовательного или одновременного выполнения;

- новый метод преобразования и заимствования модели движения по заданным логическим правилам и пространственно-временным ограничениям;

- модель знаний о движениях персонажа, включающая в себя высокоуровневые описания на основе ранее созданных движений, отношения между движениями и операции их преобразования;

- формализация и решение задачи синтеза оптимальной комбинации движений по высокоуровневой модели описания движения на основе структуры отношений между ранее созданными движениями;

- разработка программно-инструментальных средств системы создания трехмерной компьютерной анимации персонажа;

- результаты экспериментальных исследований и достижение преимуществ применения разработанного метода синтеза движения для увеличения эффективности работы по созданию сложной анимации персонажа;

- реализация разработанных автором алгоритмических средств и программной системы для практического использования при создании анимационных роликов с трехмерными компьютерными персонажами, а также при разработке компьютерных игр.

Научная новизна полученных результатов определяется проведенными комплексными исследованиями, в ходе которых:

- предложен новый подход к созданию сложного движения на основе высокоуровневого описания по заданной неполной последовательности требуемых движений или по заданной последовательности положений персонажа, базы знаний и структуры отношений между ранее созданными движениями и методов комбинирования и заимствования движений;

- эмпирическим путем получена формула расчета коэффициента для оценки сложности переходного движения, что позволяет по заданным пороговым значениям определять, какие объединения движений возможны с помощью кубической интерполяции переходов между движениями;

- предложен новый метод заимствования движения путем выполнения последовательности преобразований по заданным логическим правилам и пространственно-временным ограничениям, позволяющий расширить пространство поиска движений персонажа;

- разработана модель знаний о движениях персонажа, включающая в себя высокоуровневые описания на основе ранее созданных движений, отношения между движениями и операции их преобразования;

- предложено решение задачи синтеза оптимальной комбинации движений по высокоуровневой модели описания движения на основе представленных в базе знаний отношений между ранее созданными движениями;

- создана программная система, позволяющая с помощью значительно упрощенного по сравнению с другими системами диалога с пользователем эффективно создавать сложную анимацию персонажа на основе разработанных моделей описания и генерации движений;

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

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

Разработанные алгоритмы комбинирования, заимствования и преобразования движений, модели представления персонажа и движений, а также разработанный метод синтеза движения положены в основу программной системы MotSyn.

Система создания анимации MotSyn может быть внедрена в учебный процесс ВУЗов, средних и средне-специальных образовательных учреждений для ознакомления с приемами создания персонажной анимации, подготовки презентаций и учебно-методических материалов.

Предлагаемое решение задачи синтеза сложных движений в большей степени подходит для реализации в упрощенных, полупрофессиональных системах создания компьютерной анимации персонажа, которые могут использоваться для быстрого создания анимационного ролика в небольших студиях и на дому, а также для отработки окончательного варианта сценария ролика, создаваемого сложными и дорогими профессиональными средствами компьютерной анимации. Кроме того, разработанные модели и методы могут быть использованы:

1) при написании новых инструментов для профессиональных пакетов программ компьютерной анимации;

2) как основа при разработке «домашних студий анимации», т.е. «облегченных» программ для непрофессиональной работы с персонажной анимацией;

3) как метод генерации сложных движений в компьютерных играх, где требуется много трехмерных персонажей, которые могут совершать большое количество различных движений.

Реализация результатов работы. Результаты диссертационной работы внедрены в учебный процесс на кафедре «Основы машиноведения и робототехники» Ижевского государственного технического университета.

Разработанная программная система MotSyn внедрена в дизайнерских фирмах ООО «Е.Такота» (г. Нижний Новгород) и ООО «Народное творчество» (г. Чайковский, Пермская область) для создания движений персонажей при производстве рекламных видеороликов с использованием трехмерной компьютерной анимации.

Апробация работы. Основные положения диссертационной работы докладывались на 4-х международных конференциях: на 8-ой международной конференции по компьютерной графике и визуализации ГРАФИКОН-98; на 11-ой международной конференции по компьютерной графике и визуализации ГРАФИКОН-2002; на международной научно-технической конференции «Информационные технологии в инновационных проектах» (29-30 мая 2003 г.); на международной научно-технической конференции IEEE AIS'03 (3-10 сентября 2003г.).

Публикации. Результаты работы отражены в 7 научных публикациях, в том числе: 5 статей в журналах и сборниках, 2 доклада на научно-технических конференциях.

Структура и объем работы. Диссертационная работа состоит из введения, четырех глав, заключения и приложений. Основной текст изложен на 136 машинописных страницах с таблицами и иллюстрациями. Список литературы включает 87 наименований.

Заключение диссертация на тему "Моделирование сложного движения персонажа по высокоуровневому описанию"

4.9. Выводы по четвертой главе

На основе разработанных методов и алгоритмов создана программная система MotSyn, позволяющая создавать движения персонажей по ключевым кадрам, путем последовательного или одновременного выполнения двух движений, заимствования/преобразования и синтеза сложного движения по сценарию.

Эксперименты проводились с генерацией переходного движения для создания последовательного объединения двух движений, преобразованием движения для получения недостающего поступательного движения, заимствованием движения, синтезом сложного движения по сценарию.

Полученные в результате экспериментов данные сравнительного анализа системы MotSyn с двумя другими системами (3D Studio МАХ и Character Studio) показывают очевидные преимущества в удобстве использования и существенный рост эффективности (сокращение времени в несколько десятков раз) труда аниматора при создании сложных движений персонажа. Высокая эффективность объясняется использованием ранее созданных движений, т.е. нет необходимости с нуля создавать сложное движение от начала и до конца, а также значительным сокращением параметров и предельным упрощением самого пользовательского интерфейса за счет использования разработанных методов комбинирования, преобразования, заимствования и синтеза движений по высокоуровневым описаниям. Следует также отметить, что автору не удалось найти подобных программных систем, реализующих автоматические методы синтеза движений по высокоуровневым описаниям, не зависящих от определенных видов движений персонажа и пригодных для адекватного сравнения, поэтому для сравнительного анализа использовались ставшие стандартом методы и достаточно известные и популярные программные продукты.

Разработанный метод синтеза движения позволяет значительно сократить количество и сложность параметров, требуемых для описания движения, а также существенно уменьшает время и трудоемкость процесса создания движения персонажа. В тоже время, следует отметить, что для практического использования метода необходимо иметь достаточно обширную базу различных видов движений, при чем для получения приемлемых результатов качество ранее созданных движений должно быть достаточно высоким. Данный метод не может считаться универсальным средством для создания движений персонажа, а должен быть использован в комплексе с другими технологиями создания анимации.

ЗАКЛЮЧЕНИЕ

В работе получены следующие основные выводы и результаты:

1. К одной из основных трудностей создания трехмерной анимации персонажа относиться наличие большого количества пространственно-временных параметров, которые требуется определить для получения на экране качественных движений персонажей. Одним из способов значительного упрощения процесса описания движений может служить метод, основывающийся на автоматическом построении комбинаций движений персонажа из базы ранее созданных движений.

2. В рамках данного подхода разработан формализованный метод описания и синтеза сложного движения персонажа. Предлагаемый метод синтеза движения основывается на использовании ранее созданных движений и матрицы смежности движений, описывающей возможные способы переходов от одного движения к другому (способы комбинирования).

3. Матрица смежности может быть задана экспертом, с использованием весовых коэффициентов, позволяющих повысить качество конечного результата.

4. Разработан алгоритм автоматического получения матрицы смежности на основе указанных численных порогов генерации переходного движения. Автоматическое заполнение матрицы смежности для указанного подмножества движений может использоваться для упрощения работы эксперта, а также для динамического подбора решения без участия эксперта.

5. Для расширения множества возможных движений персонажа разработан метод заимствования движения, т.е. перенос движения с одного персонажа на другой.

6. Разработан метод преобразования движений на основе требований и пространственно-временных ограничений движения.

7. Разработан алгоритм комбинирования движений путем последовательного выполнения (стыковки) и наложения (одновременного выполнения) двух движений. Данный алгоритм позволяет генерировать переходное движение без непосредственного участия пользователя, т.е. без задания параметров настройки для каждой комбинации, что, в свою очередь, является немаловажной характеристикой, т.к. данный алгоритм лежит в основе метода синтеза сложного движения.

8. Разработан метод моделирования движения, позволяющий синтезировать сложное движение, где в качестве исходных данных выступает достаточно высокоуровневая модель сценария, в которой с низкой степенью детализации просто перечисляется некоторый набор требуемых действий персонажа и порядок их выполнения.

9. В работе показано, что на основе разработанного метода синтеза можно значительно сократить количество кадров, требуемых для задания движения, по сравнению с методом сплайновой интерполяции ключевых кадров. В данном случае, в качестве исходных данных используются начальные и конечные состояния персонажа на соседних кадрах.

10.Разработана модель знаний о движениях персонажа, включающая в себя высокоуровневые описания ранее созданных движений, отношения между движениями и операции преобразования, и позволяющая получить из ранее созданных движений новые движения по заданному сценарию.

11. Достоверность и обоснованность полученных в работе результатов подтверждается данными экспериментальных исследований, показывающих значительное повышение эффективности, а также преимущества применения разработанного метода синтеза движения при создании сложной анимации персонажа по сравнению с другими методами.

12.На основе разработанных методов и алгоритмов создана программная система MotSyn, позволяющая с помощью значительно упрощенного по сравнению с другими системами диалога с пользователем эффективно создавать сложную анимацию персонажа по ключевым кадрам, путем последовательного или одновременного выполнения двух движений, преобразования, заимствования и синтеза сложного движения по сценарию.

Библиография Семакин, Михаил Михайлович, диссертация по теме Математическое моделирование, численные методы и комплексы программ

1. Agarwal Р. К., Sharir M. Red-blue intersection detection algorithms, with applications to motion planning and collision detection // S1.M J. Comput. -1990.-Vol. 19.-P. 297-321.

2. Arnold V. I. Mathematical Methods of Classical Mechanics // Springer- Ver-lag. New York, second edition, 1989. - P. 5-8.

3. Baraff D., Within A. Dynamic simulation of non-penetrating flexible bodies / In Catmull, E.E., editor. Computer Graphics, proceedings of SIGGRAPH 92, ACM SIGGRAPH. - 1992. - Vol. 26. - P. 303-308.

4. Baraff D. Curved surfaces and coherence for non-penetrating rigid body simulation // ACM Computer Graphics. 1990. - Vol. 24. - P. 19-28.

5. Baraff D. Dynamic Simulation of Non-Penetrating Rigid Bodies. Ph.D. thesis. - Dept. of Computer Science, Cornell University, 1992. -http://www.cs.cmu.edu/~baraff/papers/index.html.

6. Barzel R., Barr A.H. A modeling system based on dynamic constrains // SIGGRAPH'88: In Proceedings (Atlanta, Georgia, August 1-5, 1988). P. 179-188.

7. Barzel R. Physically-Based Modeling for Computer Graphics: A Structured Approach. Academic Press, San Diego, CA, 1992. - P. 5.

8. Bates J. The Role of Emotion in Believable Agents // Communications of the ACM. 1994. - Vol. 37. - P. 122-125.

9. Brotman L.S., Netravali A.N. Motion interpolation by optimal control // SIGGRAPH'88: In Proceedings (Atlanta, Georgia, August 1-5, 1988). -1988.-P. 309-315.

10. Bruderlin A., Williams L. Motion Signal Processing // SIGGRAPH 95: Proceedings (August 1995) / Edited by Robert Cook. 1995. - P. 97-104.

11. Burtnyk N., Wein M. Computer generated key frame animation // Journal of the SMPTE. 1970. - P. 149-153.

12. Canny J. F. Collision detection for moving polyhedra // IEEE Trans. PAMI. 1986. - Vol. 8. - P. 200-209.

13. Cartmull E. The problems of computer-assisted animation // Computer Animation. 1978. - Vol. 12. - P. 348-353.

14. Chazelle В., Dobkin D. P. Intersection of convex objects in two and three dimensions // J. ACM. 1987. - Vol. 34/1. - P. 27-29.

15. Chazelle B. An optimal algorithm for intersecting three-dimensional convex polyhedra // IEEE Sympos. Found. Comput. Sci.: In Proc. 1989. - P. 586591.

16. Dam E.B., Koch M., Lillholm M. Quaternions, Interpolation and Animation // Technical Report DIKU-TR-98/5: Department of Computer Science University of Copenhagen (July 1998). -1998.-34 p.

17. Duff T. Interval arithmetic and recursive subdivision for implicit functions and constructive solid geometry // ACM Computer Graphics. 1992. - Vol. 26/2.-P. 131-139.

18. Edelsbrunner H. A new approach to rectangle intersections // Part I. Internal J. Comput. Math. 1983. - Vol. 13. - P. 209-219.

19. Fishwick P.A. Web-based Simulation: Some Personal Observations // Winter Simulation Conference (San Diego, December 1996). CA: 1996. - P. 772779.

20. Garcia-Alonso A., Serrano N., Flaquer J. Solving the collision detection problem // IEEE Computer Graphics and Applications (14 May, 1994). -1994.-P. 36-43.

21. Gilbert E. G., Johnson D. W., Keerthi S. S. A fast procedure for computing the distance between objects in three-dimensional space // IEEE J. Robotics and Automation. 1988. - Vol. 4. - P. 193-203.

22. Gilbert E.G., Foo, C.-P. Computing the distance between general convex objects in three-dimensional space // IEEE Trans. Robotics Automat. 1990. -Vol. 6/1.-P. 53-61.

23. Girard M., Maciejewski A.A. Computational modeling for the computer animation of legged figures / In Barsky, B.A., editor // ACM SIGGRAPH'85: Computer Graphics, proceedings. 1985. - Vol. 19. - P. 263-270.

24. Gleicher M. Retargeting motion to new characters / In Michael Cohen, editor // SIGGRAPH'98: Conference Proceedings, Annual Conference Series (Addison Wesley, July 1998). 1998. - P. 33^2.

25. Gottshalk S., Lin M., Manocha D. Obb-tree: A hierarchical structure for rapid interference detection // ACM Siggraph'96: In Proc. 1996. - P. 24-26 (http://www.cs.unc.edu/~geom/OBB/obbt.html).

26. Grassia F.S. Believable Automatically Synthesized Motion by Knowledge-Enhanced Motion Transformation: Dissertation, Carnegie Mellon University Pittsburgh, 2000. 222 p.

27. Herzen В. V., Barr A. H., Zatz H. R. Geometric collisions for time-dependent parametric surfaces // Computer Graphics. 1990. - Vol. 24/4. - P. 39-48.

28. Hodgins J., Wooten W. L., David C. Animating Human Athletics // SIGGRAPH 95: Computer Graphics Proceedings, Annual Conference Series (August 1995, Los Angeles, California) / Edited by Robert Cook. 1995. -P. 71-78.

29. Hodgins J., Pollard N. Adapting simulated behaviors for new characters // SIGGRAPH 97: Conference Proceedings (August 1997) / In Turner Whitted, editor. 1997.-P. 153-162.

30. Isaacs P.M., Cohen M.F. Controlling dynamic simulation with kinematic constraints, behavior functions and inverse dynamics / In Stone, M.C., editor. // ACM SIGGRAPH'87: Computer Graphics, proceedings. - 1987. - Vol. 21. - P. 215-224.

31. Kujfner J.J. Autonomous agents for real-time animation: Dissertation, Stanford University, 1999. 231 p.

32. Kinetix Division of Autodesk Inc. Character studio: Computer Program, 1997.-24 p.

33. Lin M.C., Manocha D. Interference detection between curved objects for computer animation // Springer-Verlag: In Models and Techniques in Computer Animation. 1993. - P. 43-57.

34. Lozano-Perez Т., Wesley M. An algorithm for planning collision-free paths among polyhedral obstacles // Comm. ACM. 1979. - Vol. 22/10. - P. 560-570.

35. Ierusalimschy R., Figueiredo L.H., Celes W. Reference Manual of the Programming Language Lua 4.1 (alpha). TecGraf - Computer Science Department. - PUC-Rio, 2001. - 304 p.

36. McKenna M., Zeltzer D. Dynamic Simulation of Autonomous Legged Locomotion // SIGGRAPH 90, ACM: Computer Graphics, proceedings. 1990. -P. 29-38.

37. McKerrow P.J. Introduction to Robotics // Addison-Wesley, Electronic Systems Engineering Series. Wokingham, 1991.

38. Mirich M. Motion Capture Technology Overview. Meta Motion, www.metamotion.com, 2000.

39. Mirtich В. V. Impulse-base Dynamic Simulation of Rigid Body Systems: Ph.D. thesis, University of California at Berkeley, 1996.

40. Morawetz C.L., Calvert T.W. Goal-Directed Human Animation of Multiple Movements // Graphics Interface'90 (May 1990). Canadian Information Processing Society, 1990. - P. 60-67.ф

41. Perlin К. Real time responsive animation with personality // IEEE Transactions on Visualization and Computer Graphics (March 1995). 1995. - Vol. l.-P. 5-15.

42. Perlin K., Goldberg A. IMPROV: A System for Scripting Interactive Actors in Virtual Worlds // Proceedings of SIGGRAPH 96, Computer Graphics Proceedings, Annual Conference Series (August 1996, New Orleans, Louisiana). 1996.-P. 205-216.

43. Raibert M.H., Hodgins J.K. Animation of dynamic legged locomotion // Computer Graphics, SIGGRAPH'91 Proceedings. 1991. - Vol. 25. - P. 349-358.

44. Reeves W.T. Particle system a technique for modeling a class of fuzzy objects // ACM Trans. Graphics. - 1983. - Vol. 2. - P. 91-108.

45. Reynolds C.W. Computer animation with scripts and actors // Computer Graphics, proceedings of SIGGRAPH 82, ACM SIGGRAPH. 1982. - Vol. 16.-P. 289-296.

46. Reynolds C.W Flocks, herds, and schools: A distributed behavioral model / In Stone, M.C., editor // Computer Graphics, proceedings of SIGGRAPH 87, ACM SIGGRAPH. 1987. - Vol. 21. - P. 25-34.

47. Rose C. Cohen and B.obby Bodenheimer. Verbs and Adverbs: Multidimensional Motion Interpolation // IEEE Computer Graphics & Applications (September-October 1998). 1998. - Vol. 18/5. - P. 32-40.

48. Sharir M. Ecient algorithms for planning purely translational collision-free motion in two and three dimensions I I In Proc. IEEE Internat. Conf. Robot. Autom. 1987. - P. 1326-1331.

49. Shoemake K. Animating rotation with quaternion calculus // ACM SIGGRAPH 1987, Course Notes 10, Computer Animation: 3-D Motion, Specification, and Control. 1987. - P. 37-40.

50. Slotine J.E., Li W. Composite Adaptive Control of Robot Manipulators // Automatica. 1989. -Vol. 25/4. - P. 509-519.

51. Snyder J., Woodbury A., Fleischer K., Currin В., Bar A. Interval methods for multi-point collisions between time dependent curved surfaces // In Proceedings of ACM Siggraph. 1993. - P. 321-334.

52. Symon K.R. Mechanics, Third Edition. Addison-Wesley Publishing Company, Reading, Massachussetts, 1971. P. 5, 8, 26.

53. Thomas F., Johnston O. The Illusion of Life. Hyperion publishers, New1. York.- 1981.- 198 p.

54. Watt A., Watt M. Advanced animation and rendering techniques. Addison-Wesley, 1992.

55. Within A., Kass M. Spacetime Constraints I I Computer Graphics Proceedings of SIGGRAPH 88 (August 1988, Atlanta, Georgia) / Edited by John Dill. -- 1988.-Vol. 22/4.- P. 159-168.

56. Siggraph'97 course notes, 1997. http://www.cs.cmu.edu/~baraff/sigcourse/index.html.

57. Айзерман M.A., Браверман Э.М., Розоноэр Л.И. Метод потенциальных функций в теории обучения машин. М.: Наука, 1970. - 384 с.

58. Вениаминов Е.М. Алгебраический подход к моделям баз данных реляционного типа // Семиотика и информатика. 1979. - Вып. 14. - С. 4480.

59. Борцов Ю.А., Второе В.Б., Савилов А.В., Иншаков Д.Ю. Транспьютерная реализация адаптивных структур управления роботом-манипулятором // Электротехника. 1996. N10. С. 1-5.

60. Вермишев Ю. X. Основы автоматизированного проектирования. М.:

61. Радио и связь, 1988. 280 с.

62. Вильям Пейдж, Дэвид Остин и др. Использование Oracle 8/8i. Специальное издание.: Пер. с англ. М.: Изд-во «Вильяме», 2000. - 1024 е.: ил. - Парал. тит. англ., уч. пос.

63. Механика промышленных роботов: Учеб. пособие для втузов: В 3 кн./Под ред. К.В.Фролова, Е.И.Воробьева. Кн. 1: Кинематика идинамика/Е. И. Воробьев, С. А. Попов, Г. И. Шевелева. М.: Высш. шк., 1988.-304 е.: ил.

64. Вукобратович М., Стокич Д., Кирчански Н. Неадаптивное и адаптивное управление манипуляционными роботами. М.: Мир, 1989. 376 с.

65. Гелъфант И.М. Лекции по линейной алгебре. М.: «Наука», 1966.

66. Дегтярев Ю. И. Исследование операций: Учеб. для вузов по спец. АСУ. М.: Высш. шк., 1986. - 320 е.: ил.

67. Кантор И.Л., Солодовников А. С. Гиперкомплексные числа. М.: «Наука», 1973.

68. Когаловский М.Р. Энциклопедия технологий баз данных. М.: Изд-во Финансы и статистика, 2002. - 800 е.: ил.

69. Кучуганов В. Н. Автоматический анализ машиностроительных чертежей. Иркутск: Изд-во Иркут. ун-та, 1985. - 112 е.: ил.

70. Кучуганов В. Н., Поличенкова Н. В., Шадрин А. Ю. Информационное обеспечение диалога конструктора // Программирование. 1996. - №2. -С. 70-75.

71. Кучуганов В.Н., Семакин М.М., Чикуров В.В., Шадрин А.Ю., Шарапов В.А., Шутов Е.А. KG система для разработки информационных технологий и интеграции CAD/CAM/CAE-приложений // Вестник ИжГТУ.- Ижевск: Изд-во ИжГТУ, 1999. Вып. 1. - С. 10-11.

72. Кучуганов В. Н., Лопаткин А. Е., Бабушкин А. В. Язык описания трехмерных сцен и геометрическое моделирование в САПР // Приборы и системы управления. 1990. - №3. - С. 11-14.

73. Мансон Дж. Робот планирует, выполняет и контролирует в неопределенной среде. В кн.: Интегральные роботы. - М.: Мир, 1973. - С. 335— 381.

74. Дискретная математика для программистов / Ф.А. Новиков. СПб.: Питер, 2001.-304 е.: ил.

75. Павлов Д. Г. Скалярное произведение Евклидовых пространств: Материалы сайта «Все о коммутативно-ассоциативных числах» fwww.hvpercomplex.ru).http ://www.hvpercomt)lex.ru/ article2/index. shtml.

76. Петерсон M. Эффективная работа с 3D Studio МАХ / Перев. с англ. — СПб: Питер, 1997. 659 е.: ил.

77. Путов В.В. Адаптивные системы с алгоритмами настройки высшего порядка в управлении нелинейными объектами // Структуры сложных систем и алгоритмы управления: Сб. науч. статей. JL: Изд-во ЛГУ, 1990.-Вып. 8.-С. 147-159.

78. Селуянов В. Н., Шестаков М. П., Космина И. П. Основы научно-методической деятельности в физической культуре / Учебное пособие для высших учебных заведений физической культуры. Изд-во: Спор-тАкадемПресс, 2001. - 184 с.

79. Тертычный-Даури В. Ю. Адаптивная механика. Изд-во: Физматлит, 1998.-480 с.

80. Фокс А., Пратт М. Вычислительная геометрия. М.: МИР. - 1982.

81. Фомин В.Н,, Фрадков A.JI., Якубович В.Н. Адаптивное управление динамическими объектами. -М.: Наука, 1981. -448 с.

82. Шестаков М. П., Аверкин А. Н. Моделирование управления движением человека / Сборник научных трудов. Изд-во: СпортАкадемПресс, 2003.-360 с.т