I was looking around to see what was being used fro UI's in Unreal and many of the search result would give ScaleForm with Flash in the results. I seldom saw UIScene or Canvas in the results. I know that ScaleForm 4 increased the performance somewhat, but im still worried it might slow down on older computers. And for CoT, users might want to run in a resolution of 1920x1080 if not more in 2 years.
I've had little experience with flash, primarily with SWISH MAX, but I'm very weary that the ScaleForm approach might have a performance hit because of the multi layer Flash approach for the different UI elements. Granted I have yet to try it myself, and see how well it runs with a SWF for the Chat window, a SWF for a PowerTray, one for the Current Target window, one for the Map, one for the Active Mission(s) listing, one for the Health/Stamina/etc..., and maybe a few Stats panels floating about.
Does Canvas have faster Draw calls?
Is the Unreal Canvas like Clutter library?
A while ago i build a whole UI library, with Dropdown Comboxes that were translucent with Clutter.
[img]http://i.imgur.com/OnfCaZu.png[/img]
Screencast of app runing on Ubuntu: http://www.youtube.com/watch?v=Er3NfPHrTvg
Do we need to do the same thing with Unreal Canvas?
Short version, we won't be using Scaleform as it is being removed in U4.
In fact, not only in UE4, it is also deprecated in UE3 and folks are basically told "don't do anything new in it". Unfortunately they ripped out the older system (UIScene) when they put that in, it would appear, so in lieu of that we're pretty much stuck using Canvas.
Also, there are some extremely good reasons for using something more closely tied to the engine's core, in terms of allowing user configuration of the UI.
As for 1920x1200, etc, I know of at least one player who will be starting at 2560 or whatever it is. However, the very limited set of stuff for Canvas right now should all scale fairly cleanly, and is low-cost (probably much lower-cost than whatever it is occluding, in fact).
[hr]
[color=#ff0000]Developer Emeritus[/color]
and multipurpose sheep
[img]http://missingworldsmedia.com/images/favicon.ico[/img]
I guess I better start learning UnrealScript and how to use the Unreal Canvas. ;)
Clutter used COGL for its OpenGL vector based drawing for UI elements. I dont know for certain, but i think Unreal defaults to DirectX, and i havent seen anyone mention openGL in the UDN forums. :/
I wonder, would a vector library help for drawing some of the UI in realtime? instead of using per pixel textures.
CAIRO was slow last time i looked, and i doubt that it can read a .SVG file.
I came across a few UI frameworks for Unreal Engine that used the Canvas, but allot of them are Dead now!
One that caught my eye is: https://code.google.com/p/unrealscript-gui-framework/
Not sure how well it works, but I'm guessing its allot better than Flash. ;)
I went ahead and downloaded the UnrealScript GUI Framework and tested it.
See what it looks like here: http://www.youtube.com/watch?v=Y-mG-ejgg8A
Learning how to use MouseInput, SceneCapture2DActor, TextureRenderTarget2D, ScriptableTexture.
Image:
[img]http://img854.imageshack.us/img854/2898/0ksf.png[/img]
Video Screencast of what all that looks like: http://youtu.be/uqVgJVflcpk (audio might be out of sync near the end)
As I tried to explain (not clearly), I'm experimenting with the idea of simulating Animations for the UI, like ScaleForm does with Flash, but with just the Canvas and Matinee.
I've made progress, but not quite there yet. ;)
1) Capture 3D planes and Draw them to a Canvas, well... a Scripted Texture.
Example:
[img]http://i.imgur.com/TyI2NAI.gif[/img]
2) Same as above, but Draw to the UI Canvas.
To Do Now
Quick Update:
We can use a Trace to check which 3D element the mouse is hovering over on the HUD.
[img]http://i.imgur.com/SFDsQsr.png[/img]
short Screencast Video: (2 minutes)
http://youtu.be/P8D4ziOixCE
Goto forum post: http://cityoftitans.com/comment/33368#comment-33368 for the
Video Demo of the latest Progess for Draggable UI Butons in the UDK HUD using Canvas.