Обновление EdenSpark 0.0.5.7

Обновление

Инерциальное смешивание в аниматоре

Компонент Animator теперь поддерживает инерциальное смешивание — технику, которая обеспечивает плавные, естественные переходы между состояниями анимации без использования явных клипов переходов. Вместо линейного перекрестного затухания, инерциальное смешивание сохраняет импульс текущей позы и органично замедляет её до целевой анимации, устраняя жёсткий «щелчок», характерный для линейных перекрестных переходов.

Эффект свечения (Bloom) в стандартном рендерере

В стандартном рендерере появился эффект свечения. С помощью нового компонента Bloom вы можете заставить ваши объекты светиться. Компонент также можно использовать для настройки свечения в рендерере высокого разрешения.

Без свечения
Со свечением

Размытие в стандартном рендерере

Теперь вы можете размывать кадр в стандартном рендерере, используя новый компонент Blur. Вместе с рендерингом в целевой рендер-текстуре (render target) его можно использовать для размытия фонов в ваших играх. В настоящее время компонент работает только в стандартном рендерере, поскольку рендерер высокого разрешения не поддерживает многокамерный рендеринг, без которого этот компонент почти бесполезен.

Улучшения при работе с коллайдерами

Редактирование коллайдеров в редакторе сцен теперь стало более надёжным: исправлены несколько проблем, которые могли приводить к появлению нежелательных форм, неверным отладочным границам и потере правок. Редактируемый в данный момент коллайдер также подсвечивается в окне просмотра, чтобы было легче видеть, над чем вы работаете.

Кубическая сфера теперь используется по умолчанию

Кубические сферы теперь используются по умолчанию при добавлении сферического примитива на сцену. По сравнению с классической UV-сферой, кубическая сфера распределяет вершины и UV-пространство более равномерно по поверхности — де-факто отраслевой стандарт, который лучше работает с текстурами, картами нормалей и подразделением поверхности. UV-сферы по-прежнему доступны как альтернатива кубическим.

Кубическая сфера (новый стандарт)
UV-сфера (всё еще доступна)

Реалистичная вода в рендерере высокого разрешения

Теперь при использовании рендерера высокого разрешения вы можете добавлять реалистичную воду на вашу сцену с помощью нового компонента HDWater. Она представлена бесконечной плоскостью с симулированной водной поверхностью сверху и рендерингом подводного мира снизу. В настоящее время функция находится в разработке; карта высот, карта потоков и эффекты будут добавлены позже.

Лаунчер

Сетка на вкладке Home
Сетка на вкладке Home

Вкладка Home теперь отображает игры в виде сетки вместо горизонтальной прокрутки, что упрощает навигацию как с помощью мыши, так и с помощью геймпада. В разделе Recent Games отображаются 12 последних игр, а остальные доступны в разделе Other Downloaded Games. Аналогичная сетка применяется теперь и для пользовательских проектов.

Инструменты MCP для автоматизации редактора

Новая партия инструментов MCP позволяет агенту ИИ (или любому MCP-клиенту) проверять сцену и управлять редактором сквозным образом — без действий в интерфейсе.

Пиксельные шейдеры на Daslang

Теперь вы можете писать собственные пиксельные шейдеры непосредственно на Daslang. Создайте файл с расширением .shader, выберите его в окне импортера материала, а затем прикрепите этот материал к мешу.

var {     @color rimColor = float3(0.0, 0.5, 1.0)     speed = 4.0 } [pixel_shader] def fresnel_pulse(inp : PbrInput) {     let rim = fresnel(3.0, inp.worldNormal, inp.viewDir) * rimColor     let pulse = remap(sin(g_Time * speed), float2(-1, 1), float2(0, 1))     return PbrOutput(         emission = rim,         emissionStrength = length(rim) * pulse * 5.0,         metalness = 0.0,         roughness = 0.0     ) }

Свойства, объявленные в блоке var {}, появляются в редакторе в виде ползунков на материал и палитр цветов. Аннотация @color переключает поле на палитру цветов.

Шейдеры имеют доступ к геометрическим данным (worldPos, worldNormal, viewDir, uv, localPos), глобальным входным данным сцены (g_Time, g_LightDirection),и набору встроенных операций:

  • Surfacefresnel(power, normal, viewDir)
  • Noisenoise(float2), noise(float3) — returns values in 0..1
  • Utilityremap, smooth_step, step, one_minus, saturate
  • Texturestex2d(sampler, uv), объявляйте как myTex = Sampler2D("path/to.png")
  • Math — все стандартные функции (sin, cos, lerp, pow, abs, frac, floor, ...) перегружены для типов от float до float4

В комплект входит библиотека готовых примеров шейдеров: голограмма, растворение, иризация, стилизация под мультфильмы (toon/cel-shading), лава, вода, силовое поле, трипланарный шейдер, френель, контур, горение, заморозка, электричество и многие другие. Также доступен отдельный набор 2D-шейдеров (для пространства экрана)

Обновления префабов

Теперь «Add empty parent» и «Make prefab root» разрешены для всех нод. Никакие унаследованные префабы или вложенные экземпляры префабов не сломаются — дерзайте, движок всё обработает!

Формат сериализации префабов был немного изменен, чтобы сделать его проще и короче. Чтобы автоматически мигрировать все префабы в проекте, используйте Edit -> Migrate prefabs, или просто пересохраните руками.

Strudel: музыкальный движок на основе паттернов (экспериментальная функция)

Реализация Strudel на Daslang теперь доступна в EdenSpark для процедурного создания музыки в реальном времени. Описывайте ритмы, мелодии и звуковые паттерны с помощью компактной мини-нотации DSL.

Эта реализация расширяет оригинальный strudel.cc такими возможностями, как использование SF2 SoundFonts и бинауральное HRTF позиционирование.

Функциональность Strudel является экспериментальной и всё еще находится в разработке, могут возникать ошибки.

require strudel let handle = strudel_play(     note_pattern("<c3 e3 g3 b3>", "sawtooth") .slow(2.0lf) .set_gain(0.6) .set_room(0.7) )

Полупрозрачные поверхности

Теперь вы можете создавать листья, шторы или любые другие тонкие поверхности, пропускающие свет. Степень пропускания света задается новым свойством translucency в шейдерах standard_diffuse, standard_specular и standard_metallic. Функция работает в обоих рендерерах, но рендерер высокого разрешения дополнительно имитирует подповерхностное рассеивание.

Мы также переименовали TransparencyMode.Translucent в TransparencyMode.AlphaBlend, чтобы избежать путаницы. Старое значение сохранено как псевдоним для совместимости, но в новом коде предпочтительнее использовать TransparencyMode.AlphaBlend. Файлы материалов не затрагиваются.

Без полупрозрачности
С полупрозрачностью

Конвертер из игрового движка Unity в EdenSpark

Мы выпустили наш внутренний инструмент для конвертации проектов Unity в EdenSpark. Вы можете установить его как пакет Unity из этого репозитория. На данный момент его возможности весьма ограничены, но мы продолжим его улучшать! Следите за будущими дневниками разработки! Обратите внимание, что конвертер технически не является частью EdenSpark — это внешний инструмент, который мы будем обновлять независимо от цикла выпуска EdenSpark.

Вкладка «Добро пожаловать» в редакторе

Новая вкладка «Добро пожаловать» отображается в редакторе, когда приложение остановлено. Она служит центром быстрого запуска с ярлыками для создания новой сцены, открытия main.das, а также быстрого перехода к документации, веб-сайту EdenSpark, каналам Discord и Telegram.

📐 Изменения API

Daslang: именованные кортежи должны быть явными

Критическое изменение. Именованные кортежи (named tuples) в Daslang теперь требуют явных имен полей при создании, а смешивание именованных и безымянных полей внутри одного кортежа больше не допускается.

Раньше:

return (x, float3())

Теперь:

return (pos = x, dir = float3())

DirectionLight → DirectionalLight

DirectionLight переименован в DirectionalLight для согласованности с остальными названиями компонентов. Старые имена сохранены как псевдонимы, поэтому существующие проекты продолжат работать без изменений — но пожалуйста используйте написание DirectionalLight в новом коде.

Упрощенный API физики

API физики был обновлен — часть rigid_body в именах функций была избыточной, поскольку первым аргументом уже является RigidBody, поэтому она была удалена.

apply_rigid_body_impulse, apply_rigid_body_angular_impulse, apply_rigid_body_force, apply_rigid_body_torque, get_rigid_body_velocity_at объявлены устаревшими. Используйте вместо них более короткие apply_impulse, apply_angular_impulse, apply_force, apply_torque, get_velocity_at.

Пиксельные шейдеры на Daslang

Некоторые ноды графов шейдеров изменили свой список входных данных. Существующие графы шейдеров, использующие эти ноды, должны быть обновлены вручную.

TransparencyMode.Translucent → TransparencyMode.AlphaBlend

TransparencyMode.Translucent переименован в TransparencyMode.AlphaBlend, чтобы избежать путаницы с новым свойством полупрозрачности (translucency) в материалах. Старое значение сохранено как псевдоним для совместимости, но в новом коде предпочтительнее использовать TransparencyMode.AlphaBlend. Файлы материалов не затрагиваются

Добавлено

  • Поддержка инерциального смешивания в компоненте Animator
  • Новый режим AudioLoadType.Auto, позволяющий движку самому решать, как воспроизводить каждый звук: короткие звуки один раз декодируются в память, в то время как более длинные передаются с диска. Больше не нужно угадывать правильный LoadType для каждого ассета — просто выберите Auto, и движок всё сделает сам.
  • Разрешены действия «Добавить пустого родителя» и «Сделать корнем префаба» для всех нод, не являющихся префабами.
  • Опция Save Mesh в контекстном меню правой кнопки мыши для ресурсов меша в окне Inspector.
  • Конвертер проектов из Unity в EdenSpark (в разработке).
  • Вкладка «Добро пожаловать», отображаемая при остановке игры, с быстрыми действиями «Новая сцена» и «Открыть main.das»
  • Ссылки на документацию, веб-сайт, Discord и Telegram на вкладке «Добро пожаловать»

  • Компонент Bloom для настройки эффекта свечения в обоих рендерерах.
  • Компонент Blur для включения размытия в стандартном рендерере, который можно использовать для размытия фонов ваших игр при совместном использовании с рендерингом в целевой рендер-текстуре.
  • Компонент HDWater для добавления реалистичной воды на вашу сцену при использовании рендерера высокого разрешения.
  • Компонент HDExposureAdaptation для настройки адаптации экспозиции в HD Renderer
  • Пиксельные шейдеры, написанные на Daslang — файлы .shader с горячей перезагрузкой и свойствами на материал.
  • Свойство translucency для шейдеров standard_diffuse, standard_specular и standard_metallic, которое обеспечивает передачу света через поверхность.

  • Сетка на вкладке Home, заменившая горизонтальную прокрутку
  • Раздел "Other Downloaded Games" для игр, кроме 12 последних
  • Всплывающее окно «О программе» с информацией о версии, документацией и ссылками на сообщество
  • Уведомления о завершении загрузки игры, по клику перенаправляющие на страницу игры.

  • Gemini CLI теперь поддерживается в новых проектах с той же настройкой EdenSpark + Context7 MCP, что и Claude Code.
  • GitHub Copilot в VS Code теперь подключен к серверам EdenSpark и Context7 MCP — ручная настройка не требуется.
  • Инструмент MCP для вывода списка всех компонентов на данной ноде сцены со всеми их значениями полей
  • Инструмент MCP для поиска всех нод в сцене, имеющих данный тип компонента (например, «find all cameras», «find all lights»).
  • Инструмент MCP для вывода списка всех типов компонентов, существующих в текущем проекте.
  • Инструмент MCP для чтения камеры окна просмотра редактора — позиция, направление взгляда, FOV, ближняя/дальняя плоскости, перспектива vs ортогональность.
  • Инструмент MCP для перезапуска игры.
  • Инструмент MCP для переключения между вкладками редактора (Scene, Game, Prefab)
  • Инструмент MCP для переключения полноэкранного игрового вида (скрытие интерфейса редактора)

  • Модуль strudel — основной движок паттернов: s(), note_pattern(), stack(), cat(), fast(), slow(), rev(), jux(), off(), every(), degrade(), euclid(), и многое другое.
  • Парсер мини-нотации — "bd [sd sd] hh cp", <alternation>, *, /, @, ?, : модификаторы.
  • Встроенные синтезаторы — генераторы sine, sawtooth, square, triangle ; bd, sd, hh, cp, tom, ride ударные голоса
  • Поканальные эффекты — set_gain, set_pan, set_room / set_roomsize, set_delay / set_delaytime / set_delayfeedback, set_lpf/set_hpf, огибающая ADSR, set_fm/set_fmh, маршрутизация FX по орбитам
  • Реверберация сверткой — секционированный overlap-save с синтезированной импульсной характеристикой; независимые цепочки эффектов на орбиту
  • Бинауральное позиционирование HRTF — set_hrtf(az, el), set_hrtf_azimuth, set_hrtf_elevation для размещения звука в 3D-пространстве с использованием измерений CIPIC.
  • Система звукорядов (strudel / strudel_scales) — set_scale("C4:pentatonic") сопоставляет индексы паттернов со ступенями гаммы; поддерживаются мажор, минор, лады, пентатоника, блюз, хроматика и другие
  • Непрерывные сигналы — signal_sine(), signal_saw(), signal_perlin() и т.д., используемые как значения параметров паттернов для плавной модуляции
  • Синтез SF2 SoundFont — strudel_load_sf2 + полное отображение программ GM для 128 инструментов.
  • Управление темпом — strudel_cps(), strudel_bpm().
  • API воспроизведения — strudel_play() возвращает StrudelHandle; strudel_stop(), strudel_pause(), strudel_volume()

🔧 Улучшено

  • Устаревшие кэш-файлы для больше не существующих ассетов теперь автоматически удаляются из .project/cache/res/, что поддерживает порядок в папке кэша.
  • Редактирование коллайдеров в редакторе сцен теперь стало более надёжным: исправлены несколько проблем, которые могли приводить к появлению нежелательных форм, неверным отладочным границам и потере правок. Редактируемый в данный момент коллайдер также подсвечивается в окне просмотра, чтобы было легче видеть, над чем вы работаете.
  • Сфера-примитив теперь по умолчанию является кубической сферой вместо UV-сферы для лучшего распределения вершин и UV
  • UV-сфера по-прежнему доступна как альтернативный тип сферы
  • Команда внешнего редактора в настройках редактора теперь поддерживает макросы: {file}, {line}, {project}. Заключайте путь к исполняемому файлу в кавычки, если он содержит пробелы. Пример: "C:\Program Files\Sublime Text\subl.exe" {file}:{line}. Если в команде нет макросов, путь к файлу добавляется автоматически.
  • Добавлены тесты, проверяющие новое поведение действия кнопки
  • Клавиши навигации на цифровой клавиатуре теперь поддерживаются в редакторе.
  • Сохранение префаба больше не является действием редактора и не может быть отменено/повторено.
  • Формат сериализации префабов стал более лаконичным.
  • Добавлена отсутствующая документация для компонента SpriteRenderer
  • Переработана обработка состояний (активный, при наведении, в фокусе) для вкладок Prefab, Scene и Game, а также для новой вкладки «Добро пожаловать».
  • Вставка из истории буфера обмена Win+V в текстовые поля редактора теперь работает

  • Фильтры вкладки Browse теперь сохраняются при переключении вкладок.
  • Лайки и комментарии теперь визуально отделены от количества воспроизведений/загрузок и выглядят кликабельными.
  • Архивы экспортированных игр теперь используют имя игры (без специальных символов) в качестве имени файла.
  • Изображения предварительного просмотра высокого качества теперь загружаются на вкладке Browse.
  • Позиция прокрутки списка игр сохраняется при возврате со страницы игры.
  • Отображаются сообщения об ошибках при постановке лайков или комментировании с истекшей сессией.

  • Инструменты проверки сцены MCP теперь также работают с открытыми префабами
  • Инструмент статуса MCP теперь также сообщает об открытом префабе, активной вкладке и полноэкранном режиме

  • Отладочный рендеринг в рендерере высокого разрешения теперь не подвержен влиянию TAA и остается четким без размытия.
  • Настройки рендеринга теперь создаются в соответствии с рендерером, выбранным для проекта
  • Компонент SSAOSettings теперь полностью работает в рендерере высокого разрешения.
  • Компилятор байт-кода шейдеров теперь генерирует меньше инструкций.

🐛 Исправлено

  • Исправлен сбой/зависание, возникавший, когда у модели было переназначение материала, ссылающееся само на себя, создавая циклическую зависимость ассетов.
  • Исправлена ошибка, из-за которой экспорт проекта в виде .zip архива завершался неудачей.
  • Действия кнопок больше не вызывают устаревшее состояние «нажато», когда набор действий активируется при уже зажатой кнопке (новое поле isValidPress в ActionState)
  • События нажатия и отпускания в одном кадре теперь обрабатываются корректно
  • Исправлен размер контейнера скриншотов для нестандартных разрешений.
  • Вкладка Console теперь окрашивается в оранжевый цвет, когда в выводе есть предупреждения.

⚠️ Известные проблемы

  • Само всплывающее окно Win+V все еще открывается в углу экрана вместо того, чтобы находиться рядом с текстовым полем.