Программирование виртуальной реальности с Alice и Java. (Лекция 1)

Содержание

Слайд 2

Обучение программированию в контексте анимации, симуляции, повествования и построения мини-игр. Обучение

Обучение программированию в контексте анимации, симуляции, повествования и построения мини-игр.
Обучение основам

программирования в Alice
Быстрое средство прототипирования
Создание «черновиков» анимаций, игровых симуляций и фильмоподобных историй

Описание курса

Слайд 3

Программное обеспечение доступно онлайн, бесплатно Alice 3.1 NetBeans 6.9.1 и позже

Программное обеспечение доступно онлайн, бесплатно
Alice 3.1
NetBeans 6.9.1 и позже
Java 1.6 и

позже
Alice 3 плагин для NetBeans

Инструменты

Слайд 4

Online help/instructions Все необходимые материалы можно найти на сайте alice.org, в

Online help/instructions

Все необходимые материалы можно найти на сайте alice.org, в том

числе, как
Download and install Alice 3
Download and install Netbeans and Java
Download and install the Alice 3 plugin for Netbeans
Слайд 5

Классы и объекты

Классы и объекты

Слайд 6

Alice World Проект Alice создает виртуальный мир. Первичный компонент мира –

Alice World

Проект Alice создает виртуальный мир.
Первичный компонент мира – это сцена,

показанная в Редакторе Сцены (Scene Editor).
Слайд 7

this Текущая сцена известна как “this” сцена

this

Текущая сцена известна как “this” сцена

Слайд 8

Компоненты сцены У сцены всегда есть камера и поверхность, которая может

Компоненты сцены

У сцены всегда есть камера и поверхность, которая может быть

травой, песком, скалами или даже водой. Другие объекты могут быть добавлены к сцене.
Слайд 9

Где пишется программа анимации или игры Редактор кода

Где пишется программа анимации или игры

Редактор кода

Слайд 10

Нажать на Setup Scene чтобы перейти к Scene Editor Как перейти к редактору сцены

Нажать на Setup Scene чтобы перейти к Scene Editor

Как перейти к

редактору сцены
Слайд 11

Scene Editor Где создается сцена для анимации или игры Scene setup

Scene Editor

Где создается сцена для анимации или игры

Scene setup panel

Gallery panel,

организованная как
иерархия классов
Слайд 12

Каждая 3D модель это заранее созданный класс В Alice класс определяет

Каждая 3D модель это заранее созданный класс
В Alice класс определяет
План для

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

Классы

Слайд 13

Экземпляр класса – это объект Следующие слайды иллюстрируют, как создать новый

Экземпляр класса – это объект
Следующие слайды иллюстрируют, как создать новый объект

в сцене Alice.

Объекты в Alice

Слайд 14

Галерея Разделы галереи содержат классы, упорядоченные по разным признакам

Галерея

Разделы галереи содержат классы, упорядоченные по разным признакам

Слайд 15

Иерархия классов Здесь классы организованы согласно способу передвижения их объектов. Copyright

Иерархия классов

Здесь классы организованы согласно способу передвижения их объектов.

Copyright 2012 Wanda

Dann, Don Slater
All rights reserved
Слайд 16

Выбор класса

Выбор класса

Слайд 17

Добавление объекта

Добавление объекта

Слайд 18

Именование объекта

Именование объекта

Слайд 19

Мы создали новый экземпляр класса DragonBaby и идентифицировали его именем fergie.

Мы создали новый экземпляр класса DragonBaby и идентифицировали его именем fergie.
Говорят,

что экземпляр класса это объект.

Instance/object

Слайд 20

Объекты одного класса Сцена может содержать несколько объектов одного класса. Пример:

Объекты одного класса

Сцена может содержать несколько объектов одного класса.
Пример: fergie

и bert это два различных объекта (экземпляра) одного и того же класса BabyDragon. У различных объектов должны быть разные имена.
Слайд 21

Панель методов & Дерево объектов

Панель методов
& Дерево объектов

Слайд 22

Редактор Сцены – Дерево Объектов В редакторе сцены Alice генерирует дерево

Редактор Сцены – Дерево Объектов

В редакторе сцены Alice генерирует дерево объектов,

чтобы показывать список всех объектов в этой сцене.

Чтобы вернуться в Редактор кода, нажимаем Edit Code

Слайд 23

Редактор Кода – Список Объектов В редакторе кода Alice генерирует соответствующий

Редактор Кода – Список Объектов

В редакторе кода Alice генерирует соответствующий список

объектов в выпадающем меню.

Object menu

Object tree

Слайд 24

In this scene Alice World (Мир) Каждый мир Alice содержит сцену

In this scene

Alice World (Мир)

Каждый мир Alice содержит сцену (this), поверхность

и камеру.
Объекты, создаваемые в редакторе сцены, добавляются в список.

Everyscene

Слайд 25

Панель методов В редакторе кода панель методов содержит набор плиток (tiles).

Панель методов

В редакторе кода панель методов содержит набор плиток (tiles).
Каждая плитка

описывает действие, которое выполняет объект или выполняется над объектом.
Слайд 26

Предки Каждый объект в сцене это экземпляр класса, который принадлежит семейству

Предки

Каждый объект в сцене это экземпляр класса, который принадлежит семейству классов.
Предки

класса показаны в панели методов.
Слайд 27

Наследование: Порядок Предки могут быть упорядочены от специфических до наиболее общих.

Наследование:
Порядок

Предки могут быть упорядочены от специфических до наиболее общих. Список

предков говорит нам, что fergie это экземпляр класса DragonBaby, наследует все свойства и методы класса Quadruped.
Слайд 28

Model |-JointedModel ├ SQuadruped ├ Quadruped ├ DragonBaby Иерархия классов Not shown in Methods Panel


Model
|-JointedModel
├ SQuadruped
├ Quadruped
├ DragonBaby

Иерархия классов

Not shown in Methods Panel

Слайд 29

Движение и вращение

Движение и вращение

Слайд 30

3-мерное пространство Объект Alice Расположен в 3D мире в точке с

3-мерное пространство

Объект Alice
Расположен в 3D мире в точке с координатами

(x, y, z)
Имеет 3 измерения:
высота, ширина, глубина
Может двигаться в 6 направлениях
Слайд 31

Центр объекта находится в его опорной точке, вокруг которой он двигается

Центр объекта находится в его опорной точке, вокруг которой он двигается

и вращается
Центр объекта обычно там, где он стоит на земле

Center

Слайд 32

Где «находится» объект Один из способов описать, где «находится» объект Позиция

Где «находится» объект

Один из способов описать, где «находится» объект
Позиция – относительно

начала координат поверхности

Center of the world
(origin)

Слайд 33

Где «находится» объект Второй способ Ориентация – знание объекта о его собственных направлениях «вверх» и «вперед»

Где «находится» объект

Второй способ
Ориентация – знание объекта о его собственных направлениях

«вверх» и «вперед»
Слайд 34

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

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

Copyright

2012 Wanda Dann, Don Slater
All rights reserved

Поступательное движение

Слайд 35

Пример: движение вперед Движение вперед – новое положение объекта «перед» его

Пример: движение вперед

Движение вперед – новое положение объекта «перед» его предыдущим

положением относительно собственного направления «вперед» объекта. Координаты объекта изменяются.
Слайд 36

Вращательное движение меняет ориентацию объекта в мире При этом не меняется

Вращательное движение меняет ориентацию объекта в мире
При этом не меняется позиция

объекта
Центр объекта служит опорной точкой для вращения.
Два вида вращательного движения:
поворот
Вперед, назад
Влево, вправо
вращение
Влево, вправо

Copyright 2012 Wanda Dann, Don Slater
All rights reserved

Вращательное движение: целый объект

Слайд 37

Пример: Вращение вправо Вращение вправо – новая позиция объекта вращается вправо

Пример: Вращение вправо

Вращение вправо – новая позиция объекта вращается вправо от

его исходной позиции. Расположение объекта (x,y,z) не меняется. Его направление «вверх» меняется, а «вперед» не меняется.
Слайд 38

Пример: поворот направо Поворот направо – меняется направление «вперед» объекта, «вверх»

Пример: поворот направо

Поворот направо – меняется направление «вперед» объекта, «вверх» остается

прежним. Позиция (x,y,z) не меняется.
Слайд 39

Движение сочленения

Движение сочленения

Слайд 40

У объектов часто (не всегда) есть внутренние сочленения (шарниры), которые можно

У объектов часто (не всегда) есть внутренние сочленения (шарниры), которые можно

анимировать для управления частями модели.
Сочленение соединяет часть тела с остальным телом.
Сочленение можно поворачивать или вращать, но нельзя двигать.

Internal Joints

Слайд 41

Рентген двуногого

Рентген двуногого

Слайд 42

Рентген четвероногого

Рентген четвероногого

Слайд 43

Часть может быть соединена с другой частью Вращение одной части может

Часть может быть соединена с другой частью
Вращение одной части может также

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

Subpart Location

Соединенные части

Слайд 44

Чтобы получить доступ к сочленению, нужно нажать на стрелку рядом с

Чтобы получить доступ к сочленению, нужно нажать на стрелку рядом с

именем объекта в списке экземпляров.

В редакторе кода

Слайд 45

In the Scene Editor Если выбрать опцию Show Joints и подобрать

In the Scene Editor

Если выбрать опцию Show Joints и подобрать opacity

в Редакторе Сцены, можно увидеть все сочленения модели.
Слайд 46

Добавьте объектaxes в сцену Подвиньте и сориентируйте этот объект с сочленением

Добавьте объектaxes в сцену
Подвиньте и сориентируйте этот объект с сочленением
Белая ось

указывает вперед, красная направо, зеленая вверх

Ориентация сочленения

Слайд 47

Ориентация: целое vs. часть Ориентация часть не всегда такая же как ориентация всего объекта.

Ориентация: целое vs. часть

Ориентация часть не всегда такая же как ориентация

всего объекта.
Слайд 48

Часть нельзя двигать Движение отсоединит сочленение (и присоединенную к нему часть)

Часть нельзя двигать
Движение отсоединит сочленение (и присоединенную к нему часть) от

остальной модели, поэтому действие move не разрешается для части объекта.

Поступательное движение: сочленения

Слайд 49

Сочленение части служит опорной точкой для вращения части Два вида вращательного

Сочленение части служит опорной точкой для вращения части
Два вида вращательного движения:
поворот
Вперед,

назад
Влево, вправо
вращение
Влево, вправо

Вращательное движение Сочленение/Часть

Слайд 50

Вращение сочленения

Вращение сочленения

Слайд 51

Поворот вперед/назад Красное колесо Поворачивает сочленение вперед и назад

Поворот вперед/назад

Красное колесо
Поворачивает сочленение вперед и назад

Слайд 52

Поворот влево/вправо Зеленое колесо: Поворачивает сочленение влево и вправо

Поворот влево/вправо

Зеленое колесо:
Поворачивает сочленение влево и вправо

Слайд 53

Roll left/right Синее колесо: Вращает сочленение влево и вправо

Roll left/right

Синее колесо:
Вращает сочленение влево и вправо

Слайд 54

Панель методов содержит «плитки» для создания предложений, из которых состоит программа Панель методов

Панель методов содержит «плитки» для создания предложений, из которых состоит программа

Панель

методов
Слайд 55

Для всех объектов в Alice созданы встроенные процедуры Процедуры – это

Для всех объектов в Alice созданы встроенные процедуры
Процедуры – это методы,

которые выполняют действия
Движение
Поворот
Вращение
Поворот к чему-либо
И т.д...

Процедурные методы

Слайд 56

Built-in Some procedures are built-in -- part of the Alice 3

Built-in

Some procedures are built-in -- part of the Alice 3 system

when you install it.
These are built-in procedures