Содержание к диссертации
Введение
Глава 1. Проблема использования компьютеров в творческой деятельности человека 10
1.1. Программные средства поддержки творческой деятельности человека 10
1.2. Поддержка процесса сочинения танцев 12
1.2.1. Развитие способов записи танца 13
1.2.2. Способы записи танца в настоящее время 20
1.2.3. Программные средства поддержки процесса сочинения танцев 21
1.3. Методы построения графической модели танцора 22
1.3.1. Виды графических моделей 23
1.3.2. Представление модели в виде сегментов или бесшовного каркаса 29
1.3.3. Анимация модели человека: иерархические цепочки 32
1.3.4. Анимация модели человека: скелет и деформация поверхности...35
1.3.5. Анимация модели человека: движения всего тела 38
1.3.6. Моделирование одежды 40
Выводы 41
Глава 2. Онтология предметной области и её математическая модель 44
2.1. Принципы построения онтологии ПО "Процесс сочинения последовательностей движений человека" 44
2.2. Онтология ПО "Хореография ССТФ" 45
2.2.1. Онтология танца 46
2.2.2. Онтология танцора 58
2.2.3. Онтология процесса сочинения 61
2.2.4. Связь терминов онтологии 63
2.3. Математическая модель онтологии ПО "Хореография ССТФ" 64
2.3.1. Модель онтологии танца 64
2.3.2. Модель онтологии танцора 71
2.3.3. Модель онтологии процесса сочинения 74
2.4. Постановка задачи создания программного средства поддержки
процесса сочинения ССТФ 80
Выводы 82
Глава 3. Интерактивный компонент программного средства поддержки процесса сочинения последовательностей движений человека 84
3.1. Принципы разработки интерактивного компонента программного средства поддержки процесса сочинения последовательностей движений человека 84
3.2. Язык диалога пользователей программного средства поддержки процесса сочинения ССТФ 85
3.2.1. Прагматика языка 85
3.2.2. Семантика языка 87
3.2.3. Синтаксис языка 90
3.3. Интерпретатор команд пользователя программного средства поддержки процесса сочинения ССТФ 99
3.3.1. Требования к интерпретатору команд 99
3.3.2. Архитектура интерпретатора 106
Выводы 107
Глава 4. Методы разработки программного средства поддержки процесса сочинения последовательностей движений человека 109
4.1. Методы разработки ядра программного средства поддержки процесса сочинения последовательностей движений человека 110
4.2. Методы разработки ядра программного средства поддержки процесса сочинения ССТФ 112
4.2.1. Методы построения компьютерной модели записи танца 112
4.2.2. Методы построения компьютерной модели тела танцора 123
4.2.3. Методы построения модели анимации танцора 128
4.2.4. Методы построения модели процесса сочинения 129
4.3. Разработка и реализация программного средства поддержки процесса сочинения ССТФ 134
4.3.1. Требования к программному средству 134
4.3.2. Архитектура программного средства 134
4.3.3. Экспериментальная версия программного средства поддержки процесса сочинения ССТФ 136
Выводы 143
Глава 5. Экспериментальное исследование эффективности использования программного средства поддержки процесса сочинения ССТФ 144
5.1. Описание экспериментов 144
5.2. Оценка результатов экспериментов 145
Выводы, сделанные хореографом 148
Заключение 150
Литература 151
Приложение 159
- Представление модели в виде сегментов или бесшовного каркаса
- Математическая модель онтологии ПО "Хореография ССТФ"
- Язык диалога пользователей программного средства поддержки процесса сочинения ССТФ
- Методы разработки ядра программного средства поддержки процесса сочинения ССТФ
Введение к работе
Актуальность темы диссертационной работы определяется недостаточной разработкой методов создания программных средств автоматизации процессов, протекающих в слабо формализованных предметных областях (ПО). К числу таких процессов относятся, например, сочинение танцев, создание танцевальных композиций в гимнастике и фигурном катании, разработка комплексов лечебных упражнений для физиотерапевтического лечения больных и т.п. В этих процессах автор (хореограф, врач-физиотерапевт и др.) создаёт (сочиняет) сценарий движения человека на протяжении некоторого конечного промежутка времени, как правило, в соответствии с определённым ритмическим рисунком.
В настоящее время компьютерных средств, помогающих, например, хореографам создавать новые танцы, известно немного. Можно привести примеры нескольких программ, помогающих хореографам в сочинении балетных танцев (DanceForms, Web3D Dance Composer), но для современных сольных танцев (ССТ) таких программ нет. Основная причина этого состоит в том, что все существующие программы для балетных хореографов базируются на устоявшихся знаниях о классическом балете - зафиксированном конечном множестве записей общеизвестных позиций, поз и движений танцора классического балета (записях Лабана). Подобные знания о ССТ не формализованы, сведения об этих танцах зачастую противоречивы, а способов записи таких танцев (кроме видеозаписи) нет. При сочинении новых ССТ какого-либо стиля хореограф не только сам решает, какие позы, позиции и движения, характерные для выбранного стиля, он будет использовать, но и сочиняет новые позы, позиции и движения, опираясь на собственные представления о стиле и о возможностях танцоров таких танцев.
Поиски программных средств, пригодных для оказания помощи авторам в других ПО при сочинении соответствующих последовательностей движений, к успеху не привели: существующие программные средства анимации движений человека рассчитаны на пользователей-программистов и/или базируются на фиксированном наборе возможных движений человекоподобной модели (например, Life Forms Studio или Poser).
Сегодня для практического использования требуются программные средства, помогающие авторам в сочинении и современных танцев, и вольных упражнений в спортивной гимнастике, и различных композиций в художественной гимнастике, и комплексов лечебных упражнений, и т.д. При этом пользователями этих программных средств всегда предполагаются сами авторы сочинений - непрофессионалы в программировании, но хорошие специалисты в своих областях.
При создании таких средств следует в первую очередь исследовать эту слабо формализованную ПО и построить её математическую модель. Это можно сделать в рамках онтологоориентированного подхода к разработке
программных систем (Клещев А.С., Артемьева И.Л., Guarino N.). Под онтологией предметной области здесь понимается множество определений терминов этой предметной области и описание связей между ними. При онтологоори-ентированном подходе к разработке программного средства на первом шаге процесса моделирования соответствующей ПО необходимо описать её онтологию, а на втором - построить математическую модель этой онтологии. На модели этой онтологии ставится (и решается) задача разработки программного средства.
Актуальность задачи применения онтологоориентированного подхода к разработке программных средств, пригодных для автоматизации творческого процесса сочинения последовательностей движений человека, протекающего в слабо формализованной ПО, определила выбор цели диссертационной работы.
Цель диссертационной работы - разработка с использованием онтологоориентированного подхода и исследование моделей и методов создания программного средства, поддерживающего процесс сочинения последовательностей движений человека и ведущего диалог с автором сочинения в системе понятий этого автора.
В качестве объекта исследования рассматривается процесс сочинения хореографом ССТ стиля "Фанк" (ССТФ) как пример сочинения последовательности движений человека по авторскому сценарию.
Для достижения поставленной цели в диссертационной работе необходимо решить следующие задачи:
построение онтологии ПО;
построение модели этой онтологии;
разработка методов создания интерактивной компоненты программного средства поддержки процесса сочинения последовательностей движений человека на основе построенной модели онтологии;
разработка методов создания ядра программного средства поддержки процесса сочинения последовательностей движений человека на основе построенной модели онтологии;
экспериментальное исследование предложенных моделей и методов -разработка и применение на практике экспериментальной версии программного средства поддержки процесса сочинения последовательностей движений человека в ПО "Хореография ССТФ".
Методы исследования. Для решения указанных задач использовались: существующие виды записи танцев, методы построения, анимации и тексту-рирования трехмерной модели человека и методы построения человекоподобных роботов; методы построения онтологии предметных областей и их математических моделей; методы построения интерфейсов; элементы теории искусственных языков; методы построения трансляторов; методы объектно-ориентированной разработки программных средств; алгоритмы трехмерной графики (технология DirectX); методы системного программирования.
Научная новизна работы состоит в следующем:
разработаны принципы построения онтологии ПО "Процесс сочинения последовательностей движений человека" и на их основе построены онтология и её модель для ПО "Хореография ССТФ";
разработаны принципы построения на основе онтологии ПО интерактивного компонента программного средства поддержки процесса сочинения последовательностей движений человека;
разработаны онтологоориентированные методы создания ядра программного средства поддержки процесса сочинения последовательностей движений человека;
Практическая ценность работы состоит в следующем:
разработаны язык диалога хореографа с программным средством поддержки процесса сочинения ССТФ и интерпретатор этого языка;
создана программа "Dancer" - экспериментальная версия программного средства поддержки процесса сочинения ССТФ;
результаты работы нашли применение в учебном процессе:
в Дальневосточном государственном университете: материалы 2-ой главы диссертации используются в курсе лекций по дисциплине "Интеллектуальные системы" специальности "Математическое обеспечение и администрирование информационных систем",
во Владивостокском государственном университете экономики и сервиса: онтология ПО "Хореография ССТФ" и программа "Dancer" используется при подготовке и проведении уроков хореографии;
- программное средство "Dancer_Ml" (макетная версия программы
"Dancer") зарегистрировано в Реестре программ для ЭВМ 5 сентября 2006
г. (Свидетельство Федеральной службы по интеллектуальной собственно
сти, патентам и товарным знакам об официальной регистрации программы
для ЭВМ №2006613128).
Апробация работы. Основные положения диссертации докладывались и обсуждались на Всероссийском научно-техническом фестивале молодежи "Мобильные роботы" (Москва, 2002), Дальневосточных математических школах-семинарах имени академика Е.В. Золотова (Владивосток, 2003, 2006; Хабаровск, 2005), Международных конкурсах компьютерных программ студентов, аспирантов и молодых специалистов (Владивосток, 2004, 2006), Научной конференции студентов и аспирантов ДВГУ (Владивосток, 2004), Международной мульти-конференции по систематике, кибернетике и информатике (Орландо, США, 2005), Международной научно-технической конференции "Интеллектуальные и многопроцессорные системы" (Дивноморск, 2005), а также на Объединённых семинарах Отдела интеллектуальных систем ИАПУ ДВО РАН и кафедры программного обеспечения ЭВМ Дальневосточного государственного университета.
Публикация результатов работы. По материалам диссертации опубликовано 13 работ.
Проводимые исследования поддерживались грантами на проект "Теоретические основы интеллектуальных систем, основанных на онтологиях, для интеллектуальной поддержки научных исследований" по программе № 16 фундаментальных исследований Президиума РАН и на проект Президиума ДВОРАН 06-Ш-Г-01-021.
Структура и объем работы. Диссертация состоит из введения, пяти глав, заключения, списка литературы и трех приложений. Основная часть работы изложена на 150 страниц текста, содержит 20 таблиц и 63 рисунка. Список литературы содержит 128 наименований.
Представление модели в виде сегментов или бесшовного каркаса
Как известно (Флеминг, 1999; Маэстри, 2001; Бриллиант, 2004), любую модель человека можно представить как в виде совокупности сегментов, так и в виде бесшовного каркаса. Сегментирование модели
Деление модели на части называют сегментированием (Маэстри, 2001, 2002). Решение о необходимости сегментирования принимается в зависимости от конкретной ситуации: несложно сконструировать из деталей модель манекена или закованного в доспехи рыцаря, однако цельные объекты, например, бесшовная модель человека, хотя имеют более сложные формы, но зато более правдоподобны.
Сегментированные модели персонажей создаются последовательным сочленением деталей. Примером сегментированной модели может служить классический манекен, сделанный из деревянных частей на шарнирах (рис. 1.20). Обычно для моделирования персонажа применяются объекты какого-либо одного геометрического типа, но возможно и одновременное использование нескольких типов. Поскольку отдельные детали сегментированной конструкции не меняют своей формы при манипулировании персонажем, модели такого типа легко поддаются и анимации. Сегментированная модель, в отличие от цельной, почти всегда имеет заметные швы. Придать реалистичность сегментированной фигуре можно за счет наложения текстур: аккуратный шов с плотно прилегающими краями, покрытый сложной текстурой, обычно почти незаметен. Этот прием используется в моделях людей во многих интерактивных играх.
Для того чтобы получить цельную фигуру, можно воспользоваться полигональными каркасами, патчами и геометрическими объектами других типов (Флеминг, 1999).
Один из методов создания бесшовной модели - это "выдавливание" фигуры из каркаса (куба) для того, чтобы сформировать необходимую анатомию (Бриллиант, 2004). Полигонами можно достаточно свободно манипулировать в трехмерном пространстве, поэтому на основе полигонального каркаса удается построить цельную фигуру, включая кисти рук и голову. При конструировании рук рекомендуется работать с каркасом, имеющим низкое разрешение, а затем добавлять недостающие детали посредством операции дробления многоугольников. На рис. 1.22а показана сформированная таким способом модель мужской фигуры (без кистей и головы).
Большинство качественных реализаций технологии NURBS позволяет создавать плавные переходы между поверхностями (Маэстри, 2001). На рис. 1.226 изображена бесшовная модель женской фигуры, полученная с применением этой технологии.
В процессе анимации бесшовная модель деформируется. Обычно это делается с помощью скелета. Если в процессе конструирования были допущены ошибки, при деформировании могут возникнуть проблемы. Как правило, они связаны с наиболее подвижными фрагментами модели -местами расположения шаровых шарнирных соединений.
Бесшовные модели людей становятся все более и более популярными. Обычно при этом используется бесшовная модель человека, "прикрепленная" к скелету. Исследования ведутся в области виртуальной реальности: с помощью сканирования реальных людей создаются их виртуальные двойники (Hilton et. al., 2000; Villa-Uriol et. al, 2003).
Одним из лучших примеров использования бесшовных моделей является технология Motion capture (Bodenheimer, et. al., 1997; Menache, 1999). С помощью специального оборудования она позволяет оператору управлять движениями трехмерной модели, которая повторяет движения оператора. Исследователи специально создают реалистичные бесшовные модели людей, чтобы "оживлять" их с помощью этой технологии. Например, в работах (Silaghi et. al., 1998; Nedel, Thalmann, 1999; Moeslund, Granum, 2001) исследователи создают максимально реалистичную бесшовную модель человека для использования в различных приложениях мультимедиа.
При использовании метода прямой кинематики (Маэстри, 2001; Parent, 1999) любое воздействие передается по иерархической цепочке сверху вниз. Если переместить таз персонажа, движется все тело; если повернуть локоть, движется только рука. В методе прямой кинематики должен быть выбран единственный объект (корневой элемент), который является предком всех остальных элементов и управляет всеми объектами-потомками.
Для того чтобы части тела двигались реалистично, при использовании метода прямой кинематики в качестве центров вращения (опорных точек) выбираются точки в области суставов. Например, предплечье поворачивается относительно локтя, бедро - относительно таза, голова - относительно шеи и т.д.
Метод инверсной кинематики прямо противоположен предыдущему, поскольку перемещение компонентов-потомков приводит к изменению положения компонентов-предков. Инверсная кинематика - метод позиционирования и анимации, построенный на основе "иерархической линковки" (Welman, 1993; Fedor, 2003). При использовании метода инверсной кинематики вводятся следующие ограничения: движение в соединениях ограничено индивидуальными значениями параметров перемещения и вращения; положение и ориентация родительских объектов зависит от положения и ориентации дочерних объектов. В связи с этими ограничениями инверсная кинематика требует тщательного планирования структуры иерархии и размещения опорных точек. Там, где при создании цепи прямой кинематики может быть много различных решений, имеется лишь несколько решений для инверсной кинематики. Выбор лучшего из этих решений зависит от структуры иерархии и от того, как эта иерархия будет анимирована.
Один из недостатков метода инверсной кинематики заключается в том, что в распоряжении пользователя имеется лишь один конечный эффектор для всей иерархической цепочки, с помощью которого контролируется движение каждого сустава. Если анимации подвергаются части модели, имеющие по два сустава, то, возможно, особых проблем не будет. Однако при работе с частями модели, имеющими большее число суставов, контроль над формой объекта утрачивается. Инверсная кинематика требует достаточно большого объема математических вычислений. Для оптимизации вычислений существуют различные подходы, например, использование якобианов (Meredith, Maddock, 2004).
Математическая модель онтологии ПО "Хореография ССТФ"
Рассмотрим полученную математическую модель онтологии танца. Для краткости изложения здесь под танцем подразумевается танец стиля "Фанк", под танцевальным движением - танцевальное движение стиля "Фанк", под позой - танцевальная поза стиля "Фанк".
Модель танца /Dance всегда состоит из некоторого количества моделей восьмерок Eight и исполняется в течение одной музыкальной композиции /Music (рис. 2). Таким образом, для того, чтобы создать танец, нужно последовательно создавать восьмерки.
Восьмерка исполняется в течение одного такта Т. Каждая восьмерка представляет собой либо последовательность, состоящую из восьми моделей танцевальных движений доли /MoveD, либо последовательность, состоящую из нескольких (от девяти до шестнадцати) моделей танцевальных движений долей /MoveD и полу-долей /MoveHD4 (каждую долю D музыки стиля "Фанк" можно разделить на две полу-доли Hal/Di и Hal/D2). Модель танцевального движения доли /MoveD представляет собой либо множество моделей танцевальных движений частей тела /PMoveoD, исполняемых в течение этой доли, либо модель танцевального движения всего тела./BMoveD.
Используя математическую модель онтологии предметной области, можно сформулировать задачи, которые должно решать программное средство поддержки процесса сочинения последовательнгости движений исполнителя. Цель разработки такой программы - автоматизировать творческий процесс создания (сочинения) последовательности двиений исполнителя. С помощью программного средства сочинитель должен иметь возможность использовать графическое отображение записи сочиняемой последовательности, трехмерную модель исполнителя, язык диалога, включающий профессиональную терминологию сочинителя. Результат каждого из своих действий сочинитель должен видеть на экране монитора: графическое отображение записи последовательности должно обновляться при редактировании этой записи, модель исполнителя должна принимать задаваемые новые позы, выполнять указываемые сочинителем движения, должны отображаться информационные сообщения и т.д. Так, при сочинении танца стиля "Фанк" хореограф должен иметь возможность задавать позы танцора, формировать танцевальные движения, восьмерки и т.п., т.е. решать творческие задачи, используя программное средство. При решении этих задач хореограф использует графическое отображение ленты, графическую модель танцора, библиотеки танцев, отдельных движений и позиций, а также язык команд. Подробное описание методов и инструментов для работы хореографа с этими моделями приводится в последующих главах данной работы.
Рассмотрим в качестве примера основные задачи, которые решает хореограф, используя программное средство поддержки процесса сочинения ССТФ. 1. Задание позы Входные данные: Choreographer,/Poses. Выходные данные: модель mmppajDancer принимает позу, заданную хореографом. 2. Формирование танцевального движения Входные данные: Choreographer, prFormFKt,/Poses. Выходные данные:/Kt = Ktj,..., Ktjc, где К- количество кинетотактов. 3. Выбор танцевального движения Входные данные: Choreographer, EightcurE, CWQ. Выходные данные: новое значение сиг . 4. Добавление танцевального движения Входные данные: Choreographer,prAddFKt,/Kt,...,/KtN,/Ktnem curD. Выходные данные: ДІ?;, ...,/KtcurD,JKtnew,...,fKtN. 5. Удаление танцевального движения Входные данные: Choreographer,prDelFKt,JKtj,...,JKtN, curD. Выходные данные: JKth ...,/К игВ.],/К иг1) + 1, ...,fKtm. 6. Просмотр танцевального движения Входные данные: Choreographer, prViewEight, Eighty, сиг в. Выходные данные: последовательность Рауе на экране монитора 7. Формирование восьмерки Входные данные: Choreographer, prFormEight,fKts. Выходные данные: JKtj,.. .,JKt8. 8. Выбор восьмерки Входные данные: Choreographer,/Dance, сиг. Выходные данные: новое значение сигЕ. 9. Добавление восьмерки Входные данные: Choreographer, prAddEight, Eight і Eighty, Eightnew, cur Е. Выходные данные: Eight],..., EightcurE, Eightmw,..., Eighty. -82 10. Удаление восьмерки Входные данные: Choreographer, prDelEight, Eight],...,Eighty, cur Е. Выходные данные: Eight!,..., EightcurE.j, EightcurE + ;,..., Eighty. 11. Просмотр восьмерки Входные данные: Choreographer,prViewEight,fDance, curE. Выходные данные: последовательность fPose на экране монитора. 12. Просмотр танца Входные данные: Choreographer, prViewEights,fDance. Выходные данные: последовательность fPose на экране монитора. 13. Просмотр танцевального движения Входные данные: Choreographer, At. Выходные данные: новое значение At. Методы решения вышеперечисленных задач рассматриваются в главе 4.
В данной главе сформулированы принципы построения онтологии ПО "Процесс сочинения последовательности движений человека": разделение онтологии на три составные части (онтология последовательности движений, онтология исполнителя и онтология сочинителя этой последовательности) и однозначность толкования терминов этих частей онтологии.
На основе этих принципов описана онтология предметной области "Хореография современного сольного танца стиля "Фанк" и построена её математическая модель.
Построенные по вышеуказанным принципам онтологии последовательности движений и исполнителя и их модели являются основой для создания программного средства поддержки процесса сочинения последовательностей движений человека, которое позволит сочинителю создавать записи всех видов позиций, поз и движений в виде графических образов на компьютере. Это создаст для сочинителя комфортные условия для сочинения последовательности движений: ему не нужно запоминать сложные условные обозначения поз и движений, он увидит на экране и выбираемые им позиции и движения, и создаваемые им новые движения, части последовательности и даже всю последовательность. Онтология исполнителя предполагает не только запись движения, но и синхронизацию его с заданным ритмическим рисунком, что является важным, например, при создании танцев. Процесс сочинения последовательностей движений человека предполагает, что сочинитель имеет возможность импровизировать, создавая совершенно новые движения.
Язык диалога пользователей программного средства поддержки процесса сочинения ССТФ
Прагматика, в частности, описывает то множество задач, которые пользователь хочет решить, используя этот язык (Лавров С.С, 1982). Для данного случая это множество описано на языке UML (Буч Г. и др., 2001; Леоненков А.В., 2002) в виде диаграммы прецедентов программного средства поддержки процесса сочинения ССТФ. В данном случае предложения языка - это команды пользователей, которые выполняет интерпретатор языка, входящий в состав интерактивной компоненты программного средства поддержки процесса сочинения ССТ. Поэтому описание семантики языка выполнено с использованием диаграммы прецедентов: для каждого прецедента на естественном языке, включающем профессиональную терминологию хореографа (и его ученика), описываются те действия, которые выполняет программное средство поддержки процесса сочинения ССТФ по команде (или по последовательности команд) пользователей. В тексте символом " " отмечены те действия, которые в программном средстве поддержки процесса сочинения ССТФ доступны не только хореографу, но и его ученику.
Рассмотрим подробнее прецеденты, представленные на рис. 3.1 и рис. 3.2. Просмотр танца (команда меню "просмотреть танец"): на экране монитора танцор исполняет текущий танец. Запись танца (команда меню "записать танец"): текущий танец записывается в библиотеку танцев; его имя задаёт хореограф. Загрузка танца (команда меню "загрузить танец"): текущий танец удаляется, текущим становится танец, загружаемый из библиотеки танцев. Задание длительности доли (команда меню "задать длительность музыкальной доли"): пользователь задаёт числовое значение продолжительность музыкальной доли. Выбор восьмерки (команды меню: "выбрать следующую восьмерку", "выбрать предыдущую восьмерку", "выбрать первую восьмерку", "выбрать последнюю восьмерку"): выбранная восьмерка становится текущей. Добавление восьмерки (команда меню "добавить восьмерку"): в танец добавляется новая восьмерка. Удаление восьмерки (команда меню "удалить восьмерку"): текущая восьмерка удаляется из текущего танца. -88 Просмотр восьмерки (команда меню "просмотреть восьмерку"): на экране монитора последовательно "проигрываются" все полные кинетотакты, входящие в текущую восьмерку. Выбор танцевального движения (команды меню: "выбрать следующее танцевальное движение", "выбрать предыдущее танцевальное движение", "выбрать первое танцевальное движение восьмерки", "выбрать последнее танцевальное движение восьмерки"): выбранное танцевальное движение становится текущим. Удаление танцевального движения (команда меню "удалить танцевальное движение"): Если текущее танцевальное движение последнее в восьмерке, то удаляются все элементарные движения, в него входящие. В противном случае, текущее танцевальное движение удаляется из восьмерки и текущим становится следующее танцевальное движение. Добавление танцевального движения доли (команда меню "добавить танцевальное движение доли"): в танец добавляется следующим за текущим танцевальным движением новое танцевальное движение доли (программное средство формирует движение на основе поз, заданных хореографом). Добавление танцевального движения полу-доли (команда меню "добавить танцевальное движение полу-доли"): аналогично прецеденту "добавление танцевального движения доли", только в танец добавляется новое танцевальное движение полу-доли. Загрузка танцевального движение части тела, исполняемого в течение доли (команда меню "загрузить танцевальное движение части тела, исполняемое в течение доли"): аналогично прецеденту "добавление танцевального движения доли", только в танец добавляется сохраненное в библиотеке танцевальное движение части тела (добавляется как исполняемое в течение доли).
Загрузка танцевального движения части тела, исполняемого в течение полу-доли (команда меню "загрузить танцевальное движение части тела, исполняемое в течение полу-доли"): аналогично прецеденту "добавление танцевалыюго движения доли", только в танец добавляется сохраненное в библиотеке танцевальное движение части тела (добавляется как исполняемое в течение полу-доли).
Запись танцевального движения (команда меню "записать танцевальное движение"): в библиотеку движений записывается танцевальное движение выбранной пользователем части тела.
Просмотр танцевального движения (команда меню "просмотреть танцевальное движение"): на экране монитора проигрывается полный кинетотакт, соответствующий текущему танцевальному движению. Выбор элементарного движения (команды меню: "выбрать следующее элементарное движение", "выбрать предыдущее элементарное движение", "выбрать первое элементарное движение", "выбрать последнее элементарное движение"): выбранное элементарное движение становится текущим. Добавление элементарного движения (команда меню "добавить элементарное движение"): в текущее танцевальное движение добавляется элементарное движение следующим за текущим элементарным движением (если такого нет, то в начало танцевального движения). Удаление элементарного движения (команда меню "удалить элементарное движение"): текущее элементарное движение удаляется из танцевального движения. Задание позы (команда отсутствует): хореограф задает позиции частей тела (непосредственно или с помощью библиотеки). Выбор позиции из библиотеки (команда меню "выбрать позицию из библиотеки"): хореограф выбирает из библиотеки позицию для некоторой части тела танцора. Эта часть тела принимает выбранную позицию. Задание позиции хореографом (левая кнопка мыши, четыре стрелки на клавиатуре и клавиши "Page Up", "Page Down"): хореограф с помощью клавиатуры формирует позицию некоторой части тела танцора. всего тела. имя.
Методы разработки ядра программного средства поддержки процесса сочинения ССТФ
При построении КМ записи танца решаются две задачи: создания модели записи танца и отображения этой модели на экране монитора. Процесс создания модели записи танца состоит из некоторого количества шагов. После завершения её создания она должна быть отображена на экране монитора.
На первом шаге процесса создания записи танца, вообще говоря, нужно было бы построить КМ описаний поз и позиций. Однако, учитывая то обстоятельство, что любая поза представляет собой совокупность всех позиций частей тела, компьютерные модели описаний поз строить не нужно -достаточно построить компьютерную модель множества описаний позиций. Следующий шаг создания КМ записи танца - построение КМ поз и позиций (поз и позиций, однозначно задающих положение частей тела) На основе этих моделей строятся КМ танцевальных движений части тела и всего тела, а затем - КМ множества общепринятых танцевальных движений.
Танец всегда исполняется под музыку, поэтому танцевальные движения характеризуются ещё и музыкальным ритмом, в котором они исполняются. Как следует из анализа модели онтологии танца, при построении восьмерки не важно, исполняется движение частью тела или всем телом, поэтому уже на следующем шаге строится КМ танцевального движения, исполняемого в течение доли (полу-доли). Для танца стиля "Фанк" на основе КМ танцевального движения, исполняемого в течение доли (полу-доли), далее строится КМ восьмерки, а на последнем шаге - КМ записи танца. Таким образом, метод создания КМ записи танца, по существу, заключается в том, чтобы описать некоторое множество классов для терминов онтологии. Ниже приведен список этих классов, после имени класса указаны его члены. - "описание позиции": имя части тела, имя позиции, параметры позиции. - "позиция": идентификатор (указатель на) объект класса описания позиции, значения параметров позиции, функция (метод класса) для получения от пользователя-хореографа значений параметров позиции. - "поза": массив объектов класса "позиция" для всех частей тела. - "движение": количество позиций (или поз) из которых состоит движение, массив объектов класса "позиция" (или объектов класса "поза"). - "общепринятое движение": имя части тела (в случае движения части тела), имя движения, значения характеристик движения, объект класса "движение". - "движение, исполняемое в течение доли (полу-доли)": значение, показывающее, исполняется движение в течение доли или полу-доли, номера начальной и конечной "музыкальных точек" на музыкальной дорожке, объект класса "движение". - "восьмерка": порядковый номер восьмерки в последовательности восьмерок, массив объектов класса "движение, исполняемых в течение доли (полу-доли)". - "танец стиля "Фанк": количество восьмерок в танце, момент времени начала танца, протяженность музыкальной доли во времени, массив объектов класса "восьмерка".
Согласно модели онтологии танца, каждое танцевальное движение состоит из конечной последовательности поз. Поэтому для многих танцевальных движений модели множества fCommonMoves задание двух поз (начальной и конечной) не является достаточным - такое движение не реалистично: ведь между начальной и конечной позой движения может быть до 60 промежуточных поз или позиций (по аналогии с кинематографом). Невозможно задать эти позы непосредственно на этапе создания модели записи танца - самым лучшим способом будет задание хореографом компьютерной модели для fCommonMoves на этапе использования программы: хореограф получит возможность дать команду на добавление понравившегося ему движения в это множество, и программа создаст новый объект типа PART_MOVE.