GithubHelp home page GithubHelp logo

getnamo / blui-unreal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ashea-code/blui

349.0 27.0 73.0 637 KB

CEF based HTML UI for the Unreal Engine.

License: MIT License

C# 5.02% C++ 81.56% Python 8.37% C 5.05%
unreal ue4 ue5 cef chromium html

blui-unreal's Introduction

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. See https://github.com/getnamo/BLUbrowser for repo for cef process build.

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

Discord Server

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

blui-unreal's People

Contributors

0xshammah avatar aaron1a12 avatar admiralfrijoles avatar afuzzyllama avatar ashea-code avatar brunoxavierleite avatar cartzhang avatar cthulhusec avatar getnamo avatar gmagd avatar gtnardy avatar kieranchandler avatar looterz avatar melaniet avatar nibe avatar speedy37 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blui-unreal's Issues

How to resize blui canvas ?

by resizing blui widget ,mouse cursor not working i can't click on input fields it's look like the browser widget was been shifted idk.

more info : i don't won't blui widget to be full screen i won't it to specific position
HELP !!!

How to download a pdf file ??

i use download file and bind to on download update and complete but nothing happen i can't download the pdf file :'( ?? help

Current version of CEF does not support WebRTC

CEF 3.2556.1368 does not support webRTC.

I tried replacing blu_ue4_process.exe with the latest version of CEF, but this results in an editor crash.

I'd love to help and make a pull request, but my c++ knowledge is very limited. Is there an easy way I can update CEF for this project? How are you currently building blu_ue4_process.exe? I don't see that file commited to the repo.

Thank you!

Editor Crash After Spawning Blui Actor

Editor Crashes After Spawning Blui Actor.

Fatal error!

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION 0x9a2dc100

0x00007ffa9a2dc100 libcef.dll!UnknownFunction []
0x00007ffab93f51d8 UE4Editor-Blu.dll!UnknownFunction []
0x00007ffab93fd033 UE4Editor-Blu.dll!UnknownFunction []
0x00007ffa97054986 libcef.dll!UnknownFunction []
0x00007ffa97a8131e libcef.dll!UnknownFunction []
0x00007ffa97a80695 libcef.dll!UnknownFunction []
0x00007ffa97a80c9b libcef.dll!UnknownFunction []
0x00007ffa970435fe libcef.dll!UnknownFunction []
0x00007ffab93e03dc UE4Editor-Blu.dll!UnknownFunction []
0x00007ffab93ce546 UE4Editor-Blu.dll!UnknownFunction []
0x00007ffad1db0ae4 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad20000dd UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2023113 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad202574d UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad1ff3bea UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2025392 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2023113 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad202574d UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad1ff3bea UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2025392 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad202574d UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad1ff3bea UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2025392 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad202574d UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2024c54 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad1db0ae4 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2024783 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad275a025 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad27247db UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad27302fc UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad27564f2 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad273c59c UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2e09d5e UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad3ad53c6 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad204a635 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad204ce7f UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad202574d UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2024c54 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad1db0ae4 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad2024783 UE4Editor-CoreUObject.dll!UnknownFunction []
0x00007ffad275a025 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2fea528 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2fcb57f UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2772e28 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2772f8a UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad27394c4 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad37f7e0f UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad37fce67 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad53f87d8 UE4Editor-Core.dll!UnknownFunction []
0x00007ffad53f8aa3 UE4Editor-Core.dll!UnknownFunction []
0x00007ffad540f027 UE4Editor-Core.dll!UnknownFunction []
0x00007ffad3818e52 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad381e11a UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2fdbfff UE4Editor-Engine.dll!UnknownFunction []
0x00007ffad2fe6897 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffacfe0af57 UE4Editor-UnrealEd.dll!UnknownFunction []
0x00007ffad06e1d06 UE4Editor-UnrealEd.dll!UnknownFunction []
0x00007ff6a9777800 UE4Editor.exe!UnknownFunction []
0x00007ff6a978ba7c UE4Editor.exe!UnknownFunction []
0x00007ff6a978bb5a UE4Editor.exe!UnknownFunction []
0x00007ff6a979e31d UE4Editor.exe!UnknownFunction []
0x00007ff6a97a145a UE4Editor.exe!UnknownFunction []
0x00007ffb359c6fd4 KERNEL32.DLL!UnknownFunction []
0x00007ffb365dcec1 ntdll.dll!UnknownFunction []

Downloading content disposition attachment.

I tried to download a pdf file from a download.php site i got nothing but when i try using pdf viewer it work so that's mean cef doesn't support content disposition http or what ? it's streamed chunk file ? Any help

[3.3.0] 4.21 crashes with trigger mouse move

`LoginId:c5f839384123094ad2edcf9997f27f76
EpicAccountId:413eebd000db4d61a5aa7cb057e473f0

Access violation - code c0000005 (first/second chance not available)

libcef
UE4Editor_Blu
UE4Editor_Blu
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4861]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:816]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2330]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1031]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:940]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1031]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4861]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1480]
UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:713]
UE4Editor_Engine!UPlayerInput::ProcessInputStack() [d:\build\++ue4\sync\engine\source\runtime\engine\private\userinterface\playerinput.cpp:1311]
UE4Editor_Engine!APlayerController::ProcessPlayerInput() [d:\build\++ue4\sync\engine\source\runtime\engine\private\playercontroller.cpp:2476]
UE4Editor_Engine!APlayerController::TickPlayerInput() [d:\build\++ue4\sync\engine\source\runtime\engine\private\playercontroller.cpp:4404]
UE4Editor_Engine!APlayerController::PlayerTick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\playercontroller.cpp:2137]
UE4Editor_Engine!APlayerController::TickActor() [d:\build\++ue4\sync\engine\source\runtime\engine\private\playercontroller.cpp:4543]
UE4Editor_Engine!FActorTickFunction::ExecuteTick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:137]
UE4Editor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [d:\build\++ue4\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:829]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:679]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:575]
UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:1444]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [d:\build\++ue4\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:556]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [d:\build\++ue4\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:1474]
UE4Editor_Engine!UWorld::RunTickGroup() [d:\build\++ue4\sync\engine\source\runtime\engine\private\leveltick.cpp:783]
UE4Editor_Engine!UWorld::Tick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\leveltick.cpp:1460]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1726]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3699]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:174]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:276]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
kernel32
ntdll`

Here's the error report, this does not happen in the version 4.20

Compiler error C2027 at UE4.26 dev-rendering branch

Trying to use the plugin in dev-rendering branch (UE 4.26). Every time I try to compile the plugin, the error 2027 appears. Whyever the compiler says, that it couldn't find the definition for Texture2DRecource, also when I include the .h file.
Does anyone have any hints on how to compile the plugin for UE 4.26?

How to use IME input in blui???

WebBrowser can support this:
ITextInputMethodSystem* const TextInputMethodSystem = FSlateApplication::Get().GetTextInputMethodSystem();
WebBrowserWidget->BindInputMethodSystem(TextInputMethodSystem);

but simage not suppot this。

CEF update

I did try to make TensorFlow sites work with this plugin but, without success. It might be a problem with old CEF libs. So my solution was to update CEF.

Iv found this:

Official Chromium Embedded Framework: https://bitbucket.org/chromiumembedded/cef/src/master/
Automated Builds - http://opensource.spotify.com/cefbuilds/index.html

and also I did try to follow the instruction on how to update this plugin but......to many errors with VS2017. Python code is outdate it also I do not know PY lang at all.

Is there an easier solution to get that update working?

How to use in C++ project?

Hi, I'm using the plugin in a C++ ue4 project but when I build in VS I get the following errors:

ERROR: Could not find definition for module 'BluLoader', (referenced via default plugins -> BLUI.uplugin)

When I include the source code I get a missing "ModuleManager.h" error. How do I build with this plugin added to the project? Should I add it to the engine instead?

No input on the UMG widget?

It seems like the UMG widget is completely lacking in any input method (mouse, keyboard, or otherwise). Looking at the blueprint, I can't find anything indicating that it's supposed to be there. Was this intentional or an oversight?

I feel like input should be a basic feature,

Exception_Access_Violation

Using 4.25
First of all, amazing work on keeping this alive!
I have this crash on packaged game and editor, it seems to be on creation of the level/asset

[2020.09.08-18.16.39:930][786]LogWindows: Error: === Critical error: === [2020.09.08-18.16.39:930][786]LogWindows: Error: [2020.09.08-18.16.39:930][786]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0xffffffff [2020.09.08-18.16.39:930][786]LogWindows: Error: [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffe31d4b2d6 UE4Editor-CoreUObject.dll!UObjectBase::IsValidLowLevelFast() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp:270] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffdf4ac8405 UE4Editor-Blu.dll!UBluEye::TextureUpdate() [D:\REPOSITORIES\Virtuelle Events\VirtualEvents\Plugins\BLUI\Source\Blu\Private\BluEye.cpp:153] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffdf4ac1c76 UE4Editor-Blu.dll!RenderHandler::OnPaint() [D:\REPOSITORIES\Virtuelle Events\VirtualEvents\Plugins\BLUI\Source\Blu\Private\RenderHandler.cpp:32] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffdf4aef564 UE4Editor-Blu.dll!std::vector<CefRect,std::allocator<CefRect> >::_Xlength() [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde650ad6d libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffdeae82866 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffdeb4f4958 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8926a5e libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde6cabc35 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde857296c libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde857678b libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8576380 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde85713a8 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8571c4f libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8580ce8 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde84f3861 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8d362e9 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8d36071 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8530734 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde852feae libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde8d36af8 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde84deaae libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:930][786]LogWindows: Error: [Callstack] 0x00007ffde846c8d6 libcef.dll!UnknownFunction [] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ffdf4abc602 UE4Editor-Blu.dll!TBaseFunctorDelegateInstance<bool __cdecl(float),<lambda_a176ac6b39a6bd4f7278490eafa4dc42> >::Execute() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:945] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ffe3210d0a9 UE4Editor-Core.dll!FTicker::Tick() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\Core\Private\Containers\Ticker.cpp:95] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ff73e67a213 UE4Editor.exe!FEngineLoop::Tick() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5051] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ff73e68ba7c UE4Editor.exe!GuardedMain() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\Launch\Private\Launch.cpp:169] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ff73e68bb5a UE4Editor.exe!GuardedMainWrapper() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ff73e69e31d UE4Editor.exe!WinMain() [D:\UNREALENGINE\UE_4.25_Build\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ff73e6a145a UE4Editor.exe!__scrt_common_main_seh() [d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ffe8b587bd4 KERNEL32.DLL!UnknownFunction [] [2020.09.08-18.16.39:931][786]LogWindows: Error: [Callstack] 0x00007ffe8c6cce51 ntdll.dll!UnknownFunction [] [2020.09.08-18.16.39:931][786]LogWindows: Error: [2020.09.08-18.16.39:964][786]LogExit: Executing StaticShutdownAfterError [2020.09.08-18.16.39:970][786]LogWindows: FPlatformMisc::RequestExit(1)

JSON is broken

I tried creating JSON objects in Blueprint (to send to javascript) but they don't seem to work.

New JSONObj -> SetStringValue -> GetStringValue -> PrintString

Pack error for BLUI plugin

Version: v3.2.5 for UE 4.19

This plugin works well in UEditor, but there is an error when I pack a project with this plugin.

The error is that:

doespackageexist failed: '/blui/bluiworldwidgetactorexample' is not a standard unreal filename

How to fix this error? Looking forward to your reply. Thanks!

Have a nice day!

UE4.24 - BLUI fails to recompile

I can not rebuild BLUI in ue4.24.It said 'HTML5' is not a valid platform name.I tried to remove 'HTML5' character in BLUI.UPLUGIN,but it still had error. How can i deal with it.Thank u!

Fatal crash if not a project plugin

I'm working on a custom, built from source version of the engine (4.17.2), and have been working on integrating various plugins. BLUI (specifically this fork) is one of them. When I successfully compile and test a plugin, I then move it into the engine plugin folder. However, when moving BLUI out of the project's plugin folder, the editor crashes on startup. I browsed through some logs briefly, but only found this little bit:

[2017.12.14-05.53.57:172][  0]LogWindows: Error: UE4Editor-Blu.dll!0x0000000070ACB808
[2017.12.14-05.53.57:172][  0]LogWindows: Error: UE4Editor-Blu.dll!0x0000000070A97CE7
[2017.12.14-05.53.57:172][  0]LogWindows: Error: UE4Editor-Blu.dll!0x0000000070A6DC09
[2017.12.14-05.53.57:172][  0]LogWindows: Error: UE4Editor-Blu.dll!0x0000000070A66FF3
[2017.12.14-05.53.57:172][  0]LogWindows: Error: UE4Editor-Blu.dll!0x0000000070A75A1C

I will attempt to test various other ways of moving this over to the engine plugin folder, but was hoping this was an easy fix.

CEF Process doesn't stop when using PIE

When testing from PIE, everything works fine. However, when quitting, the CEF process doesn't end.

In my test, I was playing a "fullscreen" YouTube video. When exiting, the PIE window closes, but the CEF process (blu_ue4_process.exe) continues on, and you can hear the video playing in the background. Standalone or launching doesn't have this issue.

getusermedia

I did try to work on getusermedia. Just to have a popup window for camera notification but I did stuck. If I do remember even native UE4 plugin has the same problem. I did read that there might be a solution by using javascript. So I did try it but with no result. I think webcamtests.com is using something like that. Anyways. Did anyone try to achieve that goal?

link error when packaging game

here is where part of log can be found when I packaged my game.
I'm not sure what I did wrong but would love to get this solved.
I downloaded the latest .7z from the releases and added it to the plugins directory for my project.

blui on static mesh

Does current version of Blui supports static mesh ? I can use it with widgets but even if I follow youtube tutorials, I can not get web view.

Crash: EXCEPTION_ACCESS_VIOLATION (WebBrowser Plugin needs to be turned off)

`LoginId:26070d114dd244614ccb4d8bde604f7a
EpicAccountId:37a7bb96c5bb4322a658cee725c4aa66

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000024b

UE4Editor_Blu!std::vector<CefRect,std::allocator >::_Xlength()
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
libcef
UE4Editor_CoreUObject!UObject::execCallMathFunction() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:860]
UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1011]
UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:828]
UE4Editor_CoreUObject!ProcessLocalFunction() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1079]
UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1011]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1104]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\class.cpp:4941]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\dev\unrealengine-angelscript\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1946]
UE4Editor_Engine!AActor::ProcessEvent() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\actor.cpp:944]
UE4Editor_Engine!AActor::ReceiveTick() [d:\dev\unrealengine-angelscript\engine\intermediate\build\win64\ue4editor\inc\engine\actor.gen.cpp:1108]
UE4Editor_Engine!AActor::Tick() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\actor.cpp:1165]
UE4Editor_Engine!AActor::TickActor() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\actor.cpp:1145]
UE4Editor_Engine!FActorTickFunction::ExecuteTick() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\actor.cpp:168]
UE4Editor_Engine!FTickFunctionTask::DoTask() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\ticktaskmanager.cpp:285]
UE4Editor_Engine!TGraphTask::ExecuteTask() [d:\dev\unrealengine-angelscript\engine\source\runtime\core\public\async\taskgraphinterfaces.h:847]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\dev\unrealengine-angelscript\engine\source\runtime\core\private\async\taskgraph.cpp:686]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\dev\unrealengine-angelscript\engine\source\runtime\core\private\async\taskgraph.cpp:583]
UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [d:\dev\unrealengine-angelscript\engine\source\runtime\core\private\async\taskgraph.cpp:1465]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\ticktaskmanager.cpp:560]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\ticktaskmanager.cpp:1528]
UE4Editor_Engine!UWorld::RunTickGroup() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\leveltick.cpp:782]
UE4Editor_Engine!UWorld::Tick() [d:\dev\unrealengine-angelscript\engine\source\runtime\engine\private\leveltick.cpp:1552]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\dev\unrealengine-angelscript\engine\source\editor\unrealed\private\editorengine.cpp:1683]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\dev\unrealengine-angelscript\engine\source\editor\unrealed\private\unrealedengine.cpp:410]
UE4Editor!FEngineLoop::Tick() [d:\dev\unrealengine-angelscript\engine\source\runtime\launch\private\launchengineloop.cpp:4485]
UE4Editor!GuardedMain() [d:\dev\unrealengine-angelscript\engine\source\runtime\launch\private\launch.cpp:173]
UE4Editor!GuardedMainWrapper() [d:\dev\unrealengine-angelscript\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\dev\unrealengine-angelscript\engine\source\runtime\launch\private\windows\launchwindows.cpp:263]
UE4Editor!__scrt_common_main_seh() [d:\agent_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll`

UE4 "Web Plugin" must be disable.

Small things but it might be useful for others. I did forget that my project did have UE4 Web Plugin enabled and it did cause problems with WebGL and not just with that. It can crash your editor. So be sure you disable UE4 "Web Plugin"

Android support

Hi!

I am very interested in running this on an android device, however I am a little lost at where to begin.

Anyone else had success with this? Perhaps it's a feature that could be supported? :)

Reverse premultiplied alpha

(posting issue here since this repo seems to be the most up to date)

Skia colors in CEF will have premultiplied alpha so a pixel with value (255,255,255,0.5) will actually render out as (125,125,125,0.5) in the final texture. This causes whites to appear as grey when layered over as transparent in UE4.

The solution is simple: re-multiply the color value with 1/alpha in a shader. Here's how:

  1. Make MaterialInstance public like so
/** Material instance that has final rendered result */
UPROPERTY(BlueprintReadOnly)
UMaterialInstanceDynamic* MaterialInstance;
  1. Provide a material with the domain User Interface in the Content examples for the plugin with the following simple graph:

image

  1. Set that as the default material and use a material brush to render out the final image in the content example BluiWidget:

image

Mouse interaction example

First of all, thank you for maintaining this awesome browser plugin for ue4! As an independent developer, it is very good to know someone are putting efforts into developing something so useful.

I know it has already been mentioned in the previous comments, but is it possible what we can have an example of how to use mouse to interact with the plugin or simple way of use the plugin as a texture?

Best Regards,
K

Testing pdf and blui

Hi all,
I'd love to understand if it will be possible to render pdf files directly inserted into project, locally or via URL.
Thanks!

Update Chromium

Currently the chromium is still 48, which is pretty outdated (doesn't support css-grid for example) is there a clear guide on how to upgrade the CEF? I could attempt it and make a PR

Does not work if DefaultBuildSettings is not set to BuildSettingsVersion.V2

I am upgrading a project from UE 4.22 to 4.25 and if I dont use the following:
DefaultBuildSettings = BuildSettingsVersion.V2;
because I would need to update all legacy paths (#includes)

Your plugin throws a compile error:
BLUI\Source\Blu\Public\RenderHandler.h(3): fatal error C1083: Cannot open include file: 'CEFInclude.h': No such file or directory

Why is this file in a Private directory? And how do I compile without that flag on?

Cannot open include file: 'ModuleManager.h'

I am trying to build the plugin on AngelScript-UE (An version of UnrealEngine that comes with AngelScript) and i get this :
/Documents/Unreal Projects/NARCO_/Plugins/BLUI/Source/BluLoader/Private/BluLoaderPrivatePCH.h(6): fatal error C1083: Cannot open include file: 'ModuleManager.h': No such file or directory

Does anyone have any idea?

webkit Speech Recognition?

Hey. I'm trying to configure voice recognition to speech and it either does not work or is partially supported. I reassembled the plugin with console commands added, but that didn't work. Maybe you noticed and I'm doing something wrong. And how can this be made to work?
in Plugins\BLUI\Source\Blu\Private\BluManager.cpp

BluManager::CPURenderSettings = false;
	/////////////////

        command_line->AppendSwitch("off-screen-rendering-enabled");
	command_line->AppendSwitchWithValue("off-screen-frame-rate", "60");
	command_line->AppendSwitch("enable-font-antialiasing");
	command_line->AppendSwitch("enable-media-stream");
	command_line->AppendSwitch("enable-speech-input");
	command_line->AppendSwitch("enable-speech-api");
	command_line->AppendSwitch("enable-speech-synthesis-api");

	// Should we use the render settings that use less CPU?

I enclose a working demo html code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <title>Voice recognition and text reading</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
  <div class="controlbuttons" class="container-fluid" class="d-flex justify-content-center">
      <button type="button" class="btn btn-primary" onclick="speech ()">Listen</button>
      <button type="button" class="btn btn-success" onclick="talk ()">Talk</button>
      <button type="button" class="btn btn-danger" onclick="stop ()">Stop</button>
  </div>

  <div class="controlbuttons" class="container-fluid" id="vue">
    <h4>Intermediate result: {{ speaktext }}</h4>
    <h4 style="color:rgb(63, 70, 172);">You said: {{ speakstoptext }}</h4>
  </div>

  <script>
  // Create a recognizer
  var recognizer = new webkitSpeechRecognition();

  // We put an option so that recognition starts even before the user finishes talking
  recognizer.interimResults = true;

  // What language will we recognize?
  recognizer.lang = 'en-US';

  // We use the callback to process the results
  recognizer.onresult = function (event) {
    var result = event.results[event.resultIndex];
    var text = result[0].transcript;
    if (result.isFinal) {
      //alert('You said: ' + text);
      app.speakstoptext = text;
    } else {
      //console.log('Intermediate result: ', text);
      app.speaktext = text;
    }
  };

  function speech () {
    // We begin to listen to the microphone and recognize the voice
    recognizer.start();
  }

  var synth = window.speechSynthesis;
  var utterance = new SpeechSynthesisUtterance('How about we say this now? This is quite a long sentence to say.');

  function talk () {
    synth.speak (utterance);
  }

  function stop () {
    synth.pause();
  }

  </script>

  
  <script>
      var app = new Vue({
      el: '#vue',
      data: {
        speaktext: 'Hello',
        speakstoptext: 'Hello' 
      },
      methods: {
        speak: function(event) {
          this.speak = event.target.value
        },
        speakstop: function(event) {
          this.speakstop = event.target.value
        }
      }
    })
  </script>

  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  <style>
      .controlbuttons {
        border: 1px solid powderblue;
        padding: 30px;
      }
  </style>
</body>
</html>

Wrong Key Codes For Arrow Keys (Can't Build)

Hey, I forked and did a pull request to fix the wrong key codes that were entered in BluEye.h and I tried building myself but I couldn't because the builder.py seems really outdated.

What is "Patch"?

Everything is blank in a packaged demo

I download your demo for 4.22 and package it. When I open the BLUI.exe, I find every module seems invalid. Including BLUI 1-10 and the logo in the top-left of screen is blank. I am not sure if I did something wrong and my package setting is default. Can you help me?
微信图片_20191119113617

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.