(Hit up the wiki for a quick start guide!)
Do you use BLUI in your project? I'd really love it if you credit me and it! You can even use the logo right here!
License: MIT
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.
- 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!
Copy the files located inside the shipping
folder to your Unreal Engine binaries folder (such as C:\Program Files\Unreal Engine\4.6\Engine\Binaries\Win64
)
Then copy the BLUI
folder into the "Plugins" folder within your project directory, and enable the plugin by adding:
PublicDependencyModuleNames.AddRange(new string[] { "Blu" });
To YouProject.Build.cs
Re-generate your project's Visual Studio file and load up the editor. Then check the plugin list to ensure it has been loaded!
You must call the BluManager::doBluMessageLoop();
method every tick in order for the CEF process to update properly. To do this, override the default GameMode's Tick function and include the Blu/Public/BluManager.h
header file. You can then call the appropriate method.
As of now, you no longer need to do this. You can simply call a blueprint node to Tick the CEF loop every tick of the level blueprint.
Set your default URL or use the "Load URL" node/method to load a URL that starts with blui://
this will point to the directory root of the project or the game (if packaged). So if you wanted to load an HTML file from YourProject/UI/file.html
, set the URL to blui://UI/file.html
Within the release, you'll find an ExampleHUD blueprint file, place this into your project's blueprints directory to try it out! (It's a simple UMG widget pre-configures to accept keyboard and mouse input, with a BluEye instance hooked up to a canvas)
Copy all contents of shipping
into your packaged game's GameName/Binaries/Win64
, these are the required files for the Chromium process.