(MegaGrant) Iliad : Intelligent Layered Imaging Architecture for Drawing.

Hi everyone !

Our small company Praxinos ( https://www.praxinos.coop/ ), based in North-East France, is currently working on the UE4 plugin iliad (Intelligent Layered Imaging Architecture for Drawing ).

The aim of this plugin is to bring drawing capabilities directly into Unreal Engine, especially to edit textures.
It would use the blueprints to create brushes, palettes, layers and many other common tools for those who are used to classic painting software.
Of course, it will take advantage of the realtime 3D environnement to display unwraped meshes when possible, get the instant result in the levels, etc.


We would like Iliad to be the perfect tool for texture creation, pixelart drawings, paintings, etc. all within UE4.
Our plugin has received a MegaGrant and should be available before the end of the year.

Praxinos_megagrant.png

If a picture is worth a thousand words, then the following video should be enough to give you a good overview of the plugin :

Enjoy !

We will do our best to answer your questions, requests and to show our progress.

Hi there,

Here is a video that shows more about brushes, stamps and the way to manage them with blueprints.

By the way, here is the list of the existing nodes related Odyssey Brushes (click to enlarge) :

The same here in text :

[SPOILER]
Odyssey_Block_Proxy

  • Fill_Preserve_Alpha
  • Get_Height
  • Get_Width
  • To_Odyssey_Block_Proxy_(Texture2D)

Odyssey_Brush

  • Azimuth
  • Get_Acceleration
  • Get_Altitude
  • Get_Color
  • Get_Current_Stroke_Point_index
  • Get_Direction_Angle_Normal_Deg
  • Get_Direction_Angle_Tangent_Deg
  • Get_Direction_Vector_Normal
  • Get_Distance_Along_Stroke
  • Get_Flow_Modifier
  • Get_Jolt
  • Get_Opacity_Modifier
  • Get_Pitch
  • Get_Pressure
  • Get_Roll
  • Get_Size_Modifier
  • Get_Smoothing_Strengh
  • Get_Speed
  • Get_Step
  • Get_Twist
  • Get_X
  • Get_Y
  • Get_Yaw
  • Get_Z

Odyssey_Brush_Color

  • Break_Odyssey_Brush_Color_Into_CMYK
  • Break_Odyssey_Brush_Color_Into_CMYKF
  • Break_Odyssey_Brush_Color_Into_HSL
  • Break_Odyssey_Brush_Color_Into_HSLF
  • Break_Odyssey_Brush_Color_Into_HSV
  • Break_Odyssey_Brush_Color_Into_HSVF
  • Break_Odyssey_Brush_Color_Into_RGB
  • Break_Odyssey_Brush_Color_Into_RGBF
  • Make_Odyssey_Brush_Color_From_CMYK
  • Make_Odyssey_Brush_Color_From_CMYKF
  • Make_Odyssey_Brush_Color_From_HSL
  • Make_Odyssey_Brush_Color_From_HSLF
  • Make_Odyssey_Brush_Color_From_HSV
  • Make_Odyssey_Brush_Color_From_HSVF
  • Make_Odyssey_Brush_Color_From_RGB
  • Make_Odyssey_Brush_Color_From_RGBF

Odyssey_Brush_Function_Library

  • Debug_Stamp
  • Generate_Orbit_Delta
  • Simple_Stamp
  • Stamp

Odyssey_Transform

  • Compose_Matrix
  • FlipX
  • FlipXY
  • FlipY
  • Make_Identity_Matrix
  • Make_Rotation_Matrix
  • Make_Scale_Matrix
  • Make_Shear_Matrix
  • Make_Translation_Matrix
  • Resize
  • Resize_Uniform
  • Rotate
  • Scale_Uniform
  • Scale_XY
  • Shear
  • Transform

Utilities_Casting

  • Cast_To_NewOdysseyBrush
  • Cast_To_NewOdysseyBrushClass
  • Cast_To_OdysseyBrushAssetBase
  • Cast_To_OdysseyBrushAssetBaseClass

Utilities_Struct

  • Break_OdysseyPivot
  • Make_OdysseyBlockProxy
  • Make_OdysseyBrushColor
  • Make_OdysseyMatrix
  • Make_OdysseyPivot
  • Set members_in_OdysseyBlockProxy
  • Set members_in_OdysseyBrushColor
  • Set members_in_OdysseyMatrix
  • Set members_in_OdysseyPivot
    [/SPOILER]

Here is a quick update.

What has been done so far :

The plugin works on both Windows and Mac.

Within UE4 interface :

  • The ability to open any texture that is located within the content browser
  • New type of assets within the content browser : Odyssey_Brush

Within Iliad itself, you will find the following windows :

  • Viewport (the place where you draw, with canvas Rotation, Pan and Zoom options)
  • Brush Selector (to use a brush created within the content browser)
  • Mesh Selector (to unwrap a static mesh asset)
  • Brush Exposed Parameters (to display and tweak the choosen parameters within your blueprint brush)
  • Color Slider RGB, HSV, HSL, CMYK
  • Color Wheel with Hexadecimal values.
  • Layers Stack (Image Layers, Folders, Blend modes, lock, view, trash, opacity, etc. still in WIP)
  • BotBar and TopBar (Size of the Brush, Opacity, Flow)
  • Stroke Options (Step, Smoothing, Interpolation, etc.)
  • Performance options (to enable or disable the realtime update of the painted textures within the 3D world, wherever and however they are used)
  • Notes panel (to write text)
  • Undo History (still in WIP)
  • Some basic tools to clear the current layer or to fill it with a color (more to come soon)

When editing a Brush :

  • Brushes can be built using all blueprints options (functions, macros, variables, nodes, etc.)
  • Up to 77 new blueprint nodes are dedicated to Odyssey_Brushes (see previous post) more should come soon.

Still to do or work in progress :

  • Make sure that Iliad is compatible with the latest version of Unreal Engine 4,
  • Check if it’s working properly on Linux,
  • At the moment we work only in sRGB colorspace, more should be available soon (LAB, AdobeRGB, etc.),
  • The maximum stamp size limit to paint without lag is around 250 x 250 pixels. We are working to improve this value since the textures in Unreal Engine can go up to 8192 x 8192 pixels,
  • More blending modes should be added in the layer stack,
  • Check everything required to have the graphic tablet management working as expected for Wacom and other brands,
  • Start the work on : Brush preview window, Navigator window, Test area,
  • Finish properly : History, Stroke and Performance options, etc,
  • Implement some basic tools to draw 2D primitives,
  • Add some new nodes to build brushes (blending modes, better color and alpha chanel management, etc.),
  • Work on a curve system to avoid managing complex mathematic formulas within blueprint brushes. We might reuse or tweak UE4 existing curve system,
  • Remove all unrelated nodes within the blueprint window, to make it more clean,
  • Sliders and Color Wheel dedicated to normal maps colors,
  • Subpixel and antialiasing management,
  • A bunch of Odyssey_Brushes exemples,
  • An HTML manual,
  • More video tutorials,
  • etc.

For your information, ILIAD will be presented on October 31st - 2pm ET on UE4 Twitch account !

2nd teaser with pixel art :slight_smile:

I just watched the live presentation and I should say very impressive.
You said in it you’re more focused on 2D/2.5D and stylized games, but my two cents is that you may have here a nice venue for textures artists working on more realistic stuff. Remember Zbrush started as an illustration program, only with 2.5 pixols as just one of the features, and look where it ended. Not comparing or anything, but… There are possiblities. Painting, stamping and modifying textures in the final context of the game is really cool. I’m an illustrator myself and also 3D artist, and this kind of convergence in tools is always welcomed.
My feature suggestions, if you don’t intend to shy away from becoming one more option for 3D texturing for more realistic stuff (but also useful for toon, stylized). Maybe you already have some of them in your roadmap:

  • Masks for the layers.
  • Do the same for these masks as you’ve done for the brushes: be able to create them using blueprints. :wink: This way the users can make lots of procedural masks.
  • Be able to paint over the meshes, in the 3D viewport. And in a dedicated UI/Editor, so that the user can show/hide mesh parts, based on materials. :eek:
  • Some sort of thing where you can paint a height map with tessellation enabled, just to preview the effect of heightmaps.
  • Paint in many textures/‘channels’ at once (roughness, AO etc). Or you paint in one and the plugin propagate to the others, as in the rust in the barrel, in the youtube video.
  • Use subsystems for the plugins, and an easy way to get rid of the samples and example assets of the plugin once you build, cook your game. To avoid bloating people’s projects.
  • Stencil tool that sample from textures. That you can rotate, scale etc. Like Zbrush’s spotlight, Mari and S. Painter also have it (I’ve tested both for my game project, currently using S. Painter). And also warp the stencil, like in Mari.
  • Be able to export the Iliad Texture file, with its layers, to PSD.

That’s it for now. Sorry for pressing you, but the tool looks promising.

Ah: and the storyboard tool is also very nice.

Very much impressed, well done you guys, so looking forward to simply doodling real time within UE4, been waiting a long time for this =].

Very interesting tool! - A couple of questions:

  • Are you planning on releasing this to the community? If so, when is this likely to be?
  • You’ve shown drawing in 2D and the texture applied in 3D directly updating. Is there a plan to be able to draw on assets in 3D and for the 2D asset to be updated?

Thanks and keep up the great work!

Hello ! Thank you all for watching the livestream yesterday ! :smiley: It is available on Twitch, so feel free to share it around you : Twitch

So, let me answer the questions the best I could (today is a holiday in France, so I don’t want to bother my colleagues ^^) :

Obviously ! And Stencils and Preserve alpha mode as well.

Wow, the forum won’t let me post long answers ! Oo

I couldn’t find another way to answer you, but using Praxinos forum : Questions about ILIAD - Praxinos Forum

Hello guys,

Thanks for jumping in the ILIAD topic !

It’s very valuable to have your feedback about both the livestream and the plugin.

Elodie has answered to many questions and features requests already (■■■■, we are too used to make long answers … :wink: ) so on my side I will start by asking a couple of questions :

  • Do you expect some specific options regarding the storyboard/animatic thing ?
  • Do you think it would be relevant to create our own asset that would be derivated from UTexture in order to keep the layers, rather than exporting them onto separated content browser textures ? it’s a long work, so we have to know your expectations.

By the way, feel free to write us in English, French and Japanese, we can speak those three languages.

BTW, we’ve been asked a Discord Channel yesterday :
Praxinos-Public Enjoy ! ^^

Really cool stuff :slight_smile:
Keep up the amazing work!

Thanks for the swift reply. And I’ll check the Illiad forums. (By the way, nice the use of the Illiad -> Odissey relationship. Both are great ‘poems’ Which will be the next app, Aeneid? :-)). Answers:

  • For me at least:
  • Easy way to get rid of temporary assets, working files etc when building, packaging the project.
  • Easy way of swapping each board for the 3d shot, maybe keeping camera moves in the storyboard. Maybe I’m going too far, but if you put layers in the storyboard tool, that you can actually offset in depth (like you would in a 3D scene in After Effects), than later you can swap a drawing in a layer, let’s say a character, for the 3D skeletal mesh of it, and the scene layout is kind of blocked already. Also good for parallax in camera moves.
  • Both options. I guess for the animated sprites it would be better to have a single asset, custom, than let’s say 63 textures in a folder.

I’ll check Illiad’s forums.

I deleted what I originally posted, nevermind ^^’

Yes, it is planned to create and keep camera moves.

Hmm, at the moment, it would be complicated to create a parallax with layers from the same 2D texture. Plus, if we’re working with a 3D background, the parallax should be appear without additional work. Obviously, it depends on your workflow : either your storyboard is made from scratch (you have no assets, just a pen and a paper board) or you are working from an already existing environment (background, characters, etc.). The 1st option is more common in 2D productions, the 2nd is more common in 3D productions (in the animation industry - which is our main professional background, let’s keep that in mind :D)

From our experience, layers had a very little impact on the framerate. But of course, with UE in the equation, things might be different :slight_smile:

(arg, it is annoying that I have to post several times in a row -_-')

How the tileset used during the livestream was made :slight_smile:

How to make sprite animations