|
| 1 | +I made a fun little Android app with OneShot characters. |
| 2 | + |
| 3 | +Character list: |
| 4 | +- Cat Niko |
| 5 | +- Happy Niko |
| 6 | +- Hello Penguin |
| 7 | +- Ram |
| 8 | + |
| 9 | +To be added: |
| 10 | +- World Machine |
| 11 | +<br> |
| 12 | + |
| 13 | +> [!NOTE] |
| 14 | +> All assets belong to their original creators, primarily the developers of OneShot (Future Cat LLC) |
| 15 | +
|
| 16 | +## |
| 17 | +### Screenshots |
| 18 | +<img alt="Screenshots" src="https://github.com/user-attachments/assets/53aa2d2b-8aab-4f36-b1e8-e2addad8b9e0" /> |
| 19 | + |
| 20 | +## |
| 21 | +### Related projects |
| 22 | +Desktop version can be found [here](https://github.com/Artezon/NikoYippee), check it out! |
| 23 | + |
| 24 | + |
| 25 | +## |
| 26 | +### Adding your own characters |
| 27 | +**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. |
| 28 | + |
| 29 | +Currently adding characters requires rebuilding the app with Android Studio, though you don't need to edit the code. |
| 30 | + |
| 31 | +Here's an easy guide: |
| 32 | +1. Fork and clone the repository. |
| 33 | +2. Locate the `app/src/main/assets/characters` directory. This is where character directories go. |
| 34 | +3. Create a new directory there and name it however you want. Its name will not appear in the app. |
| 35 | +4. Put there two images of a character: an idle image and a speaking image. |
| 36 | +5. Put there one or more sounds of a character. |
| 37 | +6. Create `char.json` file there. It must follow the JSON structure shown in the example below: |
| 38 | + ```json |
| 39 | + { |
| 40 | + "name": "Cat Niko", |
| 41 | + "images": { |
| 42 | + "idle": { |
| 43 | + "file": "niko.png", |
| 44 | + "pixel_art": true |
| 45 | + }, |
| 46 | + "speaking": { |
| 47 | + "file": "niko_pancakes.png", |
| 48 | + "pixel_art": true |
| 49 | + } |
| 50 | + }, |
| 51 | + "sounds": [ |
| 52 | + "cat_2.ogg", |
| 53 | + "cat_3.ogg", |
| 54 | + "meow.ogg", |
| 55 | + "cat_purr.ogg", |
| 56 | + "cat_purr_short.ogg" |
| 57 | + ], |
| 58 | + "sound_random_weights": [1, 1, 0.7, 0.2, 0.3], |
| 59 | + "pitch": [0.95, 1.05] |
| 60 | + } |
| 61 | + ``` |
| 62 | + - `name` will be shown in "Select Character" menu. |
| 63 | + - `idle` image is shown by default, `speaking` is shown while app is playing a sound. `file` values must have image names relative to the json file. |
| 64 | + - `pixel_art` value determines the interpolation method. If true, nearest-neighbor interpolation is used for crisp edges on low resolution pixel art images, otherwise image is smooth. |
| 65 | + - `sounds` array must contain all sound file names relative to the json file (at least one audio file must be present). |
| 66 | + - `sound_random_weights` array 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 the `sounds` array. It's not necessary for numbers to sum to 1. |
| 67 | + - `pitch` array can be absent, or have 1 or 2 numbers. If absent, pitch is not affected. If there's one number and it's not `1`, 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]. |
| 68 | +7. If you want to change app name, edit the `app/src/main/res/values/strings.xml` file. |
| 69 | +8. Build the app with Android Studio. Test your changes. |
0 commit comments