Roblox GuidebookBase de conocimiento
Español ⌄

Studio / ROBLOX

Roblox Studio: configurar y comprobar dos Collision Groups

Crea dos grupos para una escena de práctica, configura su relación en la matriz y comprueba el resultado con piezas físicas. La guía distingue el editor de Studio del script del servidor y usa métodos actuales de Workspace.

Actualizado:

Qué controlan los grupos de colisión #

Imagina un pasillo de práctica donde dos equipos empujan cajas de colores. Las cajas de equipos distintos deben atravesarse, mientras las del mismo equipo deben chocar, pero ambos equipos deben detenerse contra el suelo y las paredes. Es un ejemplo didáctico ficticio, no una descripción de un juego publicado.

Los Collision Groups definen reglas de colisión para clases de piezas físicas. En vez de configurar cada pareja de objetos, asigna cada BasePart a un grupo y especifica en una matriz qué grupos chocan. El nombre por sí solo no cambia nada: importan la asignación de la pieza y la relación de la matriz.

Prepara una escena de práctica #

Empieza con un Baseplate nuevo o una copia del proyecto y guárdalo con otro nombre. Añade un suelo ancho anclado, una pared y dos piezas pequeñas con forma de caja: una azul y otra naranja. Deja las cajas sin anclar, separadas y sobre el suelo. Primero céntrate en la física.

Comprueba que cada pieza tenga CanCollide = true. Si está desactivado, la pieza no ofrecerá la resistencia física habitual aunque la pareja de grupos esté habilitada. Las cajas deben ser instancias BasePart, como Part o MeshPart, no carpetas ni modelos. Los grupos se asignan a piezas; en un modelo con varias piezas revisa cada parte pertinente.

Pareja de gruposAjusteResultado esperado
BlueCrates ↔ BlueCratesActivadoLas cajas azules se detienen entre sí
OrangeCrates ↔ OrangeCratesActivadoLas naranjas se detienen entre sí
BlueCrates ↔ OrangeCratesDesactivadoColores distintos se atraviesan
BlueCrates ↔ DefaultActivadoLa caja azul toca suelo y pared
OrangeCrates ↔ DefaultActivadoLa caja naranja toca suelo y pared

Planifica la matriz antes de asignar piezas #

Usa los grupos BlueCrates y OrangeCrates. Mantén habilitada la colisión de ambos con Default y deshabilita la relación entre los dos grupos de práctica. Añadir dos cajas por grupo facilita observar el resultado.

La matriz describe parejas, no ajustes de un solo sentido. La relación A-B se aplica a ambos grupos: si BlueCrates no colisiona con OrangeCrates, las cajas naranjas también atraviesan las azules. La relación de un grupo consigo mismo controla las piezas del mismo grupo. Déjala habilitada si las cajas del mismo equipo deben empujarse.

Crea los grupos en el editor de Studio #

Abre el editor Collision Groups. La documentación actual de Roblox lo ubica en Window > 3D; el nombre o la ubicación del panel puede variar según la versión de Studio. Elige Workspace si aparece un selector de mundo. Añade BlueCrates y OrangeCrates con Add Group, usando nombres únicos.

El editor incluye Default de forma predeterminada. Todas las piezas comienzan en ese grupo, que no se puede renombrar ni eliminar. Confirma que ambos grupos aparezcan en la matriz y desactiva solo la intersección BlueCrates/OrangeCrates. Si el editor muestra una celda para cada lado, comprueba el estado de la pareja. Guarda el proyecto.

Asigna los BasePart adecuados #

Selecciona las dos cajas azules en la vista 3D y asígnalas con el botón más (⊕) de la fila BlueCrates. Repite el paso para las naranjas. La apariencia exacta del panel depende de la versión de Studio. Selecciona cada caja e inspecciona CollisionGroup en Properties.

Al asignar otra agrupación, la pieza sale de su grupo anterior; cada pieza solo pertenece a un grupo a la vez. Expande los modelos y revisa todas las piezas físicas para que ninguna quede en Default. No confundas CollisionGroup con CanCollide: el primero elige las reglas del grupo; el segundo activa o desactiva la colisión física de la pieza.

Configura la matriz y entiende su simetría #

La matriz prevista: BlueCrates ↔ BlueCrates habilitado; OrangeCrates ↔ OrangeCrates habilitado; BlueCrates ↔ OrangeCrates deshabilitado; y cada grupo de práctica ↔ Default habilitado. Habilitado significa que la pareja puede colisionar físicamente si los demás ajustes lo permiten. Deshabilitado significa que las piezas se atraviesan aunque ambas tengan CanCollide activo.

Para excluir solo una pareja concreta de piezas, Roblox sugiere considerar NoCollisionConstraint. Collision Groups resulta más adecuado cuando la regla corresponde a muchos objetos. No crees numerosos grupos para excepciones individuales.

Matriz: los grupos se atraviesan entre sí y ambos chocan con Default.Abrir imagen a tamaño completo ↗
Diagrama didáctico original; no es una captura de Studio ni un resultado de prueba.

El mismo ejemplo con un script de servidor #

Para ver la alternativa con código, coloca un Script normal en ServerScriptService y crea dos piezas de Workspace llamadas BlueCrate y OrangeCrate. Este ejemplo registra los grupos si faltan, configura la relación y asigna las piezas:

La API actual documenta RegisterCollisionGroup, IsCollisionGroupRegistered y CollisionGroupSetCollidable en Workspace/WorldRoot. La creación de grupos y los cambios de relaciones deben ejecutarse en el servidor. En un proyecto suele ser práctico configurar los grupos previamente en Studio; Roblox indica que el registro tiene un pequeño coste según el número de piezas de Workspace. Evita PhysicsService:CreateCollisionGroup() y SetPartCollisionGroup() en ejemplos nuevos: la referencia actual marca obsoleta esa API y dirige la administración a Workspace.

Este código breve solo asigna dos piezas individuales. No procesa todas las partes de un modelo o personaje; una versión ampliada debe recorrer los descendientes y asignar cada BasePart. Los nombres deben coincidir con Explorer.

local workspace = game:GetService("Workspace")
local blueName = "BlueCrates"
local orangeName = "OrangeCrates"

for _, name in {blueName, orangeName} do
    if not workspace:IsCollisionGroupRegistered(name) then
        workspace:RegisterCollisionGroup(name)
    end
end

workspace:CollisionGroupSetCollidable(blueName, blueName, true)
workspace:CollisionGroupSetCollidable(orangeName, orangeName, true)
workspace:CollisionGroupSetCollidable(blueName, "Default", true)
workspace:CollisionGroupSetCollidable(orangeName, "Default", true)
workspace:CollisionGroupSetCollidable(blueName, orangeName, false)
workspace.BlueCrate.CollisionGroup = blueName
workspace.OrangeCrate.CollisionGroup = orangeName

Comprueba el comportamiento en una ejecución #

Guarda la escena y usa un modo de Studio que inicie la simulación, por ejemplo Play. Esto es un plan de prueba, no una prueba realizada aquí: Studio no se inició ni se observó el resultado físico.

Coloca las cajas azul y naranja para que se encuentren; con la relación desactivada deberían atravesarse. Azul contra azul debería colisionar, igual que naranja contra naranja. Cada caja debería detenerse en el suelo y la pared de Default. Detén la simulación, habilita solo la relación Blue/Orange, inicia otra vez y compara esa pareja. Antes de cada comparación revisa las posiciones iniciales y CanCollide.

Anota el resultado real después de tu propia ejecución. Una simulación local no demuestra el comportamiento en todos los escenarios de red o dispositivos.

Prueba una pareja por ejecución. Coloca la caja inferior sobre el suelo y la superior justo encima con un espacio de aire; deja ambas sin anclar. Al iniciar, la caja superior cae sobre la inferior. Se espera contacto dentro del mismo grupo y paso a través del otro color si esa relación está desactivada. Después activa la relación entre colores y repite la misma colocación. Para la pared, coloca una caja cerca y empújala con el personaje; comprueba el suelo por separado. Anota lo observado tras ejecutar, sin sustituirlo por el resultado esperado.

Secuencia de comprobación desde crear grupos hasta simular.Abrir imagen a tamaño completo ↗
Plan original de comprobación manual; aquí no se ejecutó.
ObservaciónPrimero revisaSiguiente acción
Grupos distintos siguen chocandoAsignaciones y celda de matrizConfirma el Workspace activo
La caja atraviesa el sueloCanCollide y relación con DefaultRevisa propiedades físicas del suelo
Una parte del modelo se comporta distintoCollisionGroup de cada BasePartAsigna las restantes y repite
El script no encuentra el grupoNombre y registroComprueba escritura y contexto de servidor
Touched se activa a través de la piezaComportamiento independiente del eventoComprueba el movimiento para confirmar el bloqueo

Diagnostica resultados inesperados #

Si los dos colores siguen chocando, verifica en orden que ambas piezas estén en grupos distintos, que la relación de matriz esté desactivada y que estés revisando el mismo Workspace que editaste. Después comprueba CanCollide y que no queden piezas del modelo en Default.

Si una caja atraviesa el suelo, comprueba la relación de su grupo con Default y CanCollide de ambas piezas. Si el script informa que no conoce un grupo, quizá no se registró o el nombre es distinto. CollisionGroupSetCollidable genera un error si un grupo no está registrado; por eso el ejemplo los comprueba primero.

Los eventos Touched son independientes: la documentación de Roblox indica que pueden activarse aunque CanCollide esté desactivado. Un evento de contacto no demuestra por sí solo que haya un bloqueo físico.

Registra lo observado y continúa #

Guarda la matriz elegida, la lista de piezas asignadas y una nota breve con las parejas probadas, el comportamiento esperado y lo observado. Si cambias la matriz, repite las comprobaciones de las parejas afectadas, incluidas las colisiones con Default.

Como siguiente paso, podrías asignar un grupo a todas las piezas de un modelo al añadirlo, probar personajes o comparar la regla con NoCollisionConstraint. Cada ampliación necesita su propia comprobación. El objetivo se cumple cuando puedes predecir el resultado con la matriz y confirmarlo en una ejecución de Studio.

Fuentes originales

Roblox Creator Hub — Collisions
Roblox Creator Hub — WorldRoot
Roblox Creator Hub — PhysicsService (legacy API status)
Roblox Creator Hub — Physics