October 16

Стартап #2

Основная идея

Стрим на YouTube приложения, которое за донаты будет выполнять какое-то действие с помощью ИИ.

Вариант реализации 1

Приходит донат с текстом -> текст прогоняется через опеределенные ИИ -> на выходе получается видео + озвучка -> видео и озвучка воспроизводятся на стриме.

Вариант реализации 2

По типу спанч-боба.
Пример: https://www.youtube.com/watch?v=zD9wofGof80
Для приема донатов и промптов этот сервис: https://streamelements.com

Donation сервисы с API

1. Streamlabs: Этот сервис поддерживает командные уведомления и интеграцию с вебhooks, что позволяет отправлять HTTP-запросы на заданные URL. Для этого нужно настроить webhook в разделе уведомлений и создать команды для чат-бота.

2. Murmur: Этот сервис предоставляет возможность создания кастомных команд, которые могут триггерить HTTP-запросы. Вам нужно будет настроить свои команды и указать, какие действия следует выполнить при их активации.

3. TwitchBot (или аналог): Некоторые чат-боты для Twitch, такие как Nightbot или StreamElements, позволяют добавлять команды, которые могут отправлять запросы к API. Это можно настроить через их панели управления.

4. IFTTT (If This Then That): Этот сервис позволяет создавать рецепты, которые реагируют на определённые события (например, получение доната) и отправляют HTTP-запросы. Вам нужно будет интегрировать его с вашим стриминг-сервисом.

5. Zapier: Этот сервис позволяет создавать автоматические рабочие процессы (запы), которые могут реагировать на события и отправлять HTTP-запросы. Вы можете настроить его так, чтобы он реагировал на определённые действия в чате или донаты.

Unreal Engine

Мне нужно реализовать на Unreal Engine такую задачу:
Нужно сделать не игру, а скорее просто сцену, на которой будут расположены персонажи и они будут должны выполнять определенные анимации в определенный момент. В определенный момент на персонажа фокусируется камера. Анимация должна запускаться по команде из вебсокета. Следовательно нужно создать интерьер, персонажей, анимации и добавить логику подключения к сокетам и обработку сообщений. Как сделать последнее? На чем должен быть написан скрипт и как его привязать к Unreal Engine?

Для реализации вашей задачи в Unreal Engine, вы можете следовать следующим шагам. Основные компоненты включают интерьер, персонажей, анимации и логику для подключения к веб-сокетам.

### 1. Создание сцены - Интерьер: Используйте редактор уровня в Unreal Engine для создания или импорта интерьера вашей сцены. Вы можете использовать стандартные примитивы (например, стены, полы, мебель) или импортировать 3D-модели из других программ (например, Blender или Maya).
- Персонажи: Создайте или импортируйте 3D-модели персонажей. Вы можете использовать заранее подготовленные модели из библиотеки UE Marketplace или импортировать свои.

### 2. Создание анимаций - Анимации: Создайте анимации для ваших персонажей. Это можно сделать с помощью инструментов анимации Unreal Engine, таких как AnimBP (Animation Blueprint). Убедитесь, что анимации привязаны к вашим персонажам.

### 3. Подключение к веб-сокетам В Unreal Engine для работы с веб-сокетами обычно используются C++ или Blueprints:

#### a. Использование C++ 1. Создайте новый класс: Создайте новый класс на основе UObject или AActor.
2. Добавьте зависимости: Вам может потребоваться добавить WebSocket библиотеку. В Unreal Engine 4/5, для этого можно использовать Third Party библиотеки, такие как [WebSocket](https://github.com/UnrealEngine/WebSocket).
3. Подключите веб-сокеты: Используйте методы из библиотек для соединения с вашим веб-сокетом. Например:

   // В вашем заголовочном файле
   #include "WebSocketsModule.h"
   #include "IWebSocket.h"
   // В вашем .cpp файле
   void MyWebSocketClass::Connect()
   {
       FWebSocketsModule& WebSocketModule = FWebSocketsModule::Get();
       TSharedPtr<IWebSocket> WebSocket = WebSocketModule.CreateWebSocket("ws://your_websocket_address");
       WebSocket->OnMessage() = [this](const FString& Message)
       {
           HandleMessage(Message);
       };
       WebSocket->Connect();
   }

#### b. Использование Blueprints Если вы хотите сделать это через Blueprints:
1. Импортируйте плагин: Убедитесь, что ваш проект зависит от плагина WebSocket.
2. Создайте Blueprint Actor: Создайте новый Blueprint Actor и добавьте логику для подключения к веб-сокету в визуальном скрипте.
3. Обработка сообщений: Создайте обработчик сообщений в Blueprint, который будет реагировать на входящие сообщения.

### 4. Запуск анимаций по команде 1. Создайте функции для управления анимациями: В вашем Animation Blueprint создайте функции для запуска анимаций, которые будут вызываться из вашего класса управления веб-сокетами.
2. Соедините веб-сокеты с анимациями: В вашем обработчике сообщений привязывайте полученные команды от веб-сокетов к функциям запуска анимаций.

Пример обработки сообщения в C++:
void MyWebSocketClass::HandleMessage(const FString& Message)
{
    // Предположим, что ваше сообщение имеет формат "command:animation_name"
    FString Command, AnimationName;
    if (Message.Split(":", &Command, &AnimationName))
    {
        if (Command == "play_animation")
        {
            PlayAnimation(AnimationName);
        }
    }
}


### 5. Фокусировка камеры Вы можете добавить логику перемещения камеры к конкретному персонажу, когда поступает соответствующая команда:
- Создайте переменную для хранения ссылки на перемещаемую камеру.
- В функции обработки сообщения добавьте код для перемещения камеры к нужному персонажу.

### Пример проекта
Вы можете использовать следующие шаги для начального проекта:
1. Создайте новое проект в Unreal Engine.
2. Создайте уровень и разместите на нем персонажей.
3. Настройте анимации для персонажей.
4. Реализуйте классы и методы для подключения к веб-сокету и обработки сообщений.