Xtreme3D 3.8 by FireRun (27.07.19)
(Xtreme3D)
Один из самых крупных релизов в ветке 3.x - было добавлено множество новых функций,новые примитивы, а так-же интегрированный новый физический движок для симуляции ткани,волос и мягких тел.
- Функция ViewerRenderToFilePNG сохраняет скриншот в формате PNG вместе с альфа каналом (прозрачности)
- Функция ViewerPixelRayToWorld
- Добавлена функция ViewerShadeModel, которая задает тип отображения нормалей у мешей,в заданном виде, то есть плоские нормали, или сглаженные
- Добавлен новый тип примитива Pipe, благодаря которому можно создавать различные трубчатые предметы, трубы,щупальца (К сожалению он не любит материалы...)
- Функция ActorGetAnimationName, возвращает имя анимации у Актера
- Функция ActorGetAnimationCount, возвращает количество анимаций у Актера
- Функция ActorAnimationDestroy, Удаляет определенную анимацию у Актера
- Функция ActorAnimationNextFrame, переключает кадр анимации на шаг вперед
- Функция ActorAnimationPrevFrame, переключает кадр анимации на шаг назад
- Функция ActorTriangleCount, возвращает количество треугольников в Актере
- Функция ActorSetFrame, Задает текущий кадр актера
- Функция MovementPathShow, позволяет отображать путь
- Функция MovementPathSetLoop, позволяет зациклить путь
- Функция MovementPathDeleteNode, Удаляет узел из пути
- Функции HUDSpriteXTiles,HUDSpriteYTiles, задают количество повторений текстур на HUDSprit'е
- Новый тип примитива TilePlane, для более детального тайлового текстурирования плоскости
- Добавлена функция FireFXRingExplosion
- Добавлена функция FreeformMeshObjectGetName которая возвращает имя меша в объекте свободной формы
- Добавлена функция FreeformMeshObjectSetName которая задает имя меша в объекте свободной формы
- Добавлена функция FreeformMeshObjectDestroy которая удаляет меш в объекте свободной формы
- Теперь менеджер DCE можно отсоединять от объектов функцией ObjectDestroy, и манипулировать стандартными функциями. Пример: dyn=DceDynamicSetManager(obj,mng); ObjectDestroy(dyn);.
- Функция ObjectFindByName возращает id объекта по имени
- Добавлен новый физический движок VerletWorld для симуляции ткани,веревок,волос, желе, и других мягких объектов, с учетом силы ветра, и гравитации
(Исправления в справке)
- Изменены названия функций с MouseGetX на MouseGetPositionX итд
- Исправлены параметры функции ViewerCreate в уроке 2 c ViewerCreate(window_handle, 0, 0, 640, 480) на правильные ViewerCreate(0, 0, 640, 480, window_handle());
(SDK)
- Добавлен пример по FPS
- Добавлен пример по Octree
- Добавлен пример по VerletWorld
- Изменен пример thirdperson
К сожалению у меня не вышло добавить PerlinHDS, не знаю с чем это связанно, но GM8 просто не прогружался с ним. Так же был бы рад если бы кто-то придумал функцию, с помощью которой можно было бы закрашивать TilePlane в реальном времени мышкой, у меня не получилось ее реализовать. Что насчет редактора карт, базовый функционал готов, но я столкнулся с багами, например когда клонируешь объект и затем выбираешь его в списке выходит ошибка, или моментами при сохранении карты из редактора просто выкидывает, буду признателен если его кто то протестирует, будут ли у вас подобные проблемы с ним.
Xtreme3D 3.8 SDK
Xtreme3D 3.8 Source
XMaper
Управление в XMaper:
Управление в редакторе я старался сделать в стиле Blender
Перемещение: выбираем объект, нажимаем G и двигаем по карте, нажимаем X или Z и двигаем по одной оси, с зажатым Space перемещаем по Y крутя колесо мыши.
масштаб: выбираем объект, нажимаем T , нажимаем X,Y или Z и масштабируем по одной оси, с зажатым Space масштабируется по всем осям.
Вращение: выбираем объект, нажимаем R , нажимаем X,Y или Z и вращаем по одной оси, с зажатым Space вращается по двум осям.
С зажатым Shift'ом включаеться режим сетки, работает он в режиме G и R
Чтобы загрузить карту в проект Xtreme3D, надо загрузить gex расширение и использовать код OpenMap('map file'),затем, чтобы найти id объекта из карты, надо использовать код ObjectFindByName, так как объекты в карте сохраняются с тем же именем, что и в редакторе карт.