Урок 1. Интерактивность - это просто!
Запустите Вашу версию Quest3D, установленную на Вашем компьютере. При запуске Quest3D автоматически создаст для Вас пустой проект с которым уже можно начинать работать. В Channel Graph Вы увидите один единственный канал Project Start, который необходимо удалить. Для этого выделите его, кликнув на нем указателем мыши,и нажмите клавишу Delete.
Слева от главного окна программы во вкладке Templates найдите канал Start3DScene, выделите его и захватив левой кнопкой мыши перетащите его в Channel Graph, затем отпустите кнопку мыши. Значок, преставляющий данный канал, появится теперь в Channel Graph.
Затем во вкладке Templates найдите строку Primitives и кликните на значке "+", стоящем слева от нее.В раскрывщемся списке найдите каналы Box и Sphere и используя методику, описанную выще, переместите эти каналы также в Channel Graph(см.рис.L1.1).
Разверните список, называемый 3D, как описано выше и найдите в нем канал DX8 3D Render, который используется для прорисовки 3D объектов, представляемых каналами в Channel Graph. Используя вышеописанную методику поместите и этот канал в Channel Graph(см.рис.L1.2).
Сделаем краткое отступление, чтобы пояснить смысл сделанного и назначение этих каналов.
Канал Start3DScene предназначен для постоянного в течение времени выполнения приложения вызова каналов, которые к нему присоединены. Обращение происходит каждый раз с обновлением кадра на экране монитора.Аналогичную функцию выполняет канал Project Start, но он применяется для крупных проектов со сложными связями и большим числом каналов. Канал DX8 3D Render, как понятно из его названия, служит для прорисовки на экране монитора всего того, что Вы создали и присоединили к нему в качестве каналов,т.е любые 3D объекты, как импортированные из 3D редакторов, так и встроенные в Quest3D стандартные примитивы. Каналы Box и Sphere - это стандартные примитивы Quest3D. Кроме них можно просто создавать и другие подобные, как, например, тор, плоскость, цилиндр и т.д и т.п.
Следующий шаг состоит в том, чтобы соединить помещенные в Channel Graph каналы связями, обеспечивающими их взаимодействие между собой и функциональность.Только не думайте, что каналы можно связывать между собой как вздумается... это не так. Каждый канал имеет определенный тип и естественно предположить, что он может быть присоединен только к определенному типу каналов и к нему могут быть присоединены только определенные каналы.Например, к каналу DX8 3D Render можно присоединять только каналы объектного типа и источники света. Это напоминает известное из программирование понятие "родитель-потомок", только в смысле отношений, а не наследования.Применительно к нашему примеру можно заметить, что в Channel Graph расположение каналов напоминает по форме пирамиду. В самом верху ее расположен Start3DScene, ниже DX8 3D Render, и еще ниже каналы Box и Sphere . Отсюда можно сделать вывод, что Start3DScene является "родителем" по отношению к DX8 3D Render и Box, Sphere и одновременно "потомком" по отношению к Start3DScene и т.д. Графически каждый канал изображается прямоугольником сверху и снизу которого расположены более мелкие прямоугольники, представляющие возможные связи канала с другими. Сверху находится прямоугольник, представляющий собой возможную связь с "родительским" каналом. Снизу располагаются прямоугольники связей с "дочерними" каналами.
Давайте соединим теперь каналы в единую конструкцию.
Подведите указатель мыши к верхнему прямоугольнику канала DX8 3D Render и Вы заметите, что он становится красным и готовым к тому, чтобы создать связь с другим каналом. Ухватитесь за него левой кнопкой мыши. Вы заметите, что желтый прямоугольник со знаком "+" снизу канала Start3DScene становится зеленым. Это означает, что связь, которую Вы хотите создать с этим каналом возможна. Это правило распостраняется на все каналы Quest3D и является очень удобным, особенно для начинающих, так как программа подсказывает к какому каналу возможно провести связь. Более того, если связь невозможна, то при подведении связи к "дочернему" прямоугольнику он окрашивается в красный цвет. Поместите указатель мыши над зеленым прямоугольником под Start3DScene и отпустите кнопку. Линия, тянувшаяся вслед за указателем мыши закрепится и превратится в стрелку, что обозначает создание связи между каналами.Созданную связь в любой момент можно разорвать. Для этого связь нужго выделить (она становится красной), затем нажать кнопку Delete. Аналогично создайте связи между оставшимися каналами как показано на рис.L1.3.
Теперь в окне 3D обзора можно увидеть в центре координатной сетки черный сферический объект. Дело в том, что при добавлении в сцену любых 3D объектов, как встроенных в программу примитивов, так и импортированных из других приложений 3D графики, они всегда размещаются в центре координатной системы. То же мы имеем и в нашем случае - куб попал внутрь сферы и поэтому его не видно. Давайте разнесем наши сферу и куб на некоторое расстояние друг от друга, чтобы они были поотдельности.
В правом верхнем углу из выпадающего списка выберите пункт Animation чтобы перейти в режим работы с анимацией объектов сцены.
Сейчас нам анимировать ничего не надо, просто в этом режиме удобно с помощью мыши перемещать объекты сцены туда, куда нужно. В левом углу программы над списком активируйте вкладку Objects, теперь в списке можно увидеть наши сферу и куб, которые мы поместили в сцену - Box Object, Sphere Odject. Выделите любой из них в списке и Вы увидите, что вокруг выделенного объекта в окне 3D обзора появится куб, как-бы из проволоки, желтого цвета. Это значит, что объект сейчас выделен и готов к манипуляциям с ним. Ухватитесь теперь левой кнопкой мыши за объект и передвиньте его в сторону, безразлично вправо или влево. То же самое сделайте для другого объекта сцены. Сориентируйте и выберите такой масштаб обзора, чтобы оба объекта были видны раздельно и занимали максимальную площадь экрана (см.рис.L1.6).
Выберите в нем пункт Set as start channel и сделайте на нем клик левой кнопкой мыши. Так как в этом уроке мы не будем использовать источники света, то чтобы увидеть объекты, помещенные в сцену, сделаем фон окна 3D обзора не черным, а светло-серым. Для этого опять вызовыте контекстное меню, как было описано выше и выберите строку Channel Properties....Появится окошко со свойствами канала Start3DScene, в котором нужно изменить цвет фона на более светлый. Рис.L1.5 подскажет Вам как это сделать.
Вернитесь обратно в режим работы Channels.
Далее нам нужно сделать так, чтобы каждый из наших объектов как-то реагировал,когда над ним будет находиться указатель мыши. Ну, например, сделаем так, чтобы сфера засвечивалась зеленым цветом, а куб - синим. Для этого поместим в Channel Graph канал, который определяет находится ли указатель мыши над объектом, или нет - DX8 Mouse over object. Он находится в списке Templates (см.рис.L1.7).
Затем выделим его и скопируем стандартным сочетанием клавиш Ctrl+C и Ctrl+V. С помощью контектного меню активизируйте пункт General Properties... и измените название одного из каналов на Mouse over Box, а другого - Mouse over Sphere.
В Quest3D есть одна очень полезная на мой взгляд фича под названием "создание Shortcut каналов". Если кто знаком с программированием, то могу заметить, что это очень похоже на то, как в программе, например какая-то функция в качестве аргумента использует не саму переменную, а ссылку на нее, т.е. попросту говоря использует адрес ячейки в памяти компьютера, где находится сама переменная. Сейчас нам необходимо будет создать такие Shortcut для каналов Box Object и Sphere Object. Для этого выделите левым кликом мыши один из каналов, например Box Object, затем нажмите и отпустите клавишу "тильда" на клавиатуре. Вы увидите, что в Channel Graph появился прямоугольник, обозначающий канал и с тем же именем, только серого цвета. Это и есть Shortcut канала Box Object. Ту же самую операцию выполните и для канала Sphere Object. Теперь прилинкуйте Shortcut канала Box Object к каналу Mouse over Box, а Shortcut канала Sphere Object к каналу Mouse over Sphere. Добейтесь сходства с изображенным на рис.L1.7.
Вы можете заметить, что к каждому из каналов Box Object и Sphere Odject прилинкованы одинаковые по названию и имеющие символ папки группы каналов Vertex Data, содержащие данные о вершинах объектов, их материалах и текстурах. В эти папки теперь нужно переместить только что созданные нами группы каналов Shortcut Box Object - Mouse over Box и Shortcut Sphere Object - Mouse over Sphere. Для этого кликните левой кнопкой мыши при нажатой клавише Shift по одному из родительских каналов вновь созданных нами групп, чтобы выделить всю группу целиком вместе с "детьми" и перетащите его при нажатой левой кнопке мыши на значок папки Vertex Data, затем отпустите кнопку. Теперь эта группа будет перемещена внутрь папки Vertex Data. Проделайте это действие два раза, поместив Shortcut Box Object - Mouse over Box в папку Vertex Data канала Box Object, а Shortcut Sphere Object - Mouse over Sphere в папку Vertex Data канала Sphere Object.
Теперь давайте войдем внутрь папки Vertex Data канала Box Object сделав двойной клик на ее значке. Здесь мы увидим перемещенную нами группу Shortcut Box Object - Mouse over Box. Удалим канал В, прилинкованный третьим к каналу Emmisive, а вместо него прилинкуем группу Shortcut Box Object - Mouse over Box (см.рис.L1.8). Выйдем из папки Vertex Data канала Box Object сделав двойной клик на значке папки в самом верху Folder Up. Произведем аналогичные действия и с группой Shortcut Sphere Object - Mouse over Sphere, только на этот раз прилинкуем ее вместо канала G, стоящего вторым в ряду (см.рис.L1.9).
Теперь все готово и можно проверить, что у нас получилось. Нажмите кнопку Run, расположенную в верхней правой части окна программы (см.рис.L1.10) и переместите указатель мыши в окно обзора сцены над объектом Sphere.
Сфера вспыхнет ярким зеленым цветом. Поместив указатель мыши над объектом Box изменим его цвет на ярко-синий (см.рис.L1.11,12). Стоит заметить, что таким образом можно влиять не только на свойства поверхностей объектов, практически все параметры объектов сцены можно сделать интерактивными.
В следующем уроке мы попробуем создать модель деревушки в долине, с голубым небом над головой, деревьями и сделаем прогулку по ней.
До встречи!
Используются технологии
uCoz