Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Animated Character Framework #2

Closed
yiiii777 opened this issue Aug 7, 2020 · 5 comments
Closed

Animated Character Framework #2

yiiii777 opened this issue Aug 7, 2020 · 5 comments
Labels

Comments

@yiiii777
Copy link
Contributor

yiiii777 commented Aug 7, 2020

Here I want to collect and discuss guidelines for creating a graphic base of the main character. It is the graphic part (animation), and not its character, the process of growth or internal states that affect the process of personality development.

In the demos we have already shown a couple of states of the dolphin: "connecting" and "connected". I suggest making a list of basic requirements and a list of states / animations here. You can talk about the format of bitmaps or workflow interaction with the artist (s).

I suggest the following links as a reference:

  1. https://docs.microsoft.com/en-us/windows/win32/lwef/agent-states - about character design for Microsoft Agent. Here is an interesting list of his states, we do not all need them (our character does not work with a microphone and it seems like it is not necessary for him to "listen", although this animation could be used to "listen" to radio waves). Some states are interesting, such as do magic 1/2, which are called immediately before any action.
  2. https://urokikino.ru/emotion_theory_1/ - a list of basic emotions. It would be very cool to draw all these states. The red graph can be used as a list of transitions between states, but this will already be an outrageous burden on the artist / animator.
  3. https://skillbox.ru/media/design/kak_sozdat_personazha_vosem_etapov/ - basic rules for character creation, which would also be nice to use.

character_design__emotion_states_by_kiralng_d9zpqiw-fullview

I do not attach a list of poses from the Kama Sutra, and it will be difficult to draw a dolphin with all these poses. But I would like to ...

For an artist / artists, if there are a lot of them, you can try to make rigs:

  1. converter of animations in 128x64, with different dithers and filters. Then they will be able to finish what they need pixel by pixel, and before that, let them use their favorite animation packages with morphs and bones.
    2.player in HTML5, where you could upload animations and metadata for them

I suggest using GIF as the final data storage format used on the device - it provides acceptable compression, allows you to crop unused areas of the image, supports animation and timings between frames. As the icing on the cake, you can add a few proprietary frames to the format containing data on the states of the character and the transition graph: such a file will easily play all animations in the browser, but few can edit it, a kind of challenge for future hackers.

@yiiii777
Copy link
Contributor Author

yiiii777 commented Aug 7, 2020

А еще надо подумать о том, что какой-то конкретной программе могут понадобится особенные анимации (к примеру, изменяемые эмоции дельфина с прогресс-баром, как было на Кикстартере). Конечно, можно дать канвас и рисовать все самому, но это некрасиво. Впрочем, добавлять кастомные анимации в систему тоже как-то не очень.

@yiiii777
Copy link
Contributor Author

yiiii777 commented Aug 7, 2020

А еще можно подумать о изменяемом окружении дельфина, где он находится.

@glitchcore
Copy link
Contributor

Please, split this issue by two: about Dolphin (this issue) and about animation toolbox

@yiiii777 yiiii777 changed the title Создание персонажа (анимированный дельфин) Animated Character Framework Aug 18, 2020
@yiiii777
Copy link
Contributor Author

I created this issue only about animation framework, not about Dolphin personality. Added clearing in main post.

@yiiii777
Copy link
Contributor Author

https://www.youtube.com/watch?v=fA5ZM_UTZgk - our dolphin needs some environment, this can be part of our UI framework. I don't know, how closely we will build UI and Character animations, what will be part of what.

dwdraugr added a commit to mega8bit/flipperzero-firmware that referenced this issue Dec 5, 2021
dwdraugr added a commit to mega8bit/flipperzero-firmware that referenced this issue Dec 5, 2021
hedger added a commit that referenced this issue Mar 10, 2022
skotopes added a commit that referenced this issue Apr 13, 2022
* WIP on stripping fw
* Compact FW build - use RAM_EXEC=1 COMPACT=1 DEBUG=0
* Fixed uninitialized storage struct; small fixes to compact fw
* Flasher srv w/mocked flash ops
* Fixed typos & accomodated FFF changes
* Alternative fw startup branch
* Working load & jmp to RAM fw
* +manifest processing for stage loader; + crc verification for stage payload
* Fixed questionable code & potential leaks
* Lowered screen update rate; added radio stack update stubs; working dfu write
* Console EP with manifest & stage validation
* Added microtar lib; minor ui fixes for updater
* Removed microtar
* Removed mtar #2
* Added a better version of microtar
* TAR archive api; LFS backup & restore core
* Recursive backup/restore
* LFS worker thread
* Added system apps to loader - not visible in UI; full update process with restarts
* Typo fix
* Dropped BL & f6; tooling for updater WIP
* Minor py fixes
* Minor fixes to make it build after merge
* Ported flash workaround from BL + fixed visuals
* Minor cleanup
* Chmod + loader app search fix
* Python linter fix
* Removed usb stuff & float read support for staged loader == -10% of binary size
* Added backup/restore & update pb requests
* Added stub impl to RPC for backup/restore/update commands
* Reworked TAR to use borrowed Storage api; slightly reduced build size by removing `static string`; hidden update-related RPC behind defines
* Moved backup&restore to storage
* Fixed new message types
* Backup/restore/update RPC impl
* Moved furi_hal_crc to LL; minor fixes
* CRC HAL rework to LL
* Purging STM HAL
* Brought back minimal DFU boot mode (no gui); additional crc state checks
* Added splash screen, BROKEN usb function
* Clock init rework WIP
* Stripped graphics from DFU mode
* Temp fix for unused static fun
* WIP update picker - broken!
* Fixed UI
* Bumping version
* Fixed RTC setup
* Backup to update folder instead of ext root
* Removed unused scenes & more usb remnants from staged loader
* CI updates
* Fixed update bundle name
* Temporary restored USB handler
* Attempt to prevent .text corruption
* Comments on how I spent this Saturday
* Added update file icon
* Documentation updates
* Moved common code to lib folder
* Storage: more unit tests
* Storage: blocking dir open, differentiate file and dir when freed.
* Major refactoring; added input processing to updater to allow retrying on failures (not very useful prob). Added API for extraction of thread return value
* Removed re-init check for manifest
* Changed low-level path manipulation to toolbox/path.h; makefile cleanup; tiny fix in lint.py
* Increased update worker stack size
* Text fixes in backup CLI
* Displaying number of update stages to run; removed timeout in handling errors
* Bumping version
* Added thread cleanup for spawner thread
* Updated build targets to exclude firmware bundle from 'ALL'
* Fixed makefile for update_package; skipping VCP init for update mode (ugly)
* Switched github build from ALL to update_package
* Added +x for dist_update.sh
* Cli: add total heap size to "free" command
* Moved (RAM) suffix to build version instead of git commit no.
* DFU comment
* Some fixes suggested by clang-tidy
* Fixed recursive PREFIX macro
* Makefile: gather all new rules in updater namespace. FuriHal: rename bootloader to boot, isr safe delays
* Github: correct build target name in firmware build
* FuriHal: move target switch to boot
* Makefile: fix firmware flash
* Furi, FuriHal: move kernel start to furi, early init
* Drop bootloader related stuff
* Drop cube. Drop bootloader linker script.
* Renamed update_hl, moved constants to #defines
* Moved update-related boot mode to separate bitfield
* Reworked updater cli to single entry point; fixed crash on tar cleanup
* Added Python replacement for dist shell scripts
* Linter fixes for dist.py +x
* Fixes for environment suffix
* Dropped bash scripts
* Added dirty build flag to version structure & interfaces
* Version string escapes
* Fixed flag logic in dist.py; added support for App instances being imported and not terminating the whole program
* Fixed fw address in ReadMe.md
* Rpc: fix crash on double screen start
* Return back original boot behavior and fix jump to system bootloader
* Cleanup code, add error sequence for RTC
* Update firmware readme
* FuriHal: drop boot, restructure RTC registers usage and add header register check
* Furi goes first
* Toolchain: add ccache support
* Renamed update bundle dir

Co-authored-by: DrZlo13 <[email protected]>
Co-authored-by: あく <[email protected]>
cberetta pushed a commit to cberetta/flipperzero-firmware that referenced this issue Sep 20, 2022
ut1s added a commit to ut1s/flipperzero-firmware that referenced this issue Nov 9, 2022
ut1s added a commit to ut1s/flipperzero-firmware that referenced this issue Nov 16, 2022
cberetta pushed a commit to cberetta/flipperzero-firmware that referenced this issue Aug 17, 2023
* Sub Analyzer app: UPD to new driver
* Sub Analyzer: fix working on start
nminaylov added a commit that referenced this issue Dec 12, 2023
nminaylov added a commit that referenced this issue Jan 11, 2024
skotopes added a commit that referenced this issue Feb 12, 2024
* FBT: cdefines to env, libs order
* API: strtod, modf, itoa, calloc
* Apps: elk js
* Apps: mjs
* JS: scripts as assets
* mjs: composite resolver
* mjs: stack trace
* ELK JS example removed
* MJS thread, MJS lib modified to support script interruption
* JS console UI
* Module system, BadUSB bindings rework
* JS notifications, simple dialog, BadUSB demo
* Custom dialogs, dialog demo
* MJS as system library, some dirty hacks to make it compile
* Plugin-based js modules
* js_uart(BadUART) module
* js_uart: support for byte array arguments
* Script icon and various fixes
* File browser: multiple extensions filter, running js scripts from app loader
* Running js scripts from archive browser
* JS Runner as system app
* Example scripts moved to /ext/apps/Scripts
* JS bytecode listing generation
* MJS builtin printf cleanup
* JS examples cleanup
* mbedtls version fix
* Unused lib cleanup
* Making PVS happy & TODOs cleanup
* TODOs cleanup #2
* MJS: initial typed arrays support
* JS: fix mem leak in uart destructor

Co-authored-by: SG <[email protected]>
Co-authored-by: Aleksandr Kutuzov <[email protected]>
RebornedBrain added a commit to RebornedBrain/flipperzero-firmware that referenced this issue Oct 14, 2024
skotopes added a commit that referenced this issue Oct 14, 2024
* Now 4a listener invokes upper level callback on Halt and FieldOff
* Added new method for drawing mirrored XBM bitmaps
* iso14443_4a poller logic enhanced
* Function renamed accroding to review suggestions
* Rename #2
* Api adjustements
* Correct API bump

Co-authored-by: あく <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants