В этом примере я использовал 3D-модель комнаты с запечёнными в карту (изображение) освещением (lightmap), вы можете найти модель в каталоге примеров с именем файла lightmaps.ccb, если захотите её использовать:
Выбирая узлы пути, вы можете перемещать их и редактировать путь по которому камера будет следовать через трехмерную сцену.
Просто создайте новую камеру, нажав на вкладку 'Create' «Создать» и кликните значок с изображением камеры, (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Это добавит поведение к камере, заставляющие камеру двигаться по выбранному пути.
Вам нужно только указать по какому пути следовать камере.
Если вы хотите, чтобы камера была направлена в направлении движения, установите флажок 'LookIntoMovementDirection' «Смотреть в направлении движения».
Из этого урока вы узнаете, как создать простое приложение для просмотра 3D-моделей с помощью CopperCube, управляя мышью, позволяющее просматривать 3D-модели со всех сторон.
После того, как вы настроили свою сцену, к важной части: нам нужен контроллер камеры, который может перемещаться по зданию в середине сцены и показывать здание со всех сторон.
Для этого просто создайте новую камеру. Для этого нажмите на вкладку 'Create' «Создать» и кликните значок с изображением камеры (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Вот, как это должно выглядеть:
Это связано с тем, что камера всегда находится на постоянном расстояние радиуса желтой сферы от центра.
« Ответ #34 : 01 Май 2019, 16:28:55 »Урок: Создание просмотровщика 3D-модели
« : 02 Май 2019, 15:09:39 »Урок: Использование камеры от третьего лица
« : 02 Май 2019, 19:02:39 »Урок: Создание 3D-конфигуратора
Кроме того, если вы не хотите чтобы клерк мог проходить сквозь стены, то добавьте к нему поведение 'Collide when moved' «Столкновение при перемещении».
Когда вы это сделаете, обязательно отрегулируйте желтый эллипсоид так чтобы он окружал клерка и не застревал в стенах или в полу.
Конечно, вы не обязаны использовать анимированного персонажа типа клерк, для модели, которой хотите управлять, и следите за ней с помощью камеры от третьего лица.
Также вам будет предложено выбрать объект за котором она должна следовать.
Камера от третьего лица расположенная позади персонажа
Теперь вы также можете настроить некоторые значения, такие как 'FollowMode' «Режим следования», 'FollowSmoothingSpeed' « Сглаживание скорости следования» и если камера не должна проходить сквозь стены 'CollideWithWorld' «Сталкиваться с миром».
Остапа понесло.
/* <action jsname="action_MovePosition" description="Move Position"> <property name="MoveBy" type="vect3d" default="0.0, 5.0, 0.0" /> </action>*/action_MovePosition = function(){};// вызывается при выполнении действия action_MovePosition.prototype.execute = function(currentNode){ var oldPos = ccbGetSceneNodeProperty(currentNode, "Position"); var newPos = oldPos.add(this.MoveBy); ccbSetSceneNodeProperty(currentNode, "Position", newPos);}
/* <action jsname="action_MovePosition" description="Move Position"> <property name="MoveBy" type="vect3d" default="0.0, 5.0, 0.0" /> </action>*/
/* <action jsname="action_MovePosition" description="Move Position"> <property name="MoveBy" type="vect3d" default="0.0, 5.0, 0.0" /> <property name="MoveWhat" type="scenenode" /> <property name="TestColor" type="color" default="ff00ff00" /> <property name="TestText" type="string" default="Hello World!" /> </action>*/action_MovePosition = function(){};// вызывается при выполнении действия action_MovePosition.prototype.execute = function(currentNode){ var oldPos = ccbGetSceneNodeProperty(this.MoveWhat, "Position"); var newPos = oldPos.add(this.MoveBy); ccbSetSceneNodeProperty(this.MoveWhat, "Position", newPos);}
<action jsname="action_MovePosition" description="Move Position">...
action_MovePosition = function(){};
// вызывается при выполнении действия action_MovePosition.prototype.execute = function(currentNode){ var oldPos = ccbGetSceneNodeProperty(this.MoveWhat, "Position"); var newPos = oldPos.add(this.MoveBy); ccbSetSceneNodeProperty(this.MoveWhat, "Position", newPos);}
Из этого урока вы узнаете как использовать поведения и действия для создания простого 3D-конфигуратора в CopperCube.
Недавно созданная камера с целью направленной на 3D-модель
Теперь нам нужны кнопки на которые пользователь сможет нажать.
Поэтому мы просто создадим 2 билборда (используйте вкладку 'Create' «Создать» и нажмите значок 'Create a Billboard' «Создать билборд», либо через меню 'Edit -> Insert -> Create a Billboard' «Редактировать -> Вставить -> Создать билборд») и разместим их тех в трехмерных позициях, в которые должна перемещаться камера, когда пользователь нажимает на одну из двух кнопок:
Билборды отмечающие 3D-позиции камеры
Новое поведение будет добавлено и выглядеть так:
Новое действие будет добавлено и выглядеть так:
Надеюсь, вы заметили, что добавить поведение и действие к 2D-наложению, действительно легко.