Coder Social home page Coder Social logo

yoloforks / emotewall Goto Github PK

View Code? Open in Web Editor NEW

This project forked from realityripple/emotewall

0.0 0.0 0.0 2.15 MB

RealityRipple's Home-Made Emote Wall for Twitch, Kick, and YouTube - Supports animated Twitch emotes, FFZ emotes, BTTV emotes, 7TV emotes, Emojis, and zero-width emotes. Kappagen command and event triggers are also available, with advanced configuration capabilities.

Home Page: https://realityripple.com/Tools/Twitch/EmoteWall/

License: The Unlicense

HTML 100.00%

emotewall's Introduction

RealityRipple's Home-Made Emote Wall

A home-made emote wall for Twitch.TV, Kick, and YouTube Livestreams, supporting animated Twitch emotes, BetterTTV, FrankerFaceZ, 7TV, and Emojis! Kappagen command and event triggers are also available, with advanced configuration capabilities.

Supports

  • Chromium-based browsers
  • Broadcasting tools, such as:
    • OBS Studio
    • SE.Live
    • Streamlabs Desktop
    • Streamlabs Mobile (if your emotes.html file is hosted on a server)

Building

Simply download the emotes.html file and open it in your favorite text editor. The notes in CONFIG.md will explain how to configure everything. Then add a new Browser source and select the file locally, or upload the file to a webserver and use its URL.

Download

You can grab the latest release from the Official Web Site, which also includes a GUI Wizard for setting up the configuration.

Notes and Caveats

Update Procedure

To update this emote wall, simply use the Wizard to import and download it.

  1. Visit the official page.
  2. Click "Download Emote Wall" and choose "Use the Wizard".
  3. Import your previous HTML file by clicking "Import from File".
  4. Make any changes you need to make on each page.
  5. At the end of your configuration, hit "Download".

You will receive a new version of your HTML file with your previous settings.

Emojis

Twitch filters out the ZWJ (Zero-Width Joiner) character which is used for merging many emojis. This system makes use of basic character detection to correctly parse many standard ZWJ-style emojis even without the ZWJ character, however more complicated sets such as the "family units" are not possible to correctly handle. The alternative character 0xE0002 used by some third-party Twitch chat projects will be correctly parsed as a ZWJ according to the rules laid out in the RFC:
Emoji RFC

Emote Dimensions

Emotes that are not square may be shrunk to fit while maintaining the original aspect ratio for certain animations, such as the Pyramids and Text kappagens, and Cubes. Some emote sizes are non-standard and not correctly provided. The dimensions of non-square images are stored in the OBS Browser Source's IndexedDB, so that after the first time the image is displayed, the correct dimensions will be used. This also means that some emotes (notably Twitch's basic smile set) may be squashed the very first time they're displayed.

Cheers

The cheer style will be used for kappagens. If a user cheers 1000 bits in a single 1000 bit emote, then the kappagen will be made of the 1000-bit cheers. However, if the user cheers 1000 bits using multiple smaller cheer emotes, those emotes will be used for the kappagen instead.

Kappagen

Each emote-splosion uses the number of emotes defined in the kappa count preference mentioned above, except Pyramid, which uses a constant number based on the pyramidDist array (below). If the trigger includes specific emotes (via kappagen, cheer, or resub message), the ratio of one emote to another will be maintained. If a user with kappa access posts "!kappagen PunchTrees PunchTrees SSSsss" then two thirds of the emotes in the emote-splosion will be "PunchTrees", and one third will be "SSSsss".

YouTube support

YouTube Livestream support is still under active development, and does not currently support Monetized Channel events such as memberships, super chats, or stickers. It will, however, detect and send information on such events to the RealityRipple webserver for development purposes, if you enable the feedback option in the configuration. Additionally, due to the myriad limitations in the YouTube API, there is currently no method to load any custom channel emojis, and Google's interest in improving the API seems to be, essentially, nonexistent.

OBS

This emote wall may do better if the browser source has a frame rate limit of 30 or 60. If you use your GPU while streaming, you may wish to disable Browser Source Hardware Acceleration. It may also work better using a smaller screen resolution (such as 720p on a 1080p screen) and then stretching the browser source to fit to the screen using the OBS Transform feature.

Inefficiencies

This emote wall uses normal <img> objects rather than a HTML Canvas. While this lowers efficiency, it also adds better GIF file support and allows easier user manipulation.

At present, the "zoom in" and "zoom out" feature uses a resource-heavy design. I had hoped the new CSS directive "scale: " would have helped, however it's useless without a "scale-origin" directive to accompany it.

The Bounce animation uses specific position-based drawing rather than actually being animated.

The Cube animation uses eight objects on screen for every image, making it a particularly resource-heavy drawing.

If your computer has trouble with this emote wall, please try disabling these options.

emotewall's People

Contributors

realityripple avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.