I made a fun little Android app with OneShot characters.
Character list:
- Cat Niko
- Happy Niko
- Hello Penguin
- Ram
To be added:
- World Machine
Note
All assets belong to their original creators, primarily the developers of OneShot (Future Cat LLC)
Desktop version can be found here, check it out!
Everyone is encouraged to add new characters to the app! You can create a version of this app featuring characters from entirely different media as well.
Currently adding characters requires rebuilding the app with Android Studio, though you don't need to edit the code.
Here's an easy guide:
- Fork and clone the repository.
- Locate the
app/src/main/assets/charactersdirectory. This is where character directories go. - Create a new directory there and name it however you want. Its name will not appear in the app.
- Put there two images of a character: an idle image and a speaking image.
- Put there one or more sounds of a character.
- Create
char.jsonfile there. It must follow the JSON structure shown in the example below:{ "name": "Cat Niko", "images": { "idle": { "file": "niko.png", "pixel_art": true }, "speaking": { "file": "niko_pancakes.png", "pixel_art": true } }, "sounds": [ "cat_2.ogg", "cat_3.ogg", "meow.ogg", "cat_purr.ogg", "cat_purr_short.ogg" ], "sound_random_weights": [1, 1, 0.7, 0.2, 0.3], "pitch": [0.95, 1.05] }namewill be shown in "Select Character" menu.idleimage is shown by default,speakingis shown while app is playing a sound.filevalues must have image names relative to the json file.pixel_artvalue determines the interpolation method. If true, nearest-neighbor interpolation is used for crisp edges on low resolution pixel art images, otherwise image is smooth.soundsarray must contain all sound file names relative to the json file (at least one audio file must be present).sound_random_weightsarray determines the chances of getting each sound. If you have only one sound or you want all sounds to have equal probability, you can omit this array from json. If present, it must have the same length as thesoundsarray. It's not necessary for numbers to sum to 1.pitcharray can be absent, or have 1 or 2 numbers. If absent, pitch is not affected. If there's one number and it's not1, pitch is multiplied by that number. If there are 2 numbers, pitch is chosen randomly between them. They must be in ascending order [min, max], e.g. [0.9, 1.1].
- If you want to change app name, edit the
app/src/main/res/values/strings.xmlfile. - Build the app with Android Studio. Test your changes.