Nuevas Propiedades de los Basepart & Eliminación del soporte para módulos

development
new
studio
info

#1

== Nuevas Propiedades de los Basepart ==

Se a añadido nuevas opciones para el basepart para obtener más control sobre las físicas de nuestros modelos.

BasePart.Massless

Si Massless está habilitado, la parte no contribuirá a la masa total o la inercia de su cuerpo rígido mientras esté soldada a otra parte que tenga masa.

Si la parte es su propia parte raíz de acuerdo con BasePart: GetRootPart (), entonces Massless será ignorada para esa parte, y seguirá aportando masa e inercia a su cuerpo rígido como una parte normal. Las piezas que no tienen masa nunca deben convertirse en una parte raíz de ensamblaje, a menos que todas las otras piezas en el ensamblaje tampoco tengan masa.

TL;DR es como los sombreros de los avatares.

Esto podría ser útil para cosas como accesorios opcionales en vehículos en los que no se desea afectar el manejo del automóvil o una malla de procesamiento sin masa soldada a una malla de colisión más simple.

BasePart.RootPriority

RootPriority es un número entero entre -127 y 127 que tiene prioridad sobre todas las demás reglas para la parte raíz (incluidas las reglas extrañas basadas en el tamaño de la parte). Una parte con una RootPriority más alta tendrá prioridad sobre otras partes no almacenadas con valores sin masa iguales y una RootPriority más baja.

Use esto para controlar qué parte de un conjunto es la parte raíz y mantenga la parte raíz estable si cambia el tamaño.

¿Qué es una parte raíz? (Root Part)

Las soldaduras (Welds) y otras uniones rígidas como Motor6Ds combinan varias piezas en un solo “ensamblaje”. Si ninguna de las piezas de un ensamblaje está anclada, cada ensamblaje forma un solo cuerpo rígido. Cada ensamblaje tiene una única pieza raíz que puede consultar con BasePart:GetRootPart ().

Las soldaduras (Welds) y las juntas Motor6D no tienen una dirección definida. Cuando cambia C0 / C1 o anima un Motor6D, qué parte es Parte0 y cuál es Parte1, no importa para responder qué parte se mueve. Para responder, primero debe preguntar qué parte será la parte raíz.

La parte raíz de un ensamblaje es la que no se mueve cuando se actualizan los CFrames de juntas rígidas

Con soldaduras (Welds), nunca debería tener que preocuparse: si usa WeldConstraints o si no mueve las dos partes donde deberían estar antes de soldarlas, evitará el problema. Sin embargo, si está utilizando Motor6Ds para la animación, necesita saber qué parte se moverá.

Para manejar esto internamente, comenzamos por seleccionar la parte de la raíz según las reglas de clasificación de la parte a continuación, luego construimos un árbol de expansión a partir de la gráfica de uniones rígidas que se ramifican desde la parte de la raíz. Cuando se actualiza un CFrame de articulación rígida, la parte que está más cerca de la raíz permanecerá en su lugar y la parte del niño y sus hijos se moverán. Básicamente, construimos internamente una jerarquía de transformación convencional para cada ensamblaje.

Aquí hay una visualización de este árbol en una plataforma de un Humanoid R15 básica arriba, y una representación de este árbol implícito de qué partes se mueven en relación con las partes abajo.

Una plataforma típica de Humanoid es un conjunto único unido por Motor6Ds. HumanoidRootPart suele ser la parte raíz porque los accesorios no tienen “masa” y el nombre “HumanoidRootPart” aplica un multiplicador especial de 10 veces al tamaño de la parte basado en el tamaño (desde un tiempo antes de RootPriority).

La parte raíz también se utiliza para la replicación física. Para que la replicación física funcione correctamente, todos los clientes deberán tener las mismas partes raíz. Por otra parte, cuando hay restricciones, también necesitamos una estructura de mecanismo consistente para que funcione la asignación de propiedad de la red.

Reglas actualizadas de clasificación de la parte raíz

Para elegir una parte raíz se comparan partes, en orden:

  • Anclado (las partes ancladas siempre serán su propia raíz de ensamblaje)
  • Nada de Massless (sin masa)
  • RootPriority
  • Tamaño de clasificación heredado basado en el área de superficie más grande del cuadro delimitador alineado por objeto definido por Tamaño con un multiplicador adicional para Asientos (20x) o partes llamadas “Torso” (5x) o “HumanoidRootPart” (10x): floor(maxPlanarSize() * 50.0) * specialMultiplier

El último es muy antiguo y muchos juegos dependen de él sin darse cuenta, por lo que no podemos cambiarlo.

Ahora, cuando sepa qué parte debe ser raíz, tome el control y evite las antiguas reglas extrañas al establecer RootPriority en la parte que desea que sea raíz.

/////////////////////////// apartado ///////////////////////////

== Eliminación del soporte para módulos de código cerrado de terceros ==

Los juegos pueden importar módulos de código dinámicamente usando la función require. Actualmente esta permitido el uso de módulos de código cerrado dentro de un juego, incluso si el creador del juego no tiene acceso al código. Esto plantea un grave riesgo porque los modelos pueden contener código malicioso y los desarrolladores no tienen forma de auditar el código. Además, nuestra plataforma no contiene ningún soporte de sandbox para que los módulos puedan hacer cualquier cosa que puedan hacer los scripts de juegos, como escribir en almacenes de datos o teletransportar jugadores a otro juego. No tenemos protecciones para esto.

El 1 de febrero, se eliminara la capacidad de usar módulos de código cerrado de otros creadores en la plataforma. Si desea que otros desarrolladores utilicen sus módulos, debe abrirlos al público o publicarlos en la misma cuenta que el juego.

Pronto se comenzara a mostrar advertencias en Salida para los juegos que se verán afectados. Podrás usar la Consola de desarrollador del juego para ver estas advertencias.

Aquí están los pasos para cambiar un módulo de privado a público:

  1. Ir a la página Crear
  2. Haga clic en “Modelos”
  3. Encuentra el módulo que quieres cambiar.
  4. Haga clic en el icono del engranaje y seleccione “Configurar”
  5. Marque la casilla de verificación “Permitir copiar”
  6. Clic en “Guardar”

A más largo plazo, se esta investigando lo siguiente:

  • Proporcionar espacio para los scripts para que los desarrolladores tengan control total sobre el código que pueden importar en su juego. Esto puede eventualmente permitirnos reintroducir módulos de código cerrado una vez que hayamos implementado ciertas medidas de seguridad.
  • Permitir que los creadores compartan código y otros activos con usuarios específicos en lugar de toda la plataforma.

/////////////////////////// apartado ///////////////////////////

Bueno esta es toda la información ya traducida, que tengan excelente día, los mantendré informados de las nuevas cosas sobre el Studio.


#2

:+1: