Автор Тема: CopperCube  (Прочитано 46236 раз)

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #30 : 28 Апрель 2019, 22:27:14 »
Благодарю. Поправил. Ехаем дальше потихоньку...

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #31 : 29 Апрель 2019, 19:06:25 »
Урок: Создание пролёта камеры

Из этого урока вы узнаете, как создать полёт камеры через трехмерный мир с помощью CopperCube, используя функцию 'Path' «Путь». Окончательное приложение может выглядеть так:


Итоговое приложение


Начало: Создайте свою 3D-сцену
Для начала нам нужна 3D-сцена, где мы можем пролететь с камерой. Импортируйте 3D-модель, добавьте скайбокс, источники света и все, что захотите, пока вас не устроит 3D-сцена. В этом примере я использовал  3D-модель комнаты с запечёнными в карту (изображение) освещением (lightmap), вы можете найти модель в каталоге примеров с именем файла lightmaps.ccb, если захотите её использовать:


Сцена для этого примера


Определение пути
Как только вы настроите свою сцену, перейдем к важной части. В этом примере мы хотим, чтобы камера двигалась по траектории. Итак, нам нужно создать путь. Для этого просто создайте новый объект пути: нажмите на вкладку  'Create' «Создать» и кликните значок с изображением пути, чтобы создать новый путь (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Path' «Правка -> Вставить -> Создать путь»).
Должен появиться новый путь с 3 узлами:


Созданный путь


Выбирая узлы пути, вы можете перемещать их и редактировать путь по которому камера будет следовать через трехмерную сцену. Если вам нужно более 3 узлов в пути, то, когда путь выбран, нажмите кнопку 'Create a path node' «Создать узел пути» на вкладке 'Create' «Создать» или используйте меню 'Edit -> Insert -> Create a path node' «Правка -> Вставить -> Создать узел пути».


Готовый путь


Если вы хотите, чтобы путь был замкнутым, перейдите в окно свойств пути и включите опцию 'IsClosedCircle'  «Замкнутый круг»:


Как будет перемещаться целевая камера


Кроме того, вы также можете изменить сглаженность кривой всего пути. Например, 'Tighness' «Натяжение» 0 приведет к тому, что сегменты пути от узла к узлу станут прямыми линиями.


Заставляем камеру следовать по пути
Итак, теперь мы определили путь, но камера еще не движется по нему. Настало время изменить эту ситуацию. Просто создайте новую камеру, нажав на вкладку 'Create' «Создать» и кликните значок с изображением камеры, (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Должно появиться диалоговое окно:


Диалоговое окно создания камеры


Выберите 'Simple camera' «Простая камера». Это создаст новую камеру и выделит ее.
Теперь перейдите в окно свойств камеры, откройте вкладку 'Behaviors' «Поведения» и нажмите кнопку «+», чтобы добавить новое поведение:


Добавление поведения 'Follow a Path' «Следовать по пути»


Выберите поведение 'Follow a Path' «Следовать по пути». Это добавит поведение к камере, заставляющие камеру двигаться по выбранному пути. Вам нужно только указать по какому пути следовать камере. Выберите путь, который вы создали в слоте 'PathToFollow' «Путь следования». Путь, вероятно, будет называться 'Path1'.
 

Свойства поведения 'Follow Path' «Следовать по пути»


Если вы хотите, чтобы камера была направлена ​​в направлении движения, установите флажок  'LookIntoMovementDirection' «Смотреть в направлении движения».

Если вы теперь снимите флажок со свойством  'OnlyMoveWhenCameraActive' «Перемещаться только когда камера активна», то увидите, что камера уже перемещается по пути в редакторе. Но вы можете и проверить полет вашей камеры, протестировав ваше приложение (меню:  'Tools -> Test as Windows Application (.exe)' «Инструменты» -> Проверить как приложение Windows (.exe)» ). Если у вас более одной камеры в сцене, убедитесь, что для камеры с поведением следования по пути включен параметр  'Active' «Активна» во вкладке атрибутов 'Attributes' окна её свойств 'Properties'.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: CopperCube
« Ответ #32 : 29 Апрель 2019, 21:33:04 »
Цитировать
В этом примере я использовал 3D-модель комнаты с запечёнными в карту (изображение) освещением (lightmap), вы можете найти модель в каталоге примеров с именем файла lightmaps.ccb, если захотите её использовать:
В этом примере я использовал 3D-модель комнаты с запечённым в карту (изображение) освещением (lightmap). Вы можете найти эту модель в каталоге примеров с именем файла lightmaps.ccb, если захотите её использовать:

Цитировать
Выбирая узлы пути, вы можете перемещать их и редактировать путь по которому камера будет следовать через трехмерную сцену.
Выбирая узлы пути, вы можете перемещать их и редактировать путь, по которому камера будет следовать через трехмерную сцену.

Цитировать
Просто создайте новую камеру, нажав на вкладку 'Create' «Создать» и кликните значок с изображением камеры, (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Просто создайте новую камеру, нажав на вкладку 'Create' «Создать», и кликните значок с изображением камеры, (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).

Цитировать
Это добавит поведение к камере, заставляющие камеру двигаться по выбранному пути.
Это добавит поведение к камере, заставляющее её двигаться по выбранному пути.

Цитировать
Вам нужно только указать по какому пути следовать камере.
Вам нужно только указать, по какому пути следовать камере.

Цитировать
Если вы хотите, чтобы камера была направлена ​​в направлении движения, установите флажок  'LookIntoMovementDirection' «Смотреть в направлении движения».
Если вы хотите, чтобы камера была направлена ​​в сторону движения, установите флажок 'LookIntoMovementDirection' «Смотреть в направлении движения».

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #33 : 29 Апрель 2019, 22:55:33 »
Спасибо, Striver. Поправил.

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #34 : 01 Май 2019, 17:28:55 »
Урок: Создание просмотровщика 3D-модели

Из этого урока вы узнаете, как создать простое приложение для просмотра 3D-моделей с помощью CopperCube, управляя мышью, позволяющее просматривать 3D-модели со всех сторон. Окончательное приложение может выглядеть так:


Итоговое приложение


Начало: Создайте свою 3D-сцену
Для начала нам нужна 3D-сцена, в которой мы будем просматривать со всех сторон 3D-модель. Импортируйте 3D-модель, которую хотите просмотреть в приложении, добавьте скайбокс, источники света и все, что угодно, пока вас не устроит 3D-сцена. В этом примере я использовал 3D-модель здания, добавил скайбокс, несколько деревьев и вертикальные билборды для изображения людей:


Сцена для этого примера


Определение контроллера камеры
После того, как вы настроили свою сцену, к важной части: нам нужен контроллер камеры, который может перемещаться по зданию в середине сцены и показывать здание со всех сторон. Для этого просто создайте новую камеру. Для этого нажмите на вкладку 'Create' «Создать» и кликните значок с изображением камеры (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Вот, как это должно выглядеть:


Диалоговое окно создания камеры


Выберите 'Model Viewer Camera' «Камера обзора модели» и нажмите «OK».
Теперь должна быть создана и выделена новая камера, а вокруг нее нарисованы контуры желтой сферы:



Недавно созданная камера


Эта камера может вращаться вокруг центра: 'Camera target' «Цель камеры». Он отмечен серым квадратом, соединенным с камерой серой линией. Вы можете выделить цель камеры и переместить ее:


Перемещение цели камеры


В данном случае цель камеры должна быть помещена в середину здания, чтобы камера могла двигаться вокруг него.
При перемещении цели камеры вы можете заметить, что и сама камера будет следовать за целью на постоянном удалении от неё. Это связано с тем, что камера всегда  находится на постоянном расстояние радиуса желтой сферы от центра. Чтобы изменить радиус, просто выберите камеру и перейдите на вкладку  'Behaviors' «Поведения». В окне свойств выберите поведение  'Model viewer camera style controlled' «Стиль камеры обзора модели»:


Редактирование поведения обзора модели


Отрегулируйте значение радиуса так, чтобы вся 3D-сцена находилась внутри контуров желтой сферы:


Радиус достаточно велик, чтобы позволить камере вращаться вокруг всей сцены


На этом всё. Если вы сейчас протестируете приложение (меню: 'Tools -> Test as WindowsApplication (.exe)' «Инструменты -> Тестировать как приложение Windows (.exe)» ), то сможете вращаться вокруг вашей 3D-сцены с помощью мыши. Если в сцене более одной камеры, убедитесь, что на вкладке атрибутов (Attributes) окна свойств (Propertiies) для камеры с поведением 'Model viewer camera style controlled' «Стиль камеры обзора модели» включен параметр 'Active' «Активна».

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: CopperCube
« Ответ #35 : 01 Май 2019, 22:36:06 »
Цитировать
Из этого урока вы узнаете, как создать простое приложение для просмотра 3D-моделей с помощью CopperCube, управляя мышью, позволяющее просматривать 3D-модели со всех сторон.
Из этого урока вы узнаете, как в CopperCube создать простое приложение для просмотра 3D-моделей, в котором, используя управление мышью, можно рассматривать 3D-модели со всех сторон.

Цитировать
После того, как вы настроили свою сцену, к важной части: нам нужен контроллер камеры, который может перемещаться по зданию в середине сцены и показывать здание со всех сторон.
После того, как вы настроили свою сцену, перейдём к самой важной части: нам нужен контроллер камеры, который может перемещаться вокруг здания в середине сцены и показывать это здание со всех сторон.

Цитировать
Для этого просто создайте новую камеру. Для этого нажмите на вкладку 'Create' «Создать» и кликните значок с изображением камеры (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Два раза подряд "для этого", надо как-то разгрести... например, так:
Просто создайте новую камеру. Для этого нажмите на вкладку 'Create' «Создать» и кликните значок с изображением камеры (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).

Цитировать
Вот, как это должно выглядеть:
Вот как это должно выглядеть:

Цитировать
Это связано с тем, что камера всегда  находится на постоянном расстояние радиуса желтой сферы от центра.
Это связано с тем, что камера всегда находится от центра на постоянном расстоянии, равном радиусу желтой сферы.

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #36 : 02 Май 2019, 15:22:17 »
Спасибо, Striver! Поправил.

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #37 : 02 Май 2019, 16:09:39 »
Урок: Использование камеры от третьего лица

Из этого урока вы узнаете, как с помощью CopperCube создать контроллер камеры от третьего лица, то есть камеру, которая следует за анимированным персонажем, перемещающимся по трёхмерному миру.


Начало: Создайте свою 3D-сцену
Для начала нам нужна 3D-сцена, по которой мы можем перемещаться. Импортируйте 3D-модель, добавьте скайбокс, источники света и всё, что захотите, пока вас не устроит 3D-сцена. В этом уроке я использовал создатель комнат, чтобы создать простую комнату, которая выглядит следующим образом:


Сцена для этого примера


Вы можете использовать создатель комнат, встроенный в CopperCube, выбрав команду  'Edit -> Insert -> Create a room mesh from a 2D map' «Правка -> Вставить -> Создать полигональную сетку комнаты (меш) из 2D-карты», и нарисовать там план простой комнаты (клетками размером 3x3 условных метра, максимум 20x20 клеток, то есть 60x60xВысоту стен в метрах, и в зависимости от типа потолка: крыша аркой, плоский или без потолка).


Добавление анимированного персонажа
После того, как вы настроили свою сцену, вам понадобится анимированный персонаж, за спиной которого будет размещена камера от третьего лица. В этом уроке мы используем 'Clerk' «Клерка» из окна 'Prefabs' «Ресурсы»: просто дважды кликните значок 'animated clerk' «анимированный клерк» в окне ресурсов, и разместите анимированную 3D-модель в вашей сцене:


Анимированный персонаж для нашей сцены


Чтобы заставить этого персонажа двигаться, когда мы нажимаем кнопки на клавиатуре, нам нужно добавить к нему поведение. Выберите клерка, откройте окно 'Behaviors' «Поведения» и добавьте 'Object or Person controlled by keyboard' «Объект или персонаж, управляемый с клавиатуры»:


Добавление поведения 'Object or Person controlled by keyboard' «Объект или персонаж, управляемый с клавиатуры»


Если хотите чтобы клерк двигался чуть реалистичнее, то настройте свойство 'MoveSpeed'  «Скорость движения» ​​этого объекта на меньшее значение, например 0.02. Кроме того, если вы не хотите чтобы клерк мог проходить сквозь стены, то добавьте к нему поведение 'Collide when moved' «Столкновение при перемещении». Когда вы это сделаете, обязательно отрегулируйте желтый эллипсоид так чтобы он окружал клерка и  не застревал в стенах или в полу.

Примечание. Конечно, вы не обязаны использовать анимированного персонажа типа клерк, для модели, которой хотите управлять, и следите за ней с помощью камеры от третьего лица. Для этого вы также можете использовать другой, даже не анимированный 3D-объект.


Добавление камеры
После того, как вы настроили свою сцену, перейдём к самой важной части: нам нужна камера от третьего лица. Чтобы создать новую камеру, нажмите на вкладку  'Create' «Создать» и кликните значок с изображением камеры (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera'  «Правка -> Вставить -> Создать камеру»).
Должно появиться диалоговое окно создания камеры:


Диалоговое окно создания камеры


Выберите 'Third Person Camera' «Камера от третьего лица». Это создаст новую камеру и выделит ее. Также вам будет предложено выбрать объект за котором она должна следовать. Для этого выберите объект клерк. В 3D-сцене переместите камеру за спину клерка на расстояние и угол, на которых она будет следовать за этим персонажем:


Камера от третьего лица расположенная позади персонажа


Теперь вы также можете настроить некоторые значения, такие как 'FollowMode' «Режим следования», 'FollowSmoothingSpeed' « Сглаживание скорости следования» и если камера не должна проходить сквозь стены 'CollideWithWorld' «Сталкиваться с миром». Подробности об этих настройках смотрите на странице описания поведений в разделе  '3rd Person Camera Style controlled' «Стиль камеры от третьего лица».

В принципе, вот и всё. Теперь вы можете "ходить" вашим 3D-персонажем, за которым следует камера, когда протестируете полученное приложение (меню: 'Tools -> Test as WindowsApplication (.exe)' «Инструменты -> Тестировать как приложение Windows (.exe)» ).

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #38 : 02 Май 2019, 20:02:39 »
Урок: Создание 3D-конфигуратора

Из этого урока вы узнаете как использовать поведения и действия для создания простого 3D-конфигуратора в  CopperCube. Вы сможете нажимать на кнопки, чтобы  переключать вид на 3D-модель из 3D-камеры и изменять текстуры 3D-модели.


Начало: Создайте свою 3D-сцену
Для начала нам нужна 3D-модель, которую мы хотим показать в конфигураторе. Импортируйте 3D-модель, добавьте скайбокс и все, что захотите, пока вас не устроит полученная 3D-сцена. Вы также можете использовать команды: 'Edit -> Insert -> 'Create plane and Create box'  «Правка -> Вставить -> Создать плоскость и Создать куб» или ресурсы (Prefabs), чтобы создать очень простую сцену в целях тестирования этого урока. Сцена, которую я использую в этом примере, выглядит следующим образом: простая 3D-модель автомобиля на местности (terrain) и небо (skybox):


Сцена для этого примера


Добавление камеры
После того, как вы настроили свою сцену, перейдём к следующей важной части: во-первых, нам нужна камера, чтобы мы могли изменять ее положение, когда пользователь нажимает кнопку. Перейдите на вкладку  'Create' «Создать» и кликните значок с изображением камеры (в качестве альтернативы используйте меню: 'Edit -> Insert -> Create a Camera' «Правка -> Вставить -> Создать камеру»).
Должно появиться диалоговое окно создания камеры:


Диалоговое окно создания камеры


Выберите 'Simple Camera' «Простая камера». Это создаст новую камеру и выделит её. Разместите камеру где-нибудь рядом с вашей 3D-моделью и переместите цель камеры в центр 3D-модели. Теперь сцена должна выглядеть примерно так:


Недавно созданная камера с целью направленной на 3D-модель


Добавление 2D-наложений в виде кнопок
Теперь нам нужны кнопки на которые пользователь сможет нажать. На вкладке 'Create' «Создать» нажмите значок 'Create 2D overlay item' «Создать 2D-наложение», либо используйте меню: 'Edit -> Insert -> Create 2D overlay item' «Редактировать -> Вставить -> Создать 2D-наложение», и нарисуйте 3 кнопки. Измените текст первых двух кнопок на название той позиции камеры, в которую вы хотели бы её переместить относительно 3D-модели, например 'Front' «Спереди» и 'Rear' «Сзади» в данном примере. Третья кнопка используется для изменения текстуры 3D-модели. Введите у неё текст, например, 'Change' «Изменить», для изменения текстуры автомобиля. Все это можно сделать с помощью вкладки 'Attributes' «Атрибуты» в окне свойств 'Properties', когда выбран объект 2D-наложения.

Конечно, вы можете называть кнопки так, как вам нравится. В моем примере 2D-кнопки наложения выглядят так:


Добавлены три 2D-наложения, чтобы использовать их в качестве кнопок


Добавление объектов для 3D-позиций камеры
Сделаем так, чтобы камера перемещалась в заданное положение, когда пользователь нажимает на одну из первых двух кнопок. Мы могли бы вводить трехмерные координаты и вручную, но гораздо проще переместить трехмерный объект в эти позиции. Поэтому мы просто создадим 2 билборда (используйте вкладку 'Create' «Создать» и нажмите значок 'Create a Billboard' «Создать билборд», либо через меню 'Edit -> Insert -> Create a Billboard' «Редактировать -> Вставить -> Создать билборд») и разместим их тех в трехмерных позициях, в которые должна перемещаться камера, когда пользователь нажимает на одну из двух кнопок:


Билборды отмечающие 3D-позиции камеры


Как только вы убедитесь, что позиции билбордов в порядке, сделайте их невидимыми, используя вкладку  'Attributes' «Атрибуты» в окне 'Properties' «Свойства», так как мы не хотим, чтобы они появлялись в сцене (просто снимите флажок со свойства 'Visible' «Видимый»).
Следующий шаг состоит в том, чтобы заставить камеру перемещаться в позиции билбордов, когда пользователь нажимает на соответствующие кнопки. Выберите первое 2D-наложение и перейдите на вкладку 'Behaviors' «Поведения» в окне 'Properties' «Свойства». Нажмите кнопку «+», чтобы добавить новое поведение, и выберите 'When clicked do something' «По нажатию сделать что либо». Новое поведение будет добавлено и выглядеть так:


Добавление поведения при нажатии на 2D-наложение


Выберите строку 'Action' «Действие» и нажмите кнопку «...», чтобы создать новое действие, которое должно запускаться при нажатии на 2D-наложение. Откроется диалоговое окно 'Edit actions' «Редактирование действий», и вы сможете нажать кнопку «+» здесь, чтобы добавить новое действие. Выберите действие 'Change position of scene node' «Изменить позицию узла сцены». Новое действие будет добавлено и выглядеть так:


Созданное действие 'Change position of a scene node' «Изменить позицию узла сцены»


Теперь нам осталось только указать, что и как нужно перемещать. В значении 'Set position type' «Установить тип позиции» выберите 'Set relative to a scene node' «Установить относительно узла сцены», так как мы хотим установить позицию камеры в позицию одного из билбордов, которые мы создали ранее. В 'Change which SceneNode' «Изменить узел сцены» нам, конечно, нужно выбрать камеру. Нажмите на надпись <Select> «<Выбрать>» из выпадающего списка, и в появившемся диалоговом окне древовидного вида сцены выберите узел камеры. В поле 'Change which SceneNode' «Относительно какого узла сцены» выберите билборд, чтобы указать конечную позицию камеры. И, наконец, установите флажок 'Move animated' «Перемещать с анимацией», чтобы положение камеры не изменялось мгновенно, а плавно перемещалось в новую позицию. Действие теперь должно выглядеть примерно так:


Действие 'Change position of a scene node' «Изменить позицию узла сцены» для перемещения камеры


В основном, всё. Если вы сейчас опубликуете сцену (используйте меню 'Tools' -> 'Test as xxx application' «Инструменты» -> «Тестировать как приложение xxx») и нажмёте на кнопку, то камера должна переместиться в положение билборда. Отлично!

Чтобы это работало и со второй кнопкой, просто повторите шаги описанные выше, и задайте для нее поведение 'When clicked...' «По нажатию...» с действием 'Change position of a scene node' «Изменить позицию узла сцены», как и для первого 2D-наложения. Конечно, вы можете добавить больше  2D-наложений с похожим поведением, если хотите добавить новые позиций камеры для просмотра вашей 3D-модели.


Заставляем третью кнопку изменять текстуру 3D-модели
При нажатии на третью кнопку мы не хотим перемещать камеру, а хотим изменить текстуру 3D-модели. Надеюсь, вы заметили, что добавить поведение и действие к 2D-наложению, действительно легко. Выполните следующие шаги для третьей кнопки:
  • Выберите 2D-наложение и создайте для него поведение  'When clicked do something' «По нажатию сделать что либо».
  • Добавить новое действие 'Change a texture' «Изменить текстуру» к этому поведению.
  • В значении 'Change which scene node' «Изменить узел сцены» выберите 3D-модель.
  • В значении  'Texture' «Текстура» выберите текстуру, которую хотите наложить на 3D-модель.
Вот и все, теперь вы можете легко создавать 3D-конфигураторы.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: CopperCube
« Ответ #39 : 03 Май 2019, 10:34:45 »
Цитировать
« Ответ #34 : 01 Май 2019, 16:28:55 »
Урок: Создание просмотровщика 3D-модели
Цитировать
« : 02 Май 2019, 15:09:39 »
Урок: Использование камеры от третьего лица
Цитировать
« : 02 Май 2019, 19:02:39 »
Урок: Создание 3D-конфигуратора

"Остапа понесло. Он почувствовал прилив новых сил и шахматных идей.
Ослепительные перспективы развернулись перед васюкинскими любителями. Пределы комнаты расширились. Гнилые стены коннозаводского гнезда рухнули, и вместо них в голубое небо ушел стеклянный тридцатитрехэтажный дворец шахматной мысли. В каждом его зале, в каждой комнате и даже в проносящихся пулей лифтах сидели вдумчивые люди и играли в шахматы на инкрустированных малахитом досках…" (Двенадцать стульев)
 ;D

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: CopperCube
« Ответ #40 : 03 Май 2019, 10:48:27 »
Цитировать
Кроме того, если вы не хотите чтобы клерк мог проходить сквозь стены, то добавьте к нему поведение 'Collide when moved' «Столкновение при перемещении».
Кроме того, если вы не хотите, чтобы клерк мог проходить сквозь стены, то добавьте к нему поведение 'Collide when moved' «Столкновение при перемещении».

Цитировать
Когда вы это сделаете, обязательно отрегулируйте желтый эллипсоид так чтобы он окружал клерка и  не застревал в стенах или в полу.
Когда вы это сделаете, обязательно отрегулируйте желтый эллипсоид так, чтобы он окружал клерка и не застревал в стенах или в полу.

Цитировать
Конечно, вы не обязаны использовать анимированного персонажа типа клерк, для модели, которой хотите управлять, и следите за ней с помощью камеры от третьего лица.
Конечно, вы не обязаны использовать анимированного персонажа типа клерк для модели, которой хотите управлять и следить за ней с помощью камеры от третьего лица.

Цитировать
Также вам будет предложено выбрать объект за котором она должна следовать.
Также вам будет предложено выбрать объект, за которым она должна следовать.

Цитировать
Камера от третьего лица расположенная позади персонажа
Камера от третьего лица, расположенная позади персонажа

Цитировать
Теперь вы также можете настроить некоторые значения, такие как 'FollowMode' «Режим следования», 'FollowSmoothingSpeed' « Сглаживание скорости следования» и если камера не должна проходить сквозь стены 'CollideWithWorld' «Сталкиваться с миром».
Теперь вы также можете настроить некоторые значения, такие как 'FollowMode' «Режим следования», 'FollowSmoothingSpeed' « Сглаживание скорости следования» и, если камера не должна проходить сквозь стены, 'CollideWithWorld' «Сталкиваться с миром».

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #41 : 03 Май 2019, 19:45:04 »
Поправил.
Цитировать
Остапа понесло.
Бывает  ;D

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #42 : 03 Май 2019, 21:51:29 »
Создание сценария действия с помощью JavaScript

Самым простым дополнением CopperCube, является программирование сценария действия. По сути, это действие, которое ведет себя как встроенное, но было создано вами или другим пользователем с помощью  JavaScript. Для начала создайте новый файл в каталоге расширений (Documents\CopperCube\extensions в Windows или ~/Documents/CopperCube/extensions в Mac OS X) и назовите его «action_MovePosition.js». Откройте его в текстовом редакторе и наполните следующим текстом:

Код
/*  <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);
   


Если вы перезапустите CopperCube, то будет доступно новое действие с именем «Move Position». Обратите внимание, что если вы вносите изменения в этот файл, то вам больше не нужно перезапускать CopperCube, это необходимо только для новых действий, или таких действий, для которых изменился заголовок XML.

Теперь в сцене CopperCube по умолчанию, нажмите на 3D-куб «cubeMesh1», выберите вкладку 'Behavior' «Поведения», нажмите «+», чтобы добавить новое поведение, выберите "Behaviors triggered by events -> When clicked on this do something" «Поведения, вызванные событиями -> При нажатии сделать что либо», и в свойстве 'Action' «Действие» нажмите кнопку «...», чтобы добавить новое действие. В открывшемся диалоговом окне действий вы увидите наше новое действие, в разделе 'Scripted Actions' «Сценарии действий» (возможно, помимо других существующих действий):



Если вы теперь запустите приложение, например, как Windows .exe или Mac OS X .app, и нажмете на куб, то это действие будет выполнено, и куб, к которому прикреплено действие, будет перемещаться по вектору, указанному в «MoveBy». Ваше первое действие заработало!

Далее будет описано, как это работает и как это можно расширить.


Задание параметров
Возможно, вы заметили, что действие «MovePosition» (Переместить в позицию), которое мы создали выше, имело один параметр с именем «MoveBy» (Переместить по). Это трехмерный вектор, определяющий длину и направление перемещения узла:




И если вы еще раз внимательно посмотрите на исходный код JavaScript, то заметите у него в заголовке небольшую XML-часть, определяющую это свойство MoveBy:
Код
/*  <action jsname="action_MovePosition" description="Move Position">
      <property name="MoveBy" type="vect3d" default="0.0, 5.0, 0.0" />
    </action>
*/
В этом коде JavaScript вся часть XML находится внутри комментария JavaScript между (/ * и * /), так что не мешает JavaScript. Но CopperCube читает его, чтобы показать параметры в редакторе,  и для удобства их изменения пользователями. Как видите, параметр MoveBy имеет тип vect3d, то есть, это трехмерный вектор. Существует несколько поддерживаемых типов параметров, например, для выбора цветов, узлов сцены и другие:


Имя
Описание
Пример

int
Целочисленное значение   
<property name="SomeIntValue" type="int" default="500" />

float 
Вещественное значение с плавающей точкой  
<property name="SomeNumber" type="float" default="1.2" />

string   
Строка текста   
<property name="SomeText" type="string" default="Hello World" />

bool   
Булево значение истина/ложь 
<property name="TrueOrFalse" type="bool" default="true" />

color   
Цвет (шестнадцатеричное число)   
<property name="MyColor" type="color" default="ff0000ff" />

vect3d   
3D-вектор или 3D-позиция 
<property name="MyPos" type="vect3d" default="0.1, 34.0, 0.0" />

scenenode  
Ссылка на узел 3D-сцены 
<property name="ToHide" type="scenenode" />

texture   
Текстура   
<property name="Floor" type="texture" default="C:\test.png" />

action 
Одно или несколько действий. Могут быть запущены вызовом ccbInvokeAction   
<property name="DoWhat" type="action" />



Чтобы опробовать это, мы добавим некоторые свойства к действию Move Position: расширим Move Position цветом, строкой текста и ссылкой на узел сцены. Кроме того, мы добавим код для использования выбранной ссылки на узел сцены вместо текущего узла (использование параметра 'currentNode' (текущий узел) было заменено на 'this.MoveWhat' (что двигать) в коде JavaScript ниже). Отредактируйте и сохраните содержимое action_MovePosition.js, файл должен выглядеть так:

Код
/* <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);
}

Изменения в коде JavaScript будут автоматически обнаруживаться CopperCube, а изменения заголовка XML - нет, поэтому существующие действия не будут уничтожены. Чтобы изменения появились в CopperCube, либо перезапустите CopperCube, либо выберите "Edit -> Plugins -> Reload and Verify Extensions and Plugins" «Правка -> Плагины -> Перезагрузить и проверить расширения и плагины». После этого удалите и воссоздайте это действие в поведении «клика мышью» на кубе. В противном случае вы увидите только исходные параметры. Как только вы создадите новое действие 'Move Position' «Переместить в позицию», оно будет выглядеть отражая все параметры, которые мы добавили выше:




Поскольку мы изменили код JavaScript, чтобы использовать свойство 'MoveWhat' «Что двигать» для изменения положения узла сцены, теперь вам нужно выбрать узел сцены в свойстве  'MoveWhat', на который следует повлиять. В противном случае вы, вероятно, получите ошибку при выполнении действия.

Свойства в системе сценариев CopperCube работают следующим образом: во время выполнения CopperCube устанавливает свойства экземпляра класса действия в соответствии со свойствами, выбранными пользователем в редакторе. Если ранее вы создали параметр с именем 'TestColor', то  в классе Javascript будет свойство 'TestColor' со значением цвета выбранного пользователем. Вы можете получить к нему доступ с помощью кода 'this.TestColor'.


Код
Теперь более подробно рассмотрим другие свойства XML включенные в код перед действием расширения:
Код
<action jsname="action_MovePosition" description="Move Position">
...

Верхняя строка с тегом 'action' указывает имя действия и добавляет описание, которое будет показано в редакторе. Обратите внимание, что имя действия "action_MovePosition" в этом случае должно совпадать с именем файла и с классом JavaScript, который вы создаете в этом файле. Иначе действие не сработает.

Теперь взгляните на первые две строки кода JavaScript:

Код
action_MovePosition = function()
{
};

Это, в основном, только определяет наш класс JavaScript, названный 'action_MovePosition'. Если хотите, то в функции вы можете добавить код для инициализации членов вашего класса, но поскольку это действие, и оно в основном создается и выполняется только один раз, а затем снова удаляется, то в большинстве случаев этого не требуется.
Следующая часть самая важная. Код, который выполняется, когда CopperCube вызывает действие:

Код
// вызывается при выполнении действия 
action_MovePosition.prototype.execute = function(currentNode)
{
  var oldPos = ccbGetSceneNodeProperty(this.MoveWhat, "Position");   
  var newPos = oldPos.add(this.MoveBy);   
  ccbSetSceneNodeProperty(this.MoveWhat, "Position", newPos);
}


Этот код создает функцию в классе 'action_MovePosition' с именем 'execute'. Execute() вызывается CopperCube при выполнении действия. Единственный параметр - это ссылка на узел сцены, который является 'current' «текущим». Например, если это действие вызывается поведением "When clicked do something" «При нажатии сделать что либо», тогда это узел сцены на который кликнул пользователь. В нашем примере этот параметр не используется, мы используем свойство 'this.MoveWhat' действия, задаваемого пользователем.

Код работает следующим образом: функция ccbGetSceneNodeProperty() возвращает трехмерное положение узла сцены как тип vector3d. Затем мы добавляем вектор, указанный пользователем и сохраняемый в свойстве действия this.MoveBy.

Наконец, новая позиция узла сцены устанавливается с помощью  ccbSetSceneNodeProperty(). И на этом всё.

Теперь вы сможете писать свои собственные действия в CopperCube. Если вместо этого вы хотите создать поведение, то прочтите следующий урок:  Создание сценария поведения с помощью JavaScript.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: CopperCube
« Ответ #43 : 03 Май 2019, 23:19:59 »
Цитировать
Из этого урока вы узнаете как использовать поведения и действия для создания простого 3D-конфигуратора в  CopperCube.
Из этого урока вы узнаете, как использовать поведения и действия для создания простого 3D-конфигуратора в CopperCube.

Цитировать
Недавно созданная камера с целью направленной на 3D-модель
Недавно созданная камера с целью, направленной на 3D-модель

Цитировать
Теперь нам нужны кнопки на которые пользователь сможет нажать.
Теперь нам нужны кнопки, на которые пользователь сможет нажать.

Цитировать
Поэтому мы просто создадим 2 билборда (используйте вкладку 'Create' «Создать» и нажмите значок 'Create a Billboard' «Создать билборд», либо через меню 'Edit -> Insert -> Create a Billboard' «Редактировать -> Вставить -> Создать билборд») и разместим их тех в трехмерных позициях, в которые должна перемещаться камера, когда пользователь нажимает на одну из двух кнопок:
Поэтому мы просто создадим 2 билборда (используйте вкладку 'Create' «Создать» и нажмите значок 'Create a Billboard' «Создать билборд», либо через меню 'Edit -> Insert -> Create a Billboard' «Редактировать -> Вставить -> Создать билборд») и разместим их в тех трехмерных позициях, в которые должна перемещаться камера, когда пользователь нажимает на одну из двух кнопок:

Цитировать
Билборды отмечающие 3D-позиции камеры
Билборды, отмечающие 3D-позиции камеры

Цитировать
Новое поведение будет добавлено и выглядеть так:
Добавится новое поведение, и оно будет выглядеть так:

Цитировать
Новое действие будет добавлено и выглядеть так:
Добавится новое действие, и оно будет выглядеть так:

Цитировать
Надеюсь, вы заметили, что добавить поведение и действие к 2D-наложению, действительно легко.
Надеюсь, вы заметили, что добавить поведение и действие к 2D-наложению действительно легко.

Оффлайн Samovar

  • Житель
Re: CopperCube
« Ответ #44 : 04 Май 2019, 00:40:08 »
Поправил. Благодарю, Striver!

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 64
Автор: LEXA ANЭGROWND
blender.png
Скачано: 74
Автор: ipv2007
4.png
Скачано: 96
Автор: hiroyukiss
2.png
Скачано: 119
Автор: hiroyukiss

Скачано: 109
Автор: Dilifa12