Ir al contenido
charmotion
Mascota de marca para apps móviles

Un solo archivo de mascota para todas las plataformas donde publicas tu app.

Sube tu mascota y obtén un .riv con un contrato documentado: un número mood de 0 a 9 para los estados en loop y triggers para success, error, yes, no, enter y exit. El mismo archivo controla al mismo personaje en Flutter, React Native, Android, iOS y en la web, así que las rachas, las respuestas de los quizzes y las pantallas vacías se ven igual en todas partes.

Contrato
mood de 0 a 9 + 6 triggers
Runtimes
Flutter, RN, Android, iOS, web
Código
SwiftUI, React, web + README
Plan
Starter, $20/mes
Pebble, un personaje de demostración de Charmotion Archivo de Rive en vivo
En loop
Una vez

Este es el .riv real que entrega nuestro motor, reproduciéndose en tu navegador. Es la misma máquina de estados que controlas desde tu app con un input numérico y un trigger por cada reacción puntual.

El mismo contrato en cada runtime

Con qué se comunica tu código

CharacterViewModelMachine con el view model Character: número mood (0 idle, 1 happy, 2 wave, 3 thinking, 4 sad, 5 loading, 6 listening, 7 talking, 8 sleeping, 9 attention) y los triggers success · error · yes · no · enter · exit.

CharacterStateMachine expone el mismo grafo como inputs clásicos, y LaunchStateMachine reproduce la intro.

Por plataforma

  • iOS: vistas SwiftUI para ambos runtimes de Apple, incluidas.
  • Web y React: embed y componente, incluidos.
  • Flutter: el paquete rive.
  • Android: app.rive:rive-android.
  • React Native: @rive-app/react-native; usa el view model, ya que las API de inputs se eliminaron en Nitro v0.6.

Para Flutter, Android y React Native recibes el .riv y un README con el contrato, no fragmentos de código. Consulta Rive en Android, Flutter y React Native.

Pensado para rachas, quizzes y pantallas vacías

Momento en la appAnimaciónTipo
Racha diaria mantenidasuccess, luego happyreacción puntual, loop
Respuesta correctasuccess o yesreacción puntual
Respuesta incorrectaerror o noreacción puntual
Carga de lección o sincronizaciónloadingloop
Racha en riesgo, recordatorioattentionloop
Racha perdidasadloop
Pantalla vacíasleepingloop
Onboardingwave, enterloop, reacción puntual

Es el estilo de feedback de mascota de Duolingo: reacciones cortas que tu código dispara, entre loops tranquilos. No incluye archivos Lottie ni escenas personalizadas más allá de las 17 animaciones.

Resultados reales

Archivos entregados, tal como los descargarías.

MP4 Cada set

1080 × 1080 a 60 cuadros por segundo. Aquí: el saludo de Gummo, de un set entregado.

WebM y MOV transparentes Cada set

Incluye canal alfa, por eso se ve el fondo de cuadros. El MOV es HEVC con alfa para apps y editores de Apple.

Kiko pensando, resultado en GIF

GIF Cada set

Vistas previas ligeras para documentación, correo y chat. El loop “thinking” de Kiko.

Video de inicio en 9:16 Cada set

1080 × 1920 para historias y splash screens. La intro de inicio de Sizzle.

kiko.riv · 150 KB

CharacterStateMachine
input numérico mood
0 a 9: idle, happy, wave, thinking, sad, loading, listening, talking, sleeping, attention
triggers: success · error · yes · no · enter · exit
LaunchStateMachine
launch → idle, se reproduce una vez

Máquina de estados (state machine) de Rive Cada set

Un solo archivo pequeño en lugar de 17 videos. Es lo que hace funcionar la demo de la parte superior de esta página.

import { useRive, useStateMachineInput } from "@rive-app/react-canvas";

export function Kiko({ mood = 0 }) {
  const { rive, RiveComponent } = useRive({
    src: "/kiko.riv",
    stateMachine: "CharacterStateMachine",
    autoplay: true,
  });
  const input = useStateMachineInput(rive, "CharacterStateMachine", "mood");
  if (input) input.value = mood; // 0 idle · 1 happy · 2 wave · 3 thinking · 4 sad · 5 loading …
  return <RiveComponent style={{ width: 320, height: 320 }} />;
}

Código listo para pegar Cada set

Componentes para web, React y SwiftUI con el nombre de tu personaje.

Formatos incluidos en cada plan
FormatoEspecificacionesStarter y Todo en uno
MP41080 × 1080, 60 fps, las 17 animacionesIncluido
Video de inicio en 9:16MP4 de 1080 × 1920Incluido
GIFVistas previas de 480 px, fondo sólidoIncluido
Rive (.riv)Vectorial; view model de Data Binding + inputs heredados: mood para los loops, triggers para las reacciones puntuales, máquina de estados launchIncluido
WebM con fondo transparenteVP9 con canal alfa, 1080 × 1080Incluido
MOV con fondo transparenteHEVC con canal alfaIncluido
CódigoComponentes web (HTML), React y SwiftUIIncluido
Descargar todo (.zip)Archivo Rive, código, README y pósters en un solo archivoIncluido
Exportación de videoMP4, GIF, WebM y MOV transparentes, 9:16: elige formatos y animaciones en la página del set, listos en alrededor de un minutoIncluido
Asistentes de IA (MCP)Claude, Cursor, VS Code y CodexIncluido
Planes

Empieza gratis. Mejora tu plan cuando necesites más.

El .riv y el código están en todos los planes de pago, desde Starter ($20/mes). Cada set también incluye MP4 y GIF de cada animación, que sirven para videos de onboarding y capturas para la tienda, pero no pueden reaccionar a tu app. Precios en USD; Creem calcula los impuestos al pagar.

Free

$0para siempre

Pruébalo con tu propio logo y personaje.

  • Ideas de animación de logo (3 conceptos)
  • Vista previa en pantallas de app
  • Sin tarjeta
  • 2 diseños con IA (logos o personajes)
  • Funciona desde Claude, Cursor, Codex
  • Soporte por email

Todo en uno

100 US$/mes

Para equipos y varias marcas.

  • 15 animaciones de logo al mes
  • 10 sets de personaje al mes
  • Video 3D cinematográfico incluido
  • 40 diseños con IA al mes
  • 3 ajustes por animación de logo
  • Generación y soporte prioritarios
Preguntas frecuentes

Antes de empezar.

Más en las preguntas frecuentes completas.

¿El mismo archivo de mascota funciona en Flutter y React Native?

Sí. Flutter lo reproduce con el paquete rive y React Native con @rive-app/react-native. Para esas plataformas incluimos un README con los nombres de las máquinas de estados, los valores de mood y los nombres de los triggers, en lugar de código. En el runtime Nitro de React Native, usa CharacterViewModelMachine con Data Binding, ya que las API de inputs se eliminaron en la v0.6.

¿La mascota puede celebrar rachas como el búho de Duolingo?

De la misma forma, sí: Duolingo anima a sus personajes con máquinas de estados (state machines) de Rive que controla el código de la app. Dispara success cuando se mantiene una racha o hay una respuesta correcta, error o no ante una incorrecta, y entre una y otra cambia el mood a happy o sad. El set tiene 17 animaciones fijas; las escenas a medida requieren un animador.

¿Cuánto aumenta el peso de mi app una mascota animada?

El .riv de un arte plano pesa entre 35 y 45 KB con las 17 animaciones; un arte 3D o detallado en modo Motion ronda 1 MB. Además, el runtime de Rive se suma a tu binario, así que revísalo para tu plataforma si el peso es crítico. Los archivos MP4 y MOV en HEVC funcionan sin ningún runtime.

¿Por qué Rive y no Lottie para la mascota de una app?

Una mascota cambia de estado mientras tu app se ejecuta. Una máquina de estados de Rive lo hace en un solo archivo y mezcla las transiciones entre estados; con Lottie, tu código tiene que intercambiar animaciones lineales separadas. Entregamos Rive y video, no JSON de Lottie.

¿La mascota de la app funciona sin conexión?

Sí. Incluye el .riv en tu app y se reproduce sin conexión; nada se transmite desde nuestros servidores. Los archivos MP4, MOV y WebM también funcionan sin conexión.

Más información

Guías para este trabajo.

Míralo primero con tu personaje.

Gratis, en tu navegador. Tu imagen se queda en tu dispositivo, a menos que pidas el clip animado corto.

Vista previa gratis