Warning
This document is slightly outdated. FIXME: Texture resolutions should have more guidance, contains HiFi hosted resources
Guía de Estándares del Avatar
Este documento describe los estándares que debes seguir cuando creas tu avatar. Tu avatar usa huesos para animar las extremidades del personaje y definir la escala variable de las extremidades. Puedes agregar huesos personalizados para ajustar aún más la forma del avatar. La personalización de tu avatar se puede ajustar utilizando combinaciones de formas (blendshapes) para animar la cara y scripts (secuencias de comandos) para definir comportamientos avanzados.
En Esta Página:
Glosario
A medida que profundizamos en la creación de avatares personalizados, es posible que usemos terminología con la que no estés familiarizado. A continuación, se muestran algunos términos con los que puedes encontrarte:
Avatar - Una representación virtual de una persona o NPC.
Malla - La colección de vértices y triángulos 3D para el modelo del avatar. Sin esto, el avatar es invisible.
Huesos - Un componente de un esqueleto que define una "extremidad" como un brazo, pierna, etc. Cada hueso podría ser animado como un extremidad separada de tu avatar.
Esqueleto - Una jerarquía de articulaciones.
Rigging: el proceso de creación de un esqueleto para el modelo del avatar.
Blendshapes: Variaciones de la topología que define cómo se modifica la malla para crear varias "formas".
Archivo FST: El archivo principal del avatar, que contiene información sobre el esqueleto, las formas de combinación (blendshapes), el archivo FBX y las texturas utilizadas por un avatar.
Pose de Referencia
Para la pose de referencia, usa una pose en T que cumpla con las especificaciones de a continuación. Es posible que quieras consultar el avatar fbx de ejemplo correctamente configurado con los archivos de origen.
El personaje debe mirar a lo largo de la dirección positiva del eje Z.
Los brazos deben estar extendidos a lo largo del eje X. Por lo tanto, el brazo izquierdo debe apuntar a lo largo de la dirección positiva del eje X.
La parte superior de la cabeza del personaje debe estar hacia arriba, en la dirección positiva del eje Y.
Las manos del personaje son planas, las palmas hacia el suelo, con los pulgares paralelos al eje X.
Los pies del personaje deben estar perpendiculares a las piernas (con los dedos apuntando a lo largo del eje Z como se muestra). Los pies no deben rotarse alrededor del eje Y (lo que significa que los dedos del pie izquierdo no deben apuntar hacia adentro hacia la pierna derecha o hacia afuera alejándose de la pierna derecha).
You can download the standard Overte skeleton here. This skeleton conforms to the specifications above.
Esqueleto
The standard humanoid skeleton of your avatar should follow HumanIK Skeleton with some modifications made for Mixamo. This skeleton system will work with the input systems already in place in Overte, and will allow users to use their input devices to control their avatar's arm and finger movements (if they have any).
Overte avatars should match the following standard skeletal structure. Each of these joints can be animated.
Note
Finger #1 is not the metacarpal; instead, it is the first joint between the proximal and intermediate.
Huesos de Flujo
Los prefijos sim
and flow
están reservados para los huesos de flujo (flow bones), como ropa, cabello y colas. Estos huesos no deben ser animados por un animador. (Muchas gracias a Akazukin por el modelo Ouka Miko(櫻歌ミコ) utilizado en este diagrama!)
Por ejemplo, considera una capa completa que rodea al avatar:
simBackCape# - additional bone(s) of the cape, center back
simFrontCape1 - first bone of the cape, center front
simFrontCape# - additional bone(s) of the cape, center front
simLeftCape1 - first bone of the cape, left
simLeftCape# - additional bone(s) of the cape, left
simRightCape1 - first bone of the cape, right
simRightCape# - additional bone(s) of the cape, right
Alternativamente, puede usar el prefijo flow
, separando el nombre y el número de conjunto con un guión bajo. La misma capa de arriba se vería así:
flow_BackCape_02
flow_FrontCape_01
flow_FrontCape_#
flow_LeftCape_01
flow_LeftCape_#
flow_RightCape_01
flow_RightCape_#
Vectores de Mirada
Los vectores de mirada son manejados por el vector z de las articulaciones del ojo.
El eje +z de las articulaciones del ojo debe pasar por el centro de la pupila y debe continuar haciéndolo mientras se gira la articulación del ojo.
Las articulaciones del ojo se definen en el FST.
Blendshapes (Interpolación de Formas)
Overte uses blendshapes to animate your avatar's face. Blendshapes allow you to specify a new state for your avatar's mesh, and facial positions are animated by moving between the different states of your avatar's expressions. Blendshape behaviors are defined in your avatar's FST file, and are added to the avatar mesh using a 3D modeling tool like Blender (Shape Keys) or Maya. Adobe's Fuse program and Mixamo pipeline allow you to export blendshapes as part of your FBX, but if you are modeling an avatar from scratch, you will likely need to specify your own facial expressions.
Overte avatars support a number of blendshapes for creating different facial expressions.
Blendshapes Básicos
EyeBlink_L
: Acción de parpadeo para el ojo izquierdo.EyeBlink_R
: Acción de parpadeo para el ojo derecho.JawOpen
: Apertura de la mandíbula.
Blendshapes de Audio
Estos blendshapes se utilizan cuando hablas.
Tus cejas son formas mixtas que reaccionan a un cambio de volumen. Se moverán hacia arriba cuando tu voz se vuelva más fuerte. Éstas incluyen:
BrowsU_C
: Elevación del Centro de la cejaBrowsU_L
: Elevación de la esquina exterior de la ceja izquierdaBrowsU_R
: Elevación de la esquina exterior de la ceja derecha
Otros audios de blendshapes se mezclan aleatoriamente cuando hablas. Éstos incluyen:
MouthSmile_L
: El lado izquierdo de la boca se levanta en una sonrisaMouthSmile_R
: El lado derecho de la boca se levanta en una sonrisaLipsFunnel
: Embudo de labios, como cuando dices "¡Oh!"LipsUpperClose
: Labios superiores enrollados hacia adentro
Desplazamiento del Párpado
Para asegurarse de que la parte superior del párpado descanse sobre el iris, se utilizan blendshapes para rastrear la posición actual del ojo junto con la orientación de la cabeza.
EyeBlink_L
: Acción de parpadeo para el ojo izquierdoEyeBlink_R
: Acción de parpadeo para el ojo derechoEyeOpen_L
: Apertura del ojo izquierdoEyeOpen_R
: Apertura del ojo derechoBrowsD_L
: Esquina exterior de la ceja izquierda moviéndose hacia abajoBrowsD_R
: Esquina exterior de la ceja derecha moviéndose hacia abajo
Aplicamos un pequeño desplazamiento procedural a los coeficientes de blendshape para evitar párpados somnolientos o locos:
Si estás mirando al frente: Los coeficientes
EyeBlink
yEyeOpen
serán0
.Si tus ojos comienzan a mirar hacia arriba:
EyeBlink
,EyeOpen
yBrowsU
comienzan a cambiar de valor, alcanzando los valores de-1
,1
y0.5
respectivamente a16.3
grados. Esto tendrá el efecto de levantar los párpados y las cejas al mirar hacia arriba.Si tus ojos comienzan a mirar hacia abajo:
EyeBlink
yEyeOpen
comienzan a cambiar de valor.EyeBlink
alcanza un valor de0.5
a32
grados.EyeOpen
alcanzará un valor de0.5
a 27 grados. Esto tendrá el efecto de bajar los párpados mientras mira hacia abajo.
Los ajustes a tus blendshapes se pueden realizar con una herramienta de modelado 3D o directamente en el archivo FST de tu avatar. En el archivo FST, los blendshapes se definen con la sintaxis:
Aquí hay un ejemplo de cómo modificar tus blendshapes en tu archivo FST:
bs = BrowsU_C = head_BS_brow_up = 0.3
bs = BrowsU_R = head_BS_brow_up = 0.3
bs = BrowsD_R = head_BS_brow_down = 0.5
bs = BrowsD_L = head_BS_brow_down = 0.5
bs = EyeBlink_L = head_BS_L_eye_close = 1
bs = EyeBlink_R = head_BS_R_eye_close = 1
bs = EyeOpen_L = head_BS_L_eye_open = 1
bs = EyeOpen_R = head_BS_R_eye_open = 1
bs = JawOpen = JawOpen = 1
bs = MouthSmile_R = head_BS_L_smile = 0.6
bs = MouthSmile_L = head_BS_R_smile = 0.6
bs = LipsFunnel = head_BS_oo = 0.5
bs = LipsUpperClose = head_BS_mouth_down = 0.1
Blendshapes de ReadyPlayerMe
ReadyPlayerMe blendshapes are converted into Overte blendshapes automatically.
Blendshapes no Soportados
Para utilizar los blendshapes (interpolación de formas o malla deformada) presentes en los avatares, deben coincidir con los blenshapes de a continuación. Alternativamente, se puede usar un archivo .fst para reasignar los blendshapes a cualquiera de los siguientes.
Blendshapes de Ojo
EyeBlink_L
EyeBlink_R
EyeSquint_L
EyeSquint_R
EyeDown_L
EyeDown_R
EyeIn_L
EyeIn_R
EyeOpen_L
EyeOpen_R
EyeOut_L
EyeOut_R
EyeUp_L
EyeUp_R
BrowsD_L
BrowsD_R
BrowsU_C
BrowsU_L
BrowsU_R
Blendshapes de Mandíbula
JawFwd
JawLeft
JawOpen
JawRight
MouthLeft
MouthRight
MouthFrown_L
MouthFrown_R
MouthSmile_L
MouthSmile_R
MouthDimple_L
MouthDimple_R
Blendshapes de Labios
LipsStretch_L
LipsStretch_R
LipsUpperClose
LipsLowerClose
LipsFunnel
LipsPucker
Puff
Blendshapes de Boca, Mejilla y de Usuario
CheekSquint_L
CheekSquint_R
MouthClose
MouthUpperUp_L
MouthUpperUp_R
MouthLowerDown_L
MouthLowerDown_R
MouthPress_L
MouthPress_R
MouthShrugLower
MouthShrugUpper
NoseSneer_L
NoseSneer_R
TongueOut
UserBlendshape0
UserBlendshape1
UserBlendshape2
UserBlendshape3
UserBlendshape4
UserBlendshape5
UserBlendshape6
UserBlendshape7
UserBlendshape8
UserBlendshape9
Otras Consideraciones
Optimización de Archivos
Los creadores de contenido tendrán un ancho de banda limitado en los servidores (lee la letra pequeña en cualquier plan de host ilimitado) por lo que la optimización es importante, tanto para los usuarios finales como para los creadores de contenido. Cuantos más polígonos y texturas más grandes utilices, más ancho de banda estarás utilizando de tus servidores por carga. De manera óptima, mantén tus modelos de avatar por debajo de 20 MB.
Texturas
Te recomendamos que intentes mantener el tamaño total de todas las texturas por avatar por debajo de 8 MB. Deben ser siempre menores de 1024x1024, a menos que todas las texturas estén en un solo archivo. Si usas varios archivos de textura, cuanto más pequeños, mejor, especialmente si puedes hacer que las texturas sean más pequeñas. Recuerda que puedes obtener muchos más detalles a través de la rugosidad y el mapeo normal, que solo con texturas. Se sugiere que mantengas Albedo en un tamaño más pequeño que su rugosidad para obtener el mejor detalle a través del reflejo de la luz en lugar de la variación de color.
Cascos de Colisión de Avatar
Cuando uses diferentes avatares, notarás que cada avatar tiene una forma de colisión o casco de colisión diferente. El casco de colisión es el área invisible alrededor de tu avatar que se usa para detectar cuando otros avatares o entidades chocan contigo.
Depending on the avatar's design, the collision hulls can be very large or small. This occurs because Overte analyzes the shape of the avatar's torso (from hips to head) and tries to find the best shape that encloses the mesh. For example, if your avatar has large hips or perhaps a fully extended tail, Overte thinks that the tip of the tail is part of your hips, and makes a very large collision hull. To reduce the size of the collision hull, you can add skeleton joints to your avatar's tail.
Miniaturas de Avatar
The Avatar app will look for a thumbnail with a .jpg extension with the same name and at the same URL location as your avatar's.
For example, if your avatar is hosted at https://overte.org/avatar.fbx
, then it will look for a thumbnail at https://overte.org/avatar.jpg
.
Ver también