Методические рекомендации по выполнению практических работ в среде визуального программирования Alice 3D


Магистрант, студент гр. М2201 ИКТ
Кравчук А.А.
Методические рекомендации по выполнению практических работ в среде визуального программирования Alice 3D
Практическая работа №1
Тема: «Визуальная среда разработки Alice 3D»
Цель: Изучить интерфейс Alice 3D, получить основные навыки работы с основными элементами программы
Задание к работе
Часть 1
Начало работы в Alice 3D
Запустите среду визуального проектирования Alice 3D.
Два способа:
дважды осуществите щелчок ЛКМ на ярлыке программы расположенном на рабочем столе:

запустить через стандартное меню Пуск->е программы->Alice 3->Alice 3
После запуска программы Вам будет предложено выбрать макет существующей сцены или загрузить ранее созданный и сохраненный проект.
Загрузите сцену DIRT

Рисунок 1 – Окно выбора сцены или ранее созданного проекта
После выбора сцены на экране появится окно представленное ниже.

Прежде чем начать писать код или манипулировать объектами проекта, их необходимо добавить в текущую сцену.
Для добавления объектов сцены нажмите кнопку «Редактор сцены» (SetupScene).
После нажатия на кнопку «Редактор сцены» (SetupScene) появится следующее окно

По умолчанию в текущей сцене присутствуют два объекта это ground (земля) и camera (камера). Для просмотра всех присутствующих объектов сцены можно воспользоваться «Деревом объектов» отображаемом в верхнем левом углу сцены. Для добавления объектов необходимо воспользоваться «Галереей объектов» представленной в нижней части экрана.

Существует несколько вариантов выбора объектов из имеющейся галереи это «Тематические галереи» и «Группы объектов»

Тематическая галерея
Группы объектов
Добавим объекты к нашей сцене. Для этого перейдите на вкладку BrowseGalleryByTheme и выберите тему Fantasy - Cauldron.
Из имеющихся объектов выберите объект newcauldron() нажав на данный объект ЛКМ. Вам будет предложено дать выбранному объекту новое имя. Мы оставим имя по умолчанию. Нажмите кнопку ОК.

Примечание: Для данного упражнения все имена объектов оставляем без изменения.
После нажатия на кнопку ОК, наш объект появится в центре сены. Обратите внимание на то, что так же добавленный объект отобразиться в «Дереве объектов», а справа от текущей сцены отобразятся его свойства.
Манипулируя значениями свойств можно изменить расположение объекта на сцене его цвет, прозрачность и т.д.

Давайте поменяем цвет объекта на "Синий" для этого напротив свойства Paint щелкните на раскрывающееся меню и выберите нужный цвет. Попробуйте применить различные цвета к текущему объекту.

Далее нам необходимо переместить наш объект в левую сторону сцены. Кольцо вокруг объекта указывает на то, что объект можно крутить вокруг своей оси на 360 градусов. Для данного объекта это не слишком актуально, т.к. он выглядит одинаково с любой стороны. Для прокрутки объекта зажмите на клавиатуре клавишу "Пробел" и курсором мыши потяните за кольцо в лево или в право.Для перемещения объекта так как нам это необходимо, убедитесь в том, что объект выделен в дереве объектов, после чего переместите сам объект в левую часть сцены.
1054100111125
11 Вы заметите, что "Ручка" объекта изменится на стрелки. Стрелки вверх и вниз перемещают объект относительно оси У, а в лево в право Х относительно координат текущей сцены. Передняя стрелка перемещает выбранный объект вперед или назад соответственно.
Установите объект так как показано на рисунке ниже:
Примечание: не изменяйте размеры текущего объекта!
Добавим к нашему котлу крышку. Для этого найдем в галереи объектов newcauldronLid(). Не изменяя имя объекта нажмем ОК.
Обратите внимание, после добавления объекта "Крышка" он оказался не на котле и на земле нашей сцены. Для размещения объекта на коле можно попробовать переместить его так же как и объект "Котел" ранее, но воспользуемся более простым способом. В дереве объектов щелкните ПКМ на объекте "Крышка" в появившемся меню выдерите Procedures-cauldronLibplace-ABOVE-cauldron. После выполнения данной команды крышка окажется на котле.

12 Переместите объект "Котел", как видите выбранный объект перемещается независимо от объекта крышка, для того, чтобы сделать объекты зависимыми друг от друга необходимо объекту "Крышка" установить привязку к объекту "Котел". Верните сцену в исходное положение, отменив ранее выпаленные действия нажав на кнопку
Выберите объект "Крышка" в дереве объектов. В свойствах данного объекта установите привязку Vechicle=cauldron после чего объект станет зависимым.
13 Сохраним наш проект под именем PracticeWithAlice для этого выберите

Файл-Сохранить как... Сохраните проект на флешь носитель, где создайте отдельную папку проекта.

Часть 2
1. Запустите среду визуального проектирования Alice 3D.
2. В появившемся окне перейдите на вкладку FileSystem и нажав на кнопку "Обзор" выберите ранее сохраненный проект с именем PracticeWithAlice.
3. Добавим к имеющейся сцене еще объекты. для этого перейдите к "Редактору сцен".

4. Добавьте к сцене объект "Ведьма" для этого в галерее объектов найдите объект с именем new With(). При добавлении объекта имя оставьте без изменений.

5. Выберите объект "Ведьма" в дереве объектов и нажмите на кнопку "Изменить размер". Зажав ЛКМ и переместив мышь вверх или вниз объект изменит изначальный размер.

Сделайте объект "Ведьма" больше котла.
6. Нажмите кнопку "Вращение" и поверните объект "Ведьма" так, чтобы она стаяла повернутая к котлу.

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

8. Найдите ряд объектов и добавьте их к текущей сцене создав эпизод как показано на рисунке ниже.

9. Созданную сцену покажите преподавателю.
10. Сохраните проект с именем PracticeWithAlice_2
Практическая работа №2-3
Тема: «Раскадровка проекта и анимирование»
Цель: создать проект "Чаепитие Алисы в стране чудес"
Задание к работе
Часть 1
1. Запустите среду визуального проектирования Alice 3D.
2. Установите для проекта сцену wonderland.
3. Сохраните проект под именем TeaParty.
Примечание: во время работы над проектом не забывайте, часто сохранять проект т.к. в случае сбоя работы программы или компьютера программа не предполагает автоматического восстановления последнего прерванного сеанса.
4. Перейдите в "Редактор сцены".
5. Добавим к текущей сцене необходимые объекты. В среде Alice 3D есть специальный объект, необходимый нашему проекту "Чайный стол" вокруг которого должны собираться участники чаепития.
В "Галерее объектов" перейдите на вкладку "Дерево объектов по иерархии" (Browse Gallery By Class Hierarchy)

Перейдите в галерею "Propclasses" и при помощи полосы прокрутки найдите объект newTeaTable().
Добавьте объект "Стол" к проекту. При нажатии на объект программа предложит изменить имя объекта. Оставим его без изменения.
Примечание: ели для вашего проекта требуется изменить имя то необходимо помнить следующее правило. Имя объекта должно начинаться с прописной буквы например new, далее название с заглавной буквы, например TeaTable при этом в имени не должно быть пробелов.

6. Далее добавим в наш проект объект "Стул", для этого воспользуемся функцией поиска в "Галерее объектов".
Перейдите на вкладку "SearchGallery" и в строке поиска введите chair
7. Выберете подходящий стул и зажав ЛКМ перетяните его в область текущей сцены. Желтая рамка вместо объекта, символизирует сам объект и позволит определить место расположения объекта на сцене. После того как нужно место будет определенно, отпустите ЛКМ, система предложит Вам поменять имя размещаемого объекта.
8. Измените размеры объекта увеличив или уменьшив его так, что бы он подходи к столу.

9. Добавьте еще три кресла на сцену разместив их вокруг стола. Каждому объекту необходимо дать новое имя, иначе программа выдаст ошибку. Измените имена других объектов на: chair2, chair3, и chair4.
Разместите объекты так как показано на рисунке ниже.

10. Добавьте на стол чайные приборы. Для этого воспользуйтесь "Галереей объектов". Вы можете искать их при помощи перебора галереи или воспользоваться поиском.
Разместите следующие объекты: teapot, teacup (1,2,3,4), cake. Так как показано на рисунке ниже:

11. Добавим к нашей сцене персонажей. Первый персонаж - это "Мартовский Заяц".
Установите объект так, чтобы он совпал со стулом.

12. Посадим объект "Мартовский Заяц" на стул. Из списка объектов в панели управления выберите объект "Мартовский заяц" и из выпадающего списка marchHare.getRightHip.turn

НажмитенакнопкуONE SHOT - procedures - marchHare.getRightHip.turn. - BACKWARD - 0.25

13. Повторите тоже самое для leftHip.
14. Теперь выполните те же действия для rightKnee и leftKnee установив 0.25 для FORWARD
15. Посадите объект "Мартовский заяц" на стул.

16. Добавим к проекту объект madHatter.

17. Добавим к сцене объект "Алиса", для этого в "Галерее объектов" перейдите на вкладку BrowseGalleryByClassHierarchyи выберите newChildren. Данный класс объектов является подклассом и позволяет настроить объект так, как это необходимо. В открывшемся окне настройте объект и разместите его на сцене проекта так как показано на рисунке ниже.


18. Основные настройки сцены закончены.
19. Добавьте к сцене еще семь объектов на Ваш вкус.
20.Сохраните проект и покажите результаты преподавателю.
Часть 2
Тема: «Раскадровка сцены»
1. Откройте проект, созданный в первой части практической работы.
2. Перед тем как приступить к непосредственному кодированию объектов, необходимо выполнить раскадровку проекта, которая отображает то, что мы хотим увидеть в конечном варианте, то есть те действия, которые должны происходить в нашем проекте.
Например:
1. Сцена начинается с "Безумного шляпника" и "Мартовского зайца" которые собрались вместе вокруг стола попить чай с тортом ко дню рождения
2.При этом звучит песня unbirthday.
3. Алиса подходит к столу.
4. Алиса хвалит пение героев и наслаждается происходящим.
5. Они говорят ей, что ни кто и ни когда не говорил им комплиментов за их пение и приглашают Алису попить с ними чай.
6. Алиса извиняется, что помешала их дню рождению.
7. Они объясняют ей, что это не их день рождения - это Не День рождения!
8. Алиса просит их объяснить что это
9. Они рассказывают ей, что каждый человек празднует Не День рождения 364 дня в году.
10. Алиса понимает, что это для нее слишком.
3. В редакторе кода разместите в поле для кодирования блок \\Комментарий, укажите свою фамилию и имя, текущую дату и номер учебной группы как показано на рисунке.

4. Перейдите на вкладку "Процедуры" и перетяните на окно кодирования процедуру "Воспроизвести Аудио" при этом выбрав файл для воспроизведения. Файл находится в папке к практической работе UnbirthdaySong.wav
5. Протестируем нашу программу для этого запустим проект на исполнения нажав на кнопку Выполнить (RUN), после запуска проекта на исполнение Вы должны услышать музыку.
6. Далее необходимо запрограммировать Алису таким образом, что бы после проигрывания песни она переместилась к объекту "Мартовский заяц". Для этого выберите объект Алиса. На вкладке "Процедуры" выберите "Передвинуть в направлении" и перетащите данную процедуру под строку "Воспроизвести Аудио". После установки выбранной процедуры, Вам будет предложено определить объект к которому должна передвинуться Алиса и расстояние передвижение. Объект к которому передвигаем Алису это marchHare, расстояние 2.0.

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


8. Теперь нам надо, что бы Алиса похвалила певцов сказав "Как красиво Вы поете господа!". Для этого из вкладки "Процедуры" перетащите процедуру "Сказать" разместив ее под процедурой "Передвинуть в направлении". Сразу после этого Вам будет предложено выбрать реплику или указать собственную.
Выберите пункт CastomTextString и укажите нужный текст. Процедура "Сказать" так же имеет дополнительные настройки. Открыв раскрывающееся подменю adddetail вы можете настроить цвет текста, рамки и указать время задержки сообщения.
Настройки цветовые параметры на свое усмотрение, а время задержки укажите как 2.0 .
9. Запустите проект на исполнение.
10. По описанному выше принципу, создайте следующие диалоги между героями:
Безумный шляпник - Мы ни когда не получали комплиментов за наше пение, Вы непременно должны выпить чашечку чая с нами.
Алиса - Извините, что помешала Вашему Дню рождения!
Безумный шляпник - Это не день рождения - это не День Рождения!
Алиса - Не День Рождения?
Безумный шляпник - по статистике день рождения человек отмечает 1 раз в году. А не день рождения аж 364 дня в году, вот мы и собрались отметить не день рождения - это же так весело!
Алиса - тогда это и мой не день рождения!
Протестируйте проект и отстройте время отображения диалогов для удобного их прочтения изменив время задержки.
11. Самостоятельно сделайте так, чтобы после фразы Алисы " Тогда это и мой не день рождения!" она прыгнула два три раза. Примерный код представлен на рисунке ниже:

12. Протестируйте проект.
13. Добавьте к существующим объектам еже 4-е действия на свое усмотрение не выходящих из общей темы проекта.
14. Сохраните проект полученный результат покажите преподавателю.
Практическая работа №4
Тема: «Анимирование объектов проекта – ходьба»
Цель: Создать проект в котором будет осуществлено перемещение «Инопланетянина» при помощи реализации стандартной ходьбы.
Задание к работе
1. Запустите среду визуального проектирования Alice 3D.
2. Установите для проекта сцену MARS.
3. Сохраните проект под именем AlienWalk.
Примечание: во время работы над проектом не забывайте, часть сохранять проект т.к. в случае сбоя работы программы или компьютера программа не предполагает автоматического восстановления последнего прерванного сеанса.
4. Перейдите в "Редактор сцены" и добавьте к нашему проекту объект AlienWalk из папки галереи объектов Biped classes (Класс двуногих). Установите персонажа, так как показано на рисунке ниже.

5. В редакторе кода разместите в поле для кодирования блок \\Комментарий, укажите свою фамилию и имя, текущую дату и номер учебной группы как показано на рисунке.
6. В "Редакторе кода" запрограммируйте объект таким образом, чтобы он переместился из верхнего левого угла к правому нижнему. Примените к объекту Alien процедуру "Передвинуть в направлении" и установите шаг равный 4.0

Протестируйте программу.
7. Теперь создадим движение правой ноги для этого объекту Alien зададим движение бедра равным 0.25. Выбрав из выпадающего списка объекта элемент для задания движения getRightHip
Обратите внимание, что вкладка "Процедуры" изменила свой вид и отобразила только те процедуры, которые можно применить в рамках задания движения выбранной части объекта.
Переместите на поле myFirstMethod процедуру "Переместить в направлении" и установите направление: в перед (BACKWARD) со значением 0.25

8. Теперь проделайте теже действия для части объекта "Правое колено" выбрав getRightKnee установив направление "Назад" (FORWARD) и значение 0.25

Протестируйте программу и убедитесь, что заданные действия выполняются поочередно. Как вы можете убедиться - это не очень красиво.
9. Установим одновременное выполнения ранее заданных действий, для этого поместим из нижнего контейнера программы блок "Выполнять вместе" (do together), после этого поочередно поместите в данный блок процедуры сгибания бедра, а следом калена. Запустите программу на исполнение и убедитесь в том, что эти два действия выполняются одновременно.

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

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

Теперь поменяем во втором блоке значения "Вперед" и " Назад" местами, т.е. бедро теперь должно переместиться назад, а колено вперед, как показано на рисунке.

Протестируйте программу.
12. Как видно при тестировании, объект вначале двигается, а потом происходит движение правой ноги. Давайте зададим одновременное движение объекта и поднимания и опускания ноки. Для этого необходимо построить сложную структуру используя вложения. Создайте код для объекта используя блоки "Выполнять вместе" (do together) и "Выполнить последовательно" (doinorder), создав следующую структуру кода:

13. Измените продолжительность выполнения переходов, поменяв значения в секундах так, чтобы все движения в целом смотрелись синхронно. Для кода "Движения объекта Alien установим время перехода 2 сек:

Протестируйте программу.
14. Самостоятельно составьте код движения левой ноги объекта Alien. При этом используйте возможность копирования.
15. Скорректируйте показатели движения, изменив значения 0.25 на 0.24, установите данные значения для всех восьми созданных движений.
16. Согласитесь, что в случае необходимости постоянно заново вводить цифровые значения для каждого движения затруднительно. Среда Alice позволяет зарезервировать значение и применять его для объектов не утруждая программиста вводить цифровые обозначения.
Создадим значение. На поле с кодом из нижнего контейнера переместите блок variable
В появившемся окне установите значения

Сохраните установленные параметры, нажав на кнопку "Ок"
Теперь для применения заданных значений нужно из выпадающего списка выбрать имя заданных значений в нашем случае это amount
17. Измените все значения с 0.24 на 0.23 при помощи нового метода задания значений.
18. Доработайте созданный проект добавив объекту Alien еще один шаг и движение рук таким образом, чтобы при подъеме правой ноги, объект сгибал левую руку, а при ее опускании разгибал и,наоборот, при подъеме левой ноги, объект сгибал левую руку, а при ее опускании разгибал.
19. Сохраните проект. Полученный результат покажите преподавателю.
Практическая работа №5
Тема: «Создание собственного проекта»
Цель: Разработать проект.
Теоретические сведения
Создание компьютерной программы, которая оживляет объекты в виртуальном мире, является процессом, содержащим четыре шага:
·        Чтение сценария (описание задачи),
·        Дизайн (планирование),
·        Выполнение (процесс написания программы), и
·        Тест (работает ли это?).
Разберем  первые два шага. Чтение сценария и проектирование плана действий являются важными шагами в создании мультипликации. Дизайн определяет стратегию и практическую реализацию программы. Для первых опытов программирования лучше выбрать задачи с простыми сценариями. Разберемся что такое сценарии?
СценарииПрежде, чем создать дизайн, необходимо определиться, какую задачу и какими средствами мы будем ее решать! 
Мультфильмы и полнометражные мультфильмы начинаются со сценария, созданного профессиональными авторами. Иногда сценарий называют "Историей".
"История" может быть уроком, чтобы научит чему-либо, игрой, чтобы играть, или моделированием.
Alice 3D  дает все необходимые детали для того, чтобы настроить начальную сцену, а затем спланировать последовательность инструкций для мультипликации. Таким образом, сценарий, отвечает на следующие вопросы:
Какая история должна быть рассказана?
Какие объекты необходимы?
Некоторые объекты будут играть ведущие роли в истории, в то время как другие объекты будут использоваться, чтобы обеспечить второстепенный пейзаж.
Какие действия должны иметь место? Действия в истории в конечном счете станут инструкциями в программе.
Пример сценария:
Вы сидите дома, пропустив очередной день занятий из-за сильного снегопада. Вы видите за окном детей, создающих снеговиков. Вы вспоминаете об уроке танцев, который Вы недавно посетили. Вы - творческий человек, Ваше воображение разыгралось, и все происходящее смешалось: 
Несколько снеговиков появляются среди снежного пейзажа. Поет метель. Снеговик пытается познакомиться со снежной бабой, которая беседует со своей подругой. Снеговик снова и снова пытается привлечь ее внимание. Он говорит "Гм" и подмигивает ей. Но, увы, она не интересуется им. Она покраснела, но не заинтересовалась им и вернулась, чтобы шутить с подругой. Он сдается и отворачивается.
По этому сценарию составляем ответы на вопросы:
Какая история должна быть рассказана? Этот сценарий рассказывает
печальную историю о неудачном снежном человеке, пытающемся привлечь внимание.
Какие объекты должны использоваться? Объекты - снеговики, и второстепенный пейзаж должен изобразите зимнюю сцену.
Какие действия должны происходить? 
Действия включают:  снежного человека, пытающегося привлечь внимание снежной бабы, покраснение снежной бабы, выражение безразличия, и снеговик отворачивается. Все это является простым алгоритмом работы программы, но в нашем случае - это алгоритм построения мультфильма.
План выполнения проекта
1. Подготовительный этап:
Цель проекта;
Тема проекта;
Задачи проекта;
Разработка идеи проекта;
2. Технологический этап:
Определение объектов проекта;
Написание сценария;
Подбор музыкального сопровождения;
3. Заключительный этап:
Тестирование готового проекта;
Отладка выявленных проблем;
Задание к работе
1. Опишите первый этап выполнения проекта. Придумайте тему для проекта и хорошо ее проработайте. Опишите цель, тему, задачи, а также подробно опишите главную идею.
2. Опишите технологический этап проекта. Подробно проработайте и опишите сценарий проекта, описав движения объектов проекта и их диалоги.
3. Подберите звуковое сопровождение к проекту (не менее 3-х аудио файлов).
5. Работу оформите в соответствии с приложением.
6. Полученные результаты покажите преподавателю.

Приложением БОписание творческого проектаСтудента: Ф.И.О.
Группа: *****
1. Подготовительный этап:
Тема проекта:
Цель проекта:
Задачи проекта:
Основная идея проекта:
2. Технологический этап:
Определение объектов проекта:
№ п.п. Объект Наименование объекта / название объекта в программе Alice 3D Изображение объекта
Сценарий:
Описательная часть:
Алгоритм исполнения:
№ п.п. Объект Действия/диалог Музыкальное сопровождение
Музыкальное сопровождение:
№ п.п. Наименование аудио файла Номер алгоритма из предыдущей таблицы Примечание