Vídeo de teléfono → Mezclas faciales → Blender
Captura de movimiento facial a partir de vídeo: Guía de MoCap con teléfono QuickMagic
Graba una actuación facial con un teléfono inteligente normal, extrae la animación de mezclas con QuickMagic, redirige los canales estilo ARKit a un personaje de Blender, corrige los rangos de expresión y el temblor, y envía el resultado a Maya, Unreal Engine o Unity.
Datos actuales del flujo de trabajo
Mira los tutoriales originales de captura facial
Vídeo de teléfono a MoCap facial en Blender
Demuestra el flujo de trabajo original de vídeo de teléfono, QuickMagic y MoCap facial con Blender.
Abrir vídeo en YouTubeQuickMagic AI + Blender Human Generator Animación Facial
Muestra un flujo de trabajo opcional de pago para personajes en Blender usando Human Generator.
Abrir vídeo en YouTubeQué produce la captura de movimiento facial
La captura de movimiento facial convierte las expresiones visibles en controles que varían con el tiempo. En un flujo de trabajo de mezclas, cada control representa un movimiento como la apertura de la mandíbula, el cierre del párpado, la elevación de las cejas, la compresión de los labios o la inflación de las mejillas. La animación es la secuencia de valores de coeficientes a lo largo del tiempo, no la malla del personaje final.
Apple documenta las expresiones faciales de ARKit como un diccionario de coeficientes con nombre asociados a movimientos específicos de rasgos faciales. Esos coeficientes pueden conducir personajes 2D o 3D. La documentación de OnlyFace de QuickMagic describe un flujo de trabajo de 52 mezclas compatible con ARKit.
1Grabar una actuación con teléfono que se pueda rastrear
- Coloca el teléfono a la altura de los ojos y mantenlo estable.
- Encuadra el rostro de modo que las cejas, la barbilla y ambas mejillas permanezcan visibles.
- Usa iluminación frontal o frontal-lateral suave y uniforme.
- Comienza con aproximadamente dos segundos de expresión neutra.
- Realiza parpadeos claros, aperturas de mandíbula, sonrisas, ceños fruncidos, fruncidos de labios y movimientos de cejas.
- Incluye expresiones asimétricas izquierda/derecha para detectar mapeos reflejados.
- Minimiza el deslumbramiento de gafas, el pelo sobre los ojos, las manos sobre la boca y los giros rápidos de cabeza.
- Sube el archivo original de la cámara en lugar de una copia recompresada de redes sociales.
| Opción de grabación | Punto de partida recomendado | Por qué |
|---|---|---|
| Resolución | 1080p o superior cuando esté disponible | Preserva el detalle de ojos, labios y cejas |
| Fotogramas por segundo | 30 FPS para actuación normal; 60 FPS para expresiones rápidas cuando el plan lo soporte | Equilibra la densidad de curvas y el detalle de movimiento visible |
| Lente | Evitar un encuadre muy cercano con gran angular | Reduce la distorsión de perspectiva facial |
| Movimiento de cabeza | Moderado y controlado | Mantiene el rostro legible y separa la expresión de la pose de la cabeza |
2Procesar y validar la animación facial en QuickMagic
- Inicia sesión en QuickMagic y abre el flujo de trabajo aplicable de vídeo a captura de movimiento.
- Sube el vídeo original del teléfono.
- Elige el procesamiento facial o el formato OnlyFace cuando esté disponible en el plan activo.
- Usa solo el rango de fotogramas necesario.
- Genera la animación.
- Revisa la cara neutra, los parpadeos, la apertura de mandíbula, el cierre de labios, las sonrisas, las cejas y las expresiones asimétricas.
- Usa el refinamiento 2D en los planes de pago compatibles cuando el rastreo visible de la fuente sea incorrecto.
- Exporta la salida FBX/facial requerida y conserva un archivo fuente sin modificar.
Entender los canales faciales de origen y destino
Conjunto mínimo útil de validación
jawOpeneyeBlinkLeftyeyeBlinkRightmouthSmileLeftymouthSmileRightbrowInnerUpmouthPucker- Al menos una expresión de mejilla/nariz
- Canales de mirada cuando el destino los soporte
Tres casos de mapeo
| Fuente y destino | Enfoque recomendado |
|---|---|
| Nombres y significado coinciden | Crear drivers directos, luego ajustar ganancia y límite. |
| El significado coincide pero los nombres difieren | Crear un diccionario de mapeo explícito. |
| El destino usa articulaciones/controladores | Mapear coeficientes a transformaciones o atributos del controlador mediante drivers, nodos o claves guiadas. |
3Flujo de trabajo de Blender usando claves de forma y drivers integrados
- Abre Blender y elige Archivo → Importar → FBX.
- Importa el FBX facial de QuickMagic con la animación activada.
- Selecciona la malla facial fuente e inspecciona Propiedades de datos de objeto → Shape Keys.
- Desplázate por la línea de tiempo para confirmar que los valores de las claves de forma fuente se animan.
- Carga el personaje de destino en la misma escena.
- Confirma que el destino contiene claves de forma u otro rig facial controlable.
- Para cada expresión de destino, añade un driver que lea el valor fuente coincidente.
- Añade ganancia, límite o una curva de respuesta personalizada cuando la expresión de destino sea demasiado débil o fuerte.
- Prueba el clip completo antes de hornear o eliminar la fuente.
Script de Blender: crear drivers para nombres de claves de forma coincidentes
El siguiente script crea drivers con límite para cada clave de forma de destino cuyo nombre coincide exactamente con una clave de forma fuente. Duplica el archivo de Blender antes de ejecutarlo y cambia los dos nombres de objeto.
# Blender: crear drivers para nombres de claves de forma faciales coincidentes
# Edita estos dos nombres de objeto antes de ejecutar en el espacio de trabajo de Scripting de Blender.
import bpy
SOURCE_OBJECT = "QuickMagic_SourceFace"
TARGET_OBJECT = "Target_Character"
GAIN = 1.0
source = bpy.data.objects.get(SOURCE_OBJECT)
target = bpy.data.objects.get(TARGET_OBJECT)
if source is None or target is None:
raise RuntimeError("No se encontró el objeto fuente o destino.")
if not source.data.shape_keys or not target.data.shape_keys:
raise RuntimeError("Ambos objetos deben contener claves de forma.")
source_keys = source.data.shape_keys.key_blocks
target_keys = target.data.shape_keys.key_blocks
created = []
skipped = []
for target_key in target_keys:
name = target_key.name
if name == "Basis":
continue
if source_keys.get(name) is None:
skipped.append(name)
continue
# Eliminar un driver existente en el valor de destino, si está presente.
try:
target_key.driver_remove("value")
except TypeError:
pass
fcurve = target_key.driver_add("value")
driver = fcurve.driver
driver.type = "SCRIPTED"
variable = driver.variables.new()
variable.name = "src"
variable.type = "SINGLE_PROP"
variable.targets[0].id_type = "KEY"
variable.targets[0].id = source.data.shape_keys
escaped = name.replace("\\", "\\\\").replace('"', '\\"')
variable.targets[0].data_path = f'key_blocks["{escaped}"].value'
# Limitar al rango de destino común 0–1.
driver.expression = f"min(max(src * {GAIN}, 0.0), 1.0)"
created.append(name)
print(f"Se crearon {len(created)} drivers.")
print("Claves de destino no coincidentes omitidas:", skipped)
Después de ejecutar el script
- Desplázate por la línea de tiempo y confirma que el destino se anima.
- Revisa la lista impresa de claves de destino no coincidentes.
- Mapea manualmente los canales con nombres diferentes.
- Cambia
GAINo las expresiones de drivers individuales donde sea necesario. - Prueba con cuidado los canales izquierdo/derecho.
Flujo de trabajo opcional con Human Generator
Human Generator es un complemento de pago para la generación de personajes en Blender, no un requisito de QuickMagic. La lista actual del marketplace es compatible con versiones modernas de Blender, pero se debe verificar el nivel de compra, la compatibilidad con Blender y las herramientas de transferencia en la página del producto actual.
- Instala Human Generator a través de su flujo de trabajo de complemento documentado para Blender.
- Crea o carga un personaje con un sistema de claves de forma faciales.
- Importa el FBX fuente de QuickMagic.
- Compara los nombres de las claves de forma fuente y destino.
- Usa la función de transferencia documentada del complemento cuando sea compatible explícitamente con los datos fuente, o usa drivers de Blender.
- Ajusta la fuerza de expresión específica del destino y las formas correctivas.
Limpiar y calibrar la animación facial
Expresión demasiado débil
Aumenta la ganancia del canal o usa una curva de respuesta más pronunciada en esa expresión específica.
Expresión demasiado fuerte o distorsiona el rostro
Limita el valor de destino y reduce la ganancia. Comprueba si se están combinando en exceso varias formas.
Parpadeos incompletos
Verifica que los párpados fueran visibles en el vídeo, luego ajusta la ganancia del parpadeo y añade una forma correctiva si la deformación del párpado de destino es incompleta.
Sincronización de labios imprecisa
Preserva la apertura de mandíbula y el cierre de labios. Evita un suavizado amplio que elimine el tiempo de las consonantes.
Expresiones izquierda y derecha invertidas
Prueba una sonrisa y una elevación de ceja de un solo lado, luego corrige el mapeo fuente/destino reflejado.
Temblor
Suaviza solo los intervalos de canales visiblemente ruidosos. Preserva movimientos oculares naturales, parpadeos, articulación del habla y actuación asimétrica.
Usar los mismos datos faciales en Maya, Unreal Engine y Unity
Maya
Conecta los coeficientes fuente a los pesos del nodo Blend Shape de destino con el Editor de conexiones, claves guiadas o nodos de utilidad/reasignación. Usa el Editor de gráficos para calibrar y hornea los controles de destino solo cuando sea necesario.
Unreal Engine
Habilita la importación de morph target al importar el FBX correspondiente. Unreal puede encapsular la animación de morph target en una secuencia de animación y exponer las curvas morph individuales. El uso de MetaHuman requiere un flujo de trabajo de mapeo de curvas compatible por separado.
Unity
Unity expone los pesos de las mezclas de malla a través de SkinnedMeshRenderer. Anímalos en un clip de animación o establécelos en tiempo de ejecución mediante scripting. Confirma si el FBX importado incluye las curvas neces



