Skip to content
/ BLUI Public
forked from getnamo/BLUI-Unreal

CEF based HTML UI for the Unreal Engine.

License

Notifications You must be signed in to change notification settings

immutable/BLUI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

release BLUI-logo Github All Releases

Getnamo Fork Notes

A fork of BLUI that is kept relatively up to date.

Latest release is updated to CEF 90.0.4430.212.

To install check out the latest releases https://github.com/getnamo/BLUI-Unreal/releases and drag and drop Plugins folder into your project root folder

Unreal thread: https://forums.unrealengine.com/community/released-projects/29036-blui-open-source-html5-js-css-hud-ui

Convenience Blueprints

The native plugin didn't contain any self contained drag and drop examples so I've added some.

examples

BluiWidget

A user widget (UMG) blueprint which embeds a BLU texture as an image brush. Contains various utility functions to allow loading and parsing urls easily. Call InitBluEye with starting url and browser window size to start this widget. See BluiWorldWidgetActorExample for an example of how it's used in practice.

BluiWorldWidgetActorExample

Encapsulated BluiWidget user widget in an actor. Drag and drop this actor into your scene and it will auto-spawn the required BluTickActor to make everything work.

example output

3 BluiWorldWIdgetActorExample actors with youtube.com, blui ue4 and local://test.html specified as their URL respectively

Url

By default the actor will check the url for local:// protocol and load local content first if detected. This should be placed inside the following directory: {project root}/Content/html. NB: You can still use the vanilla blui:// protocol which will load content relative to your project root.

local url

e.g. having a test.html file inside your Content/html folder

Basic URL validity is also tested, but you can safely ignore http:// etc. E.g. just specifying youtube.com will resolve correctly

If your URL isn't valid however, it will redirect the string as a search term e.g. typing a sentance or a search term.

auto-search

You can untick Should Auto Search Invalid Url to disable this behavior.

Resize

By default the actor has a BLUI resolution of 1000x1000, you can change this by just changing the user widget draw size.

resize

BluTickActor

Since 4.0.0 - This actor is no longer needed. Ticking happens internally.

Older verions: Instead of ticking in your level bp, I prefer to use a simple actor to do the ticking. Other convenience blueprints may spawn this as necessary so if you use those, you don't ever need to use this directly.

Demo Project

Thanks to @oivio we have the Demo project updated to the latest release. See https://github.com/getnamo/BLUI-Unreal/releases/tag/3.4.0 for the 4.22 Demo project release (BLUI-v3.4.0-UE4.22-DemoExamples.7z)

Video of Demo project

Demo Project

Click on image to take you to video.

What is it?

BLUI is an Unreal Engine 4 plugin that allows easy interaction with the Chromium Embedded Framework. It provides a simple Material Instance and input functions to help streamline the rendering of rich HTML interfaces.

BLUI tries to stay out of the way as much as possible. All rendering of the DOM and processing of the JavaScript happens in a separate process, just like Chromium. BLUI only updates the texture inside the material instance when Chromium requests a redraw, not every tick, saving a bit more processing along the way.

Features

  • Chromium Powered (same thing that powers Google Chrome!)
  • Fully compatible with every web technology that Chrome/Chromium works with. (HTML5, WebAudio, WebSockets etc.)
  • No specific ties to any in game class, simple use Blueprints (or C++) to create a new "BluEye" object and grab its material instance, then you can paint it on anything!
  • Execute JavaScript in the "browser" from your game to pass data to the web page
  • Using blu_event JS native function you can pass data from the page's JavaScript back into UE4!
  • C++ or Blueprints, works with both!

Setting up the editor and project

Then copy the BLUI folder into the "Plugins" folder within your project directory, and enable the plugin.

Re-generate your project's Visual Studio file and load up the editor. Then check the plugin list to ensure it has been loaded!

Loading Local Files

Set your default URL or use the "Load URL" node/method to load a URL that starts with local:// this will point to the Content/html directory root of the project or the game (if packaged). So if you wanted to load an HTML file from YourProject/Content/html/UI/file.html, set the URL to local://UI/file.html

About

CEF based HTML UI for the Unreal Engine.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 81.1%
  • Python 8.6%
  • C 5.2%
  • C# 5.1%