-
Notifications
You must be signed in to change notification settings - Fork 0
World Format RU
🌐 English · Русский
-
Мир — это один файл
worlds/<name>.json, владеющий всей сценой: переключатели графики, платформа и полный трансформ каждого объекта (позиция / поворот / масштаб / цвет / привязка, а для источников света — вид / направление / конус / лучи / форма и т.д.). -
models/— это чистая библиотека мешей, только файлы<name>.obj. Мир ссылается на меш по имени и задаёт его размещение (отдельного JSON на модель нет). -
Встроенный редактор сцены (включается
Tabили`) позволяет создавать, перемещать, поворачивать, масштабировать, перекрашивать и удалять объекты вживую, а затем сохранять обратно в JSON клавишей F5. См. Управление. - Встроенные типы для спавна:
cube,sphere,cylinder,cone,pyramid,ramp(клин с наклонной гранью — удобно для скатывания),flatpicture(двусторонняя вертикальная панель с текстурой — постер/билборд, без коллизии),light,camera(размещаемая точка обзора — см. Камеры и HUD), плюс каждый меш изmodels/. - Формы платформы: квадрат, прямоугольник или круг, с настраиваемым размером / цветом.
-
Живые тумблеры графики: переключайте тени (
F2), BVH-ускорение (F3), свет камеры (F4) и пол-платформу (F6) прямо в сцене — без пересоздания мира. На сервере эти изменения синхронизируются всем клиентам.
Положите меш в SampleGame/models/ как <name>.obj (экспортируйте с нормалями вершин для сглаженного затенения; Blender делает это по умолчанию). Модели — чистая библиотека геометрии; размещение (позиция, поворот, масштаб, цвет, привязка, вращение) хранится в мире.
Чтобы разместить модель, либо заспавните её вживую в редакторе (G, чтобы найти в списке спавна, B — заспавнить, расставьте, F5 — сохранить), либо добавьте запись объекта в worlds/<name>.json вручную.
Отредактируйте модель или JSON мира и просто перезапустите — пересборка не требуется.
{
"id": 0,
"type": "mesh",
"mesh": "monkey",
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": 1.0,
"color": "Yellow",
"anchor": "bottom",
"rotateSpeed": 1.0,
"collides": true,
"gravity": false
}| Поле | Значение |
|---|---|
type |
mesh, cube, sphere, cylinder, cone, pyramid, ramp, flatpicture, light или camera. |
mesh |
Имя файла в models/ (без .obj), для type: "mesh". |
position |
Позиция в мире в единицах (Y — вертикальная ось). |
rotation |
Начальный поворот в радианах. |
scale |
Равномерный масштаб. |
color |
hex-строка #RRGGBB (или #RRGGBBAA, где альфа = прозрачность объекта), тройка R,G,B / R,G,B,A, либо имя .NET ConsoleColor (напр. Red). Сохраняется обратно в hex. |
colorFade |
Прозрачность цвета / блёклость, 0–1 (деф 0): выцветает цвет объекта к белому, независимо от альфы. |
anchor |
Как меш располагается: bottom (основание на полу, по умолчанию), center или origin (исходное начало OBJ). |
rotateSpeed |
Автовращение вокруг вертикальной оси, рад/с (0 = статично). |
Полная система — на странице Текстуры.
| Поле | Значение |
|---|---|
texture |
Имя PNG-файла из textures/ (напр. "brick.png", "" = нет/плоский цвет). Работает на всех примитивах и импортированных mesh-объектах. В онлайне байты PNG передаются пирам. |
textureScale |
Коэффициент тайлинга UV (деф 1): 2 тайлит 2×2, 0.5 показывает половину. |
textureFace |
Какая грань носит текстуру (деф -1 = все). Для куба 0–5 выбирают одну сторону (+X, -X, +Y, -Y, +Z, -Z), остальные тогда плоского цвета. У других форм одна грань. |
textureFilter |
Сэмплирование: 0 = nearest (деф), 1 = bilinear, 2 = mipmapped. |
См. страницу Физика.
| Поле | Значение |
|---|---|
collides |
Является ли объект твёрдым (действует только при physics.collisionEnabled = true). Деф true. |
gravity |
Притягивается ли объект гравитацией мира (действует только при physics.gravityEnabled = true). Деф false. |
collider |
Форма коллайдера меша: "aabb" (бокс по мировым осям, деф) или "obb" (ориентированный бокс, поворачивается вместе с ним). |
mass |
Масса в импульсном солвере (деф 1); тяжёлый объект меньше сдвигается при столкновении. |
restitution |
Упругость 0–1; -1 (деф) наследует physics.restitution мира. |
friction |
Коэффициент трения Кулона (деф 0.5). |
rollingFriction |
Сопротивление трения качения (деф 0.05). |
Объект light дополнительно использует: power, lightKind (point / directional / spot / area), direction, coneAngle, beamCount, coneShape (circle / square / triangle), lightSize и lightSpin. См. Рендеринг и освещение.
Объект camera использует cameraKind (fixed / follow) и, для Follow-камеры, followTargetId (id объекта для слежения, или -1 = тело игрока). См. Камеры и HUD.
"physics": { "gravityEnabled": false, "gravityStrength": 9.8, "collisionEnabled": true, "restitution": 0.0 }restitution — упругость мира по умолчанию (0–1); отдельные объекты могут её переопределить. В файле мира также есть верхнеуровневые блоки graphics (Shadows / BVH / ExtraLight / DisableCameraLight / Renderer) и platform.