:Here's my entry for the
#CharacterChallenge — the
Rive x
Contra challenge.
Kaguya — The Moon Princess🌕
Kaguya is Japan's oldest folktale — a princess discovered inside a stalk of bamboo, destined to one day return to the moon. Using
Rive, I brought this story to life as an interactive character living inside an app.
She responds to three kinds of input:
Touch — As the story unfolds, tapping the bamboo three times brings her into the world, born from the stalk. Tap her, and joy or surprise appears at random. Offer her the treasures, and the fakes are exposed — bursting into flames or cracking apart.
Data — Each treasure the suitors offer shifts her emotional state. As her mood value drops, her expression gradually falls, and the world draws her closer to the moon.
Motion — Tilt your device, and the moon's pull literally reaches for her. Her body and her adoptive parents' hands respond in real time. The device's accelerometer (via Expo) reads the tilt and feeds that value straight into Rive.
Everything was built in Rive — State Machine, Data Binding, nested ViewModels, and a 1D Blend for the tilt animation. By embedding it into a React Native (Expo) app, I aimed for a character that isn't a sticker placed on top of the product, but one that truly lives inside it.
I'm a solo indie developer and illustrator from Japan. The art, rigging, animation, and code — I made every part of it myself.
👉
https://rive.app/community/files/28128-53118-kaguya-the-moon-princess