Announcement

Collapse
No announcement yet.

BLUI Open Source HTML5/JS/CSS HUD/UI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by coden4fun View Post
    Yes, I am after I have generated and built it and have received a successful build message once. I'm adding a C# class project to the solution after 1 successful build.
    I would advise not adding a project to the UE4 solution, regenerating will wipe out your custom project every time.

    HTML/CSS/JS Powered UI - Free

    Comment


      so you advice a separate solution for the C# library and just reference it without it being in the solution?

      Comment


        I separated my HTML5 and UE4 solutions. I suggest you do the same.
        Currently working on PARGSoft Football

        My day job is a C# ASP.NET Developer, I wish it was a games developer

        Comment


          Well the time has come and I can publicly post. I know I've chatted with you in private Aaron but our team finally made the switch announcement that STExcalibur will be utilizing Unreal. Aaron, thank you so very much for this plugin, without it, I'd be up creek without a paddle or having to shell out lots of money.

          So far working with BLUI I've been able to get the HUD to auto resize so the HUD acts like a normal responsive webview rendering the UI always at the same pixel resolution as the screen/window itself. Click events are about 80% complete, still working on a couple things. Have HUD and inworld UI being rendered so without much else, a couple quick questions. No mind everyone I'm rather new to Unreal, I'm mainly just a front end person and Aaron has said he is busy so if anyone is able to answer, please do!

          1. Does every render create another instance of CEF? As we build out internal views, a single star trek bridge has 20-30 different screen displays at one time so was wondering how the plugin handles a multitude of them

          2. Inworld UI, say just the display widget, transparent, etc...is jerky when walking around it. Now I've ready that this seems to be a part of the motion blur and is a global thing. Even disabled, there is still some light twitching of the hovering UI in the scene. Just wondering if there is something I'm missing in a setting with Unreal or if it something to do with how the UI is rendered.

          3. CSS Filters kill the system if used more than one render (using dropshadow). If just on the HUD, no lag. If just on a single view in the world, no lag. Add css filter to both, the whole thing just dies.

          4. Muddy inworld renders. This is probably a Unreal thing I don't quite understand and not BLUI itself. I've looked at other Trek projects and their image textures for consoles and the images are big, much bigger than any normal UI would make with my LCARS SDK. I attempted to increase the drawsize of the display widget and use the resize function but anything over 1920x1080 for a draw size on the display widget and it lags the editor/game like to almost nothing.

          5. Single API blueprint. I do not know anything about C++ and i'm not having much luck with casting. I'm trying to create a single blueprint in which to keep the UI/Engine API communications layer that the HUD widget or the display widget could cast to so we don't have to duplicate the API layer into both widget blueprints. Am I crazy, is this possible? Coming from Javascript/Python where one can simply import the file and use any of the variables/functions, this casting is driving me crazy.

          I've attached some screenshots below for viewing.

          Oh and last thing, this one is for Aaron. The blueprint below for the blu_event, would you be able to make a node that does the same thing as the timer, just minus the timer part? The passthrough works perfectly and the timer works fine for prototyping but hoping maybe we can have an official node. I'd try to do it myself but alas that C++ is above my coding grade.
          Attached Files

          Comment


            AaronShea,

            I am using blueprints for the project. I also have the released version of 4.9 not the c++ build. No problem for the late reply I have been down for a little while any way. Thank you for any help you are able to provide.

            Comment


              Hello Aaron! First - huge thanks for making this awesome plugin!

              But I am not exactly pro-master-scripter, so I have two questions:

              1) Is there a way to create custom mouse, or something, that can cast mouse action for 3D BLUI at the center of the screen? (well, if it is not too difficult, that is...)

              2) Can there be added compatability for three.js? It is a custom JavaScript 3D library.

              Comment


                Evening there!

                Since I asked questions I thought it would be appropriate to negate them since I figured a couple of them out. lol Single blueprint so that our API can exist in a singular spot and the muddy renderings. It seems that because of my learning nature here with unreal, while the webview would be rendering at 1920x1080 and the UI would be there, the draw size, which I lowered to 96x54 so the inworld sizing would be in line with the main actor was causing the muddy. I had to scale down instead of lowering the draw size. lol

                It isn't as clear as using a screenshot of the same UI as a material for comparison but it is good enough and I'd wager will get better with time.

                Comment


                  Closing Brower crash (again.)

                  Hi Aaron.

                  I haven't replied and thank you to the last fix you posted on CloseBrowser(), doing other stuff.

                  However I'm still having trouble with it on another level, where it crashes with 4.9.2. in
                  Code:
                  void FSlateUTextureResource::UpdateRenderResource(FTexture* InFTexture)
                  For this example, I'm using your BLUI Demo room and I've added a simple browser closing procedure in the level Blueprint.

                  I believe "Unbinding All Events .. " was the critical aspect that you suggested on another post to avoid problems with closing but I'm still experiencing those crashes.

                  Click image for larger version

Name:	bluiclosebrowser.png
Views:	1
Size:	123.9 KB
ID:	1091233

                  There's maybe something missing here. If you have any idea, feel free to suggest them.
                  Again, thanks.

                  Comment


                    Aaron,

                    What would be the quickest way for us to test console support? We have both dev kits here and are more than willing to help you port this to them depending on the workload.
                    @Overlawled

                    Comment


                      Originally posted by overlawled View Post
                      Aaron,

                      What would be the quickest way for us to test console support? We have both dev kits here and are more than willing to help you port this to them depending on the workload.
                      Greetings!

                      That's very kind of you to offer!

                      Unfortunately I think workload would be too much to handle (especially during my college terms), because I don't think porting over CEF would be very realistic, as it would also require Chromium to be ported.
                      The solution would be to build a version of WebKit and write custom "glue" between that and the plugin. Basically replacing the CEF/Chromium backend in favor of WebKit.

                      Coherent UI already has a major jump on this market anyways.

                      Thanks again!

                      - Aaron

                      HTML/CSS/JS Powered UI - Free

                      Comment


                        Hey Aaron, I want to thank you for your hard work put into this plugin, it's going to and probably has already helped developers make some pretty fancy menus.

                        I have a small issue, well it's not really an issue but more a user problem :P The canvas that's rendered to my screen is really stretched. I have tried to manually set the width and height of the canvas however that distorts (either stretches or squashes) the canvas. Is there any way we can have the canvas element allow a 'responsive' view?

                        Edit: A little more information: Even though my canvas is rendering at say 600x800, the mouse move event still thinks my cursor is on a 1920x1080 resolution. So buttons in the center of the screen work however the mouse's virtual position gets more and more offset the further I go from the center.
                        Last edited by Zinglish; 10-15-2015, 11:38 AM.

                        Comment


                          @Aricwithana

                          Sorry for such a late reply. I'm deep in my college semester right now, it's hard to be in many places at once.

                          I'll try to answer your questions one by one:

                          1. Each render is its own "browser." It handles it the same way Chrome/Chromium handles multiple tabs. Each one have a render process, a browser process, any plugins have their own process etc.
                          That is mostly for security, as everything is sandboxed. This is innate to chromium's multiprocess architecture, and single process browsers are actually far less stable in CEF.

                          2. BLUI only provides a pixel buffer which is translated onto a texture. You can adjust this texture any way you like, and even render it to a material instance. You don't just need to use the built in WebUI blueprint. Or if you want even more access, the pixel buffer is freely available inside the C++ RenderHandler code.

                          3. CSS filters are indeed a very heavy operation. Check inside BluManager.cpp and look for BluManager::CPURenderSettings; try switching that to false. You can also take a look at the switches in there to change performance etc.

                          4. Again, this can relate to question 2 - Also the muddy renders tend to come from UE's AA effect.

                          5. Not sure what you're trying to get at here, I may just be missing the obvious point. However, blueprints are like classes, each new instance is totally separate from each-other.

                          Lastly I will be looking into working on a better events system to avoid that timer hack.

                          Sorry for being missing for a while guys. Just been all over the place!

                          - Aaron

                          HTML/CSS/JS Powered UI - Free

                          Comment


                            Originally posted by Zinglish View Post
                            Hey Aaron, I want to thank you for your hard work put into this plugin, it's going to and probably has already helped developers make some pretty fancy menus.

                            I have a small issue, well it's not really an issue but more a user problem :P The canvas that's rendered to my screen is really stretched. I have tried to manually set the width and height of the canvas however that distorts (either stretches or squashes) the canvas. Is there any way we can have the canvas element allow a 'responsive' view?
                            Hello, you also have to set the width and height of the actual browser. Take a look in the example HUD to find the Set Width and Set Height nodes. This is the actual "window" height of the rendering.
                            You can adjust your UMG canvas to match, and there should be no stretching. This is also a re-size function.

                            Take a look at the Blueprint nodes: https://github.com/AaronShea/BLUI/wi...--BluEye-Nodes

                            HTML/CSS/JS Powered UI - Free

                            Comment


                              Originally posted by AaronShea View Post
                              @Aricwithana

                              Sorry for such a late reply. I'm deep in my college semester right now, it's hard to be in many places at once.

                              I'll try to answer your questions one by one:

                              1. Each render is its own "browser." It handles it the same way Chrome/Chromium handles multiple tabs. Each one have a render process, a browser process, any plugins have their own process etc.
                              That is mostly for security, as everything is sandboxed. This is innate to chromium's multiprocess architecture, and single process browsers are actually far less stable in CEF.

                              2. BLUI only provides a pixel buffer which is translated onto a texture. You can adjust this texture any way you like, and even render it to a material instance. You don't just need to use the built in WebUI blueprint. Or if you want even more access, the pixel buffer is freely available inside the C++ RenderHandler code.

                              3. CSS filters are indeed a very heavy operation. Check inside BluManager.cpp and look for BluManager::CPURenderSettings; try switching that to false. You can also take a look at the switches in there to change performance etc.

                              4. Again, this can relate to question 2 - Also the muddy renders tend to come from UE's AA effect.

                              5. Not sure what you're trying to get at here, I may just be missing the obvious point. However, blueprints are like classes, each new instance is totally separate from each-other.

                              Lastly I will be looking into working on a better events system to avoid that timer hack.

                              Sorry for being missing for a while guys. Just been all over the place!

                              - Aaron
                              No worries at all! I've gotten pretty far at the moment and I know you are super busy. Single blueprint for HUD, display widget and texture/material rendering. Just working on finishing up the mouse and keyboard events and passthrough. Renders look awesome and all is good on my end.

                              I did that trick in the BlueManager.cpp, I went a digging. That helped quite a bit but it is ok if I don't have CSS filters and keeping in-scene ui renders from using lots of 3D transforms. The HUD works great!

                              Thanks for the info for the browser process. That is what I was thinking but I wanted to make sure. I'll let our main engine guy know about how the UI textures are handled in the RenderHandler incase he'd like to play with it at all. Cool on the timer node replacement also. I'd write something myself If I could write any C++, lol.

                              Lookin forward to future releases as they are able! As I am filling in active LCARS screens on a bridge model I have, so geeky. lol

                              Comment


                                Alright, I solved the stretching part (it's still not responsive though, it's maintaining its aspect ratio, anyway) however I still get the mouse issue, any ideas?

                                Comment

                                Working...
                                X