/Uranium

Fast and versatile implementation of CEF for Unreal Engine

Primary LanguageC++MIT LicenseMIT

This project is currently being developed at realworld one and it's occasionally getting a backmerge as a squashed commit and removing multi-platform endeavors. At the moment it's development is on hold and we don't yet know when we will get back to it.

Uranium

Fast and versatile implementation of CEF for Unreal Engine

Features

  • Blueprint exposed API for manipulating CEF browsers
  • Use shared texture directly from Chromium
    • 4K+ HTML content at 60 FPS? No problem!
  • Browser View is environment agnostic:
    • Use it with your own logic (texture on 3D object)
    • Use it in Slate/UMG
  • Convenient Slate widget and UMG wrapper
    • Callbacks for managing multiple windows with UMG widgets
    • Customizable Slate or UMG widget for dropdowns (native popups)
    • Devtools can be also opened inside Unreal (for VR/AR apps)
  • Versatile input support
    • Inject keyboard/mouse/touch events with exposed API
  • Composable handlers for fully modular extensibility
    • (C++ only yet)

Planned features

  • Javascript interop
    • Call arbitrary javascript code on the HTML content
    • Read or Manipulate any UObject or UStruct from Javascript
    • Callbacks on property changes.
  • High level asset types using Uranium
    • SVG assets (with animation) (+ Slate/UMG widget)
    • Lottie/BodyMovin assets (+ Slate/UMG widget)
    • Plain HTML assets
  • Browser Atlas
    • Manage multiple smaller HTML components in a single large browser and use the result as a texture atlas rendered on many Unreal objects.
  • Audio output as USoundWave

Usage

Requirements

  • Unreal Engine 4.24 + (last tested with 4.26)
  • Visual Studio 2019
  • CMake (choco install cmake then make sure cmake is in PATH)
  • .NET 5 for Nuke (only when working with UraniumDeposit)

Installation

At the moment only supported way of using this plugin is via submoduling it into your code project. Beware this repository contains submodules which are not included in Github's Download as Zip functionality. It's highly recommended to

  • use this plugin as a submodule in your project's Plugins folder
  • OR clone it first with git to a temporary location, in case you don't want to use submodules or you use a different VCS.

Getting started

TODO

Documentation

TODO

CEF distribution

CEF distributables used by this plugin are stored here az 7z archives splitted into ~100 Mb volumes because of azure shenanigans with LFS.

Test project (UraniumDeposit)

This plugin is being developed inside its official test project (UraniumDeposit). It's using Nuke.Unreal for automation. See the README.md there for further documentation.


Credits