Una varita mágica es genial, pero es mucho más genial hacer magia simplemente con el movimiento de tus manos. Para hacer esto posible, en 2014, asumimos el reconocimiento de los gestos e hicimos un guante con acelerómetros para juegos de rol. El proyecto resultó ser complicado y con consecuencias de largo alcance.

Entonces, el juego
"Hay tal oficio" en el mundo de Andrzej Sapkowski . La mayoría de los personajes son adolescentes con la apariencia de un brujo que estudia en el castillo de Caer Morhen. Tienen que destripar a los monstruos, cocinar elixires, vallar de acuerdo con reglas especiales y practicar gestos mágicos. Alguien muere, alguien se balancea ante un brujo adulto.

Señales de Aard e Yrden en juegos de computadora alrededor del mundo de Andrzej Sapkowski.Es lógico poner en la mano izquierda de un jugador (en la espada derecha) algún dispositivo para leer los movimientos de los dedos, por ejemplo, un guante. La solución más simple sería usar galgas extensométricas. Pero en 2013-2014, la galga extensométrica costó 110 rublos. Esta cantidad, multiplicada por cinco dedos y 25 dispositivos, dio un alto costo. Desafortunadamente, la producción de series medianas nos enseña a contar bien: no tuvimos que gastar más de 2 mil rublos por guante, y no pudimos permitirnos reducir una cuarta parte de esta cantidad a sensores.
Selección de componentes y creación de lenguaje de señas.
Nos volcamos a los acelerómetros. El acelerómetro cuesta bastante realista 30 rublos. Para los primeros experimentos, solo se usó un sensor, montado en una espada, y pronto quedó claro que no era posible trabajar con movimiento dinámico, como queríamos inicialmente. De hecho, el acelerómetro solo proporcionó información sobre la presencia-ausencia de un columpio.
Se eligió trabajar con posiciones estáticas en lugar de dinámicas porque en estática podríamos dibujar claramente una línea entre donde necesitamos una posición y dónde no. En la dinámica, las aceleraciones que ocurren cuando gira el acelerómetro podrían ser como cualquier cosa.
Entonces, quedó claro que necesitamos trabajar con disposiciones estáticas. Pero cuales? La mano humana tiene más de 20 grados de libertad, ¿vale la pena pegar un acelerómetro a cada falange? El sensor cuesta dinero y dedos de diferentes longitudes y flexibilidad ...
Usando el acelerómetro, en el lenguaje de los modelos de aeronaves, solo podemos determinar dos tipos de movimientos: balanceo (balanceo hacia la izquierda y derecha) y cabeceo (arriba y abajo con la cabeza). Y el guiñada (gira a la izquierda y a la derecha) ya no está allí, porque la fuerza de la gravedad permanece sin cambios.

El acelerómetro no ve la diferencia entre estos dos gestos. Problema!Como resultado, decidimos colocar un sensor en la parte posterior de la palma y uno en cada dedo, en la región de la tercera falange. Esto proporcionó cierto margen para inventar gestos.
El primer prototipo parecía una placa Discovery con sensores conectados. El script de Python que procesó los datos (seis sensores de tres etapas, un vector de 18 números correspondía a cada posición del guante), no mostraremos a nadie, no es tan perfecto, desde 2014 aprendimos mucho.
El primer prototipo: percibe perfectamente los gestos de Vladimir Yashunsky, su desarrollador principal.Producción en serie y un giro inesperado de la trama
Se registró el valor de referencia, se comparó con los datos obtenidos. Nada anunciaba problemas.
Dos meses antes del juego, una serie estaba lista: 25 sensores soldados en cables, pegados a guantes de construcción, conectados a 25 tableros con baterías y LED.
Flujo de trabajo: LED de soldadura.Cada acelerómetro se puso sobre adhesivo termofusible. Entonces, ocupó una posición ligeramente diferente. Los guantes nuevos con un pecado por la mitad aceptaron percibir los gestos de Vladimir, pero solo de él.

Prototipo y serie.Que hacer Dos meses antes del juego, anunciaron guantes, los jugadores aprenden gestos. Teóricamente, era posible hacer su propio firmware para cada guante. Prácticamente, realmente no quería hacerlo. Tampoco quería expandir el rango permitido de movimientos, de lo contrario los gestos comenzarían a confundirse entre sí. Tuve que organizar la recopilación de estadísticas
Invitamos a 10 personas (con diferentes longitudes y flexibilidad de dedos) y les pedimos a todos en cada signo que hicieran todos los gestos. El voluntario hizo un gesto. Vladimir se aseguró de que el sistema lo reconociera correctamente, confirmó que el gesto era válido y registró el valor en una carpeta. Huelga decir que los valores promedio no fueron muy similares a los que el mismo Vladimir dio.
Después de recopilar estadísticas, para cada gesto, se calcularon la expectativa matemática y la varianza.
Guante a través de los ojos del usuario.
Se inventaron diez gestos. Pero un solo gesto que conduce a un resultado positivo está lleno de incidentes. Es una pena levantar la mano para saludar a una persona e incinerarla sin darse cuenta.
Se decidió apartarse del texto de Sapkowski e incluir tres gestos en cada signo.
El primer gesto es el gesto iniciador del Signo, es único. El segundo es ganar fuerza, este gesto es el mismo. Y todo termina con un tercer gesto ejecutivo. Había tres especies.
Retiro Hombre y electrónica
Existe tal regla: en todos sus fracasos, una persona tiende a culpar a otra persona. Y si la falla parece estar relacionada con la electrónica, culparán del problema a la electrónica. Para nosotros, esto significa esto: si puedes interpretar la acción a favor del jugador, debes hacerlo. Pero los falsos positivos se interponen en el camino de la bondad, y tampoco serán perdonados.Para controlar la ejecución correcta de Sign, primero querían escribir un buffer de anillo. Pero era imposible permitir una gran cantidad de falsos positivos o, por el contrario, fracasos. Por lo tanto, fuimos por el otro lado, a través de la máquina de estados. Si el guante se acaba de encender, el primer gesto solo puede ser uno de los cinco gestos de inicio. Son ellos los que causan una vibración débil, y el "conjunto de fuerza" que se hace primero se ignora.
La máxima lealtad del usuario se manifestó de la siguiente manera:
Después del primer gesto correcto, el usuario tiene 10 segundos para hacer el segundo gesto correcto. En el medio, puede hacer cualquier tontería con sus manos.
Esto no cuenta como un error:



Mire, el usuario inició correctamente Aard (mano abierta), cambió para ganar fuerza, pero dudó e hizo un gesto de descenso equivocado. Con el buffering en anillo, esto interrumpiría la ejecución de los personajes, el usuario estaría molesto. La máquina de estados ignora esta pequeña mancha. El usuario recuerda el gesto de activación correcto y se activa el guante.Y en alguna parte, el guante aún podría arrojar un truco sucio.
¿Querían alejar a un compañero con el letrero de Aard y sin querer quemaron un letrero similar con Ignie?



Entre las ejecuciones correctas de Aard (mano abierta) e Igni (pellizco) hay varias opciones más descuidadas: 5 acelerómetros se dirigen hacia arriba y el que está en el dorso de la mano no. Esto está lleno de sorpresas para la bruja.
Se decidió que el guante debe comunicarse con el usuario, y se comunicará por vibración (usamos la vibración a menudo, le permite crear dispositivos sin pantallas artificiales, sin desenmascarar el sonido y la luz, pero aún así puede comunicarse con los usuarios).
Al realizar el gesto de inicio, el guante vibra ligeramente, vibra más fuerte en el segundo gesto. Explicaron a los usuarios: esto es porque sientes un coágulo de fuerza llenando tu palma. Un signo ejecutado correctamente se indicaba con un destello del color correspondiente, todos en el juego sabían cómo reaccionar ante tal cosa.
Todos los técnicos del juego, los monstruos con los que luchaban las brujas, sabían cómo reaccionar ante los guantes ligeros. Y tuve que lidiar, por ejemplo, con una manticora en puentes alegres.
Foto de Lily Barladyan
El brujo dejó que la vil criatura del pantano se acercara, para arrojar a Aard con un cartel.
Foto de Lily BarladyanSe suponía que la mayor parte de la magia con el guante debía ocurrir por la noche, pero por si acaso, usaba los LED de salida habituales (más brillantes que RGB). Además, no hay riesgo de confundir los colores en los LED de salida (aquellos que trabajaron con RGB notaron que en ciertos ángulos está claro que la luz amarilla es una combinación de rojo y verde, y así sucesivamente).
La bruja no recibe un gesto. Debajo de la cinta reforzada puede ver la batería del teléfono móvil, arriba, el vibromotor.
Foto de Ekaterina Grigorova.Digresión lírica
Es bueno cuando el sistema tiene un punto de entrada, después del cual comienza a reconocer algo. Ok Google ¿Y qué hacer cuando hay cinco de esos puntos? Los usuarios regularmente sentían una ligera vibración, el poder les invadía.
La bruja en el guante. En el cofre, el medallón es una simple electrónica, indicación de color de pociones borrachas.
Foto de Elena Mavrikidi.Luego llegamos al bosque. Varios problemas salieron por ahí. En primer lugar, nadie usaba guantes superiores de cuero; era incómodo en ellos. Entonces, en las fotos se puede observar un cyberpunk uniforme, pero lo que es mucho más desagradable: los cables murieron por esto. Varios vibromotores murieron, fueron soldados directamente al vertedero. Quizás el principal problema del guante fue el año de su creación. Todavía no teníamos una impresora 3D, no había nada embalado, todo estaba en adhesivo termofusible.
Bruja
Foto de Elena Mavrikidi.Sin embargo, el juego fue sin bajíos globales.
Que sigue
Volviendo a Moscú, lavando los guantes en la lavadora (con el controlador apagado y la batería, por supuesto), recuperando y calculando las pérdidas, pensamos en actualizarnos.
Sería posible utilizar no un cable IDE (no está destinado a la electrónica portátil en absoluto y se utilizó desde la pobreza extrema), sino un "cable rojo" telefónico. Y déjalo ir al cordón con un guante, para que el problema con el lavado no desaparezca en absoluto. Y conecte el LED IR para combinar el guante con la etiqueta láser. Y ...
Y luego a la venta apareció
myoslolet . Jugamos con él y nos dimos cuenta de que no desarrollaríamos más el guante. Sin compromisos. Leer la señal de los músculos es mucho más conveniente que la señal de los dedos. (Es cierto, para uso basado en roles, el myoslet no es adecuado debido al precio). Guantes participaron en un juego más en Primorye y recorrieron constantemente exposiciones.
Creemos que la experiencia fue útil, aunque a veces dolorosa: fue útil al crear un brazalete para reconocer un gesto dinámico, este es nuestro nuevo proyecto. Consciente de cómo nos atormentaron con sensores soldados a cables y distribuidos sobre la tela, el brazalete costó dos soldados a una placa confiable ordinaria. El guante trabajó en estática con una gran cantidad de datos iniciales (18 números de 6 sensores), la posición del brazalete se describe con 2 números (usando el algoritmo de Mahoney, convertimos 9 valores recibidos de los sensores).
Sin embargo, hay quienes están interesados en experimentar con el guante. En 2015, el guante se mostró a los participantes en una escuela de diseño, y algunos lo consideraron un desafío. Daniil Velovaty (entonces un niño de escuela, ahora estudiante de MIPT) reunió su propia versión. A diferencia de nosotros, implementó la transferencia de datos desde el dispositivo y sorprendió a los visitantes de la exposición encendiendo el hervidor de forma remota con un cartel. El lenguaje de señas de Daniel también es el suyo.
