unleashed-firmware/assets/dolphin
2024-03-29 14:05:07 +03:00
..
blocking Assets: correct MicroSD card pinout in service animations (#2323) 2023-01-29 17:55:04 +07:00
external Merge remote-tracking branch 'OFW/dev' into dev 2024-03-29 14:05:07 +03:00
internal Assets: correct MicroSD card pinout in service animations (#2323) 2023-01-29 17:55:04 +07:00
ReadMe.md Merge branch 'ofw_dev' into dev p1 2024-03-10 23:35:44 +03:00

Dolphin assets

Dolphin assets are split into 3 parts:

  • blocking - Essential animations that are used for blocking system notifications. They are packed to assets_dolphin_blocking.[h,c].
  • internal - Internal animations that are used for idle dolphin animation. Converted to assets_dolphin_internal.[h,c].
  • external - External animations that are used for idle dolphin animation. Packed to resource folder and placed on SD card.

Files

  • manifest.txt - contains animations enumeration that is used for random animation selection. Starting point for Dolphin.
  • meta.txt - contains data that describes how animation is drawn.
  • frame_X.png - animation frame.

File manifest.txt

Flipper Format File with ordered keys.

Header:

Filetype: Flipper Animation Manifest
Version: 1
  • Name - name of animation. Must be exact animation directory name.
  • Min butthurt, Max butthurt - range of dolphin's butthurt for this animation.
  • Min level, Max level - range of dolphin's level for this animation. If 0, this animation doesn't participate in random idle animation selection and can only be selected by exact name.
  • Weight - chance of this animation to be chosen at random animation selection.

Some animations can be excluded from participation in random animation selection, such as L1_NoSd_128x49.

File meta.txt

Flipper Format File with ordered keys.

Header:

Filetype: Flipper Animation
Version: 1
  • Width - animation width in px (<= 128)

  • Height - animation height in px (<= 64)

  • Passive frames - number of bitmap frames for passive animation state

  • Active frames - number of bitmap frames for active animation state (can be 0)

  • Frames order - order of bitmap frames where first N frames are passive and following M are active. Each X number in order refers to bitmap frame, with name frame_X.bm. This file must exist. Any X number can be repeated to refer same frame in animation.

  • Active cycles - cycles to repeat of N active frames for full active period. E.g. if frames for active cycles are 6 and 7, and active cycles is 3, so full active period plays 6 7 6 7 6 7. Full period of passive + active period are called total period.

  • Frame rate - number of frames to play for 1 second.

  • Duration - total amount of seconds to play 1 animation.

  • Active cooldown - amount of seconds (after passive mode) to pass before entering next active mode.

  • Bubble slots - amount of bubble sequences.

  • Any bubble sequence plays whole sequence during active mode. There can be many bubble sequences and bubbles inside it. Bubbles in 1 bubble sequence have to reside in 1 slot. Bubbles order in 1 bubble sequence is determined by occurrence in file. As soon as frame index goes out of EndFrame index of bubble - next animation bubble is chosen. There can also be free of bubbles frames between 2 bubbles.

  • Slot - number to unite bubbles for same sequence.

  • X, Y - are coordinates of left top corner of bubble.

  • Text - text in bubble. New line is \n

  • AlignH - horizontal place of bubble corner (Left, Center, Right)

  • AlignV - vertical place of bubble corner (Top, Center, Bottom)

  • StartFrame, EndFrame - frame index range inside whole period to show bubble.

Understanding of frame indexes

For example we have

Passive frames: 6
Active frames: 2
Frames order: 0 1 2 3 4 5 6 7
Active cycles: 4

Then we have indexes

                        passive(6)            active (2 * 4)
Real frames order:   0  1  2  3  4  5     6  7  6  7  6  7  6  7
Frames indexes:      0  1  2  3  4  5     6  7  8  9  10 11 12 13