Skip to content

Latest commit

 

History

History
86 lines (78 loc) · 9.37 KB

README.md

File metadata and controls

86 lines (78 loc) · 9.37 KB

Необходимые штуки (релиз 1.0)

Доделать GUI

  1. +Чтобы Катру можно было перемещать по левому клику
  2. +Чтобы правый клик открывал бы меню (как делать коллбеки на эти пункты?)
  3. Собирать меню (системное/дебаговое) по правому клику на основе плагинов и коллбеков
  4. +Сделать базовое окно диалога для текста
  5. Сделать окно диалога (которые собирается на основе плагинов), он будет единый для диалога по дабл-клик
  6. То есть Катра может начинать диалоги с вариантами ответов и ветвлением
  7. Двойной клик по Катре -- диалог с пунктами меню (которые собирается на основе плагинов)
  8. +В диалоге текст показывается с анимацией посимвольно
  9. +Анимация (мигание)
  10. Клик по диалогу закрывает его

Сделать систему плагинов

  1. +Какой-нибудь стандартный формат для API
  2. +Плагины на питоне, каждый цикл пробегать по всем методам on_tick в плагинах
  3. Сделать on_boot/on_close, который исполняется один раз. on_boot это не init, в init техника, в on_boot поведение - не забывать ожидание после on_close
  4. +Может использовать какой-то сторонний планировщик?

Сделать поведение

  1. +Движок для наложения слоёв
  2. +Слои накладываются с анимацией (периодичность)
  3. +Наложенные слои -- теггировать по именам (файл с конфигурацией эмоций)
  4. Сделать файл с рандомными фразами
  5. +делать перенос строки
  6. Сделать рандомными части диалогов. То есть строчка одна, но она может комбинироваться.
  7. +"Сейчас %(hour24), %(username)." - говорить сколько сейчас время
  8. "Очень важно поддерживать режим." -- разные фразы в зависимости от времени (реализовать в hour_dialogue_plugin)
  9. normalboottalk -- приветствовать в зависимости от времени дня, прощаться - желать хороших снов
  10. +Убрать (пока нет системы настроения) mouth с тэгом bad из рандомной ротации
  11. Ты её гладишь (средняя кнопка мыши, без разницы пока где) -- она улыбается и смотрит на тебя
  12. Несколько вариантов часового диалога

Общий шаблонизатор строк

  1. Все строки в одном файле с айдишниками
  2. Сделать возможность внедрять теги с эмоциями (forced) и %username, %hour24 переносом строки
  3. У каждой строки несколько вариантов
  4. У каждого варианта есть опциональные рандомно включаемые варианты
  5. Шаблонизатор генерирует как эмоцию изменить, что писать текстом и что отправлять в tts

Технические штуки

  1. +Сделать папку с плагинами
  2. Сделать наследование плагинов (конфиг, self.w, tick с зацикленностью)
  3. +Сделать динамическую инициализацию, но писать __all__ = [], чтобы можно было задавать порядок без заморочек с зависимостями -- к чёрту порядок, пусть через очереди общаются
  4. Чтобы можно было обращаться к экземпляру класса плагина напрямую (ссылка на экземляр где-то хранилась)
  5. Глобальное хранилище состояния -- там будет текущий expr, forced expr, desired expr
  6. +наверное плагины говорения будут через очередь передавать диалоги на плагин отображения, очередь тоже в global state
  7. Придётся всё-таки делать динамический discovery слоёв, но не линковать их динамически, а указывать фрагмент имени файла (имя слоя) вместо файла
  8. По поводу pdn -- сделать так чтобы у каждой группы было обязательно по одному элементу всегда, и они бы не конфликтовали (каждый элемент стыковывался бы с любыми из другой группы)

Крутые штуки (дальше)

  1. +Синтез голоса
  2. Помодоро (все функции eyes relax)
  3. Чтобы она говорила идти тренироваться, спрашивала результаты и вела дневник
  4. Чтобы можно было рассказать ей про свой режим, и она бы помогала поддерживать его
  5. Чтобы она что-то делала (читала, следила за тобой)
  6. чтобы она периодически спрашивала настроение и выбирала соотв фразы -- поддерживающие, мотивирующие
  7. Чтобы у неё было своё настроение (выбор эмоции был бы не случайным), и ты бы его типа менял своими действиями
  8. Когда наводишь на неё мышку, она в любом случае начинает смотреть на тебя и улыбаться, типа ты можешь захватить внимание
  9. Система настроения -- можно повышать например "гладя по голове" (средняя кнопка мыши), то есть это уже регионы тела как в shimeji
  10. Портит настроение если что-то делать неправильно (сидеть ночью, например) или
  11. Попробовать ещё раз сделать захват заголовков активных окон и реакцию на них
  12. Локальное хранилище sqlite с синхронизацией через яндекс-диск
  13. Чтобы Катра могла чем-то заниматься. Хоть книгу читать (сделать background просто как первый слой наложения)
  14. Слушай, а пусть она мне рандомную картинку показывает иногда из папки с мемами
  15. Вообще если честно, то я хочу иметь возможность испортить ей настроение, сделать больно, неприятно, разозлить, обидеть
  16. Спрашивать её да/нет/может быть etc - на простых вероятностях
  17. Игры с Катрой (https://www.tutorialspoint.com/artificial_intelligence_with_python/artificial_intelligence_with_python_gaming.htm) от текстовых до крестиков-ноликов
  18. Можно попробовать взаимодействовать с Replika API через затравку диалога?
  19. Одежда?
  20. Чтобы она могла блокировать веб-сайты как-то, отключать компьютер, типа focus mode во время pomodoro

Вообще подумай, что ты можешь сделать логичным, при этом рандомным?

  1. Смена эмоций на лице, моргание
  2. Влияние событий (добавлять какой-то шум, чтобы поведение не было 100% детерминировано)
  3. Рандомные фразы (и диалоги). Комбинирование частей фразы.
  4. Чтобы она что-то делала сама

Интересные идеи

  1. Катра -- кошка. Кошки боятся собак, гоняются за мышами, любят сидеть в коробках, ещё просят часто чтобы их покормили и куда-то выпустили
  2. Ещё кошки мурчат, шипят, если очень злые -- воят. Ещё они иногда хотят играть и ласки.
  3. Кошки балдеют от кошачьей мяты и валерьянки
  4. Кошки следят за птицами
  5. Кошки умываются, вылизывая себя