Hola, por fin he terminado este pequeño script en Python para Autodesk Maya, luego de un par de días de programarlo y probarlo.
Lo que hace este script es activar o desactivar la transparencia del objeto seleccionado y así poder ver con mayor facilidad sus edges, vértices o faces.
Yo me he creado un hotkey con la tecla X, para hacerlo deben ir a:
- Windows
- Settings/Preferencias
- Hotkey Editor
(1).-En la ventana qué se abrirá deben ir a la pestaña: Runtime command editor y presionar (2)New, (3).-Luego ingresar un nombre cualquiera para este script, por ejemplo: Xray_Object en el item name, (4).-Pueden agregar una descripción, por ejemplo: Activa Transparencia en objeto (sin comillas), (5).-En Languaje: deben elegir Python
(6).-Pegar el código y clic a (7)save runtime command, (.-Cambiar en Edit Hotkey for a: Custom scripts
(9).-Elegir el script creado y presionar la tecla X, (10).-Aparecera un mensaje de que ya está asignado, pero deben dar clic a yes
(11).-Save and close.
Ahora solo deben elegir un objeto, elegir unos cuantos faces o lo que deseen y presionar en su teclado la X, notaran que se ve en modo xray y si presionan nuevamente, vuelve al modo en que estaba inicialmente.
Solo funciona con un objeto a la vez.
Aquí un gif de ejemplo.
Y por último el código (no copiar este, ya qué perdió la indentacion al pegarlo aquí, adjunto el archivo.py):.
Para utilizar el script X-Ray en Maya, necesitas un código Python funcional y bien indentado. El código compartido en el hilo tiene errores de sintaxis debido a la pérdida de formato. Aquí tienes una versión corregida y lista para usar.
Primero, asegúrate de tener un objeto seleccionado en Maya. Luego, ejecuta este código en el Script Editor de Maya (en modo Python). Este script alterna la visualización en modo X-Ray para el objeto seleccionado, permitiendo ver a través de su malla mientras trabajas con vértices, aristas o caras.
El código funcional es el siguiente:
import maya.cmds as mc
def toggle_xray():
# Verifica el modo de selección actual
is_object_mode = mc.selectMode(query=True, object=True)
# Si estamos en modo objeto
if is_object_mode:
selected_objects = mc.ls(selection=True)
if len(selected_objects) != 1:
mc.warning("Por favor, selecciona un solo objeto.")
return
# Obtiene el panel de vista activo
panel = mc.getPanel(withFocus=True)
if mc.getPanel(typeOf=panel) == "modelPanel":
# Consulta el estado actual de X-Ray
current_state = mc.modelEditor(panel, query=True, xray=True)
# Alterna el estado
mc.modelEditor(panel, edit=True, xray=not current_state)
# Si estamos en modo componente (vértices, aristas, caras)
else:
# Primero cambia temporalmente a modo objeto para afectar al objeto padre
mc.selectMode(object=True)
selected_objects = mc.ls(selection=True)
if len(selected_objects) != 1:
mc.warning("Por favor, selecciona componentes de un solo objeto.")
mc.selectMode(component=True)
return
panel = mc.getPanel(withFocus=True)
if mc.getPanel(typeOf=panel) == "modelPanel":
current_state = mc.modelEditor(panel, query=True, xray=True)
mc.modelEditor(panel, edit=True, xray=not current_state)
# Vuelve al modo componente
mc.selectMode(component=True)
Ejecuta la función
toggle_xray()
Para asignarlo a un hotkey como la tecla X, ve a Windows, luego Settings/Preferences, y selecciona Hotkey Editor. En la ventana, dirígete a la pestaña Runtime Command Editor. Presiona el botón New. Ingresa un nombre como Xray_Object. En Language, elige Python. Pega el código completo proporcionado arriba en el campo de comando. Guarda el runtime command con Save Runtime Command. Luego, en la sección para asignar hotkeys, busca tu script bajo Custom Scripts, selecciónalo, presiona la tecla X en tu teclado y confirma la asignación. Finalmente, guarda los cambios con Save and Close.
Ahora, al seleccionar cualquier objeto o sus componentes y presionar X, la malla se volverá transparente (modo X-Ray) o volverá a su estado normal. Esta es una herramienta muy útil para modelado.