Novedades de Evergine Studio
En esta versión hemos hecho importantes mejoras en la experiencia de usuario de Evergine Studio. En este artículo repasamos los principales cambios, que esperamos que os gusten y que hagan un poco más fácil el día a día con vuestros proyectos en Evergine Studio.

Simulación de behaviors y física desde Evergine Studio
Evergine Studio incorpora un modo Play que permite simular behaviors y física dentro del propio editor. Era una de las funcionalidades más demandadas. Hasta ahora, para ver cómo se comportaba una escena había que compilar y lanzar la aplicación, y volver al editor para retocar lo que no estuviera bien. Ahora puedes montar escenas de física complejas o comprobar la implementación y el comportamiento de tus behaviors directamente desde Evergine Studio, con un solo clic.
En la barra superior del viewport de la escena hay tres nuevos botones:
- Play (Ctrl+P) ejecuta la escena igual que lo haría tu aplicación: los behaviors se actualizan, la física simula, las partículas se emiten y la escena se ve a través de sus propias cámaras. Mientras la escena se ejecuta, el botón pasa a ser Pause (Ctrl+Shift+P), que congela la simulación sin dejar de renderizar, así que puedes seguir moviendo la cámara.
- Step (Ctrl+Alt+P) avanza la simulación pausada un único frame y vuelve a pausarla. Es muy útil para entender colisiones, constraints o animaciones que ocurren demasiado rápido para seguirlas a velocidad normal.
- Stop termina la simulación y vuelve a la edición.

El modo Play ejecuta una copia de la escena construida a partir de su asset, así que la escena que estás editando no se modifica: al pulsar Stop la recuperas exactamente como estaba antes de pulsar Play. Ten en cuenta que se ejecuta el asset de escena, no tu aplicación completa: el código que añadas en tu clase Scene (por ejemplo, en MyScene.cs) o en tu clase Application no se ejecuta. Si la escena no tiene ninguna cámara activa, el viewport muestra un aviso en lugar de una pantalla negra.
Para hacer sitio a los nuevos botones también hemos reorganizado la barra de la escena. Antes se mostraban a la vez las tres opciones de snap (traslación, rotación y escala). Ahora solo se ve la que corresponde a la herramienta de transformación seleccionada.
Release anterior:

Nueva release:

Nuevos manipuladores
También hemos rehecho todos los manipuladores con los que se mueven, rotan y escalan las entidades en el viewport de la escena. Ahora usan la implementación de la librería ImGuizmo, la misma que usan muchos motores y herramientas. Los nuevos manipuladores responden mejor y son más fáciles de agarrar, y aportan mejoras como mostrar la distancia recorrida durante una traslación:

O los grados girados durante una rotación:

Además, siguen funcionando el snap, el pivote y la multiselección, para transformar varias entidades a la vez.
Junto a los manipuladores llega el View Cube, también de ImGuizmo. Muestra la orientación de la cámara en una esquina del viewport y, con un clic sobre una de sus caras, cambia a la vista frontal, superior, lateral o cualquier otra. Así configurar la vista para editar la escena es mucho más rápido.

Selección pixel perfect
Otra de las grandes mejoras del viewport de Evergine Studio es el sistema de selección. Hasta ahora, el editor seleccionaba las entidades con volúmenes simplificados (cajas y esferas ajustadas a cada modelo), así que al pulsar en el hueco que dejaba un objeto se podía seleccionar ese objeto, y era difícil seleccionar uno pequeño que estuviera detrás de otro grande. Ahora la selección es pixel perfect: se selecciona exactamente lo que ves bajo el cursor, lo que da mucha más precisión al trabajar con escenas complejas. Además, la entidad seleccionada se dibuja con un outline naranja alrededor de su silueta, para que veas de un vistazo cuál es.
![]()
Si seleccionas la raíz de una jerarquía de entidades, sus hijos y nietos se dibujan con un outline azul. Así sabes que no son la entidad seleccionada, pero que también se verán afectados por las transformaciones que hagas sobre ella.

Unos cuantos detalles más hacen la selección más cómoda:
- La entidad que hay bajo el cursor se resalta al pasar el ratón por encima, así que sabes qué vas a seleccionar antes de hacer clic.
- Las partes de la selección que quedan detrás de otros objetos se siguen dibujando con menos opacidad, para que no pierdas de vista un objeto oculto.
- Los clics tienen una tolerancia de unos pocos píxeles, así que también es fácil seleccionar objetos finos, como las líneas.
- Los iconos del editor (luces, cámaras, partículas…) se seleccionan pulsando sobre ellos, y la selección por rectángulo usa el mismo sistema, así que solo selecciona lo que de verdad es visible.
- En una jerarquía o en un prefab, el primer clic selecciona la raíz y el siguiente, la entidad concreta que hay bajo el cursor.
Los colores del outline, su grosor, la opacidad de las partes ocultas y el resaltado al pasar el ratón se configuran en Preferences > Viewport.

Gestión de servicios desde Project Settings
En Evergine, los servicios (clases que heredan de Service o de UpdatableService) son el equivalente a un componente o un behavior a nivel de aplicación: los usas cuando necesitas lógica o estado global que no dependa de las escenas de tu proyecto. Hasta ahora había que registrarlos por código en tu clase Application. En esta versión puedes gestionar los servicios desde el panel Project Settings de Evergine Studio, sin escribir código.
En la nueva sección Services puedes añadir los servicios de tu proyecto, quitarlos y configurar sus propiedades. El panel de propiedades usa los mismos editores que Entity Details, así que los atributos RenderProperty que ya usas en tus componentes funcionan igual en tus servicios.

La configuración se guarda con el proyecto y los servicios se registran al arrancar la aplicación mediante código generado. Si ya registras un servicio del mismo tipo en tu clase Application, tu registro tiene prioridad, así que los proyectos existentes siguen funcionando como hasta ahora. Los servicios de uso interno se pueden ocultar de la lista con el atributo [Discoverable(false)].
Proyectos que compilan en menos de la mitad de tiempo
También hemos trabajado en los tiempos de compilación del editor. Evergine Studio compila ahora tus proyectos en menos de la mitad de tiempo que la versión anterior. Como Studio compila el proyecto al abrirlo, también se nota cada vez que abres uno.
Hemos medido los tiempos con dos proyectos: un proyecto vacío y el ejemplo de física de vehículos.
| Proyecto | Escenario | Versión anterior | Nueva versión | Reducción |
|---|---|---|---|---|
| Proyecto vacío | Compilación limpia | 8,90 s | 3,73 s | 58 % |
| Proyecto vacío | Sin cambios | 8,13 s | 3,04 s | 63 % |
| Proyecto vacío | Cambio en C# | 8,06 s | 3,06 s | 62 % |
| VehiclePhysicsSample | Compilación limpia | 10,19 s | 4,41 s | 57 % |
| VehiclePhysicsSample | Sin cambios | 9,49 s | 3,63 s | 62 % |
| VehiclePhysicsSample | Cambio en C# | 9,42 s | 3,69 s | 61 % |
La mejora viene de cómo se lanza la compilación:
- La restauración de paquetes, la compilación y la detección de add-ons se hacen en una sola invocación de MSBuild, que además compila en paralelo.
- Se conserva el estado incremental entre compilaciones.
- Solo se publican los ficheros que han cambiado.
Mejoras en la gestión de assets
La gestión de assets también ha cambiado mucho en esta release, con formas más fáciles e intuitivas de buscar assets y asignarlos a componentes y entidades.
Drag & drop de assets
Todos los selectores de assets admiten ahora drag & drop: arrastra cualquier asset desde el panel Assets y suéltalo sobre la propiedad que lo necesite en Entity Details. Por ejemplo, un material sobre un MaterialComponent, una fuente sobre un texto 3D o un sonido sobre un SoundEmitter3D. Antes ya se podía hacer con los desplegables, pero arrastrar es mucho más cómodo y rápido. Los visores de assets usan los mismos editores de propiedades, así que también puedes soltar una textura sobre un material en el visor de materiales y ver el resultado al momento.

Organizar el contenido también es más fácil. El árbol del Project Explorer admite ahora arrastrar y soltar carpetas, también varias a la vez, y puedes arrastrar assets hasta una carpeta del árbol para moverlos.
Drag & drop de entidades
Ahora también puedes arrastrar entidades desde el panel Scene Hierarchy hasta las propiedades de tipo entidad de los componentes en Entity Details. Es especialmente útil al configurar escenas de física: la propiedad Connected Body de los constraints, que conecta un cuerpo con otro, se asigna arrastrando la otra entidad. Si lo prefieres, el selector permite también buscar la entidad por nombre.

Tus componentes pueden aprovecharlo con una propiedad de tipo Entity. Con el atributo RenderPropertyAsEntity puedes limitar qué entidades se aceptan a las que tengan determinados componentes:
public class Follower : Behavior
{
// Solo acepta entidades con un componente Transform3D
[RenderPropertyAsEntity(typeof(Transform3D))]
public Entity Target { get; set; }
}
Las referencias se guardan por identificador y se resuelven al cargar la escena. Al instanciar un prefab, o al duplicar o pegar entidades, se reasignan solas para que las copias apunten a las entidades copiadas y no a las originales.
Assets raw a través de AssetsService
Para cargar y manejar assets desde código en Evergine siempre usamos AssetsService, que concentra todas las funcionalidades de este ámbito. Ahora, además de los tipos de assets reconocidos, también puede cargar assets raw: ficheros en formatos que Evergine no reconoce, como un JSON de configuración, un CSV con datos o un formato propio. El nuevo método LoadRaw<T> te da un stream del fichero y tú decides cómo leerlo, así que tienes toda la flexibilidad que necesitas. Además, cargas los assets soportados y los raw de la misma forma, algo que hasta ahora tenías que gestionar aparte construyendo la ruta del fichero a mano.
protected override void CreateScene()
{
var assetsService = Application.Current.Container.Resolve<AssetsService>();
var text = assetsService.LoadRaw<string>(EvergineContent.Raw.hello_txt, stream =>
{
using var reader = new StreamReader(stream);
return reader.ReadToEnd();
});
var textComponent = this.Managers.EntityManager.FindFirstComponentOfType<Text3DMesh>();
textComponent.Text = text;
}
El identificador del asset sale de la clase generada EvergineContent, como el de cualquier otro asset. El resultado no se cachea: cada llamada vuelve a leer el fichero, así que guárdalo si lo necesitas más de una vez.
Mejoras generales
Por último, unas cuantas mejoras más pequeñas en la interfaz de Evergine Studio. No son tan llamativas, pero también aportan mucho a la mejora de la experiencia de usuario que el equipo de Evergine ha perseguido en esta release.
Un panel Output del que se puede copiar
Hemos reescrito el panel Output, donde se registra toda la información de lo que va haciendo el editor. Antes mostraba cada mensaje como un elemento de una lista, y copiar varias líneas era casi imposible. Ahora puedes seleccionar texto directamente, o hacer clic derecho y usar Select All, para copiarlo o analizarlo con una herramienta externa. Esto facilita la depuración y el reporte de incidencias.

Rango HDR en el Texture Viewer
El visor de texturas incorpora un control de rango para recorrer los valores de las texturas HDR, que van mucho más allá de 1. Ajusta el rango para ver los detalles que solo aparecen en una franja concreta, como las zonas más brillantes o las más oscuras de un mapa de entorno.

Propiedades string multilínea
Ahora puedes editar strings de varias líneas desde el editor. Basta con añadir el atributo RenderPropertyAsTextBox a la propiedad de tu componente, behavior o drawable:
[RenderPropertyAsTextBox(multiline: true, maxLength: 512, placeholder: "Custom text")]
public string DisplayTag { get; set; }
En Evergine Studio la propiedad se muestra como un campo multilínea, con un placeholder cuando está vacía y un contador de caracteres que respeta la longitud máxima indicada.

Cerrar todas las pestañas
Al hacer clic derecho sobre la pestaña de un documento aparecen Close, Close Others y Close All. Como en Visual Studio, funcionan por ventana: cerrar todo en una ventana flotante no cierra los documentos de la ventana principal.

Restaurar los valores de un perfil
Cada perfil (Windows, Android, Web…) puede sobrescribir la configuración de las texturas y las directivas de los shaders. Hasta ahora, una vez cambiabas uno de esos valores no era fácil volver atrás. Los perfiles tienen ahora un botón para restaurar los valores originales con un solo clic.
Y además
- DirectX12 es el backend gráfico por defecto. Evergine Studio arranca con DirectX12 y los proyectos nuevos usan Windows (DirectX12) como plataforma. Las instalaciones existentes pasan a DirectX12 al actualizar, salvo que hayas elegido Vulkan expresamente. DirectX11 sigue disponible como plataforma opcional.
- Tripo AI con la API v3. Tripo va a retirar la API v2, así que la integración de Evergine Studio usa ya la v3.
- Launcher. Puedes desinstalar varias versiones de Evergine a la vez, algo muy práctico si sueles probar builds nightly y preview, y el Launcher informa mejor del progreso mientras carga.
Pruébalo ya
Todas estas mejoras están disponibles en la nueva release de Evergine. Actualiza desde el Evergine Launcher, abre tu proyecto y prueba el modo Play, la nueva selección y los manipuladores. Si encuentras algún problema o tienes ideas para mejorar Evergine Studio, cuéntanoslo en nuestro repositorio de GitHub.
