Project: Paper2D

As you may have noticed, there was an unsupported experimental named Paper2D already present in 4.0 launch.

I’m very happy to announce that we’re going to be taking it from experimental to a supported engine feature over time. goal of Paper2D is first-class support for making 2D and hybrid 2D/3D games in UE4.

Anyone who is interested will be able to follow along with live Perforce-> mirroring, and you can see current Paper2D Trello Board here (tasks / roadmap / etc…).

As a disclaimer, anything listed on roadmap may not actually make it into engine as planned today; we may run into complications that push out a feature, or we may have reason to stop working on it altogether. Items in our backlog may never see light of day either, as they are simply ideas we’ve discussed but haven’t yet figured out if or how they would best fit into engine. While we intend for most items on roadmap to end up surfacing as estimated, we want to make it clear that there is no guarantee of a feature being added to engine even if it’s currently listed.

There is a quick start guide / initial docs thread on forum which covers more about what is considered fully supported, available as early access, or totally experimental as of 4.3 release.

Cheers,

1 Like

Note: These updates will pertain to main branch on unless otherwise stated.

[Weekly 2D Status 6/30/2014]
Everything listed here will be in 4.3, but later updates will be about future releases as we have branched for 4.3 today. I’ve also taken a pass at updating 2D Trello roadmap to reflect completed work and changed priorities.

Enabled Paper2D by default in engine, so it will be usable in content-only games in 4.3

Editor and documentation work to properly message state of Paper2D in 4.3

  • Overall Paper2D in 4.3 is an Early access preview - While not considered production-ready, it is a step beyond ‘experimental’ and is being provided as a preview of things to come
  • Created placeholder editor intro tutorials, etc…
  • Sprites and Flipbooks are Early access
  • 2D collision/physics, terrain splines, atlasing groups, and tile maps are Experimental (hidden behind enable flags where possible)

Created 2D side scroller game template (BP and C++ variations)

Productization / usability polish pass

  • Added pixels per unreal unit scaling factor to sprites, with a per-project default setting
  • Visual pass on Sprite Editor
  • Completely revamped Flipbook Editor
  • Flipbook component improvements (play/pause, looping control, reverse, etc…)
  • Renamed Paper2D classes to better match their associated assets and parallel existing engine components

[reserved for future status updates 2]

Hmmm isn’t also would make Paper2D another solution for HUD? that would be pretty good

Hi ,

It may be applicable for some uses, but UMG is our proposed solution for editor-centric UI and HUD stuff. We’ll be collaborating to share code wherever it makes sense (e.g., text formatting and layout, possibly atlas generation code, etc…), and will probably support things like drawing paper sprites on a UCanvas / AHUD, as well as drawing them as widgets in UMG.

Cheers,

You are probably not looking for feature requests but some form of 2d skeletal animation support would be , not just flip book / tilesheet style animation.

On Trello board, it would be great if you could highlight things that community could tackle too=)

is something I would like to help. How can we tacker who is working on what?

I’m interested in as well.

Do check out /. I recently integrated their skeletal animation system into a 2D game and I liked it - both workflow and runtime integration was pretty seamless.

Would be cool to have a 2d terrain tool like http://www.simbryocorp.com/ferr2dterrain/

Well there probably will be need for all kind of tile mapping tools for different perspectives, i guess those could be seperet plugins

@hbrock and @xgalaxy, now that public overall roadmap is up, I’ll try to get trello board for Paper2D up.

There are a number of serial dependencies I need to work thru first before others can just jump in without ground shifting out from underneath them. After that, it will be much easier to grab work from ‘nice to have list’ or improve what is there, especially adding features to sprite editor, etc…

I’m currently focused on core bits that are necessary to even consider using Paper2D in a game (namely efficient rendering support with automatic atlas generation and batching).

@ssfulfe, 2d textured splines is already on my radar, though I haven’t seen Ferr2DTerrain before, which seems to go a bit beyond it (slope detection changing border texture / etc…). I’d love to have features like that, but fundamentals come first :slight_smile: I think UbiArt does a similar system for their platforms and terrain as well.

Cheers,

Dear and Everyone,

James Golding had requested I make a FRect2D class,

sounds like it will be useful overall, in your endeavors :slight_smile:

It is currently pending on Git hub
/EpicGames/UnrealEngine/pull/129

Has many intersection testing functions, including isolating 1 axis at a time.

Also my favorite feature:

You can build a FRect2D from an arbitrary number of points located anywhere!

You do not have to know min and max points of rectangle in advance!

example:


FVector2D RandomPoint1;
FVector2D RandomPoint2;
FVector2D RandomPoint3;

FRect2D NewRectFromRandomPoints = FRect2D();
NewRectFromRandomPoints += RandomPoint1;
NewRectFromRandomPoints += RandomPoint2;
NewRectFromRandomPoints += RandomPoint3;

Wherever these random points are in 2D space, an appropriate rectangle will be created from them!

You can also pass in an array of points similar to FBox (full details on Git hub)

Congrats on all your awesomeness !

Hi

Thanks for moving paper 2d to a supported feature. I tried using yesterday. I could successfully create sprites and placed a few in viewport after doing so. major pain is placement as it is 3d viewport placing 2d assets is tough maybe only for me. A 2d viewport would help for easier alignment of 2d assets.

Hi ,

You can switch level editor to orthographic mode using drop-down that says Perspective, and choose Front, Top, or Side orthographic (2D) plan views.

Cheers,

You can see current Paper2D Trello Board here (tasks / roadmap / etc…)

As a disclaimer, anything listed in current version may not actually make it into engine as planned today; we may run into complications that push out a feature, or we may have reason to stop working on it altogether. Items in our backlog may never see light of day either, as they are simply ideas we’ve discussed but haven’t yet figured out if or how they would best fit into engine. While we intend for most items on roadmap to end up surfacing as estimated, we want to make it clear that there is no guarantee of a feature being added to engine even if it’s currently listed.

Cheers,

Hi

Why dont you assemble a team from forum members who are interested in 2D features you can mentor us in right direction so we can help in development of 2D features. So we can get Paper 2D features faster :). By way if you consider doing it i am in.

Thanks

I will take a look at board tonight.

Hi ,

I’m excited about development of Paper2D in UE 4 and wanted to offer a feature idea, that may not have been considered already. I believe it would be really useful to be able to import SVG assets from Illustrator or other vector drawing apps into UE4 and then dynamically rasterized into a sprite context when needed. In other words, SVG file remains an asset in a UE4 project, and only rasterized once when it is used on screen, or updated when a sprite is scaled to a larger size on screen or when multiple resolutions of sprite are required. From my understanding, sprites are usually more performant in games, but vector graphics can take up far less storage space especially when high or multi resolution images are required, not to mention creation of sprite sheets/atlases. And of course, sometimes style of your assets require a more clean vector graphics look anyways. Seems like a waste to have to rasterize vector graphics into PNG files beforehand just to get that look.

I believe Vector/Sprite hybrid concept would make a lot of sense for Paper2d in UE4. key however, is that you’re not trying to rasterize vectors into sprites all time, only when an update is needed. I’m interested to know if there are reasons why you think would be a bad idea or perhaps just a useless one!! :wink:

Cheers,

Wilhelm

Hi ,

Using vector art can be quite nice for sharp images at any resolution, but there are certainly some potential downsides to rasterizing it into a cache. For example, imagine that you have multiple instances of same object, each independently zooming in and out (e.g., a bunch of buttons that can all play their own bounce animation when clicked, or spawning characters or whatever). If you place every unique scale (and possibly rotation) instance in cache, you can quickly run out of memory and crash if cache can grow unbounded, or thrash cache + force a rendering flush if cache has a maximum size.

Slate actually handles something like with a runtime atlas for font characters, rasterizing characters as needed at each scale size used in a frame. works pretty well in practice, though quickly zooming in and out in a Blueprint can pollute cache temporarily.

I agree that it would be quite useful, even if it just rasterizes to maximum size on load, reducing your download size. I’ll add it to roadmap as a wishlist item.

Cheers,

On that note, has anyone worked with SVG before? I had a quick look around for svg libraries and didn’t see much with a suitable license, seems like most things use LGPL. looks interesting /memononen/nanosvg but it’s not clear how compatible it is (SVG is a pretty complex format and I get antsy whenever someone rolls their own XML parser).

Cheers,